单选题 在窗体上画一个名称为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
【答案解析】[考点] 参数传送 [解析] 本题考查的考点是有参数传递的。在VB的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。由于本题中的实参Y采用传值传递,实参X采用传址传递,而且X是全局变量,所以在被调过程中改变了X的值而没有改变Y的值。