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

admin2020-08-10  36

问题 有下面程序代码:
    Private Sub Command1_Click(  )
        Dim a As Integer,b
        a=2
        b=3
        Printfun(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://jikaoti.com/ti/VCS0FFFM
0

最新回复(0)