[单项选择题] 在窗体上画—个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码: Private X As Integer Private Sub Command1_Click() X=5:Y=3 Call proc(X,Y) Label1.Caption=X Label2.Caption=Y End Sub Private Sub proc(a As Integer,ByVal b As Integer)X=a*aY=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是______。
A.25和3
B.5和3
C.25和6
D.5和6
正确答案:A
参考解析:[知识点] 窗体变量和参数传递[评析] 当一个变量用Private关键字声明后,本窗体模块中的过程可以访问它,但其他模块的代码不能访问。在VB中,参数默认是按地址传递(ByRef)的。所谓按地址传递(ByRef)参数,就是使过程按照变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。按值传递(ByVal)参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。本题中过程proc中的形参变量b前面有关键字ByVal,则该参数用传值方式传送,因此实参Y的值不会受到影响,保持不变。过程proc中的形参变量a前面没有关键字,默认的传递方式为传址。形参a直接访问实参X的地址,变量的a值为5。变量X为窗体变量,可用于该窗体内的所有过程。过程proc直接引用窗体变量X,并将a*a的值赋于X,因此X的值为25。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)