问题
单项选择题
设有如下通用过程:
Public Function f(X As Integer)
Dim y As Integer
x=20
y=2
f=x*y
End Function
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Static x As Integer
x=10
y=5
y=f(x)
Print x;y
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )。
A.10 5
B.20 5
C.20 40
D.10 40
答案
参考答案:C
解析: 本题考查Static变量的定义与使用,以及自定义函数过程的参数传递。在Visual Basic中,参数默认是按地址传递的,也就是使过程按照变量的内存地址去访问实际变量的内容。这样,将变量传递给函数时,通过函数可永远改变该变量的值。如果想改变传递方式,可以通过在变量定义前加关键字ByRef或ByVal。ByRef为默认值,按地址传递,ByVal按值传递,函数调用后不改变变量值。Static变量在函数调用后保持其值不变。因此本题在调用f函数后,结果为20 40,选项C正确。