问题 单项选择题

在窗体上画一个名称为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*a

Y=b+b

End Sub

程序运行后,单击命令按钮,则两个标签中显示的内容分别是()。

A.25和3

B.5和3

C.25和6

D.5和6

答案

参考答案:A

解析:

虽然在过程proe中参数a默认为按地址传递,参数b指定了ByVal(按值)方式传递,但过程中并没有对a,b的值改变,只对变量X和Y进行了赋值,而X是在窗体模块中起作用的模块变量,变量Y在proc过程中没有声明,在整个模块中也没有声明,说明它是一个局部变量,只在本过程中起作用。因此,在proc过程中X=a*a=5*5=25,会使按钮单击事件中的变量X值变为25,而按钮单击事件过程中的变量Y不受影响,仍是原来的值3。因此两个标签上会分别显示25和3。

单项选择题
填空题