下列程序的执行结果为( )
Private Sub Command1_Click()
Dim P As Integer,q As Integer
p=12:q=20
Call Value(P,q)
Print P;q
End Sub
Private Sub Value(By Val m As Integer,ByVal n As Integer)
m=m * 2:n=n-5
Print m;n
End Sub
A.20 12
20 15
B.12 20
12 25
C.24 15
12 20
D.24 12
12 15
参考答案:C
解析: 在Visual Basic中,参数默认是按地址传递的,也就是使过程按照变量的内存地址去访问实际变量的内容。这样,将变量传递给函数时,通过函数可永远改变该变量的值。如果想改变传递方式,可以在变量定义前加关键字By-Ref或ByVal。ByRef为默认值,按地址传递,ByVal按照值传递,函数调用后不改变变量值。本题中函数为值传递参数,因此在函数中参数值发生变化,但调用结束后参数的值不会改变。