首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > VB > 模拟试题 > 正文

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

来源:考试吧Exam8.com) 2007-8-28 11:17:41 考试吧:中国教育培训第一门户 模拟考场

(27) 下列程序段的执行结果为
a=5
For k=1 To 0
    a=a + k
Next k
Print k; a
A) -1 6       
B) -1 16
C) 1 5       
D) 11 21
解析:此题是考查For循环结构语句。
For循环有两种格式,其中一种格式是:
For 循环变量=初值 To 终值 Step[步长]
    语句
    [Exit For]
    语句
Next[循环变量]
此循环语句的执行过程为:"循环变量"首先取得"初值",检查是否超过"终值",如果超过,就一次也不循环而跳出循环,属于"先检查后执行"的类型。现在来看程序段,For k=1 To 0中,初值为1,终值为0,显然当"循环变量"首先取得"初值"1,检查后超过"终值"0,所以一次也不执行,即最后执行Print时,k=1,a=5。
(28) 下列程序段的执行结果为
a=3
b=1
For I=1 To 3
   f=a + b
   a=b
   b=f
   Print f
Next I
A) 4 3 6       
B) 4 5 9
C) 6 3 4       
D) 7 2 8
解析:本题考查的是For循环结构语句,现在看程序段是如何运行的。
开始a=3,b=1。For循环中步长缺省值为1,循环变量I的初值为1,终值为3,所以此循环结构可以循环3次。
第一次循环后,结果为:f=4,a=1,b=4
第二次循环后,结果为:f=5,a=4,b=5
第三次循环后,结果为:f=9,a=5,b=9
所以每循环一次,便输出f当前值,循环3次即便输出3个f值分别为4,5,9。
(29) 下列程序段的执行结果为
I=9
x=5
Do
   I=I + 1
   x=x + 2
Loop Until I >=7
Print "I="; I
Print "x="; x
A) I=4x=5      
B) I=7x=15
C) I=6x=8      
D) I=10x=7
解析:此题用的是Do循环结构,其格式为:
Do      [语句块]
  [Exit Do]
Loop Until 循环条件
此循环由于"先执行后检查",所以至少执行一次。本题中,程序运行到循环条件I>=7的值为True,才停止。所以当程序结束运行后I=10,x=7。
(30) 以下程序段运行时从键盘上输入字符"-",则输出结果为
op$=InputBox("op=")
If op$="+" Then a=a + 2
If op$="-" Then a=a - 2
Print a
A) 2        
B) -2
C) 0        
D) +2
解析:此题是根据用户的输入计算变量a的值并显示。当输入字符"-"时,第一个If条件不成立,跳过,而第二个If语句条件满足,因此执行a=a-2,使a=-2。所以选项B)是正确答案。
(31) 以下程序段的输出结果为
Dim l, a(10) , p(3)
k=5
For i=0 To 10
     a(i) =i
Next i
For i=0 To 2
     p(i) =a(i  (i + 1) )
Next i
For i=0 To 2
    k=k + p(i)  2
Next i
Print k
A) 20       
B) 21
C) 56       
D) 32
解析:第一个循环对数组a()进行赋值,第二个循环对数组p()进行赋值,第三个循环对k进行累加,k的初值等于5,第一次循环k=k+p(0) *2=5,……,第三次循环k=k+p(2) *2=21并输出,所以选项B)正确。
(32) 下列程序的执行结果为
Private Sub Command1_Click()
   Dim x As Integer, y As Integer
   x=12: y=20
   Call Value(x, y)
   Print x; y
End Sub
Private Sub Value(ByVal m As Integer, ByVal n As Integer)
   m=m * 2: n=n - 5
   Print m; n
End Sub
A) 20  12      
   20  15 
B) 12  20     
   12  25
C) 24  15      
   12  20 
D) 24  12       
    12  15
解析:被调过程Value的两个参数m和n前面都有关键字"ByVal"修饰,即在主调过程用此过程时,实参与形参之间是以传值方式传递信息的,而当实参与形参以传值方式相结合时,形参的改变并没有影响到实参,单单就这一点来说,当程序代码执行主调过程中的Print x;y语句时,x和y的值应不变,还是12和20,这样就能够排除选项A)和选项B)了。当主调过程调用被调过程时,把实参x、y的值分别传给形参m和n,这就是说此时形参m值为12,n值为20,执行被调过程中的m = m * 2: n = n - 5语句后,m值为24,n值为15,所以Print m; n后, 程序输出的结果为24和15。最后程序输出的结果如选项C)所示。
(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。

上一页  1 2 3 4 5 6 下一页
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。