1、国家二级 ACCESS 机试选择题(模块与 VBA 编程基础)模拟试卷 15及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.下列四种形式的循环设计中,循环次数最少的是(分数:2.00)A.a=5:b=8 Do A=a+1 Loop While ab a=a+1 Loop2.在窗体中有一个命令按钮 run35,对应的事件代码如下: Private Sub run35 Enter() Dim num As Integer,a As Integer Dim bAs Integer,iAs Integer For i=l T0 10 num=Inpu
2、tBox(“请输入数据:”,“输入”,1) If Int(num2)=num2 Then a=a+1 Else B=b+1 End If Next i MsgBox(“运行结果:a=”&Str(a)&:“,b=”&Str(b) End Sub 运行以上事件所完成的功能是(分数:2.00)A.对输入的 10 个数据求累加和B.对输入的 10 个数据求各自的余数,然后再进行累加C.对输入的 10 个数据分别统计有几个是整数,有几个是非整数D.对输入的 10 个数据分别统计有几个是奇数,有几个是偶数3.在 VBA 中,错误的循环结构是(分数:2.00)A.Do While 条件式 循环体 LoopB
3、.Do Until 条件式 循环体 LoopC.Do Until 循环体 Loop 条件式D.Do 循环体 Loop While 条件式4.在窗体中有一个命令按钮(名称为 run34),对应的事件代码如下: Priate Sub run34 Click() sum=0 For i=10 To 1 Step-2 sum=sum+i Next i MsgBox sum End Sub 运行以上事件,程序的输出结果是(分数:2.00)A.10B.30C.55D.其他结果5.在窗体中有一个名称为 run35 的命令按钮,单击该按钮从键盘接收学生成绩,如果输入的成绩不在 0到 100 分之间,则要求重新
4、输入;如果输入的成绩正确,则进入后续程序处理。run35 命令按钮的 Click 的事件代码如下: Private Sub run35 Click() Dim flag As Boolcan result=0 : flag=True Do While flag result=Val(InputBox(“请输入学生成绩“输入”) If result=O And result78.在窗体中添加一个名称为 Commandl 的命令按钮,然后编写如下事件代码: Private Sub Commandl Click() MsgBox f(24,18) End Sub Public Function f(
5、m As Integer,n As Integer)As Integer Do While mon Do While mn m=mn Loop Do While mA.2B.4C.6D.89.在窗体中有一个文本框 Text1,编写事件代码如下: +Private Sub Form Click() X-val(Inputbox(“输入 X 的值”) Y=1 IfX00 ThenY=2 Text1,Value=Y End Sub 打开窗体运行后,在输入框中输入整数 12,文本框 Text1 中输出的结果是(分数:2.00)A.1B.2C.3D.410.在窗体中有一个命令按钮 Commandl 和一
6、个文本框 Text1,编写事件代码如下: Private Sub Commandl Click() ForI=1 To 4 x=3 For j=1 To 3 F0f k=1 To 2 x=x+3 Next k Nexti Next1 Text1value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框 Text1 输出的结果是(分数:2.00)A.6B.12C.18D.2111.在窗体中有一个命令按钮 Command1,编写事件代码如下: Private Sub Commandl Click() Dim S As Integer S-P(1)+P(2)+P(3)+P(4)
7、debugPrint S End Sub Public Function P(N AS Integer) Dim Sum As Integer Sum=0 For i=t To N Sum=SuIn+i Next i P=SumEnd Function 打开窗体运行后,单击命令按钮,输出结果是(分数:2.00)A.15B.20C.25D.3512.由“For i=1 To 9 Step-3”决定的循环结构,其循环体将被执行(分数:2.00)A.0 次B.1 次C.4 次D.5 次13.在窗体上有一个命令按钮 Commandl 和一个文本框 Text1,编写事件代码如下 Private Sub
8、Commandl_Click() Dim i,j,x For i=1 To 20 sep 2 x=0 Forj=i To 20 step 3 x=x+1 Nextj Next i Text1Value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框中显示的结果是(分数:2.00)A.1B.7C.17D.40014.在窗体上有一个命令按钮 Command1,编写事件代码如下: Private Sub Commandl_Click() Dim y As Integer y=0 Do y=InPutBox“y”) If(y Mod 10)+Int(y10)=10 Then Deb
9、ugPrint y; Loop UntilY=0 End Sub 打开窗体运行后,单击命令按钮,依次输入 10、37、50、55、64、20、28、19、-19、0,立即窗口上输出的结果是(分数:2.00)A.37 55 64 28 19 19B.lO 50 20C.10 50 20 0D.37 55 64 28 1915.若变量 i 的初值为 8,则下列循环语句中循环体的执行次数为 Do While iiB.imaxD.numb a=a+1 Loop解析:解析:本题考查 VBA 中循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体
10、;如果是后判断条件,则无论条件如何至少执行一次循环体。在 Lintil 循环中条件为 False 时执行循环体,条件为 True 时退出循环;在 WhiIe 循环中条件为True 时执行循环体,条件为 False 时退出循环,这一点要注意区分清楚。本题中的 A 循环执行 4 次,B 循环执行 1 次,C 循环一次也不执行,D 循环执行 4 次。2.在窗体中有一个命令按钮 run35,对应的事件代码如下: Private Sub run35 Enter() Dim num As Integer,a As Integer Dim bAs Integer,iAs Integer For i=l T0
11、 10 num=InputBox(“请输入数据:”,“输入”,1) If Int(num2)=num2 Then a=a+1 Else B=b+1 End If Next i MsgBox(“运行结果:a=”&Str(a)&:“,b=”&Str(b) End Sub 运行以上事件所完成的功能是(分数:2.00)A.对输入的 10 个数据求累加和B.对输入的 10 个数据求各自的余数,然后再进行累加C.对输入的 10 个数据分别统计有几个是整数,有几个是非整数D.对输入的 10 个数据分别统计有几个是奇数,有几个是偶数 解析:解析:本题考查程序设计的知识。本题的重点在于判断 Int(num2)=
12、num2 是什么样的条件。对于任意一个整数来说,若其除 2 后为整数,也就是 Int(num2)=hum2 成立,说明该数是一个偶数;反之若其除 2 后不为整数,此时 Int(nurn2)必然不等于 nurn2,也就是一个整数不可能等于一个小数,说明该数是一个奇数。所以本题的功能是对输入的数据分别统计奇偶数的个数。3.在 VBA 中,错误的循环结构是(分数:2.00)A.Do While 条件式 循环体 LoopB.Do Until 条件式 循环体 LoopC.Do Until 循环体 Loop 条件式 D.Do 循环体 Loop While 条件式解析:解析:“条件式”放在 While 或
13、Until 后面。4.在窗体中有一个命令按钮(名称为 run34),对应的事件代码如下: Priate Sub run34 Click() sum=0 For i=10 To 1 Step-2 sum=sum+i Next i MsgBox sum End Sub 运行以上事件,程序的输出结果是(分数:2.00)A.10B.30 C.55D.其他结果解析:解析:i=10,每循环一次递减 2。第一次循环结果:i=10,sum=sum+i=0+10=10;第二次循环结果:i=8,sum=sum+i=10+8=18;第三次循环结果:i=6,sum=sum+i=1 8+6=24;第四次循环结果:i=4
14、,sum=sum+i=24+4=28:第五次循环结果:i=2,sum=sum+i=28+2=30。5.在窗体中有一个名称为 run35 的命令按钮,单击该按钮从键盘接收学生成绩,如果输入的成绩不在 0到 100 分之间,则要求重新输入;如果输入的成绩正确,则进入后续程序处理。run35 命令按钮的 Click 的事件代码如下: Private Sub run35 Click() Dim flag As Boolcan result=0 : flag=True Do While flag result=Val(InputBox(“请输入学生成绩“输入”) If result=O And resu
15、lt7解析:解析:本题考查循环的基础知识。本题目要求循环 3 次,当第 3 次循环结束时 x 的值为 7,而Until 型循环的特点是当条件表达式为真的时候结束循环,故此条件应该是 x=7。8.在窗体中添加一个名称为 Commandl 的命令按钮,然后编写如下事件代码: Private Sub Commandl Click() MsgBox f(24,18) End Sub Public Function f(m As Integer,n As Integer)As Integer Do While mon Do While mn m=mn Loop Do While mA.2B.4C.6 D
16、.8解析:解析:本题考查 VBA 程序设计的知识。当调用函数时,形参 m=24,n=18;然后进入循环,由于mn,所以执行 m=m-n,m 的值变为 6;第 2 次循环时由于 m9.在窗体中有一个文本框 Text1,编写事件代码如下: +Private Sub Form Click() X-val(Inputbox(“输入 X 的值”) Y=1 IfX00 ThenY=2 Text1,Value=Y End Sub 打开窗体运行后,在输入框中输入整数 12,文本框 Text1 中输出的结果是(分数:2.00)A.1B.2 C.3D.4解析:解析:根据题意,可知首先将输入的数值赋给 X,Y 初始
17、值为 1,接着判断 X 是否不为 0(即输入的值是否不为 0),如果不为 0,则 Y 的值为 2,并且将 Y 的值赋给文本框 Text1。由于题意中输入的是 12,不为 0,此时 Y 的值为 2,所以文本框中输出的结果为 2。10.在窗体中有一个命令按钮 Commandl 和一个文本框 Text1,编写事件代码如下: Private Sub Commandl Click() ForI=1 To 4 x=3 For j=1 To 3 F0f k=1 To 2 x=x+3 Next k Nexti Next1 Text1value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框
18、 Text1 输出的结果是(分数:2.00)A.6B.12C.18D.21 解析:解析:各层循环过程及结果如下表所示:11.在窗体中有一个命令按钮 Command1,编写事件代码如下: Private Sub Commandl Click() Dim S As Integer S-P(1)+P(2)+P(3)+P(4) debugPrint S End Sub Public Function P(N AS Integer) Dim Sum As Integer Sum=0 For i=t To N Sum=SuIn+i Next i P=SumEnd Function 打开窗体运行后,单击命令
19、按钮,输出结果是(分数:2.00)A.15B.20 C.25D.35解析:解析:从函数 P 的代码可知,其功能是计算从 1 到 N 的和,在命令按钮的单击事件代码中,可知 S为 P(1),P(2),P(3),P(4)的和,显然 P(1)=1,P(2)=1+2=3,P(3)=1+2+3=6,P(4)=1+2+3+4=10,所以S=1+3+6+10=20。12.由“For i=1 To 9 Step-3”决定的循环结构,其循环体将被执行(分数:2.00)A.0 次 B.1 次C.4 次D.5 次解析:解析:循环变量 I 从 1 到 9 按递减顺序,由于 13=2 不满足条件,所以一次也不执行。13
20、.在窗体上有一个命令按钮 Commandl 和一个文本框 Text1,编写事件代码如下 Private Sub Commandl_Click() Dim i,j,x For i=1 To 20 sep 2 x=0 Forj=i To 20 step 3 x=x+1 Nextj Next i Text1Value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框中显示的结果是(分数:2.00)A.1 B.7C.17D.400解析:解析:外循环每次循环都将 x 重置为 0,所以只看外循环的最后一次即 i=20 时,此时内循环i=i=20 开始以步长为 2 开始递增,递增一次执行
21、x=x+1=0+1=1 后便结束循环,所以最后文本框显示的结果为 1。14.在窗体上有一个命令按钮 Command1,编写事件代码如下: Private Sub Commandl_Click() Dim y As Integer y=0 Do y=InPutBox“y”) If(y Mod 10)+Int(y10)=10 Then DebugPrint y; Loop UntilY=0 End Sub 打开窗体运行后,单击命令按钮,依次输入 10、37、50、55、64、20、28、19、-19、0,立即窗口上输出的结果是(分数:2.00)A.37 55 64 28 19 19B.lO 50
22、20C.10 50 20 0D.37 55 64 28 19 解析:解析:分析 if 语句,当计算表达式(y mod 10)+int(y10)等于 10 时,立即窗口显示输入的数字。当输入第一个数字 10 时,(y nlod 10)+int(y10)=0+1=1 不等于 10,不显示;当输入第二个数字 37 时,(y mod 10)+int(y10)=7+3=10,显示数字 37,依次类推,结果为选项 D。15.若变量 i 的初值为 8,则下列循环语句中循环体的执行次数为 Do While i=0 时,to 前数字要小于后面数字,否则将不执行。本题中 to 前数字是 10 大于后面数字 l 则不执行此循环体,直接跳过。23.运行下列程序,结果是 Private Sub Command32 Click() f0=1:fl=1:k=1 Do While kiB.imax D.nummax 时,才能实现将最大值查找出来,并记录其位置。