单选题 编写如下程序:Function Fun1(ByVal a As Integer, b As Integer) As Integer a = b + a b = 2 * a Fun1 = bEnd FunctionPrivate Sub Command1_Click() Dim x As Integer x = 5 Print Fun1(Fun1(x, x - 1), x - 2)End Sub程序运行后,单击命令按钮Command1,输出结果为
【正确答案】 B
【答案解析】解析:函数Fun1参数a是值传递,b是地址传递,值传递是将实参变量值传递给形参变量a,地址传递是将实参变量地址传给形参变量b,这意味着a的变化不会改变原变量的值,b的变化会改变原变量的值。定义局部变量x,x=5,调用函数Fun1(Fun1(x,x - 1),x - 2),首先调用的Fun1(5,4),此时a=9,b=18,返回值为18;第二次调用fun(18,3),a=18+3=21,b=2*a=42,返回值为42,故输出结果为42,选B项。