1、国家二级 ACCESS 机试选择题(VBA 编程)模拟试卷 2 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.在表达式中引用窗体上的控件值。下列选项中,语法格式正确的是(分数:2.00)A.Foms窗体名控件名B.Forms-窗体名-控件名C.Forms!窗体名!控件名D.Forms窗体名控件名2.打开窗体后,下列事件中首先发生的是(分数:2.00)A.加载(Load)B.改变(Change)C.调整大小(Resize)D.成为当前(Current)3.下列选项中,与 VBA 中语句 DimVar,sum!等价的是(分数:2.00)A.Di
2、m Var As Double,sum As SingleB.Dim Var As Integer,sum As DoubleC.Dim Var As Single,sum As DoubleD.Dim Var As Integer,sum As Single4.VBA 中一般采用 Hungarian 符号法命名变量,下列代表复选框的字首码是(分数:2.00)A.ChkB.CboC.cmdD.opt5.下列属于 VBA 子字符串检索函数的是(分数:2.00)A.LenB.InStrC.RightD.Replace6.在 VBA 程序中,编程打开窗体应使用的命令是(分数:2.00)A.CmdOp
3、en FormB.DoOpen FormC.DoCmdOpen FormD.CommandOpen Form7.调用下面子过程,消息框显示的值是 Sub SFun() Dim x,y,m x=10:y=100 Ify Modx Then m=x Else m=y End If MsgBox m End Sub(分数:2.00)A.XB.YC.10D.1008.下列循环结构中,循环体被执行的次数是 Dim i As Integer,t As Integer Fori=9 to 0 t=t+1 Next i(分数:2.00)A.0 次B.1 次C.4 次D.5 次9.有如下事件程序,运行该程序后输
4、出结果是 Private Sub Command0_Click() Dim x As Integer,y As Integer x=1:y=0 Do Until y子宏名D.宏名子宏名16.打开窗体后,下列事件中首先发生的是(分数:2.00)A.获得焦点(GotFocus)B.改变(Change)C.激活(Activate)D.成为当前(Current)17.VBA 中,如果没有显式声明或使用符号来定义变量的数据类型,则变量的默认类型为(分数:2.00)A.变体B.布尔型C.双精度D.货币18.定义了数组 A(2to13),则该数组元素个数为(分数:2.00)A.11B.12C.15D.101
5、9.VBA 中采用 Hungarian 符号法命名变量,下列代表子报表的字首码是(分数:2.00)A.subB.RptC.FmtD.txt20.运行程序,要求循环执行 3 次后结束循环,内应填入的语句是 x=1 Do x=x+2 Loop Until(分数:2.00)A.x=7D.x721.运行下列程序,结果是 Private Sub Command0_Click() f0=1 k=1 Do While k控件名C.Forms!窗体名!控件名 D.Forms窗体名控件名解析:解析:引用窗体上某控件值的语法格式为:Forms!窗体名!控件名或Forms!窗体名!控件名,所以选项 C 正确。2.打
6、开窗体后,下列事件中首先发生的是(分数:2.00)A.加载(Load) B.改变(Change)C.调整大小(Resize)D.成为当前(Current)解析:解析:打开窗体时,发生的事件依次为:打开(Open)加载(Load)调整大小(Resize)激活(Activate)成为当前(Current),所以选项 A 正确。3.下列选项中,与 VBA 中语句 DimVar,sum!等价的是(分数:2.00)A.Dim Var As Double,sum As SingleB.Dim Var As Integer,sum As DoubleC.Dim Var As Single,sum As Do
7、ubleD.Dim Var As Integer,sum As Single 解析:解析:整数型数据类型标识为 Integer,用“”表示;单精度数据类型标识为 Single,用“1”表示,所以选项 D 正确。4.VBA 中一般采用 Hungarian 符号法命名变量,下列代表复选框的字首码是(分数:2.00)A.Chk B.CboC.cmdD.opt解析:解析:Hungarian 符号使用一组代表数据类型的码。用小写字母作为变量名的前缀,“Chk”代表复选框,“Cbo”代表组合框,“cmd”代表命令按钮,“opt”代表选项按钮,所以选项 A 正确。5.下列属于 VBA 子字符串检索函数的是(
8、分数:2.00)A.LenB.InStr C.RightD.Replace解析:解析:InStr(str1,str2)函数是检索子字符串 str2 在字符串 strl 中最早出现的位置,返回一个整型数据。因此选项 B 正确。6.在 VBA 程序中,编程打开窗体应使用的命令是(分数:2.00)A.CmdOpen FormB.DoOpen FormC.DoCmdOpen FormD.CommandOpen Form 解析:解析:在 VBA 中打开窗体或报表对象应该使用 DoCmd 命令,所以选项 D 正确。7.调用下面子过程,消息框显示的值是 Sub SFun() Dim x,y,m x=10:y
9、=100 Ify Modx Then m=x Else m=y End If MsgBox m End Sub(分数:2.00)A.XB.YC.10D.100 解析:解析:本题考查的是 if 语句,还有赋值语句的知识点。首先,变量 x 赋值 10,y 赋值 100;if 语句中的条件语句是 ymodx,只要 y 不被 x 整除,则条件为真,否则条件为假。这里 y 可以被 x 整除,因此条件为假,执行 else 后面的语句,即 m=y=100。所以应选择选项 D。8.下列循环结构中,循环体被执行的次数是 Dim i As Integer,t As Integer Fori=9 to 0 t=t+
10、1 Next i(分数:2.00)A.0 次 B.1 次C.4 次D.5 次解析:解析:F0rNext 循环结构中,循环变量初始值应该随着循环的执行,逐渐向终止值“靠拢”,这样才能结束循环。本题中循环便变量 i 的初始值为 9,终止值为 0,步长为默认值 1,所以随着循环的执行,初始值是逐渐“背离”终止值的,所以该循环结构不会被执行,循环语句执行 0 此,选项 A 正确。9.有如下事件程序,运行该程序后输出结果是 Private Sub Command0_Click() Dim x As Integer,y As Integer x=1:y=0 Do Until y子宏名D.宏名子宏名解析:解
11、析:调用宏组中子宏的格式为:宏组名子宏名,所以选项 A 正确。16.打开窗体后,下列事件中首先发生的是(分数:2.00)A.获得焦点(GotFocus)B.改变(Change)C.激活(Activate) D.成为当前(Current)解析:解析:打开窗体时,发生的事件依次为:打开(Open)加载(Load)调整大小(Resize)激活(Activate)成为当前(Current),所以选项 C 正确。17.VBA 中,如果没有显式声明或使用符号来定义变量的数据类型,则变量的默认类型为(分数:2.00)A.变体 B.布尔型C.双精度D.货币解析:解析:没有直接定义而通过一个值指定给变量名,或
12、Dim 定义中省略了 AsVarType短语的变量,或当在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为 Variant(变体)数据类型,所以选项 A 正确。18.定义了数组 A(2to13),则该数组元素个数为(分数:2.00)A.11B.12 C.15D.10解析:解析:数组 A(2t013),下标从 2 开始,到 13 结束,共 12 个元素,所以选项 B 正确。19.VBA 中采用 Hungarian 符号法命名变量,下列代表子报表的字首码是(分数:2.00)A.sub B.RptC.FmtD.txt解析:解析:Hungarian 符号使用一组代表数据类型的码。用小写
13、字母作为变量名的前缀,“sub”代表子窗体子报表,“Rpt”代表报表,“Fret”代表窗体,“txt”代表文本框,所以选项 A 正确。20.运行程序,要求循环执行 3 次后结束循环,内应填入的语句是 x=1 Do x=x+2 Loop Until(分数:2.00)A.x=7 D.x7解析:解析:本题考查循环的基础知识。题目要求循环执行 3 次结束,当第 3 次循环结束时,x 的值为7,而 Until 循环的特点是当条件为真的时候结束循环,故此条件应该是 x=7,选项 C 正确。21.运行下列程序,结果是 Private Sub Command0_Click() f0=1 k=1 Do Whil
14、e k f=f0+f1 f0=f1 f1=f k=k+1 Loop MsgBox“f=“f End Sub(分数:2.00)A.f=5 B.f=7C.f=8D.f=13解析:解析:本题考查的是 dowhile 循环的执行过程,在每次循环之前,会检查循环条件表达式是否满足循环体是在条件表达式成立的前提下,才会执行。本题 k=5,循环体执行 5 次,第 5 次结束之后,f=5,k=6 不满足再次循环的条件,所以最终 f=5,所以选择选项 A。22.下列程序的功能是计算:sum=1+(1+3)+(1+3+5)+(1+3+5+39) Private Sub Command_Click() t=0 m=
15、1 sum=0 Do t=t+m sum=sum+t m= Loop While m=39 MsgBox“Sum=“sum End Sub 为保证程序正确完成上述功能,空白处应填入的语句是(分数:2.00)A.m+1B.m+2 C.t+1D.t+2解析:解析:本题考查是 while 循环知识点。通过 while 循环实现求取表达式的值,只要条件满足,while 循环会一直继续。通过观察我们可以发现规律:while 的每次循环 sum 会加一项(1+3+m),该项比上一次数据项多出一个数字,该数字就是上个数据项最大值加 2,即 m 的值,所以每次循环 m 需要加2。23.下列代码实现的功能是:若
16、在窗体中一个名为 tNum 的文本框中输入学号,则将“学生表”中对应的“姓名”显示在另一个名为 tName 文本框中。 Pfivme Sub tNurn_AfterUpdate() Me!tName=(“姓名“,“学生表“,“学号=“Me!TNum“) End Sub 则程序处应该填写的是(分数:2.00)A.DLookup B.LookupC.DFindD.IIf解析:解析:根据题意,处的代码应实现的功能是在”课程表”中查询出“课程编号”等于 tNum 文本框中数据的“课程名称”,此 DLookup 函数有此功能。DLookup 函数的格式为:DLookup(表达式,记录集,条件式)。其中表
17、达式用来指定要查询的字段,即题中的”课程名称”。记录集用来指定要查询的范围,即题中的“课程表”。条件式用来指定查询条件,即题中的“课程编号=”MeltNum“”,所以选择选项 A。24.下面过程输出记录集的记录个数。 Sub GetRecNum0 Dim rs As Object Set rs=MeRecordset MsgBox End Sub 程序空包处应该填写的是(分数:2.00)A.rsRecordCount B.RecordCountC.rsCountD.rsRecord解析:解析:题目中对象变量 rs 返回了当前窗体的 RecordSet 属性记录集的引用,那么通过访问对象变量 r
18、s 的属性 ReordCount 就可以得到该记录集的记录个数,引用方法为 rsReordCount,所以选项 A 正确。25.子过程 Plus 完成对当前库中“教师表”的工龄字段都加 1 的操作。 Sub Plus() Dim ws As DAOWorkspace Dim db As DAODatabase Dim rs As DAORecordset Dim fd As DAOField Set db=CurrentDb() Set rs=dbOpenRecordset(“教师表“) Set fd=rsFields(“工龄“) Do While Not rsEOF rsEdit fd=fd
19、+1 rsMoveNext Loop rsClose dbClose Set rs=Nothing Set db=Nothing End Sub 程序处应该填写的语句是(分数:2.00)A.rsUpdate B.WSUpdateC.fdUpdateD.dbUpdate解析:解析:本题中的,DoWhile 循环是对记录集中的每一条记录的“工龄”字段加 1,当执行更新操作fd=fd+1 之后,都需要使用 rsupdate 语句将所更新的记录数据存储到数据库中,所以选项 A 正确。26.宏的功能不包括(分数:2.00)A.自动进行数据校验 B.打开数据库时自动运行C.对数据进行分组、计算、汇总和打印
20、输出D.根据条件的不同执行不同的操作解析:解析:宏是一个或多个操作的集合,其中每个操作都可以实现特定的功能,使用简单,可以提高工作效率。可以设置自动运行或根据需要来进行数据统计计算以及根据需要设计条件宏,但宏不具有数据校验的功能,所以选择选项 A。27.要在报表中设置筛选条件以限制来自表中的记录,应使用的宏命令是(分数:2.00)A.RequeryB.FindRecordC.ApplyFilter D.FindNextRecord解析:解析:“ApplyFilter”宏操作可以对表、窗体或报表应用筛选、查询或“SQL WHERE”子句,以便限制或排序表、基础表以及窗体或报表的查询中的记录,所以
21、选项 C 正确。28.打开报表后,下列事件中首先发生的是(分数:2.00)A.获得焦点(GotFocus)B.改变(Change)C.激活(Activate) D.成为当前(Current)解析:解析:Current 事件是在窗体打开时,以及焦点从一条记录移动到另一条记录时发生:Activate 是当一个对象成为活动窗口时发生的事件;Change 是指文本框或组合框的部分内容改变时发生的事件;GotFocus 指窗体或控件获得焦点时发生的事件。以上四个事件,只有激活是打开窗体后最先发生的。29.下列选项中,不属于 Access 内置函数的是(分数:2.00)A.ChooseB.IIfC.SwitchD.If 解析:解析:IIF、Switch 和 Choose 是 VBA 的三个内置条件函数,而 If 是条件语句不是函数。30.若将文本字符串“23”、“8”、“7”按升序排序,则排序的结果是(分数:2.00)A.“23”、“8”、“7”B.“7”、“8”、“23”C.“23”、“7”、“8” D.“7“、“23”、“8”解析:解析:在对文本字符串进行排序时,首先比较第一个字符之后进行排序,若第一个字符相同则比较第二个字符,以此类推。因此对文本字符串“23”、“8”、“7”进行升序排序的结果为“23”、“7”、“8”。所以选项 C 正确。