当发生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 607 80 126 60
B.7 75 66 607 75 126 60
C.7 75 66 607 80 66 60
D.7 75 66 607 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。