当发生Form_Click事件时,下列程序的输出结果是( )。
Private m As Integer,n As Integer
Private Sub Form_Click()
Dim k As Integer,p As Integer
k=6:p=60
Call sub1(k,p)
Print m,n,m,k,p
Call sub1(k,p)
Print m,n,k,p
End Sub
Private Sub Form_Load()
m=7
n=70
End Sub
Public Sub sub1(x As Integer,ByVal y As Integer)
Dim m As Integer
n=n+5
m=n+x+y
x=x+y
y=x+y
End Sub
A.7 75 66 60
7 80 126 60
B.7 75 66 60
7 75 126 60
C.7 75 66 60
7 80 66 60
D.7 75 66 60
7 75 66 60
参考答案:A
解析: 本题定义了两个窗体级变量m和n,并在窗体的Load事件中给窗体级变量m和n分别赋值7和70。当发生Form_Click事件时,首先进行第一次sub1过程的调用,把k的值6按地址传递给形参x,把p的值60按值传递给形参y。在sub1中定义了一个局部变量m,因此在该函数中使用的m是局部变量而非窗体级变量。执行下面的4条赋值语句后,窗体级变量n的值为75,局部变量m的值为142,形参x的值为66,形参y的值为126。函数调用返回后,由于p是按值传递,所以它的值没有变化,k是按地址传递,所以它的值变为邱,输出m、n、k和p的值分别是7、75、66和60。同理,分析第二次sub1过程调用,可知过程调用返回后,变量m、n、k和p的值分别是7、80、126、60。