单选题
有下面程序代码: Private Sub Commandl—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执行Commandl—Click过程后的输出结果是( )。
A、
6 2 3
B、
6 6 6
C、
6 2 2
D、
6 2 6
【正确答案】
D
【答案解析】
解析:本题考查参数传送相关知识,在程序中定义了一个Function函数过程fun,并设置形参的传递方式为ByVal(传值调用),形参y的传递方式为默认传递方式ByRef(传引用调用);在Commandl_Click事件过程中,使用pn’nt方法输出三个值,分别为fun函数的返回值,变量a和变量b,由于实参a值给形参x,传递的方式为ByVal,fun函数中对x的任何改变都不会影响实参a,所以在Commandl_Click过程中变量a的值不会改变;实参b传递地址给形参y,fun函数中对y的任何改变都会影响实参b,在fun函数中执行y=x*y语句后,y的值为6,执行x=y后,x的值为6,并且通过语句。fun=x,将x的值作为函数的返回值返回到过程Commandl_Click中,所以最终在过程Commandl_Click中输出的单个值分别为:6,2,6:D选项正确。本题选择D选项。
提交答案
关闭