问题 单项选择题

若有如下的函数过程:
Function Func2(a As Integer, b As Integer)As Integer
Static m As Integer, i As Integer
m=0
i=2
a=i+m+1
b=i+a+b
Func2 = m
End Function
在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim p As Integer, k As Integer, m As Integer
k=4
m=1
p = Func2(k, m)
Print k; m
p = Func2(k, m)
Print k; m
End Sub
程序运行后,单击命令按钮,输出结果为( )。

A.3 6<CR>3 6

B.3 6<CR>3 11

C.3 11<CR>3 6

D.3 11<CR>3 11

答案

参考答案:B

解析: 本题意在考查调用Func2函数时,参数是按地址传递的,所以两次调用Func2函数时,实参k、m的值都改变了。程序运行过程如下:第一次调用Func2(k,m),k被行参a改变为3,m被行参改变为6;第二次调用函数后,a为3,m为11。

选择题
单项选择题 B型题