假定在窗体中的通用声明段已经定义有如下的子过程: Sub f(x As Single,y As Single) t=x x=y y=x End Sub 在窗体上添加一个命令按钮(名为Commandl),然后编

admin2020-09-01  35

问题 假定在窗体中的通用声明段已经定义有如下的子过程:
    Sub f(x As Single,y As Single)
    t=x
    x=y
    y=x
    End Sub
    在窗体上添加一个命令按钮(名为Commandl),然后编写如下事件过程:
    Private Sub Commandl Click()
    a=10
    b=20
    f(a,b)
    MsgBox a&b
    End Sub
    打开窗体运行后,单击命令按钮,消息框输出的值分别为(    )。

选项 A、20和10
B、10和20
C、10和10
D、20和20

答案A

解析 本题考查VBA中参数传递的知识。在vBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用:ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。本题中形参完成了交换,由于默认为传址传递,交换后的值也会影响到实参a和b,即a和b也完成了交换。
转载请注明原文地址:https://kaotiyun.com/show/Slcp777K
0

最新回复(0)