设有如下通用过程:
Public Function Fun(xStr As String) As String
Dim sStr As String, strL As Integer
tStr=""
strL=Len(xStr)
i=strL/2
Do While i<=strL
tStr=tStr & Mid(xStr, i+1, 1)
i=i+1
Loop
Fun=tStr & tStr
End Function
在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮。然后编写如下的事件过程:
Private Sub Command1_Click()
Dim s1 As String
s1="ABCDEF"
Text1.Text=Lease(Fun(s1))
End Sub
程序运行后,单击命令按钮,文本框中显示的是
A.ABCDEF
B.abcdef
C.defdef
D.defabc
参考答案:C
解析: 程序最后是把Fun函数的返回值转换为小写字母并在Text1文本框中显示出来,显然选项A是错误的。函数的返回值Fun=tStr & tStr,相当将tStr变量的字符重复两次的结果,只可能是选项C将"def"重复两次的结果,其他选项的值都不对称。当然也可以将参数值代入函数一步一步求得:实参"ABCDEF"传递给xStr,用Len(xStr)求出串的长度6存入变量strL,i=strL/2,i=3。通过Do While循环从字符串的第i+1个位置一次取出一个字符连接到初值为空串的tStr变量之后,直到取出串的最后一个字符为止(循环条件为i<=strL)。"ABCDEF"从第四个字符到最后一个字符是"DEF",所以循环结束时tStr="DEF",tStr & tStr的值为"DEFDEF",也就是函数的返回值,再经LCase转换后,显示结果为defdef。