有下面程序代码: 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 Inte

admin2018-06-20  27

问题 有下面程序代码:
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/JaGp777K
0

相关试题推荐
随机试题
最新回复(0)