单选题 在窗体上画一个名称为Command1的命令按钮,并编写如下程序:
Private Sub Command1_Click( )
Dim a As Integer
Static b As Integer
a = 20
b = 5
Call sub1(a, b)
Print a; b
End Sub
Private Sub sub1(ByRef x1 As Integer, y1 As Integer)
x1 = x1 + 3
y1 = x1 + y1
End Sub
程序运行后,单击命令按钮,在窗体上显示的内容是______。
【正确答案】 B
【答案解析】[解析] 用Call语句调用Sub过程,如果形参前面有关键字ByRef,则该参数按地址传送,本题中形参x1前有关键字ByRef,调用时以地址方式传递实参,调用sub过程,x1 =x1 +3=23,改变了实参a的值,a为23。如果形参前面没有关键字ByRef或ByVal,系统默认为按地址传递参数。调用sub过程中,x1 =x1 +3=23;y1 =23+5=28。形参y1值的变化改变了实参b的值,故b=28。本题正确答案为选项B。