在窗体上画一个命令按钮(名称为Command1),并编写如下代码: Function Fun1(ByVal a As Integer, b As Integer)As Integer   Dim t As Integer   t=a-b   b=t+a

admin2020-07-22  24

问题  在窗体上画一个命令按钮(名称为Command1),并编写如下代码:
Function Fun1(ByVal a As Integer, b As Integer)As Integer
  Dim t As Integer
  t=a-b
  b=t+a
  Fun1=t+b
End Function
Private Sub Command1_Click()
  Dim x As Integer
  x=10
  Print Fun1(Fun1(x,(Fun1(x, x-1))), x-1)
End Sub
程序运行后,单击命令按钮,输出结果是(  )。

选项 A、10
B、0
C、11
D、21

答案B

解析 本题是过程的嵌套调用,过程嵌套调用时要先计算最内层的过程,然后由里向外执行。因此Fun1(Fun1(x,(Fun1(x, x-1))), x-1)执行过程如下:
先执行Fun1(x, x-1),由于形参a是按值传递,因此不会影响x的值,x=10,即Fun1(10,9)。t=1,b=1+10=11,则函数返回值为1+11=12。
再执行Fun1(x,(Fun1(x, x-1))),由于内层过程返回12,因此又可写成Fun1(x,(12)),由于x仍为原值,因此过程即Fun1(10,12)。t=-2,b=-2+10=8,则函数返回值为-2+8=6。
最后执行Fun1(Fun1(x,(Fun1(x, x-1))), x-1),即Fun1(6, x-1),由于x仍为原值,因此过程即为Fun1(6,9)。t=-3,b=-3+6=3,则函数返回值为-3+3=0。
设有如下通用过程:
Public Function Fun(xStr As String)As String
  Dim tStr 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
转载请注明原文地址:https://kaotiyun.com/show/DCHp777K
0

最新回复(0)