下列程序的执行结果为()。 Private Sub Comrnandl_Click( ) Dim p As Integer, q As Integer p=12:q=20 Call Value(p, q) Print p; q End Sub Private Sub Value(ByVal m As Integer, ByVal n As Integer) m=m * 2: n=n - 5 Print m; n End Sub
A.20 1220 15
B.12 2012 25
C.24 1512 20
D.24 1212 15
参考答案:C
解析:被调过程Value的两个参数m和n前面都有关键字“ByVal”修饰,即在主调过程调用此过程时,实参与形参之间是以传值方式传递信息的,而当实参与形参以传值方式相结合时,形参的改变并没有影响到实参,单单就这一点来说,我们可知,当程序代码执行主调过程中的PrimP;q语句时,p和q的值应不变,还是12,20,这样就能够排除选项A)和选项B)了。当主调过程调用被调过程时,把实参p,q的值分别传给形参m和n,这就是说此时形参m值为12,n值为20,执行被调过程中的m=m * 2:n=n-5语句后,m值为24,n值为15,所以Print m;n后,程序输出的结果为24和15。最后程序输出的结果如选项C)所示。