1、国家二级 ACCESS机试选择题(模块与 VBA编程基础)模拟试卷 12及答案与解析 一、选择题 1 在 VBA中,错误的循环结构是 ( A) Do While条件式 循环体 Loop ( B) Do Until条件式 循环体 Loop ( C) Do Until 循环体 Loop条件式 ( D) Do 循环体 Loop While条件式 2 在窗体中有一个命令按钮 (名称为 run34),对应的事件代码如下: Private Sub run34 Click() sum=0 For i=10 To 1 Step一 2 sum=sum+i Next i MsgBox sum End Sub 运行
2、以上事件,程序的输出结果是 ( A) 10 ( B) 30 ( C) 55 ( D)其他结果 3 在窗体中有一个名称为 run35的命令按钮,单击该按钮从键盘接收学生成绩,如果输入的成绩不在 0到 100分之间,则要求重新输入;如果输入的成绩正确,则进入后续程序处理。 run35命令按钮的 Click的事件代码如下: Private Sub run35_Click() Dim flagAs Boolcan result=0 flag=True Do While flag result=Val(InputBox(”请输入学生成绩 :“,“输入 “) If result =0 And result
3、 =1 00 Then Else MsgBox ”成绩输入错误,请重新输入 ” End If Loop Rem 成绩 输入正确后的程序代码略 End Sub 程序中有一空白处,需要填入一条语句使程序完成其功能。下列选项中错误的语句是 ( A) flag=False ( B) flag=Not flag ( C) flag=True ( D) Exit Do 4 下列四个选项中,不是 VBA的条件函数的是 ( A) Choose ( B) If ( C) IIf ( D) Switch 5 设有如下过程: X=1 DO x=x+2 Loop Until_ 运行程 序,要求循环体执行 3次后结束循
4、环,空白处应填入的语句是 ( A) x =7 ( B) x 7 ( C) x =7 ( D) x 7 6 在窗体中添加一个名称为 Commandl的命令按钮,然后编写如下事件代码: Private Sub Commandl_C lick() MsgBox f(24, 18) End Sub Public Function f(m As Integer, n As Integer)As Integer DO While m n DO While m n m=m-n Loop Do While m n n=nm Loop Loop f=m End Function 窗体打开运行后,单击命令按钮,则
5、消息框的输出结果是 ( A) 2 ( B) 4 ( C) 6 ( D) 8 7 在窗体中有一个文本框 Textl,编写事件代码如下: Private Sub Form_Click() X=val(Inputbox(”输入 X的值 ”) Y=I IfX 0 Then Y=2 Text1.Value=Y End Sub 打开窗体运行后,在输入框中输入整数 12,文本框 Textl中输出的结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 8 在窗体中有一个命令按钮 Commandl和一个文本框 Textl,编写事件代码如下: Private Sub CommandI_Click() F
6、or I=1 To 4 x=3 Forj=1 To 3 For k=1 To 2 x=x+3 Next k Nextj Next I Text1 value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框 Textl输出的结果是 ( A) 6 ( B) 12 ( C) 18 ( D) 21 9 在窗体中有一个命令按钮 Commandl,编写事件代码如下: Private Sub CommandI_Click() Dim S As Integer S=P(1)+P(2)+P(3)+P(4) debug Print S End Sub Public Function P(N A
7、S Integer) Dim SumAs Integer Sum=0 For i=1 To N Sum=Sum+i Next i P=Sum End Function 打开窗体运行后,单击命令按钮,输出结果是 ( A) 15 ( B) 20 ( C) 25 ( D) 35 10 由 “For i=1 To 9 Step一 3”决定的循环结构,其循环体将被执行 ( A) 0次 ( B) 1次 ( C) 4次 ( D) 5次 11 在窗体上有一个命令按钮 Commandl和一个文本框 Textl,编写事件代码如下 Private Sub Commandl_Click() Dim i, j,x Fo
8、r i=1 To 20 sep 2 x=0 Forj=i To 20 step 3 x=x+1 Nextj Next i Text1 Value=Str(x) End Sub 打开窗体运行后,单击命令按钮,文本框中 显示的结果是 ( A) 1 ( B) 7 ( C) 17 ( D) 400 12 在窗体上有一个命令按钮 Commandl,编写事件代码如下: Private Sub CommandI_Click() Dim Y As Integer y=0 Do Y=InPutBox”Y” If(y Mod 10)+Int(y 10)=10 Then Debug Print y; Loop Un
9、til Y=0 End Sub 打开窗体运行后,单击命令 按钮,依次输入 10、 37、 50、 55、 64、 20、 28、19、一 19、 0,立即窗口上输出的结果是 ( A) 37 55 64 28 19 19 ( B) 10 50 20 ( C) 10 50 20 0 ( D) 37 55 64 28 19 13 若变量 i的初值为 8,则下列循环语句中循环体的执行次数为 Do While i =17 i=i+2 Loop ( A) 3次 ( B) 4次 ( C) 5次 ( D) 6次 14 InputBox函数的返回值类型是 ( A)数值 ( B)字符串 ( C)变体 ( D)视输
10、入的数据而定 15 下列能够交换变量 x和 Y值的程序段是 ( A) Y=X: X=Y ( B) Z=X: Y=Z: X=Y ( C) Z=X: X=Y: Y=Z ( D) Z=X: W=Y: Y=Z: X=Y 16 窗体中有命令按钮 commanddl和文本框 Textl,事件过程如下: Function result(ByVal X As Integer)As Boolean If x Mod 2=0 Then result=True Else result=False End If End Function Private Sub Commandl_Click() x=Val(Input
11、Box(”请输入一个整数 ”) If_Then Text1=str(x)&”是偶数 ” Else Textl=str(x) ”是奇数 ” End If End Sub 运行程序,单击命令按钮,输入 19,在 Textl中会显示 “19是奇数 ”。那么在程序的空白处应填写 ( A) result(x)=“偶数 ” ( B) result(x) ( C) result(x)=“奇数 ” ( D) NOT result(x) 17 窗体有命令按钮 Commandl和文本框 Textl,对应的事件代码如下: Private Sub Commandl_Click() For i=l To 4 x=3 F
12、or i=1 To 3 For k=1 To 2 x=x+3 Next k Nextj Next i Textl Value=Str(x) End Sub 运行以上事件过程,文本框中的输出是 ( A) 6 ( B) 12 ( C) 18 ( D) 21 18 窗体中有命令按钮 run34,对应的事件代码如下: Private Sub rtm34_Enter() Dim num As Integer, a As Integer, b As Integer, i As Integer For i=1 To 10 num=InputBox(”请输入数据: ”, ”输入 ”) If Int(num 2
13、)=num 2 Then a=a+1 Else b=b+1 End If Next i MsgBox(”运行结果: a=”&Str(a)&”, b=”&Str(b) End Sub 运行以上事件过程,所完成的功能是 ( A)对输入的 10个数据求累加和 ( B)对输入的 10个数据求各自的余数,然后再进行累加 ( C)对输入的 10个数据分别统计奇数和偶数的个数 ( D)对输入的 10个数据分别统计整数和非整数的个数 19 运行下列程序,输入数据 8、 9、 3、 0后,窗体中显 示结果是 Private Sub Form_click() Dim sum As Integer, m As In
14、teger sum=0 Do m=InputBox(”输入 m”) sum=sum+m Loop Until m=0 MsgBox sum End Sub ( A) 0 ( B) 17 ( C) 20 ( D) 2l 20 运行下列程序段,结果是 For m=10 to 1 step 0 k=k+3 Next m ( A)形成死循环 ( B)循环体不执行即结束循环 ( C)出现语法错误 ( D)循环体执行一次后结束循环 21 运行下列程序,结果是 Private Sub Command32_Click() f0=1: f1=1: k=1 Do While k =5 f=f0+f1 f0=f1
15、f1=f k=k+1 Loop MsgBox”f=”&f End Sub ( A) f=5 ( B) f=7 ( C) f=8 ( D) f=13 22 有如下事件程序,运行该程序后输出结果是 Private Sub Command33_lick() Dim x As Integer, Y As Integer x=1: y=0 Do Until Y =25 y=y+X*X x=x+1 Loop MsgBox”x=”&x&”, y=”&y End Sub ( A) x=1, y=0 ( B) x=4, y=25 ( C) x=5, y=30 ( D)输出其他结果 23 下列程序的功能是计 算
16、sum=1+(1+3)+(1+3+5)+(1+3+5+39) Private Sub Command34_Click() t=0 m=1 sum=0 Do T=t+m Sum=Sum+t m= Loop While m =39 MsgBox”Sum=”&sun End Sub 为保证程序正确完成上述功能,空白处应填入的语句是 ( A) m+1 ( B) m+2 ( C) t+1 ( D) t+2 24 由 “For i=1 To 16 Step 3”决定的循环结构被执行 ( A) 4次 ( B) 5次 ( C) 6次 ( D) 7次 25 若有以下窗体单击事件过程: Private Sub F
17、orm_Click0 result=1 For i=1 To 6 step 3 result=result*i Next i MsgBox result End Sub 打开窗体运行后,单击窗体,则消息框的输出内容是 ( A) 1 ( B) 4 ( C) 15 ( D) 120 26 窗体中有命令按钮 Command32,其 Click事件代码如下。该事件的完整功能是:接收从键盘输入的 10个大于 0的整数,找出其中的最大值和对应的输入位置。 Private Sub Command32_Click() max=0 max_n=0 For i=1 T0 10 num=Val(InputBox(”
18、请输入第 ”&i&”个大于 0的整数 “) If_Then maX=num max_n=i End If Next i MsgBox(”最大值为第 ” max_n&”个输入的 ”&max) End Sub 程序空白处应该填入的表达式是 ( A) num i ( B) i max ( C) num max ( D) num max 27 若有如下 sub过程: Sub sfun(x As Single, Y As Single) t=X x=t y y=t Mod Y End Sub 在窗体中添加一个命令按钮 command33,对应的事件过程如下: Private Sub Command3 3
19、_Click() Dim a As Single Dim b As Single a=5: b=4 sfun(a, b) MsgBox a chr(10)+chr(1 3)&b End Sub 打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为 ( A) 1和 1 ( B) 1 25和 1 ( C) 1 25和 4 ( D) 5和 4 28 运行下列程序,显示的结果是 Private Sub Command34_Click() i=0 DO i=i+1 Loop While i 10 MsgBox i End Sub ( A) 0 ( B) 1 ( C) 10 ( D) 11 29
20、运行下列程序,在立即窗口显示的结果是 Private Sub Command0_Click() Dim I As Integer.J As Integer For I=2 To 10 For J=2 To 1 2 IfI mod J=0 Then Exit For Next J If J sqr(I)Then Debug Print I; Next I End Sub ( A) 1 5 7 9 ( B) 4 6 8 ( C) 3 5 7 9 ( D) 2 3 5 7 30 运行下列过程,当输入一组数据: 10, 20, 50, 80, 40, 30, 90, 100, 60,70,输出的结果应
21、该是 Sub pl () Dim i,j, arr(11)As Integer k=1 While kl =10 arr(k)=Val(InputBox(”请输入第 ” k&”个数: ”, ”输入窗口 ”) k=k+1 Wend For i=1 To 9 j=i+1 If arr(i) arr(j)Then temp=arr(i) arr(i)=arr(j) arr(j)=temp End If Debug Print arr(i) Next i End Sub ( A)无序数列 ( B)升序数列 ( C)降序数列 ( D)原 输入数列 国家二级 ACCESS机试选择题(模块与 VBA编程基础
22、)模拟试卷 12答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 “条件式 ”放在 While或 Until后面。 【知识模块】 模块与 VBA编程基础 2 【正确答案】 B 【试题解析】 i=10,每循环一次递减 2。 第一次循环结果: i=10, sum=sum+i=0+10=10 第二次循环结果: i=8,sum=sum+i=10+8=18 第三次循环结果: i=6 sum=sum+i=18+6=24 第四次循环结果: i=4 sum=sum+i=24+4=28 第五次循环结果: i=2 sum=sum+i=28+2=30 【知识模块】 模块与 VBA编程基础 3 【正确答案】
23、 C 【试题解析】 根据题目要求,当输入正确的成绩后,进入后续的程序处理, Flag初始为 True,进入 do while循环,循环条件为 Flag。当输入错误的成绩时,提示信息并不改变 Flag标记。即还为 True,继续进行循环;当输入正确成绩时,应将Flag标记为 False,这样才可以跳出循环,继续后续的 程序处理,否则将一直停留在循环这里 . 【知识模块】 模块与 VBA编程基础 4 【正确答案】 B 【试题解析】 本题考查条件函数的知识。 VBA中的条件函数共有 3个: IIF函数根据表达式的真假值返回两个表达式之一: Switch函数对表达式列表求值,并返回一个 Variant
24、类型的值或与列表中第一个为 True的表达式相关联的表达式;Choose函数从参数列表中选择值并返回。 【知识模块】 模块与 VBA编程基础 5 【正确答案】 C 【试题解析】 本题考查循环的基础知识。本题目要求循环 3次,当第 3次循环结束时 x的值为 7,而 Until型循环的特点是当条件表达式为真的时候结束循环,故此条件应该是 x =7。 【知识模块】 模块与 VBA编程基础 6 【正确答案】 C 【试题解析】 本题考查 VBA程序设计的知识。当调用函数时,形参 m=24,n=18:然后进入循环,由于 m n,所以执行 m=m-n, m的值变为 6:第 2次循环时由于 mn,所以执行 n
25、=n-m n的值变为 12:第 3次循环时由于 m n,所以执行 n=n-m, n的值变为 6,此时结束循环返回 6。 【知识模块】 模块与 VBA编程 基础 7 【正确答案】 B 【试题解析】 根据题意,可知首先将输入的数值赋给 x, Y初始值为 1,接着判断 x是否不为 0(即输入的值是否不为 0),如果不为 0,则 Y的值为 2,并且将 Y的值赋给文本框 Text1。由于题意中输入的是 12,不为 0。此时 Y的值为 2,所以文本框中输出的结果为 2。 【知识模块】 模块与 VBA编程基础 8 【正确答案】 D 【试题解析】 各层循环过程及结果如下表所示:运行结束后。 x的最终值为 21
26、。 【知识模块】 模块与 VBA编程基础 9 【正确答案】 B 【试题解析】 从函数 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)+2+3+4=10,所以 S=1+3+6+10=20。 【知识模块】 模块与 VBA编程基础 10 【正确答案】 A 【试题解析】 循环变量 I从 1到 9按递减顺序,由于 1-3=一 2不满足条件。所以一次也不执行。 【知识模块】 模块与 VBA编程基础 11 【正确答案】 A 【试题解析】 外循
27、环每次循环都将 x重置为 0,所以只看外循环的最后一次即i=20时,此时内循环 j=i=20开始以步长为 2开始递增,递增一次执行x=x+1=0+1=1后便结柬循环,所以最后文本框显示的结果为 1。 【知识模块】 模块与 VBA编程基础 12 【正确答案】 D 【试题解析】 分析 if语句,当计算表达式 (y rood 10)+int(y 10)等于 10时,立即窗口显示输入的数字。当输入第一个数字 10时。 (y mod 10)+int(y 10)=0+1=1不等于 10,不显示;当输入第二个数 字 37时, (y mod 10)+int(y 10)=7+3=10,显示数字 37,依次类推,
28、结果为选项 D)。 【知识模块】 模块与 VBA编程基础 13 【正确答案】 C 【试题解析】 DoWhileLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。每次循环对应的 i值:【知识模块】 模块与 VBA编程基础 14 【正确答案】 B 【试题解析】 InputBox输入框:在对话框中显示提示,等待使用者输入文字或按一下按钮,再返回包含文本框内容的字符串类型值 。 【知识模块】 模块与 VBA编程基础 15 【正确答案】 C 【试题解析】 想要交换 x与 Y的值,需要另一个变量作为中间变量 z,先把 x值赋给 z,再把 Y值赋给 x最后把 Z的值赋给 Y,交
29、换完毕。 【知识模块】 模块与 VBA编程基础 16 【正确答案】 B 【试题解析】 result函数返回的是布尔值: True或 False, xMod2=0表示如果一个数除以 2为 0代表是偶数,那么返回 True值,所以条件判断时只要调用result(x)即可。 【知识模块】 模块与 VBA编程基础 17 【正确答案】 D 【试题解析】 此处嵌套三层循环,最外层循环总是把 x值初始化为 3,所以只看内两层循环的次数及累加。内两层一共循环 3*2=6次,每次 x的值累加 3,即共累加 6*3=18。再加上初始值 x=3+18=21。 【知识模块】 模块与 VBA编程基础 18 【正确答案】
30、 C 【试题解析】 因 num变量为整型,所以每次输入的数据是整数, int函数是取整函数,如果 num为整数,则 int(num 2)与 num 2相等,否则不等,所以此事件代码完成的功能是统计输入奇数与偶数的个数。 【知识模块】 模块与 VBA编程基础 19 【正确答案】 C 【试题解析】 DoUntil Loop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。当输入 8、 9、 3三个数字条件 (m=0)不成立,所以累加。直到输入 0后结束,即 8+9+3=20。 【知识模块】 模块与 VBA编程基础 20 【正确答案】 B 【试题解析】 FOR是循环语句,当 s
31、tep =0卸时, to前数字要小于后面数字,否则将不执行。本题中 to前数字是 10大于后面数字 1则不执行此循环体,直接跳过。 【知识模块】 模块与 VBA编程基础 21 【正确答案】 D 【试题解析】 DoWhileLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。【知识模块】 模块与 VBA编程基础 22 【正确答案】 A 【试题解析】 Do UntilLoop 循环结构是当条件为假时,重复执行循环体直至条件表达式为真,结束循环。本题中循环条件是 y=0 =25条件为真,即不执行循环体,所以 x、 y的值即为初始值。 【知识模块】 模块与 VBA编程基础
32、23 【正确答案】 B 【试题解析】 根据题中计算式可以找出规律, m变量为奇数,且相邻两个奇数相差为 2,所以本题选 B)。 【知识模块】 模块与 VBA编程基础 24 【正确答案】 C 【试题解析】 根据题意可知,步长为 3,所以当 i分别为 1、 4、 7、 10、 13、 16时执行循环体,所以共执行了 6次。 【知识模块】 模块与 VBA编程基础 25 【正确答案】 B 【试题解析】 根据题意可知, For循环的步长为 3,只有当 i分别为 1和 4时才会执行循环体,所以该事件的最终结果是 4。 【 知识模块】 模块与 VBA编程基础 26 【正确答案】 C 【试题解析】 由题意可知
33、, max代表最大值, max_n代表最大值的位置,而num为输入的数值。在 IF语句中,将 num的值赋予 max,只有当 num max时,才能实现将最大值查找出来,并记录其位置。 【知识模块】 模块与 VBA编程基础 27 【正确答案】 B 【试题解析】 由题意可知 sfum函数实现求除数和求余数的功能,所以最终结果是 1 25和 1。 【知识模块】 模块与 VBA编程基础 28 【正确答案】 C 【 试题解析】 依据题意可知,当执行完第 10次循环体后,此时 i的值为 10,while的条件为假,所以跳出循环,所以最终的结果为 10。 【知识模块】 模块与 VBA编程基础 29 【正确答案】 D 【试题解析】 根据题意,两个 For执行的过程中,各变量的值如下所示:由上表可知,当 i为 2、 3、 5、 7时,在立即窗口中显示 i的值。 【知识模块】 模块与 VBA编程基础 30 【正确答案】 A 【试题解析】 本段代码段是一个单重循环,对于数组中的每一个元素,依次与后面的元素进行比较,较大的数放在 前面。运行这个过程,返回序列为: 10、 20、50、 40、 30、 80、 90、 60、 70、 100,表明是一个无序序列。 【知识模块】 模块与 VBA编程基础