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