单击命令按钮时,下列程度段的执行结果为( )。 Private Sub Command1_Click() Dim a As Integer, b As Integer, c As Integer a=2:b=4:c=6 Call S1(a,B) Print 'a='; a; 'b='; b; 'c='; c Call S2(a,B) Print 'a ='; a; 'b ='; b; 'c='; c; End Sub Private Sub S1(x As Integer, y As Integer) Dim c As Integer x=2*x:y=y+2:c=x+y End Sub Sub S2(x As Integer, ByVal y As Integer) Dim e As Integer x=2*x:y=y+2:c=x+y End Sub A.a=4 b=6 e=6 a=4 b=6 e=6 B.a=8 b=6 c=6 a=8 b=6 c=6 C.a=4 b=6 e=6 a=8 b=6 e=6 D.a=8 b=6 c=6 a=4 b=6 c=6
A.a=4 B.a=8 C.a=4 D.a=8
【参考答案】
C 解析:在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示是“传地址”参数,参数值会被调用的子过程改变。 题中S1过程的参数是“传地址”,因此调用后a、b、c的值都改变了,分别为4、6、6; S2过程的参数中a是“传地址”参数,b是“......