问题
单项选择题
在窗体上画一个按钮,然后编写如下的事件代码。在按钮上单击,输出为( )。
Private Function fun(x As Integer,y As Integer)
Static m As Integer
Static i As Integer
i=i+2
i=i+m+1
m=i+x+y
fun=m
End Function
Private Sub Command1_Click()
Dim j As Integer,m As Integer,k As Integer
j=4:m=1
k=fun(j,m)
Print k;
k=fun (j,m)
Print k
End Sub
A.8 18
B.7 17
C.7 19
D.8 19
答案
参考答案:D
解析: 当发生Command1的单击事件时,定义了两个变量j和m,并依次赋值为4和1,然后调用fun函数,把i和m按地址传递给x和y,进入fun函数执行。在 fun函数中定义了两个静态变量m和i,执行三条赋值语句后i的值为3,m的值为8,通过给函数名赋值把8作为函数值返回并赋值给k,输出k的值为8;再一次调用函数fun,把j和m依次按地址传给x和y,进入fun函数执行,注意,由于m和i是静态变量,此时的值不再是0,而是上一次退出时的值为3和8。执行三条赋值语句后i的值为14,m的值为19,通过给函数名赋值,把19作为函数值返回并赋值给k,输出k的值为19。