1、国家二级 ACCESS机试(模块与 VBA编程基础)模拟试卷 2及答案与解析 一、选择题 1 VBA中定义符号常量使用的关键字是 ( A) Const ( B) Dim ( C) Public ( D) Static 2 可以用 InputBox函数产生 “输入对话框 ”。执行语句: st=InputBox(“请输入字符串 ”, “字符串对话框 ”,“aaaa”) 当用户输入字符串 “bbbb”,按 OK按钮后,变量 st的内容是 ( A) aaaa ( B)请输入字符串 ( C)字符串对话框 ( D) bbbb 3 下列不属于 VBA函数的是 ( A) Choose ( B) If ( C)
2、 IIf ( D) Switch 4 下列关于 VBA事件的叙述中,正确的是 ( A)触发相同的事件可以执行不同的事件过程 ( B)每个对象的事件都是不相同的 ( C)事件都是由用户操作触发的 ( D)事件可以由程序定义 5 用来测试当前读写位置是否达到文件末尾的函数是 ( A) EOF ( B) FileLen ( C) Len ( D) LOF 6 下列表达式中,能够保留变量 X整数部分并进行四舍五入的是 ( A) Fix(x1 ( B) Rnd(x) ( C) Round(x1 ( D) Int(x) 7 VBA程序中,可以实现代码注释功能的是 ( A)方括号 () ( B)冒号 (:
3、) ( C)双引号 (”) ( D)单引号 () 8 在窗口中有一个标签 Label0和一个命令按钮 Commandl, Commandl的事件代码如下: Private Sub Command l_Click() LabelO Lefl=Label0 Left+100 End Sub 打开窗口,单击命令按钮,结果是 ( A)标 签向左加宽 ( B)标签向右加宽 ( C)标签向左移动 ( D)标签向右移动 9 假定有以下循环结构 Do Until条件 循环体 Loop 则正确的叙述是 ( A)如果 “条件 ”值为 0,则一次循环体也不执行 ( B)如果 “条件 ”值为 0,则至少执行一次循环体
4、 ( C)如果 “条件 ”值不为 0,则至少执行一次循环体 ( D)不论 “条件 ”是否为 “真 ”,至少要执行一次循环体 10 假定有以下程序段 n=0 for i=l to 3 for j=一 4 to-1 n=n+1 nextj next i 运行完毕后, n的值是 ( A) 0 ( B) 3 ( C) 4 ( D) 12 11 以下程序段运行结束后,变量 X的值为 X=2 Y=4 DO X=x*y Y=y+l Loop While y 4 ( A) 2 ( B) 4 ( C) 8 ( D) 20 12 在窗体上添加一个命令按钮 (名为 Commandl),然后编写如下事件过程: Pri
5、vate Sub Command lClick() For i=l To 4 X=4 Forj=1 T0 3 X=3 For k=l To 2 X=x+6 Next k Next J Next i MsgBox X End Sub 打开窗体后,单击命令按钮,消息框的输出结果是 ( A) 7 ( B) 15 ( C) 157 ( D) 528 13 在窗体中添加一个名称为 Commandl的命令按钮,然后编写如下事件代码: Private Sub Commandl_Click() Dim a(10, 10) For m=2 T0 4 For n=4 T0 5 a(m, n)=m*n Next n
6、 Next m MsgBox a(2, 5)+a(3, 4)+a(4, 5) End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 22 ( B) 32 ( C) 42 ( D) 52 14 在窗体中添加一个名称为 Commandl的命令按钮,然后编写如下事件代码: Private Sub Command l_Click() A=75 IfA 60 Then I=1 IfA 70 Then 1=2 IfA 80 Then 1=3 IfA大 90 Then 1=4 MsgBox I End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 1 ( B)
7、 2 ( C) 3 ( D) 4 15 在窗体中添加一个名称为 Commandl的命令按钮,然后编写如下事件代码: Private Sub Commandl_Click() s=”ABBACDDCBA” For 1=6 To 2 Step-2 x=Mid(s, I, I) Y=Left(s, I) z=Right(s, I) z=X&Y&Z Next I MsgBox Z End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) AABAAB ( B) ABBABA ( C) BABBA ( D) BBABBA 16 在窗体中添加一个名称为 Commandl的命令按钮,然后
8、编写如下事件代码: Private Sub Commandl_Click() a=75 If a 60 Then k=1 Elself a 70 Then k=2 Elself a 80 Then k=3 Elself a 90 Then k=4 Endlf MsgBox k End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 17 设有如下窗体单击事件过程: Private Sub Form_Click() a=1 For i=l To 3 Select Case i Case 1, 3 a=a+l Case 2, 4
9、A=a+2 End Select Next i MsgBox a End Sub 打开窗体运行后,单击窗体,则消息框的输出的结果是 ( A) 3 ( B) 4 ( C) 5 ( D) 6 18 设有如下程 序: Private SUb Command l Click() Dim sum As Double, X As Double Sum=0 n=0 For i=1 rr0 5 x-n i n=n+l sum=sum+x Next I End Sub 该程序通过 For循环来计算一个表达式的值,这个表达式是 ( A) 1+1 2+2 3+3 4+4 5 ( B) 1+1 2+l 3+1 4+1
10、 5 ( C) 1 2+2 3+3 4+4 5 ( D) 1 2+1 3+l 4+1 5 19 下列 Case语句中错误的是 ( A) Case 0 To 10 ( B) Case Isl 0 ( C) Case Is 10 And Isn Do While m n m=m-n Loop Do While m n n=nm Loop Loop f=m End Function 窗体打开运行 后,单击命令按钮,则消息框的输出结果是 ( A) 2 ( B) 4 ( C) 6 ( D) 8 30 在窗体中有一个文本框 Textl,编写事件代码如下: Private Sub Form_Click()
11、X=val(Inputbox(”输入 X的值 ”) Y=1 IfX O Then Y=2 Textl Value=Y End Sub 打开窗体运行后,在输入框中输入整数 12,文本框 Textl中输出的结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 31 在窗体中有一个命令按钮 Commandl和一个文本框 Textl,编写事件代码如下: Private Sub Commandl_Cick() For I=1 To 4 x=3 Forj=1 To 3 For k=1 To 2 x=x+3 Next k Nextj Next I Textl value=Str(x) End Su
12、b 打开窗体运行后,单击命令按钮,文本框 Textl输出的结果是 ( A) 6 ( B) 12 ( C) 1 8 ( D) 21 32 在窗体中有一个命令按钮 Commandl,编写事件代码如下: Pfive Sub Commandl_Click() Dim S As Integer S=P(1)+P(2)+P(3)+P(4) debug Prim S End Sub Public Function PfN AS Integer) Dim Sum As Integer Sum=0 For i=l T0 N Sum=Sum+i Next i P=Sum End Function 打开窗体运行后,
13、单击命令按钮,输出结果是 ( A) 15 ( B) 20 ( C) 25 ( D) 35 33 由 “For i=l To 9 Step-3”决定的循环结构,其循环体将被执行 ( A) 0次 ( B) 1次 ( C) 4次 ( D) 5次 34 在窗体上有一个命令按钮 Commandl和一个文本框 Textl,编写事件代码如下 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+l Nextj Next i Textl Value=Str(x) End Sub 打开窗体运
14、行后,单击命令按钮,文本框中显示的结果是 ( A) 1 ( B) 7 ( C) 17 ( D) 400 35 在窗体上有一个命令按钮 Commandl,编写事件代码如下: Private SUb Commandl_Click() Dim Y As Integer y=0 DO Y=InPutBox“Y” If(y Mod 10)+Int(y 10)=10 Then Debug Print y; Loop Umil Y: 0 End SUb 打开窗体运行后,单击命令按钮,依次输入 10、 37、 50、 55、 64、 20、 28、19、 -19、 0,立即窗口上输出的结果是 ( A) 37
15、55 64 28 19 19 ( B) 10 50 20 ( C) 10 50 20 0 ( D) 37 55 64 28 19 36 若变量 i的初值为 8,则下列循环语句中循环体的执行次数为 Do While i =17 i=i+2 Loop ( A) 13次 ( B) 4次 ( C) 5次 ( D) 6次 国家二级 ACCESS机试(模块与 VBA编程基础)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 在 VBA编程过程中,如果在代码中要反复使用相同的值,或者代表一些具有特定意义的数字或字符串,可以用符号常量形式来表示,符号常量使用关键字 Const来定义,格式
16、如下: Const符号常量名称:常量值 2 【正确答案】 D 3 【正确答案】 B 【试题解析】 If()函数,该函数可用于选择操作。调用格式为: If(条件表达式,表达式 l,表达式 2) 功能:函数根据 “条件表达式 ”的值来决定返回值。如果 “条件表达式 ”的值为“真 ”(True),函数返回 “表达式 1”的值; “条件表达式 ”的值为 “假 ”(Flase),函数返回 “表达式 2”的值。 Switch()函数,该函数可用于多条件选择操作。调用格式为: Switch(条件式 1, 表达式 l,条件式 2,表达式 2 ,条件式 n,表达式 n) 功能:函数分别根据 “条件式 1”、 “
17、条件式 2”“ 条件式 n”的值来决定返回值。条件式是由左至右进行计算判断的,函数将返回第一个条件式为 True的对应 “表达式 ”的值。 Choose()函数,调用格式为: Choose(数值表达式,表达式 l,表达式 2 ,表达式 n) 功能:函数根据 “数值表达式 ”的值决定返回值。若不考虑变量的小数的定义位数,当 “数值表达式 ”值大于 1、小于 2时,函数将返回 “表达式 1”的值;值大于2、小 于 3,返回 “表达式 2”的值,依此类推。以上 3种函数均为 VBA的函数。 4 【正确答案】 A 【试题解析】 事件是由系统定义的,事件的过程是由程序员定义的,因此触发相同的事件可以执行
18、不同的事件过程;不同的对象可能有相同的实现,如很多控件都具有 “获取焦点 ”事件。有些事件并不是用户触发的,如 Resize事件。事件是由系统定义供程序员使用的,并不能由程序员定义。 5 【正确答案】 A 【试题解析】 在到达文件末尾之前, EOF函数一直返回 False,到达文件末尾时, EOF返回 True; FileLen函数返回一个文件的长度,单位为字节; Len返回文本串的字符数; LOF函数返回某文件的字节数。 6 【正确答案】 C 【试题解析】 FiX(x)和 Int(x)返回 x的整数部分,对于小数部分完全舍弃。 Rnd(x)返回一个随机数, Round(x)保留 x的整数部分
19、并进行四舍五入。 7 【正确答案】 D 【试题解析】 一个好的程序一般都有注释语句。这对程序的维护有很大的好处。 在 VBA程序中,注释可以通过以下两种方式实现: 使用 Rem语句,格式为: Rem注释语句 用单引号 “”,格式为: 注释语句 8 【正确答案】 D 【试题解析】 Left表示的是控件的左边距,所以 left+100表示控件向右移动。 9 【正确答案】 B 【试题解析】 本题考查 VBA中 Do IJntilLoop 循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体
20、。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条 件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。本题中是先判断条件,条件值为 0表示条件是: False,则至少执行一次循环体。 10 【正确答案】 D 【试题解析】 本题考查 VBA中嵌套。 For循环的知识。这种问题要注意分析清楚每次循环的变化以及循环的次数。在这个循环中,内循环执行 4次,外循环执行 3次,所以里面的循环体语句 n=n+1共执行 12次,所以最终 n的值为 12。 11 【正确答案】 C 【试题解析】 本题考查 VBA中循环的知识。在本
21、题中用了 DoLoop While循环,先运行循环体后判断条件,当条件满足时继续循环,条件不满足时退出循环体。在本题中第一次循环结束后 y的值为 5已经不满足条件,故此本循环只执行一次, x的值为 2*4=8。 12 【正确答案】 B 【试题解析】 本题考查 VBA中多重循环的知识。见到多重循环的问题不要害怕,认真地分析清楚每一次循环这种问题就迎刃而解了。比如这个例子,我们看到,在每一次外循环开始的时候都把 x的值置为 4,所以我们只分析最后一次循环就可以了;同理中层循环每一次开始前都把 x置为 3,所以这个问题最后实际上就是 x的初值为 3,执行最内层循环直到结束就可以了。根据程序内循环执行
22、两次,最后 x=3+6+6=15。 13 【正确答案】 C 【试题解析】 本题考查数组和二重循环的知识。在这个问题中,我们实际上可以分析出,数组元素的值就是该元素的两个下标之积 (循环范围内 )。所以最后的三个数组元素的和也就是 2*5+3*4+4*5=42。 14 【正确答案】 B 【试题解析】 本题考查 VBA中选择结构的知识。在本题中用了多个 If分支结构,这些结构是顺序的而不是嵌套的,所以会顺序执行判断是否满足条件。首先75大于 60。所以 i=l,然后再判断 75大于 70。所以 i=2,再接着判断 75既不大于80也不大于 90,所以最后消息框里输出的 i值为 2。 15 【正确答
23、案】 D 【试题解析】 本题考查 VBA中循环和取子串函数的知识。在 VBA中有三种取子串函数: Left函数用于在字符串左端开始取 n个字符; Right函数用于在字符串右端开始取 n个字符 (注意子串中字符的顺序与母串中相同 ); Mid函数可以实现在任何位置取任何长度的子串。在本题中由于循环每次都会为 z赋一个新的值Right(s, i),所以只有最后一次循环中的 z值才有意义。最后一次 循环时 i=2,所以 D选项正确。 16 【正确答案】 A 【试题解析】 本题考查多分支选择的知识。这个问题比较简单,只要知道这是一个多分支选择结构,当执行某分支后就会退出分支执行分支下面的语句就可以做
24、对。本题中第一个分支条件就得到满足,所以执行 k=l后退出分支结构,最终结果 k=l。 17 【正确答案】 C 【试题解析】 本题考查 VBA程序设计中的多分支选择和循环的知识。在本题的程序中,共循环三次,第一次 i的值为 l,故此执行 Case语句中的 a=a+1;第二次i的值为 2,故此执行 case语句中 的 a=a+2;第一次 i的值为 3,故此执行 Case语句中的 a=a+1。所以最后 a的值为 l+l+2+1=5。 18 【正确答案】 C 【试题解析】 本题考查 VBA中循环结构的知识。这类问题需要分析出每一次循环所做的操作。第一次循环时, i=1, n=0, x=0 1,所以累
25、加上去的是 0 1;第二次循环时, i=2, n=l, x=1 2,所以累加上去的是 l 2;第三次循环时, i=3,n=2, x=2 3,所以累加上去的是 2 3;循环 5次后累加的应该是 0 1+1 2+23+3 4+4 5。 19 【正确答案】 C 【试题解析】 本题考查 Select Case语句的知识。 Case语句的后面可以包含一个值、一组枚举值、一个值 _的范围以及比较运算符。但是当 Case语句使用 Is关键字的时候就不能再加入逻辑运算符如 And等。 20 【正确答案】 B 【试题解析】 本题考查控制结构的知识。选项 A是一个单分支选择结构;选项C是一个双分支选择结构;选项
26、D是一个多分支选择结构;选项 B是一个循环结构。 21 【正确答案】 A 22 【正确答案】 D 【试题解析】 本题考查结构化程序设计的知识。 VBA是一种结构化的程序设计方式,结构化的程序设计方式要求程序只能由顺序、分支和循环三种基本控制结构组成。 23 【正确答案】 D 【试题解析】 本题考查程序设计的知识。本题的重点在于判断 Int(num2)=hum 2是什么样的条件。对于任意一个整数来说,若其除 2后为整数,也就是 Int(nurn 2)=hum 2成立,说明该数是一个偶数;反之若其除 2后不为整数,此时: Int(num 2)必然不等于 num 2,也就是一个整数不可能等于一个小数
27、,说明该数是一个奇数。所以本题的功能是对输入的数据分别统计奇偶 数的个数。 24 【正确答案】 C 【试题解析】 “条件式 ”放在 While或 LJntil后面。 25 【正确答案】 B 【试题解析】 i=10,每循环一次递减 2。 第一次循环结果: i=10, sum=sum+i=0+10=10 第二次循环结果: i=8, sum=sum+i: lO+8=18 第三次循环结果: i=6, sum=sum+j=18+6=24 第四次循环结果: i=4, sum=sum+i=24+4=28 第五次循环结果: i=2, sum=sum+i=28+2=30 26 【正确答案】 C 【试题解析】 根
28、据题目要求,当输入正确的成绩后,进入后续的程序处理, Flag初始为 True,进入 do while循环,循环条件为 Flag。当输入错误的成绩时,提示信息并不改变 Flag标记,即还为 Tme,继续进行循环;当输入正确成绩时,应将Flag标记为 False,这样才可以跳出循环,继续后续的程序处理,否则将一直停留在循环这里。 27 【正确答案】 B 【试题解析】 本题考查条件函数的知识。 vBA中的条件函数共有 3个: IIF函数根据表达式的真假值返 回两个表达式之一: Switch函数对表达式列表求值,并返回一个 Variant类型的值或与列表中第一个为 True的表达式相关联的表达式:C
29、hoose函数从参数列表中选择值并返回。 28 【正确答案】 C 【试题解析】 本题考查循环的基础知识。本题目要求循环 3次,当第 3次循环结束时 x的值为 7,而 Until型循环的特点是当条件表达式为真的时候结束循环,故此条件应该是 x =7。 29 【正确答案】 C 【试题解析】 本题考查 VBA程序设计的知识。当调用函数时,形参 m=24,n=18:然后进入循环 ,由于 m n,所以执行 m=m-n, m的值变为 6;第 2次循环时由于 m n,所以执行 n=n-m, n的值变为 12;第 3次循环时由于 m n,所以执行 u=n-m, n的值变为 6,此时结束循环返回 6。 30 【
30、正确答案】 B 【试题解析】 根据题意,可知首先将输入的数值赋给 x, Y初始值为 l,接着判断 x是否不为 0(即输入的值是否不为 0),如果不为 0,则 Y的值为 2,并且将 Y的值赋给文本框 Textl。由于题意中输入的是 12,不为 0,此时 Y的值为 2,所以文本框中输出的结果为 2。 31 【正确答案】 D 32 【正确答案】 B 【试题解析】 从函数 P的代码可知,其功能是计算从 1到 N的和,在命令按钮的单击事件代码中,可知 S为 P(1), P(2), P(3), P(4 )的和,显然 P(1)=1,P(2)=1+2=3, P(3)=l+2+3=6, P(4)=l+2+3+4
31、=10,所以 S=1+3+6+10=20。 33 【正确答案】 A 【试题解析】 循环变量 I从 1到 9按递减顺序,由于 1-3=2不满足条件,所以一次也不执行。 34 【正确答案】 A 【试题解析】 外循环每次循环都将 x重置为 0,所以只看外 循环的最后一次即i=20时,此时内循环 j=i=20开始以步长为 2开始递增,递增一次执行x=x+1=0+1=1后便结束循环,所以最后文本框显示的结果为 1。 35 【正确答案】 D 【试题解析】 分析 if语句,当计算表达式 (y mod 10)+int(y 10)等于 10时,立即窗口显示输入的数字。当输入第一个数字 10时, (y mod 10)+int(y 10)=0+1=1不等于 10,不显示;当输入第二个数字 37时, (v mod 10)+int(v 10)=7+3=10,显示数字 37,依次类推,结果为选 项 D)。 36 【正确答案】 C