问题 单项选择题

下列程序的执行结果为()。   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)所示。

单项选择题 案例分析题
单项选择题