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

admin2020-07-17  39

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

选项 A、2010   
B、1020
C、1010
D、2020

答案A

解析 参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,则说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,则说明此参数为传址调用,此时形参的变化将会返回到实参;若没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。本题中形参完成了交换,由于默认为传址传递,交换后的值也会影响实参a和b,即a和b也完成了交换。正确选项为A。
转载请注明原文地址:https://jikaoti.com/ti/8BQ0FFFM
0

最新回复(0)