有下面程序代码: Private Sub Command1_Click() Dim a As Integer.b a=2 b=3 Print fun(a,b);a;b End Sub Private

admin2019-03-14  29

问题 有下面程序代码:
    Private Sub Command1_Click()
    Dim a As Integer.b
    a=2
    b=3
    Print fun(a,b);a;b
    End Sub
    Private Function fun(ByVal x As Integer,y)As Integer
    y=x水y
    x=y
    fun=x
    End Function
    执行Command1_Click过程后的输出结果是(    )。

选项 A、6 2 3
B、6 6 6
C、6 2 2
D、6 2 6

答案D

解析 本题考查参数传送相关知识,在程序中定义了一个Function函数过程fun,并设置形参的传递方式为ByVal(传值调用),形参y的传递方式为默认传递方式ByRef(传引用调用);在Command1_Click事件过程中,使用print方法输出三个值,分别为:fun函数的返回值,变量a和变量b,由于实参a值给形参x,传递的方式为ByVal,fun函数中对x的任何改变都不会影响实参a,所以在Command1_Click过程中变量a的值不会改变;实参b传递地址给形参y,fun函数中对y的任何改变都会影响实参b,在fun函数中执行y=x*y语句后,y的值为6,执行x=y后,x的值为6,并且通过语句fun=x,将x的值作为函数的返回值返回到过程Command1_Click中,所以最终在过程Command1-Click中输出的单个值分别为:6,2,6。D选项正确。本题选择D选项。
转载请注明原文地址:https://kaotiyun.com/show/9bUp777K
0

最新回复(0)