下列程序的执行结果为Private Sub Command1_Click() Dim FirStr As String FirSt="abcdef" Print Pat(FirStr)End SubPrivate Function Pat

admin2009-01-15  27

问题 下列程序的执行结果为Private Sub Command1_Click()    Dim FirStr As String    FirSt="abcdef"    Print Pat(FirStr)End SubPrivate 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=tempStrEnd Function

选项 A、abcdef
B、afbecd
C、fedcba
D、defabc

答案2

解析 主调函数最终输出值是Pat(FirStr)过程的返回值,这就得调用函数过程Pat。
  被调过程Pat的参数xStr从主调函数中收到实参FirStr传来的值“abcdef”,过程Pat开始声明了两个变量,一个是String型的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个字符,第一次循环结束后,tempStr=“af”;
  第二次循环,I=2,I<=3成立,继续执行循环体,tempStr=“afbe”;
  第三次循环,I=3,I<=3成立,继续执行循环体,tempStr=“afbecd”;
  第四次循环,I=4,I<=3不成立,则跳出循环体,执行语句Pat=tempStr。所以最终Pat(FirStr)=“afbecd”,即最后程序执行结果如选项B所示。
转载请注明原文地址:https://kaotiyun.com/show/WZ2p777K
0

最新回复(0)