国家二级ACCESS机试选择题(VBA编程)模拟试卷2
(总分:60.00,做题时间:90分钟)
一、 选择题(总题数:30,分数:60.00)
1.在表达式中引用窗体上的控件值。下列选项中,语法格式正确的是 (分数:2.00)
A.Foms&[窗体名]&[控件名] B.Forms->[窗体名]->[控件名] C.Forms![窗体名]![控件名] √ D.Forms%[窗体名]%[控件名]
解析:解析:引用窗体上某控件值的语法格式为:Forms![窗体名]![控件名]或[Forms]![窗体名]![控件名],所以选项C正确。
2.打开窗体后,下列事件中首先发生的是 (分数: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 Single B.Dim Var As Integer,sum As Double C.Dim Var As Single,sum As Double D.Dim Var As Integer,sum As Single √
解析:解析:整数型数据类型标识为Integer,用“%”表示;单精度数据类型标识为Single,用“1”表示,所以选项D正确。
4.VBA中一般采用Hungarian符号法命名变量,下列代表复选框的字首码是 (分数:2.00) A.Chk √ B.Cbo C.cmd D.opt
解析:解析:Hungarian符号使用一组代表数据类型的码。用小写字母作为变量名的前缀,“Chk”代表复选框,“Cbo”代表组合框,“cmd”代表命令按钮,“opt”代表选项按钮,所以选项A正确。 5.下列属于VBA子字符串检索函数的是 (分数:2.00) A.Len B.InStr √ C.Right D.Replace
解析:解析:InStr(str1,str2)函数是检索子字符串str2在字符串strl中最早出现的位置,返回一个整型数据。因此选项B正确。
6.在VBA程序中,编程打开窗体应使用的命令是 (分数:2.00) A.Cmd.Open Form B.Do.Open Form
C.DoCmd.Open Form D.Command.Open Form √
解析:解析:在VBA中打开窗体或报表对象应该使用DoCmd命令,所以选项D正确。
7.调用下面子过程,消息框显示的值是 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.X B.Y C.10 D.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+1 Next i (分数:2.00) A.0次 √ B.1次 C.4次 D.5次
解析:解析:F0r—Next循环结构中,循环变量初始值应该随着循环的执行,逐渐向终止值“靠拢”,这样才能结束循环。本题中循环便变量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<=25 y=y+x*x:x=x+1 Loop MsgBox\&x&\,y=\&y End Sub (分数:2.00) A.x=1,y=0 √ B.x=4,y=25 C.x=5,y=30 D.输出其他结果
解析:解析:在Do Until…Loop循环结构中,只有当循环条件语句为“假”时,才执行循环体语句,如果循环条件语句为“真”,则结束循环。本题中变量y的值为1,循环条件语句“y<=25”为“真”,所以本题中的循环语句一次也不会执行,最终x和y的值不会发生变化,所以选项A正确。 10.能够实现从指定记录集里检索特定字段值的函数是 (分数:2.00) A.Nz B.Find C.Lookup D.DLookup √
解析:解析:DLookup函数是从指定记录集里检索特定字段的值。它可以直接在VBA、宏、查询表达式或计算控件中使用,而且主要用于检索来自外部表(而非数据源表)字段的值,所以选项D正确。
11.若使用如下代码创建数据表Student: Dim strSQL As String strSQL=\strSQL=strSQL+\,\,\
strSQL=strSQL+\,\;\.RunSQL strSQL 下列关于字段的叙述中,错误的是 (分数:2.00) A.设置Sno为主键 B.设置Sname为非空 C.设置Sparty为是否型 D.设置Sphoto为备注型 √
解析:解析:在Access数据库中包含数字型、附件型、备注型以及文本型等数据类型。用于保存图像和文件的数据类型应定义附件类型。所以应选择选项D。
12.子过程Plus完成对当前库中“教师表”的工龄字段都加1的操作。 Sub Plus() Dim cn As New ADoDB.Connection Dim rs As New ADODB.Recordset Dim fd As ADODB.Field Dim strConnect As String Dim strSQL As String Set cn=CurrentProject.Connection strSQL=\工龄from教师表\rs.Open strSQL.cn,adOpenDynamic,adLockOptimistic,adCmdText' Set fd=rs.Fields(\工龄\Do While fd=fd+1 rs.Update rS.MoveNext Loop rs.Close ca.Close Set rs=Nothing Set cn=Nothing End Sub 程序中 内应填写的语句是 (分数:2.00) A.Notrs.EOF √ B.rs.EOF C.Notcn.EOF D.cn.EOF
解析:解析:EOF函数的作用是判断是否到达记录的结尾,在到达结尾前,该函数的返回值都是False,本题需要对当前库中“教师表”的工龄字段都加1,使用Do While…Loop循环结构,依次取出每条语句,条件语句用于判断记录指针是否到达记录集的结尾,如果没有,rs.EOF返回false,Not rs.Eof返回true,则继续向下移动记录指针,如果记录指针到达记录集的结尾,rs.EOF返回true,Not rs.EOF返回false,结束循环。
13.要执行VisualBasic函数,应使用的宏操作命令是 (分数:2.00) A.RunC0mmand B.RunMacro C.RunCode √ D.RunSql
解析:解析:RunCode宏用于调用VB的Function过程,所以选项C正确。 14.要在窗体中设置筛选条件以限制来自表中的记录,应使用的宏命令是 (分数:2.00) A.Requery B.FindRecord C.ApplyFilter √ D.FindNextRecord
解析:解析:“ApplyFilter”宏操作可以对表、窗体或报表应用筛选、查询或“SQL WHERE”子句,以便限制或排序表、基础表以及窗体或报表的查询中的记录,故C选项正确。 15.调用宏中子宏的格式是 (分数:2.00) A.宏名.子宏名 √ B.宏名!子宏名 C.宏名->子宏名 D.宏名@子宏名
解析:解析:调用宏组中子宏的格式为:宏组名.子宏名,所以选项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.货币
解析:解析:没有直接定义而通过一个值指定给变量名,或Dim定义中省略了As<VarType>短语的变量,或当在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为Variant(变体)数据类型,所以选项A正确。
18.定义了数组A(2to13),则该数组元素个数为 (分数:2.00) A.11 B.12 √ C.15 D.10
解析:解析:数组A(2t013),下标从2开始,到13结束,共12个元素,所以选项B正确。 19.VBA中采用Hungarian符号法命名变量,下列代表子报表的字首码是 (分数:2.00) A.sub √ B.Rpt C.Fmt D.txt
解析:解析:Hungarian符号使用一组代表数据类型的码。用小写字母作为变量名的前缀,“sub”代表子窗体/子报表,“Rpt”代表报表,“Fret”代表窗体,“txt”代表文本框,所以选项A正确。 20.运行程序,要求循环执行3次后结束循环,[]内应填入的语句是 x=1 Do x=x+2 Loop Until[] (分数:2.00) A.x<=7 B.x<7 C.x>=7 √ D.x>7
解析:解析:本题考查循环的基础知识。题目要求循环执行3次结束,当第3次循环结束时,x的值为7,而Until循环的特点是当条件为真的时候结束循环,故此条件应该是x>=7,选项C正确。
21.运行下列程序,结果是 Private Sub Command0_Click() f0=1 k=1 Do While k<> f=f0+f1 f0=f1 f1=f k=k+1 Loop MsgBox\&f End Sub (分数:2.00) A.f=5 √ B.f=7 C.f=8 D.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=1 sum=0 Do t=t+m sum=sum+t m=[] Loop While m<=39 MsgBox\&sum End Sub 为保证程序正确完成上述功能,空白处[]应填入的语句是 (分数:2.00) A.m+1 B.m+2 √ C.t+1
D.t+2
解析:解析:本题考查是while循环知识点。通过while循环实现求取表达式的值,只要条件满足,while循环会一直继续。通过观察我们可以发现规律:while的每次循环sum会加一项(1+3+…+m),该项比上一次数据项多出一个数字,该数字就是上个数据项最大值加2,即m的值,所以每次循环m需要加2。 23.下列代码实现的功能是:若在窗体中一个名为tNum的文本框中输入学号,则将“学生表”中对应的“姓名”显示在另一个名为tName文本框中。 Pfivme Sub tNurn_AfterUpdate() Me!tName=[](\姓名\,\学生表\,\学号='\&Me!TNum&\则程序[]处应该填写的是 (分数:2.00) A.DLookup √ B.Lookup C.DFind D.IIf
解析:解析:根据题意,[]处的代码应实现的功能是在”课程表”中查询出“课程编号”等于tNum文本框中数据的“课程名称”,此DLookup函数有此功能。DLookup函数的格式为:DLookup(表达式,记录集[,条件式])。其中表达式用来指定要查询的字段,即题中的”课程名称”。记录集用来指定要查询的范围,即题中的“课程表”。条件式用来指定查询条件,即题中的“课程编号='”MeltNum“'”,所以选择选项A。
24.下面过程输出记录集的记录个数。 Sub GetRecNum0 Dim rs As Object Set rs=Me.Recordset MsgBox[] End Sub 程序空包处[]应该填写的是 (分数:2.00)
A.rs.RecordCount √ B.RecordCount C.rs.Count D.rs.Record
解析:解析:题目中对象变量rs返回了当前窗体的RecordSet属性记录集的引用,那么通过访问对象变量rs的属性ReordCount就可以得到该记录集的记录个数,引用方法为rs.ReordCount,所以选项A正确。 25.子过程Plus完成对当前库中“教师表”的工龄字段都加1的操作。 Sub Plus() Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim fd As DAO.Field Set db=CurrentDb() Set rs=db.OpenRecordset(\教师表\.Fields(\工龄\.EOF rs.Edit fd=fd+1 [] rs.MoveNext Loop rs.Close db.Close Set rs=Nothing Set db=Nothing End Sub 程序[]处应该填写的语句是 (分数:2.00) A.rs.Update √ B.WS.Update C.fd.Update D.db.Update
解析:解析:本题中的,DoWhile循环是对记录集中的每一条记录的“工龄”字段加1,当执行更新操作fd=fd+1之后,都需要使用rs.update语句将所更新的记录数据存储到数据库中,所以选项A正确。 26.宏的功能不包括 (分数:2.00)
A.自动进行数据校验 √ B.打开数据库时自动运行
C.对数据进行分组、计算、汇总和打印输出 D.根据条件的不同执行不同的操作
解析:解析:宏是一个或多个操作的集合,其中每个操作都可以实现特定的功能,使用简单,可以提高工作效率。可以设置自动运行或根据需要来进行数据统计计算以及根据需要设计条件宏,但宏不具有数据校验的功能,所以选择选项A。
27.要在报表中设置筛选条件以限制来自表中的记录,应使用的宏命令是 (分数:2.00)
A.Requery B.FindRecord C.ApplyFilter √ D.FindNextRecord
解析:解析:“ApplyFilter”宏操作可以对表、窗体或报表应用筛选、查询或“SQL WHERE”子句,以便限制或排序表、基础表以及窗体或报表的查询中的记录,所以选项C正确。 28.打开报表后,下列事件中首先发生的是 (分数:2.00)
A.获得焦点(GotFocus) B.改变(Change) C.激活(Activate) √ D.成为当前(Current)
解析:解析:Current事件是在窗体打开时,以及焦点从一条记录移动到另一条记录时发生:Activate是当一个对象成为活动窗口时发生的事件;Change是指文本框或组合框的部分内容改变时发生的事件;GotFocus指窗体或控件获得焦点时发生的事件。以上四个事件,只有激活是打开窗体后最先发生的。 29.下列选项中,不属于Access内置函数的是 (分数:2.00) A.Choose B.IIf C.Switch D.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”、“7”进行升序排序的结果为“23”、“7”、“8”。所以选项C正确。