14. 在窗体中有一个名称为Command1的按钮,该模块内还有一个函数过程: Public Function f(x As Integer) As Integer Dim y As Integer x=20 y=2 f=x*y End Function Private Sub Command1_Click() Dim y As Integer Static x As Integer x=10 y=5 y=f(x) Debug.Print x; y End Sub 打开窗体运行后,如果单击按钮,则在立即窗口上显示的内容是______。
A.10 5
B.10 40
C.20 5
D.20 40
A B C D
D
[解析] 根据题意,用Function声明一个函数f,带有参数x。然后用Sub声明一个过程Command1_Click,在过程中声明了一个Integer变量y,和一个static变量x,为x赋值为10,为y赋值为5。调用函数f(x)赋值给y,在窗口显示x和y的值。因为x是静态变量,程序编译时会为静态变量开辟单独的内存空间;当执行语句y=f(x)时,调用函数Function f(x As Integer),实现静态变量的x按照默认传地址的方式传给函数f的变量x,即静态变量x和函数f的变量x共用同一个地址;因此当函数f的变量x被赋值20,由于共用地址,所以静态变量x的值也为20,则Debug.Print x的值为20。在f(x)函数中,为f赋值为x*y=20*2=40,因此y的值为40。因此选择D选项。