问题 单项选择题

下列程序的执行结果为
Private Sub Command1_Click()
Dim FirStr As String
FirSt="abcdef"
Print Pat(FirStr)
End Sub
Private Function Pat(xStr As String)As String
Dim tempStr As String,strLen As Integer
tempStr=" "
strLen=Len(xStr)
i=1
Do While i<=Len(xStr)-3
tempStr=tempStr+Mid(xStr,i,1)+Mid(xStr,strLen -i+1,1)
i=i+1
Loop
Pat=tempStr
End Function

A.abcdef

B.afbecd

C.fedcba

D.defabc

答案

参考答案:B

解析: 主调函数最终输出值是Pat(FirStr)过程的返回值,这就得调用函数过程Pat。
被调过程Pat的参数xStr从主调函数中收到实参FirStr传来的值“abcdef”,过程Pat开始声明了两个变量,一个是strimg型的tempStr,一个是Integer型的strLen。
语句tempStr =" "
strLen = Len(xStr)
以上两条语句的功能是:为变量tempStr赋空值,变量strLen的值就是xstr的长度,此题为6。程序代码执行Do While…Loop的循环语句:
第一次循环,I=1,I<=3成立,执行语句tempStr + Mid(xStr,i,1)+Mid(xStr,strLen - i+1,1);
mid函数一般调用格式:Mid(字符串,p,n),其功能就是从第p个字符开始,向后截取n个字符,第一次循环结束后,temp
Str =“af”:
第二次循环,I=2,I<=3成立,继续执行循环体,tempStr =“afbe”;
第三次循环,I=3,I<=3成立,继续执行循环体,tempStr =“afbecd”;
第四次循环,I=4,I<=3不成立,则跳出循环体,执行语句Pat = tempStr。所以最终Pat(FirStr)=“afbecd”,即最后程序执行结果如选项B)所示。

单项选择题
单项选择题