问题 单项选择题

下列程序的执行结果为( )。
Private Sub Command1_Click()
Dim FirStr As String
FirStr="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 -1+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开始声明了两个变量:一个是String型的tempStr;另一个是Integer型的strLen。语句tempStr=“”,strLen=Len(XStr)的功能是为变量tempStr赋空值,变量strLen的值就是XStr的长度,此题为6。程序代码执行Do While…Loop的循环语句。
第1次循环结束后,tempStr=“af”。
第2次循环,i=2,i=3成立,继续执行循环体,tempStr=“afbe”。
第3次循环,i=3,i<=3成立,继续执行循环体.tempStr=“afbecd”。
第4次循环,i=4,i<=3不成立,则跳出循环体,执行语句Pat=tempStr。所以最终Pat(FirStr)=“afbecd”。

选择题
单项选择题