1、二级 Access 分类真题 2014 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.结点中具有两个指针域的链表一定是二又链表B.结点中具有两个指针域的链表可以是线性结构,也可以是非线性结构C.二叉树只能采用链式存储结构D.循环链表是非线性结构2.某二叉树的前序序列为 ABCD,中序序列为 DCBA,则后序序列为_。(分数:2.50)A.BADCB.DCBAC.CDABD.ABCD3.下面不能作为软件设计工具的是_。(分数:2.50)A.PAD 图B.程序流程图C.数据流程图(DFD
2、 图)D.总体结构图4.逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:2.50)A.关系模型B.谓词模型C.物理模型D.实体-联系模型5.运动会中一个运动项目可以有多名运动员参加,一个运动员可以参加多个项目。则实体项目和运动员之间的联系是_。(分数:2.50)A.多对多B.一对多C.多对一D.一对一6.堆排序最坏情况下的时间复杂度为_。 AO(n 15 ) BO(nlog 2 n) C (分数:2.50)A.B.C.D.7.某二叉树中有 15 个度为 1 的结点,16 个度为 2 的结点,则该二叉树中总的结点数为_。(分数:2.50)A.32B.46C.48D.498.下面对
3、软件特点描述错误的是_。(分数:2.50)A.软件没有明显的制作过程B.软件是一种逻辑实体,不是物理实体,具有抽象性C.软件的开发、运行对计算机系统具有依赖性D.软件在使用中存在磨损、老化问题9.某系统结构图如下图所示 (分数:2.50)A.0B.1C.2D.310.设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职,其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),员工 S(员工号,姓名,性别,年龄,学历),雇佣 E(公司号,员工号,工资,工作起始时间)。其中表 C 的键为公司号,表 S 的键为员工号,则表 E 的键(码)为_。(分数:2.50)A.公司号,员工号B.员工
4、号,工资C.员工号D.公司号,员工号,工资11.下列关于 Access 索引的叙述中,正确的是_。(分数:2.50)A.建立索引可以提高查找速度,且可以对表中的记录实施唯一性限制B.建立索引不能提高查找速度,但可以对表中的记录实施唯一性限制C.建立索引可以提高查找速度,但不能对表中的记录实施唯一性限制D.建立索引不能提高查找速度,且不能对表中的记录实施唯一性限制12.关系模型中的术语“属性”对应的是 Access 数据库中的是_。(分数:2.50)A.字段B.索引C.类型D.取值范围13.要通过关系运算得到表中年龄大于 18 岁的元组,应该使用的关系运算是_。(分数:2.50)A.连接B.关系
5、C.选择D.投影14.在窗体中要显示一名学生基本信息和该学生各门课程的成绩,窗体设计时在主窗体中显示学生基本信息,在子窗体中显示学生课程的成绩,则主窗体和子窗体数据源之间的关系是_。(分数:2.50)A.一对一关系B.一对多关系C.多对一关系D.多对多关系15.如果字段“评价”的取值范围为 010,则下列关于有效性规则的选项中,错误的是_。(分数:2.50)A.=0 and =10B.评价=0 and 评价=10C.评价=0 and 评价=10D.0=评价=1016.下列字段中,可以作为主关键字的是_。(分数:2.50)A.身份证号B.姓名C.班级D.专业17.如果一个字段的值为空值,则含义是
6、_。(分数:2.50)A.字段的值为 0B.字段的值为空格C.字段的值为空串D.字段目前还没有值18.下列与主关键字相关的概念中,错误的是_。(分数:2.50)A.作为主关键字的字段中允许出 Null 值B.作为主关键宇的字段中不允许出现重复值C.可以使用自动编号作为主关键字D.可用多个字段组合作为主关键字19.在显示查询结果时,若将数据表中的“name”字段名显示为“姓名”,应进行的相关设置是_。(分数:2.50)A.在查询设计视图的“字段”行中输入“姓名”B.在查询设计视图的“显示”行中输入“姓名”C.在查询设计视图的“字段”行中输入“姓名:name”D.在查询设计视图的“显示”行中输入“
7、姓名:name”20.要在设计视图中创建一个查询,查找平均分在 85 分以上的男生,并显示姓名、性别和平均分,正确设置查询条件的方法是_。(分数:2.50)A.在姓名的“条件”单元格中输入:平均分=85 Or 性别=“男“B.在姓名的“条件”单元格中输入:平均分=85 And 性别=“男“C.在平均分的“条件”单元格中输入:=85;在性别的“条件”单元格中输入:“男“D.在平均分的“条件”单元格中输入:平均分=85;在性别的“条件”单元格中输入:性别=“男“21.在 Access 数据库中要删除表中的一个字段,可使用的 SQL,命令是_。(分数:2.50)A.Delect TableB.Dro
8、p TableC.Alter TableD.Select Table22.在显示查询结果时,若要将数据表中的“date”字段名显示为“日期”,则应进行的相关设置是_。(分数:2.50)A.在查询设计视图的“字段”行中输入“日期”B.在查询设计视图的“显示”行中输入“日期”C.在查询设计视图的“字段”行中输入“日期:date”D.在查询设计视图的“显示”行中输入“日期:date”23.要在设计视图中创建查询,查找平均分在 85 分以上的女生,并显示姓名和平均分,正确设置查询条件的方法是_。(分数:2.50)A.在姓名的“条件”单元格中输入:平均分=85 Or 性别=“女“B.在姓名的“条件”单元
9、格中输入:平均分=85 And 性别=“女“C.在平均分的“条件”单元格中输入:=85;在性别的“条件”单元格中输入:“女“D.在平均分的“条件”单元格中输入:平均分=85;在性别的“条件”单元格中输入:性别=“女“24.在 Access 数据库中要修改一个表的结构,可使用的 SQL 命令是_。(分数:2.50)A.Create TableB.Create IndexC.Alter TableD.Alter Index25.如果要批量更改数据表中的某个值,可以使用的查询是_。(分数:2.50)A.参数查询B.更新查询C.追加查询D.选择查询26.在“学生”报表中有一文本框控件,其控件来源属性设
10、置为“=count(*)”,则正确的叙述是_。(分数:2.50)A.处于不同分组级别的节中,计算结果不同B.文本控件的值为报表记录源的记录总数C.可将其放在页面页脚以显示当前页显示的学生数D.只能存在于分组报表中27.为简化输入,可事先将“报考专业”的全部可能输入存入一个表中,在设计窗体时,则“报考专业”对应的控件可以是_。(分数:2.50)A.组合框或列表框控件B.复选框控件C.切换按钮控件D.文本框控件28.可以在窗体中进行数据输入的控件是_。(分数:2.50)A.标签控件B.文本框控件C.命令按钮控件D.图像控件29.在报表中,若文本框控件的“控件来源”属性设置为:=page y End
11、 Sub 打开窗体运行后,如果单击按钮,则在立即窗口上显示的内容是_。(分数:2.50)A.10 5B.10 40C.20 5D.20 4034.若数据库中有表 STUD,则下列函数实现的功能是_。 Function DropPrimaryKey() Dim strSQL As String strSQL=“ALTER TABLE STUD Drop CONSTRAINT PRIMARY_KEY“ CurrentProject.Connection.Execute strSQL End Function(分数:2.50)A.为关系 STUD 中设置主关键字B.取消关系 STUD 中的主关键字C
12、.为关系 STUD 添加索引D.取消关系 STUD 的全部索引35.下列子过程实现对“教师表”中的基本工资涨 10%的操作。 Sub GongZi() 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 en=CurrentProject.Connection strSQL=“Select 基本工资 from 教师表 “ rs.Open strSQL, cn, adOpenDynam
13、ie, adLockOptimisfc, adCmdText“ Set fd=rs.Fields(“基本工资“) Do While Not rs.EOF rs.Update rs.MoveNext Loop rs.Close cn.Close Set rs=Nothing Set cn=Nothing End Sub 程序空白处 应该填写的语句是_。(分数:2.50)A.fd=fd*1.1B.rs=rs*1.1C.基本工资=基本工资*1.1D.rs.fd=rs.fd*1.136.已知事件对应的程序代码如下: Private Sub Command0_Click() Dim J As Integ
14、er J=100 Call GetData(J+5) MsgBox J End Sub Private Sub GetData(ByRef f As Integer) f=f+120 End Sub 则程序的输出是_。(分数:2.50)A.100B.120C.125D.22537.下列选项中,与 VBA 语句:Dim New%, sum!等价的是_。(分数:2.50)A.Dim New As Integer,sum As SingleB.Dim New As Integer,sum As DoubleC.Dim New As Double,sum As SingleD.Dim New As D
15、ouble,sum As Integer38.VBA 中要进行读文件操作,应使用的命令是_。(分数:2.50)A.InputB.ReadC.GetD.Fgets39.“用户表”中包含 4 个字段:用户名(文本,主关键字),密码(文本),登录次数(数字),最近登录时间(日期/时间)。在“登录界面”的窗体中有两个名为 tUser 和 tPassword 的文本框,一个登录按钮Command0。进入登录界面后,用户输入用户名和密码,单击登录按钮后,程序查找“用户表”。如果用户名和密码全部正确,则登录次数加 1,显示上次的登录时间,并记录本次登录的当前日期和时间;否则,显示出错提示信息。为完成上述功能
16、,在程序中空白处应填入的语句为_。 Private Sub Command0_Click() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim fd1 As ADODB.Field Dim fd2 As ADODB.Field Dim strSQL As String Set cn=CurrentProject.Connection strSQL=“Select 登录次数, 最近登录时间 From 用户表 Where 用户名=“ y End Sub 打开窗体运行后,如果单击按钮,则在立即窗口上显示的内容是_。(分数
17、:2.50)A.10 5B.10 40C.20 5D.20 40 解析:解析 根据题意,用 Function 声明一个函数 f,带有参数 x。然后用 Sub 声明一个过程Command1_Click,在过程中声明了一个 Integer 变量 y,和一个 static 变量 x,为 x 赋值为 10,为 y 赋值为 5。调用函数 f(x)赋值给 y,在窗口显示 x 和 y 的值。因为 x 是静态变量,程序编译时会为静态变量开辟单独的内存空间;当执行语句 y=f(x)时,调用函数 Function f(x As Integer),实现静态变量的 x按照默认传地址的方式传给函数 f 的变量 x,即静
18、态变量 x 和函数 f 的变量 x 共用同一个地址;因此当函数 f 的变量 x 被赋值 20,由于共用地址,所以静态变量 x 的值也为 20,则 Debug.Print x 的值为 20。在f(x)函数中,为 f 赋值为 x*y=20*2=40,因此 y 的值为 40。因此选择 D 选项。34.若数据库中有表 STUD,则下列函数实现的功能是_。 Function DropPrimaryKey() Dim strSQL As String strSQL=“ALTER TABLE STUD Drop CONSTRAINT PRIMARY_KEY“ CurrentProject.Connectio
19、n.Execute strSQL End Function(分数:2.50)A.为关系 STUD 中设置主关键字B.取消关系 STUD 中的主关键字 C.为关系 STUD 添加索引D.取消关系 STUD 的全部索引解析:解析 根据题意,用 Function 定义了一个自定义函数,函数名为:DropPrimaryKey。在函数DropPrimaryKey 中定义了一个 strSQL 的 Sql 语句,该 Sql 语句中使用 Alter 语句修改表 STUD 的表结构。其中,“DropConstraint primary_key”表示取消表 STUD 中的主关键字。因此选择 B 选项。35.下列子
20、过程实现对“教师表”中的基本工资涨 10%的操作。 Sub GongZi() 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 en=CurrentProject.Connection strSQL=“Select 基本工资 from 教师表 “ rs.Open strSQL, cn, adOpenDynamie, adLockOptimisfc, adCmdText“ Set f
21、d=rs.Fields(“基本工资“) Do While Not rs.EOF rs.Update rs.MoveNext Loop rs.Close cn.Close Set rs=Nothing Set cn=Nothing End Sub 程序空白处 应该填写的语句是_。(分数:2.50)A.fd=fd*1.1 B.rs=rs*1.1C.基本工资=基本工资*1.1D.rs.fd=rs.fd*1.1解析:解析 根据题意,要实现“教师表”中的基本工资涨 10%,只要把基本工资取出来,再乘以 1.1,然后写回数据库即可。SQL 语句 strSQL 将“教师表”中的“基本工资”字段查询出来放在
22、rs 集合中并将字段值赋给 fd 变量。通过 Do While 循环操作将 rs 结果集中的所有元素遍历一边,并更新 rs 结果集。因此程序空白处应填入“fd*1.1”,其后的 rs.Update 即可将更新后的数据保存到数据库。因此选择 A 选项。36.已知事件对应的程序代码如下: Private Sub Command0_Click() Dim J As Integer J=100 Call GetData(J+5) MsgBox J End Sub Private Sub GetData(ByRef f As Integer) f=f+120 End Sub 则程序的输出是_。(分数:2
23、.50)A.100 B.120C.125D.225解析:解析 根据题意,程序代码中用 Sub 定义了 2 个过程:Command0_Click()和 GetData()。其中GetData 的功能是将参数 f 的值增加 120 后再赋给 f,且 f 为 ByRef 类型(即按地址传递)的参数,可将参数在过程中的改变传递到过程外。在过程 Command0_Click 中定义整型数据 J=100,并将 J+5 作为 GetData的参数,然后调用 GetData 过程。此时在 GetData 过程中的形参为 105,经 GetData 过程处理后增加120,变成 225。但是最后输出的是变量 J,
24、而作为 GetData 参数的 J+5 是表达式,而 J 的值在整个过程中并没有改变,还是 100。因此选择 A 选项。37.下列选项中,与 VBA 语句:Dim New%, sum!等价的是_。(分数:2.50)A.Dim New As Integer,sum As Single B.Dim New As Integer,sum As DoubleC.Dim New As Double,sum As SingleD.Dim New As Double,sum As Integer解析:解析 题中 VBA 语句:Dim New%,sum!的功能是定义一个整数 New 和一个单精度数 sum。在
25、 VBA数据类型中,符号“%”表示整数,符号“!”表示单精度数,符号“”表示货币,符号“$”表示字符串。因此与之等价的声明语句为:Dim New As Integer,sum As Single。故选择 A 选项。38.VBA 中要进行读文件操作,应使用的命令是_。(分数:2.50)A.Input B.ReadC.GetD.Fgets解析:解析 Input 命令语法:Input #filenumber,varlist,功能:从已打开的顺序文件中读出数据并将数据指定给变量。Get 命令语法:Get#filenumber,recnumber,varname,功能:将一个已打开的磁盘文件读入一个变量
26、中,只能读有限个字符,因此不符合题意。VBA 中没有 Read 和 Fgets 命令。因此选择 A 选项。39.“用户表”中包含 4 个字段:用户名(文本,主关键字),密码(文本),登录次数(数字),最近登录时间(日期/时间)。在“登录界面”的窗体中有两个名为 tUser 和 tPassword 的文本框,一个登录按钮Command0。进入登录界面后,用户输入用户名和密码,单击登录按钮后,程序查找“用户表”。如果用户名和密码全部正确,则登录次数加 1,显示上次的登录时间,并记录本次登录的当前日期和时间;否则,显示出错提示信息。为完成上述功能,在程序中空白处应填入的语句为_。 Private S
27、ub Command0_Click() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim fd1 As ADODB.Field Dim fd2 As ADODB.Field Dim strSQL As String Set cn=CurrentProject.Connection strSQL=“Select 登录次数, 最近登录时间 From 用户表 Where 用户名=“&Me! tUser &“And 密码=“& Me! tPassword &“ rs.Open strSQL, cn, adOpenDynam
28、ic, adLockOptimistic, adCmdText Set fd1=rs.Fields(“登录次数“) Set fd2=rs.Fields(“最近登录时间“) If Not rs.EOF Then fd1=fd1+1 MsgBox “用户已经登录:“ & fd1 & “次“ & Chr(13) & Chr(13) & “上次登录时间:“ & fd2 fd2=Now() Else MsgBox“用户名或密码错误。“ End If rs.Close cn.Close Set rs=Nothing Set cn=Nothing End Sub(分数:2.50)A.rs.Update B.
29、UpdateC.rs.ChangeD.Change解析:解析 根据题意,每次登录都要检查用户名和密码,检查正确后才能登录成功,然后登录次数(fd1)加 1,最近登录时间(fd2)更新为本次登录的日期和时间。在程序空白处,fd1 和 fd2 都已经完成更新,则所填代码句的功能应该是将 fd1 和 fd2 更新后的数据更新到数据库中,即更新结果集 rs 的内容,更新结果集可用命令 rs.Update。因此选择 A 选项。40.以下程序的功能是求“x3-5”表达式的值,其中 X 的值由文本框 Text0 输入,运算的结果由文本框Text3 输出。 Private Sub Command0_Click() Dim x As Integer Dim y As Long Me.Text0=x y=x3-5 Me.Text3=y End Sub 上述程序有错误。错误的语句是_。(分数:2.50)A.Dim x As IntegerB.Me.Text0=x C.Me.Text3=yD.Dim y As Long解析:解析 根据题意,程序功能是求“x3-5”表达式的值,x 的值由文本框 Text0 输入,则在程序中应该将 Text0 的值赋给变量 x,而程序中“Me.Text0=x”的功能却是将 x 的值赋给 Text0,不符合题意。因此选择 B 选项。