计算机二级Access笔试试题分析.docx
《计算机二级Access笔试试题分析.docx》由会员分享,可在线阅读,更多相关《计算机二级Access笔试试题分析.docx(21页珍藏版)》请在冰豆网上搜索。
![计算机二级Access笔试试题分析.docx](https://file1.bdocx.com/fileroot1/2023-4/20/7ca59ba4-73f9-4243-b9e0-fe06b59f7da4/7ca59ba4-73f9-4243-b9e0-fe06b59f7da41.gif)
计算机二级Access笔试试题分析
2010年3月计算机二级Access笔试试题
第1章
数据库基础
4’
第2章
数据库和表
12’
第3章
查询
12’
第4章
窗体
6’
第5章
报表
2’
第6章
宏
2’
第7章
页
2’
第8章
模块与VBA程序设计
30’
第1章数据库基础4’
第2章数据库和表12’
第3章查询12’
第4章窗体6’
第5章报表2’
第6章宏2’
第7章页2’
第8章模块与VBA程序设计30’
(11)下列关于关系数据库中数据表的描述,正确的是
A)数据表相互之间存在联系,但用独立的文件名保存
B)数据表相互之间存在联系,是用表名表示相互间的联系
C)数据表相互之间不存在联系,完全独立
D)数据表既相对独立,又相互联系
解析:
答案为D。
一方面,表不以独立文件的方式存在,但在表对象中,以不同的单位来进行区别,同时,又通过表之间的关系来构建联系。
(12)下列对数据输入无法起到约束作用的是
A)输入掩码
B)有效性规则
C)字段名称
D)数据类型
解析:
答案为C。
字段名称的正确叫法应该是“字段标题”,它主要用于表格的显示。
(13)Access中,设置为主键的字段
A)不能设置索引
B)可设置为“有(有重复)”索引
C)系统自动设置索引
D)可设置为“无”索引
解析:
答案为C。
系统自动设置为“有(无重复)索引”。
(14)输入掩码字符“&”的含义是
A)必须输入字母或数字
B)可以选择输入字母或数字
C)必须输入一个任意的字符或一个空格
D)可以选择输入任意的字符或一个空格
解析:
答案为C。
输入掩码属性中,字符A表示必须输人字母或数字,a表示可以选择愉人字母或数字,&表示必须输入一个任意的字符或一个空格,C表示可以选择输入任意的字符或一个空格。
(15)在Access中,如果不想显示数据表中的某些字段,可以使用的命令是
A)隐藏
B)删除
C)冻结
D)筛选
解析:
答案为A。
(16)通配符“#”的含义是
A)通配任意个数的字符
B)通配任何单个字符
C)通配任意个数的数字字符
D)通配任何单个数字字符
解析:
答案为D。
通配符件可以通配任何单个数字字符,*可以通配任意个数的字符,?
可以通配任何单个字符。
(17)若要求在文本框中输入文本时达到密码“*”的显示效果,则应该设置的属性是
A)默认值
B)有效性文本
C)输入掩码
D)密码
解析:
答案为C。
没有“密码”这个属性,但是,可以先设置输入掩码,再在输入掩码中填入“密码”二字来完成这个效果(输入字符,显示为*)。
(18)假设“公司”表中有编号、名称、法人等字段,查找公司名称中有“网络”二字的公司信息,正确的命令是
A)SELECT*FROM公司FOR名称="*网络*"
B)SELECT*FROM公司FOR名称LIKE"*网络*"
C)SELECT*FROM公司WHERE名称="*网络*"
D)SELECT*FROM公司WHERE名称LIKE"*网络*"
解析:
答案为D。
不能使用等号,只能使用like。
含有“网络”二字,可以在首位,可以在中间,也可以在末尾,所以应该是“*网络*”。
(19)利用对话框提示用户输入查询条件,这样的查询属于
A)选择查询
B)参数查询
C)操作查询
D)SQL查询
解析:
答案为B。
参数查询利用对话框,提示用户输入参数,并检索符合所输参数的记录。
用户可以建立一个参数提示的单参数查询,也可以建立多个参数提示的多参数查询.
(20)在SQL查询中“GROUPBY”的含义是
A)选择行条件
B)对查询进行排序
C)选择列字段
D)对查询进行分组
解析:
答案为D。
在SQL上查询中,GROUPBY子句用于对查询进行分组,ASC和DESC分别用于查询的升序排列和降序排列。
(21)在调试VBA程序时,能自动被检查出来的错误是
A)语法错误
B)逻辑错误
C)运行错误
D)语法错误和逻辑错误
解析:
答案为A。
只能检查出语法错误,但逻辑错误是不能检查的。
例如,当输入了if和then,但如果没有endif,则会提示错误,但如果本应该是在i>10时运行循环体,但如果用了dountili>10…Loop,则循环体不会按要求运行。
(22)为窗体或报表的控件设置属性值的正确宏操作命令是
A)Set
B)SetData
C)SetValue
D)SetWarnings
解析:
答案为C。
宏操作命令SetValue的功能是为窗口、窗口数据表或报表的段、控件、属性的值进行设置。
(23)在已建窗体中有一命令按钮(名为Commandl),该按钮的单击事件对应的VBA代码为:
PrivateSubCommandl_Click()
subT.Form.RecordSource="select*from雇员"
EndSub
单击该按钮实现的功能是
A)使用select命令查找“雇员”表中的所有记录
B)使用select命令查找并显示“雇员”表中的所有记录
C)将subT窗体的数据来源设置为一个字符串
D)将subT窗体的数据来源设置为“雇员”表
解析:
答案为D。
窗体的RecordSource属于是设置窗体数据来源,而“Select*from雇员”,则是选择该表中的所有记录。
(24)在报表设计过程中,不适合添加的控件是
A)标签控件
B)图形控件
C)文本框控件
D)选项组控件
解析:
答案为D。
报表在设计中,标签、图形以及文本框都可以辅导数据或者文字、图片的输入,但选项组控件在设计过程中无法改变其值。
(25)下列关于对象“更新前”事件的叙述中,正确的是
A)在控件或记录的数据变化后发生的事件
B)在控件或记录的数据变化前发生的事件
C)当窗体或控件接收到焦点时发生的事件
D)当窗体或控件失去了焦点时发生的事件
解析:
答案为B。
(26)下列属于通知或警告用户的命令是
A)PrintOut
B)OutputTo
C)MsgBox
D)RunWarnings
解析:
答案为C。
MsgBox命令显示包含警告、提示信息或其他信息的消息框。
(27)能够实现从指定记录集里检索特定字段值的函数是
A)Nz
B)Find
C)Lookup
D)DLookup
解析:
答案为D。
DLookup函数是从指定记录集里检索特定字段的值。
它可以直接在VBA、宏、查询表达式或计算控件中使用,而且主要用于检索来自外部表(而非数据源表)字段中的数据。
(28)如果X是一个正的实数,保留两位小数、将千分位四舍五入的表达式是
A)0.01*Int(x+0.05)
B)0.01*Int(100*(X+0.005))
C)0.01*Int(x+0.005)
D)0.01*Int(100*(X+0.05))
解析:
答案为B。
需要在千分位进行四舍五入操作,则最后结果肯定是精确到百分位的。
而Int只能取整,无法取小数部分,因此,必须对转换对象进行一个先乘以一百,再除以一百的操作。
而如果想在千分位进行四舍五入,又必须对于千分位上进行加5的操作。
这样,千分位上为4和4以下的,百分位不变,而千分位上5及5以上的,百分位将被加1。
(29)在模块的声明部分使用“OptionBase1”语句,然后定义二维数组A(2to5,5),则该数组的元素个数为
A)20
B)24
C)25
D)36
解析:
答案为B。
A(2to5,5)第一个元素为A(2,0),最后一个元素是A(5,5),第一维上有2~5四种变化,而第二维上有0~5六种变化,因素元素数为4×6,为24个。
(30)由“Fori=1To9Step-3”决定的循环结构,其循环体将被执行
A)0次
B)1次
C)4次
D)5次
解析:
答案为A。
对于步长为负数且循环变量的初值又比终值小的循环,会直接退出。
根据题意执行循环结构,由步长<0,循环变皿值<终值,则循环结束退出.不执行循环体。
(31)在窗体上有一个命令按钮Commandl和一个文本框Textl,编写事件代码如下:
PrivateSubCommand1_Click()
Dimi,j,x
Fori=1To20step2
x=0
Forj=To20step3
x=x+1
Nextj
Nexti
Textl.Value=Str(x)
EndSub
打开窗体运行后,单击命令按钮,文本框中显示的结果是
A)1
B)7
C)17
D)400
解析:
答案为A。
对于外层的i循环,因为其循环体第1句就是将x置0,所以只用考虑其最后一次循环,最后一次后循环时,i的值为19。
此时,里面循环j的初值为19,终值为20,步长为3,则其循环体只运行一次,即x的值只加了一个1。
.因此,答案为1
(32)在窗体上有一个命令按钮Commandl,编写事件代码如下:
PrivateSubCommandl_Click()
DimyAsInteger
y=0
Do
y=InputBox("y=")
If(yMod10)+Int(y/10)=10ThenDebug.Printy;
LoopUntily=0
EndSub
打开窗体运行后,单击命令按钮,依次输入10、37、50、55、64、20、28、19、-19、0,立即窗口上输出的结果是
A)375564281919
B)105020
C)1050200
D)3755642819
解析:
答案为D。
doloopwhile循环是为了控制输入。
而直接输出是在Debug.Printy,即ifthen这个选择中,此题的关键在于读懂if(yMod10)+Int(y/10)=10这个条件,ymod10是取y的个位上的数。
而Int(y/10)则是相当于取y的十位上的数,满足这个条件的二位数的y值有。
19、28、37、46、55、64、73、82、91,且只能为正数。
因此,答案为3755642819。
(33)在窗体上有一个命令按钮Commandl,编写事件代码如下:
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=12:
y=32
CallProc(x,y)
Debug.Printx;y
EndSub
PublicSubProc(nAsInteger,ByValmAsInteger)
n=nMod10
m=mMod10
EndSub
打开窗体运行后,单击命令按钮,立即窗口上输出的结果是
A)232
B)123
C)22
D)1232
解析:
答案为A。
此题在于考查对传值和传址的理解。
传值为ByVal,传址为ByRef,默认如果不指定则为传址。
对于传值,子过程中值的变化不会影响调用它的这个过程,而传址则不然。
(亦可用实参形参的概念进行理解)。
34)在窗体上有一个命令按钮Commandl,编写事件代码如下:
PrivateSubCommandl_Click()
Dimd1AsDate
Dimd2AsDate
dl=#12/25/2009#
d2=#1/5/2010#
MsgBoxDateDiff(”ww”,d1,d2)
EndSub
打开窗体运行后,单击命令按钮,消息框中输出的结果是
A)1
B)2
C)10
D)11
解析:
答案为B。
此题在于理解DateDiff,这也是个比较偏的考点。
DateDiff有三个参数,第一个为差距的计算单位,第二个为时间起始点,第二个为时间终止点。
ww指单位为周,从2009年12月25日到2010年1月5日其中有两周。
(35)下列程序段的功能是实现“学生”表中“年龄”字段值加1
DimStrAsString
Str=""
Docmd.RunSQLStr
空白处应填入的程序代码是
A)年龄=年龄+1
B)Update学生Set年龄=年龄+1
C)Set年龄=年龄+1
D)Edit学生年龄=年龄+l
解析:
答案为B。
对年龄字段加1,需要使用update的SQL语句,其中格式正确的只有B。
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。
(1)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。
解析:
答案为:
ABCDEF54321
考查队列先进先出(FIFO)知识。
于是答案自然是:
ABCDEF54321。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
解析:
答案为:
ABCDEF54321
考查队列先进先出(FIFO)知识。
于是答案自然是:
ABCDEF54321。
(3)设二叉树如下:
对该二叉树进行后序遍历的结果为【3】。
解析:
答案为:
EDBGHFCA
考查二叉树遍历知识。
二叉树的遍历是指不重复地访问二叉树中的所有结点。
分为三种:
前序遍历、中序遍历、后序遍历。
此题要求后序遍历,首先访问左子树,然后右子树,最后根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后右子树,最后根结点。
后序遍历的过程也是一个递归的过程。
于是先访问BDE中E,再回D,B;访问右子树,先访问FGH中的G,再B,F,返上C,最终是根A。
(4)软件是【4】、数据和文档的集合。
解析:
答案为:
程序
考查软件的概念知识。
计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
(5)有一个学生选课的关系,其中学生的关系模式为:
学生(学号,姓名,班级,年龄),课程的关系模式为:
课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:
选课(学号,【5】,成绩)。
解析:
答案为:
课号
考查关系连接知识。
要实现学生选课,须在选课关系中含有学生信息和课程信息。
则选课表通过学号,课号与相关表建立自然连接。
(6)下图所示的窗体上有一个命令按钮(名称为Command1)和一个选项组(名称为Framel),选项组上显示“Framel”文本的标签控件名称为Labell,若将选项组上显示文本“Frame1”改为汉字“性别”,应使用的语句是【6】。
解析:
答案为Label1.Caption="性别"。
选项组控件中的文字显示,是利用标签控件来实现的,题中的Frame1对应的标签控件名称为Label1,要将这个选项组中显示的“Frame1”,则需要修改Label1的标题Caption属性。
答案为:
Label1.Caption=“性别”。
(7)在当前窗体上,若要实现将焦点移动到指定控件,应使用的宏操作命令是【7】。
解析:
答案为SetFocus。
要使焦点移到指定的控件,需要使用GoToControl,而不是网上流传的SetFocus,因为宏操作中根本就没有叫SetFocus的操作。
具体可以参考MicrosoftOfficeOnline的相关文档。
(8)使用向导创建数据访问页时,在确定分组级别步骤中最多可设置【8】个分组字段。
解析:
答案为4。
在向导中,最多可设置4个分组字段。
(9)在窗体文本框Textl中输入“456AbC”后,立即窗口上输出的结果是【9】。
PrivateSubTextl_KeyPress(KeyAsciiAsInteger)
SelectCaseDeyAscii
Case97To122
Debug.PrintUcase(Chr(KeyAscii));
Case65To90
Debug.PrintLcase(Chr(KeyAscii));
Case48To57
Debug.PrintChr(KeyAscii);
CaseElse
KeyAscii=0
EndSelect
EndSub
解析:
答案为456aBc。
KeyPress事件是当键盘按下某个键后的所执行的事件,其参数KeyAscii值为按下键所对应的ASCII值,Chr(KeyAscii(i))可以将相应的数值转换成字符,而Ucase是将小写字符转换成大写,而Lcase是将小写转换成大写。
另外,ASCII值48~57是数字0~9,65~90是字母A到Z,97~122是字母a到z。
因此,该题的答案应该是456aBc。
可参考ASCII码表。
(10)在窗体上有一个命令按钮Commandl,编写事件代码如下:
PrivateSubCommand1_Click()
Dima(10),p(3)AsInteger
k=5
Fori=1To10
a(i)=i*i
Nexti
Fori=1To3
p(i)=a(i*i)
Nexti
Fori=1To3
k=k+p(i)*2
Nexti
MsgBoxk
EndSub
打开窗体运行后,单击命令按钮,消息框中输出的结果是【10】。
解析:
答案为201。
经过第一个for循环,a(i)中a
(1)到a(10)存的分别是1到10的平方。
第二个循环后,p(i)中的p
(1)存有a
(1)的值,p
(2)中存的是a(4)的值,p(3)中存的是a(9)的值,经过最后一个循环之后,K的值应该为201
(11)下列程序的功能是找出被5、7除,余数为1的最小的5个正整数。
请在程序空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubForm_Click()
DimNcount%,n%
n=n+1
If【11】Then
Debug.Printn
Ncount=Ncount+1
EndIf
LoopUntilNcont=5
EndSub
解析:
答案为nMod5=1AndnMod7=1。
题目要求在显示出最小的五个可以同时被5和7除后余1的整数。
DoloopuntilNcount=5循环进行整体控制,n=n+1保证是最小的五个正整数。
而if控制的两个语句,一个是打印,一个是对找出的数进行计数。
因此,if的条件必定是满足要求的一条语句,要满足这个条件,必须分两方面,一是imod5=1,二是imod7=1,要同时满足,则可用and进行连接,答案为:
(imod5=1)and(imod7=1)
(12)以下程序的功能是在立即窗口中输出100到200之间所有的素数,并统计输出素数的个数。
请在程序空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubCommand2_Click()
Dimi%,j%,k%,t%‘t为统计素数的个数
DimbAsBoolean
Fori=100To200
b=True
k=2
j=Int(Sqr(i))
DoWhilek<=jAndb
IfIModk=0Then
b=【12】
EndIf
k=【13】
Loop
Ifb=TrueThen
t=t+1
Debug.Printi
EndIf
Nexti
Debug.Print"t=";t
EndSub
解析:
答案为False;k+1。
本题中,b的目的是为了控制打开debug.printi,而如果想要其不打开这个值,必须歙使得期if后的条件为假,为假的办法就是使b为false,因此,在第【12】空就应填false。
k是dowhile循环的递增变量,因此需要对其进行递增,即k=k+1。
(13)数据库中有工资表,包括“姓名”、“工资”和“职称”等字段,现要对不同职称的职工增加工资,规定教授职称增加15%,副教授职称增加10%,其他人员增加5%。
下列程序的功能是按照上述规定调整每位职工的工资,并显示所涨工资之总和。
请在空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubCommand5_Click()
DimwsAsDAO.Workspace
DimdbAsDAO.Database
DimrsAsDAO.Recordset
DimgzAsDAO.Field
DimzcAsDAO.Field
DimsumAsCurrency
DimrateAsSingle
Setdb=CurrentDb()
Setrs=db.OpenRecordset("工资表")
Setgz=rs.Fields("工资")
Setzc=rs.Fields("职称")
sum=0
DoWhileNot【14】
rs.Edit
SelectCasezc
CaseIs="教授"
rate=0.15
CaseIs="副教授"
rate=0.1
CaseElse
rate=0.05
EndSelect
sum=sum+gz*rate
gz=gz+gz*rate
【15】
rs.MoveNext
Loop
rs.Close
db.Close
Setrs=Nothing
Setdb=Nothing
MsgBox