单击按钮时,以下列程序运行后的输出结果是 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=X

admin2009-02-13  36

问题 单击按钮时,以下列程序运行后的输出结果是        Private Sub proc1(x As Integer,y As Integer,z As Integer)          x=3*z          y=2*z          z=X+y        End Sub        Private Sub Command1_Click(   )          Dim x As Integer,y As Integer,z As Integer          x=1:y=2:z=3          Call proc1(x,x,2)        Print x;x;z        Call proc1(x,y,y)        Print x;y;y      End Sub

选项 A、6  6  12                     6  6  10
B、9  5  10         5  10 10
C、9  6   12                         9  10  15
D、9  5  10         5  4  10

答案1

解析 从整体上看,主调过程将两次调用过程Proc1后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的。
   第一次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x=3*z后,形参x值变为9,此时相对应的实参,也变为9,执行语句y=2*z后,形参y值变为6,则相对应的实参x值为6。执行z=x+y后,形参。值应为12,当然这次调用后,程序代码输出的数值为6,6,12。
   第二次调用被调过程proc1,主调过程把实参x,x,x的地址分别传给形参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,执行z=x+y后,形参z值就为10,相应的实参Y的值变为10,而形参y和。的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。
转载请注明原文地址:https://kaotiyun.com/show/H91p777K
0

最新回复(0)