在窗体中有一个名称为Command1的按钮,该模块内还有一个函数过程: Public Function f(x As Integer)As Integer Dim y As Integer x = 20 y = 2 f = x *

admin2015-07-01  27

问题 在窗体中有一个名称为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

答案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选项。
转载请注明原文地址:https://kaotiyun.com/show/Vdrp777K
0

最新回复(0)