问题 单项选择题

单击按钮时,以下程序运行后的输出结果是( )。
PrivateSubprocl(x As Integer, y As Integer, z As IntegeI)
x=3*z
y=2*z
z=x+y
End Sub
Private Sub Commandl_Click( )
Dim X As Integer, Y As Integer, z As Integer
x=1:y=2:z=3
Call procl(x,x,z)
Prin tx; x; z
Call procl(x, y, y)
Print x; y; y
End Sub

A.6 6 12 6 10 10
B.9 5 0 5 10 10
C.9 6 12 9 10 15
D.9 10 10 54 10

答案

参考答案:A

解析: 从整体上看,可得主调过程将两次调用过程procl后,实参的值将随形参变化而变化。第一次调用被调过程procl,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x=3*z后,形参x值变为9,此时相对应的实参x也变为9,执行语句y=2*z后,形参y值变为6,则相对应的实参x值变为6。执行z=x+y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12。第二次调用被调过程procl,主调过程把实参x,x,z的地址分别传给形参x,y,z。我们应注意一下,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2,2,执行语句x=3*z后,形参x值为6,相对实参x值也相应的变为6。执行语句y=2*z后,形参y值变为4,相应的实参y值也变为4,执行2=x+y后,形参z值变为10,相应的实参y的值变为10,而形参y和z的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。

选择题
多项选择题