单选题 在窗体上画一个命令按钮(名称为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(x,x-1),其结果为12,x的值不变仍为10;然后调用Funl(x,12),其结果为6,x的值也不变为10;最后调用Fun1(6,x-1),其结果为0,x的值也不变为10。本题中的传址调用是没有作用的,因为表达式是不能传地址的。