2007年9月全国计算机等级考试二级VB模拟试题(1)及答案

出处:Examlink 作者:刀断水 日期:2007年09月13日 09时59分

(33) 在窗体上画一个命令按钮,然后编写下列程序
Private Sub Command3_Click()
   Tcl 2
   Tcl 3
   Tcl 4
End Sub
Sub Tcl(a As Integer)
   Static x As Integer
   x=x + a
   Print x;
End Sub
程序运行后,单击命令按钮,输出结果为
A) 2  3  4      
B) 2  5  9
C) 3  5  4      
D) 2  4  3
解析:在过程TCL中,将Integer型变量x定义为静态变量(Static),Static语句的格式与Dim语句完全一样,但Static语句只能出现在事件过程,Sub过程或Function过程中,在过程中的Static变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Tcl过程是将变量a的值加上x赋给x,然后输出x的值;第一次调用Tcl过程时,x未赋值,默认为0,所以输出结果为2,第二次调用Tcl过程时,因为x为静态变量,所以它的值为上次调用后的值,即为2,加上a后,x的值变为5,输出结果为5,同理,第三次调用后输出结果为9。
(34) 下面程序段,运行后的结果是Private Sub Command1_Click()
   Dim b%(1 To 4) , i%, t#
   For i=1 To 4
      b(i) =i
   Next i
   t=Tof(b() )
   Print "t="; t,
End Sub
Function Tof(a() As Integer)
   Dim t#, i%
   t=1
   For i=2 To UBound(A)
      t=t * a(i)
   Next i
   Tof=t
End Function
A) t=18       
B) t=24
C) t=30       
D) t=32
解析:程序开始调用循环语句对数组b()赋值,b(i) = I,且数组b的上下界分别为1和4;接着将数组b()作为对象,调用Tof过程,在Tof过程中,定义了两个变量t和I,I作为For循环的循环变量,初始值为2,终值为数组b的上界;循环体为"t = t * a(i) ",即将b(i)的值乘以t,然后在赋给t,当循环结束后,程序返回的就是数组b中除第一个元素以外所有元素值的乘积,此题的结果为2×3×4=24,输出结果为t=24。
(35) 单击按钮时,以下程序运行后的输出结果是
Private Sub Command1_Click()
   Dim x As Integer, y As Integer, z As Integer
   x=1: y=2: z=3
   Call God(x, x, z)
   Print x; x; z
   Call God(x, y, y)
   Print x; y; y
End Sub
Private Sub God(x As Integer, y As Integer, z As Integer)
   x=3 * z + 1
   y=2 * z
   z=x + y
End Sub
A) 6  6  12      
     7  11  11
B) 8  5  10      
    5  11  11
C) 9  6  12      
     9  10  15
D) 8  10  10        
     5  9   10
解析:从整体上看,可得主调过程将两次调用过程God后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的:第一次调用被调过程God,主调过程把实参x,x和z的地址分别传给形参x,y和z,此时形参x,y和z值分别为1,1和3,执行语句x = 3 * z+1后,形参x值变为10,此时相对应的实参x也变为10,执行语句y = 2 * z后,形参y值变为6,则相对应的实参x值变为6。执行z = x + y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12;第二次调用被调过程God,主调过程把实参x,x和y的地址分别传给形参x,y和z。应注意,此时实参x的值为6而不是1,所以此时形参x,y和z值分别为6,2和2,执行语句x = 3 * z+1后,形参x值为7,相对实参x值也相应的变为7。执行语句y = 2 * z后,形参y值变为4,相应的实参y值也变为4,执行z = x + y后,形参z值变为11,相应的实参y的值变为11,而形参y和z的地址相同,所以最后它们值都应为11,所以此次调用后,输出的数值为7,11和11。
最后更新时间:2008-05-28 12:15:55
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程