当发生Form_Click事件时,下列程序的输出结果是( )。 Private m As Integer,n As Integer Private Sub Form_Click() Dim k As Integer,p As Int

admin2013-04-11  28

问题 当发生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

答案1

解析 本题定义了两个窗体级变量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。
转载请注明原文地址:https://kaotiyun.com/show/VsQp777K
0

最新回复(0)