问题:
[单选] 设有如下通用过程:Public Function f(x As Integer)
Di my As Integer
x=20
y =2
f =x*y
End Function
在窗体上画一个名称为Co mmand1的命令按钮,然后编写如下事件过程:
Private Sub Co mmand1_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函数后,结果为2040,选项C正确。