问题
单项选择题
单击命令按钮时,下列程度段的执行结果是( )。 Pdvate Sub Command1_Clik() Dim a As Integer,b As Integer,c As Integer a=2;b=4;c=6 CaII S1(a,b) Print"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:e=x+y End Sub
A.a=4 b=6 c=6a=4 b=6 c=6
B.a=8 b=6 c=6a=8 b=6 c=6
C.a=4 b=6 c=6a=8 b=6 c=6
D.a=8 b=6 c=6a=4 b=6 c=6
答案
参考答案:C
解析: 在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变;否则表示是“传地址”参数,参数值会被调用的子过程改变。题中S1过程的参数是“传地址”,因此调用后a、b、c的值都改变了,分别为4、6、6;S2过程的参数中a是“传地址”参数,b是“传值”参数,因此调用后a值改变,b值不变,因为c是过程变量,所以也没有变化,因此输出的值为8、6、6。