问题
单项选择题
有下列函数过程:
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_Chck()
Dim P As Integer, k As Integer, m As Integer
k=4
m=1
P=Func2(k,m)
Print k;m
P=Func2(km)
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。