一、选择题(每小题1分,共40小题,共40分)
1.下列叙述中正确的是( )。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
2.下列关于线性链表的叙述中,正确的是( )。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上三种说法都不对
3.下列关于二叉树的叙述中,正确的是( )。
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。
A.学生成绩管理系统
B.C语言编辑程序
C.UNIX操作系统
D.数据库管理系统
5.某系统总体结构图如下所示:
该系统总体结构图的深度是( )。
A.7
B.6
C.3
D.2
6.程序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
7.下列关于数据库设计的叙述中,正确的是( )。
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
8.数据库系统的三级模式不包括( )。
A.概念模式
B.内模式
C.外模式
D.数据模式
9.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是( )。
A.自然连接
B.差
C.交
D.并
10.下列选项中属于面向对象设计方法主要特征的是( )。
A.继承
B.自顶向下
C.模块化
D.逐步求精
11.在创建数据库表结构时,为了同时定义实体完整性可以通过指定哪类索引来实现?( )
A.唯一索引
B.主索引
C.复合索引
D.普通索引
12.关系运算中选择某些列形成新的关系的运算是( )。
A.选择运算
B.投影运算
C.交运算
D.除运算
13.在数据库中建立索引的目的是( )。
A.节省存储空间
B.提高查询速度
C.提高查询和更新速度
D.提高更新速度
14.假设变量a的内容是“计算机软件工程师”,变量b的内容是“数据库管理员”,表达式的结果为“数据库工程师”的是( )。
A.left(b,6)-right(a,6)
B.substr(b,1,3)-substr(a,6,3)
C.A和B都是
D.A和B都不是
15.SQL查询命令的结构是SELECT…FROM…WHERE…
GROUP BY…HAVING…ORDER BY…,其中指定查询条件的短语是( )。
A.SELECT
B.FROM
C.WHERE
D.ORDER BY
16.SQL查询命令的结构是SELECT…FROM…WHERE…GROUP BY…HAVING
…ORDER BY…,其中HAVING必须配合使用的短语是( )。
A.FROM
B.GROUP BY短语
C.WHERE短语
D.ORDER BY短语
17.如果SQL查询的SELECT短语中使用TOP,则必须配合( )。
A.HAVING短语
B.GROUP BY短语
C.WHERE短语
D.ORDER BY短语
18.删除表S中字段C的SQL命令是( )。
A.ALTER TABLE s DELETE c
B.ALTER TABLE s DROP c.
C.DELETE TABLE s DELETE c
D.DELETE TABLE s DROP c
19.在Visual FoxPro中,如下描述正确的是( )。
A.对表的所有操作,都不需要使用USE命令先打开表’
B.所有SQL命令对表的所有操作都不需使用USE命令先打开表
C.部分SQL命令对表的所有操作都不需使用USE命令先打开表
D.传统的FoxPro命令对表的所有操作都不需使用USE命令先打开表
20.在Visual FoxPro中,如果希望跳出SCAN…ENDSCAN循环体外执行ENDSCAN后面的语句,应使用( )。
A.LOOP语句
B.EXIT语句 .
C.BREAK语句
D.RETURN语句
21.在Visual FoxPro中,为了使表具有更多的特性应该使用( )。
A.数据库表
B.自由表
C.数据库表或自由表
D.数据库表和自由表
22.在Visual FoxPro中,查询设计器和视图设计器很像,如下描述正确的是( )。
A.使用查询设计器创建的是一个包含SQL SELECT语句的文本文件
B.使用视图设计器创建的是一个包含SQL SELECT语句的文本文件
C.查询和视图有相同的用途
D.查询和视图实际都是一个存储数据的表
23.使用SQL语句将表s中字段price的值大于30的记录删除,正确的命令是( )。
A.DELETE FROM S FOR price>30
B.DELETE FROM sWHERE price>30
C.DELETE S FOR pricC>30
D.DELETE S WHERE pricC>30
24.在Visual FoxPro中,使用SEEK命令查找匹配的记录,当查找到匹配的第一条记录后,如果还需要查找下一条匹配的记录,通常使用命令( )。
A.GOTO
B.SKIP
C.CONTINUE
D.GO
25.假设表s中有10条记录,其中字段b小于20的记录有3条,大于等于20、并且小于等于30的记录有3条,大于30的记录有4条。执行下面的程序后,屏幕显示的结构是( )。
SET DELETE ON
DELETE FROM s WHERE b BETWEEN 20 AND 30
7 RECCOUNT()
A.10
B.7
C.0
D.3
26.正确的SQL插入命令的语法格式是( )。
A.INSERT IN…VALUES…
B.INSERT TO…VALUES…
C.INSERT INTO…VALUES…
D.INSERT…VALUES…
27.建立表单的命令是( )。
A.CREATE FORM
B.CREATE TABLE
C.NEW FORM
D.NEW TABLE
28.假设某个表单中有一个复选框(CheekBoxl)和一个命令按钮Commandl,如果要在 Commandl的Click事件代码中取得Value的值,以判断复选框起否被用户选择,正确的表达式是( )。
A.This.CheckBoxl.Value
B.ThisForm.CheekBoxl.Value
C.This.CheckBoxl.Selected
D.ThisEorm.CheckBoxl.Selected
29.为了使命令按钮在界面运行时显示“运行”,需要设置该命令按钮的哪个属性( )。
A.Text
B.Title
C.Display
D.Caption
30.在Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“级联”,当删除父表中的记录时,其结果是( )。
A.只删除父表中的记录,不影响子表
B.任何时候都拒绝删除父表中的记录 .
C.在删除父表中记录的同时自动删除子表中的所有参照记录
D.若子表中有参照记录,则禁止删除父表中记录
31.设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),删除 2002年1月1日以前签订的订单记录,正确的SQL命令是( )。
A.DELETE TABLE order WHERE签订日期
B.DELETE TABLE order WHILE签订日期
C.DELETE FROM order WHERE签订日期
D.DELETE FROM order WHILE签订日期
32.下列属于表单方法名(非事件名)的是( )。
A.Init
B.Release
C.Destroy
D.Caption
33.下列表单的哪个属性设置为真时,表单运行时将自动居中( )。
A.AutoCenter
B.AlwaysOnTop
C.ShowCenter
D.FormCenter .
34.下列关于命令DO FORM XX NAME YY LINKED的陈述中,正确的是( )。
A.产生表单对象引用变量XX,在释放变量XX时自动关闭表单
B.产生表单对象引用变量XX,在释放变量XX时并不关闭表单
C.产生表单对象引用变量YY,在释放变量YY时自动关闭表单
D.产生表单对象引用变量YY,在释放变量YY时并不关闭表单
35.表单里有一个选项按钮组,包含两个选项按钮Optionl和Option2,假设Option2没有设置Click事件代码,而Optionl以及选项按钮组和表单都设置了Click事件代码,那么当表单运行时,如果用户单击Option2,系统将( )。
A.执行表单的Click事件代码
B.执行选项按钮组的Click事件代码
C.执行Optionl的Click事件代码
D.不会有反应
36.SQL语句中,能够判断“订购日期”字段是否为空值的表达式是( )。
A.订购13期=NULL
B.订购日期=EMPTY
C.订购日期IS NULL
D.订购日期IS EMPTY
第37~40题使用如下3个表:
商店(商店号,商店名,区域名,经理姓名)
商品(商品号,商品名,单价)
销售(商店号,商品号,销售日期,销售数量)
37.查询在“北京”和“上海”区域的商店信息的正确命令是( )。
A.SELECT*FROM商店WHERE区域名=”北京”AND区域名=”上海”
B.SELECT*FR()M商店WHERE区域名=”北京”0R区域名=”上海”
C.SELECT*FROM商店WHERE区域名=”北京”AND”上海”
D.SELECT*FROM商店WHERE区域名=“北京”0R”上海”
38.查询单价最高的商品销售情况,查询结果包括商品号、商品名、销售日期、销售数量和销售金额。正确命令是( )。
A.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额
FROM商品JOIN销售ON商品.商品号一销售.商品号
wHERE单价=(SELECT MAX(单价)FROM商品)
B.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额
FROM商品JOIN销售ON商品.商品号=销售.商品号
WHERE单价=MAX(单价)
C.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额
FROM商品JOIN销售WHERE单价=(SELECT MAX(单价)FROM商品)
D.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额
FROM商品JOIN销售WHERE单价=MAX(单价)
39.查询商品单价在10到50之间,并且日销售数量高于20的商品名,单价,销售日期和销售数量,查询结果按单价降序,正确命令是( )
A.SELECT商品名,单价,销售日期,销售数量FROM商品JOIN销售
WHERE(单价BETWEEN l0 AND 50)AND销售数量>=20
ORDER BY单价DESC
B.SELECT商品名,单价,销售日期,销售数量FROM商品JOIN销售
WHERE(单价BETWEEN l0 AND 50)AND销售数量>20
C.SELECT商品名,单价,销售日期,销售数量FROM商品,销售
WHERE(单价BETWEEN l0 AND 50)AND销售数量>20
ON商品.商品号=销售.商品号ORDER BY单价
D.SELECT商品名,单价,销售日期,销售数量FROM商品,销售
WHERE(单价BETWEEN l0 AND 50)AND销售数量>20
AND商品,商品号=销售,商品号ORDER BY单价DESC
40.查询销售金额合计超过20000的商店,查询结果包括商店名和销售金额合计,正确命令是( )。
A.SELECT商店名,SUM(销售数量*单价)AS销售金额合计
ROM商店,商品,销售
WHERE销售金额总计20000
B.SELECT商店名,SUM(销售数量*单价)AS销售金额合计>20000
FR()M商店,商品,销售
WHERE商品,商品号=销售.商品号AND商店.商店号=销售.商店号
C.SELECT商店名,SUM(销售数量*单价)AS销售金额合计
FROM商店,商品,销售
WHERE商品.商品号=销售.商品号AND商店.商店号=销售.商店号
AND SUM(销售数量*单价)>20000 GROUP BY商店名
D.SELECT商店名,SUM(销售数量*单价)>20000
二、基本操作题(共18分)
(1)在考生文件夹下新建一个名为“学生管理”的项目。
(2)将“学生”数据库加入到新建的项目中。
(3)将“教师”表从“学生”数据库中移除,使其成为自由表。
(4)通过“学号”字段为“学生”和“选课”表建立永久联系(如有必要请先建立相关索引)。
三、简单应用题(共24分)
(1)修改并执行程序“temp”。该程序的功能是根据“教师表”和“课程表”计算讲授“数据结构”这门课程,并且“工资”大于等于4000的教师人数。注意,只能修改标有错误的语句行,不能修改其他语句。
(2)新建“学校”数据库,在数据库里使用视图设计器建立视图“teacher_v”,该视图是根据“教师表”和“学院表”建立的,视图中的字段项包括“姓名”“工资”和“系名”,并且视图中只包括“工资”大于等于4 000的记录,视图中的记录先按“工资”降序排列,若“工资”相同再按“系名”升序排列。
四、综合应用题(共18分)
建立满足如下要求的应用并运行,所有控件的属性必须在表单设计器的属性窗口中设置。
(1)建立一个文件名和表单名均为“myform”的表单文件,其中包含两个表格控件,第一个表格控件名称是“grdl”,用于显示表“customer”中的记录,第二个表格控件名称是“grd2”,用于显示与表“customer”中当前记录对应的“order”表中的记录。要求两个表格尺寸相同、左右布局、顶边对齐。
(2)建立一个菜单“mymenu”,该菜单只有一个“退出”菜单项,该菜单项对应于一个过程,其中含有两条语句,第一条语句是关闭表单“myform”,第二条语句是将菜单恢复为默认的系统菜单。
(3)在表单“myform”的Load事件中执行生成的菜单程序“mymenu.mpr”。
注意:程序完成后要运行所有功能。
参考答案及专家详解
一、选择题
1.D。【解析】程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时是要考虑到数据结构的设计,但是不仅仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度等方面。所以答案选择D。
2.C。【解析】线性链表中,各个数据节点的存储空间可以不连续,其存储顺序与逻辑顺序也可以不一致,所以A和B选项错误。线性链表在插入和删除数据时只需要修改指针的指向即可,不需要移动表中的元素。
3.B。【解析】叶子结点和度数为2的结点之间的关系为:叶子结点的个数一度数为2的结点个数+1。
4.B。【解析】应用软件(application software)是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。所以答案选择B。
5.C。【解析】由题可知,要计算结构图的深度为3。
6.D。【解析】程序调试的主要任务是改正程序中的错误,而软件测试是发现错误。
7.A。【解析】在数据库设计时必须在需求分析阶段建立数据字典,确定数据库中所需要的数据。
8.D。【解析】数据库系统三种模式为:内模式、外模式和概念模式,所以答案选择D。
9.B。【解析】关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作。
10.A。【解析】面向对象程序设计的主要特征就是继承,所以答案选择A。
11.C。【解析】在建立表时同时要定义试题完整性约束,可在父表中建立之,所以能在子表中建立普通索引。所以答案为C,复合索引。
12.B。【解析】此题考察投影运算的定义。在关系运算中选择某些列形成新的关系的运算是投影.运算。
13.C。【解析】索引是将具有检索意义的事项按照一定方式有序编排起来,以供检索,在数据框中使用索引可大大提高数据库的性能,如查询、更新等。
14.A。【解析】left函数是返回表达武从左侧起指定的长度的字符串,其中一个汉字占两个字节,所以A选项正确。Substr是指返回字符串表达式从右侧起指定长度的字符串,所以B选项错误,所以答案选择A。
15.C。【解析】在SQL语句中WHERE语句是指定查询条件的语句。
16.B。【解析】在SQL语句中先使用GROUP BY短语进行分组,再使用HAVING语句。
17.D。【解析】TOP是指记录返回行的首记录,当返回后需要使用ORDER BY进行排序。
18.B。【解析】删除表中的字段的格式为ALTER TABLE tablename DROP filename。
19.c。【解析】当需要显示或者修改表文件的结构时可使用USE命令打开表,其他情况不需要使用USE打开,所以答案为C。
20.B。【解析】在Visual FoxPro中,跳出SCAN…ENDSCAN语句可使用EXIT语句。
21.A。【解析】在Visual FoxPro中使用数据库表可对表进行修改等,同时也拥有数据库的特性。
22.A。【解析】一般设计一个查询总要反复使用,查询是以扩展名为QPR的文件保存在磁盘上的,这是一个文本文件,它的主体是SQl.SELECT语句,另外还有和输出定向相关的语句。
23.C。【解析】删除表的字段的记录的格式为DELETE[FOR lExpreessionl]。
24.B。【解析】能够继续查找匹配记录的选项只有B和C,CONTINU是与LOCAL进行匹配使用,所以答案选择B。
25.D。【解析]BETWEEN 20 AND 30,是指记录在20和30之间的记录个数。
26.C。【解析】SQL语句插入数据的格式为INSERT INTO[(fnamel)[,fname2,…]]VALUES[eExpressionl[,eExpression2…]]。
27.A。【解析】创建表单的命令为CREATE FORM。
28.B。【解析】如果要取得复选框的值命令为Thisform.CheekBoxl,而要求判断复选框是否被用户选择则要使用复选框中的Value属性,所以答案为B。
29.D。【解析]Caption属性是用来控制显示的。其中的name属性是用来控制计算机内部名称的值。
30.C。【解析】选择级联是指用新的连接字段值自动修改子表中的所有相关记录,当删除父表时,子表中的所有的参照记录都会被删除。
31.C。【解析】在SQL语句中删除表中记录的命令的基本格式为:DELETE FROMWHERE。
32.B。【解析】Init和Destroy属于事件,Caption是属性,Release是方法。
33.A。【解析】Autocenter指定表单在初始化时是否自动在Visual FoxPro主窗口内居中显示,AlwaysOnTop指定表单是否总是位于其他打开窗口之上。
34.C。【解析】NAME子句用于在系统中建立指定名字的变量,并使它指向表单对象。而LINKED关键字表示表单对象将随指向它的变量的清除而关闭。
35.B。【解析】在选项按钮组中,如果设置了选项按钮组的Click事件,而没有设置选项按钮的Click事件,当单击选项按钮时,则会执行选项按钮组的Click事件。
36.C。【解析】在Visual FoxPro中判断是否为空的表达式为IS NULL,所以答案为C。
37.B。【解析】本题是查询北京和上海的商店信息,AND表示既在北京又在上海,OR表示在北京或者在上海,所以使用OR,根据SQL语句的书写格式B选项正确,
38.A。【解析】本题中要查看价格最高的商品的销售情况,先在商品表中选择最高单价SELECT MAX(单价)FROM商品。然后将商品表和销售表进行连接,选择出销售情况。具体语句为:SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额FROM商品JOIN销售0N商品.商品号=销售.商品号WHERE单价=(SELECT MAX(单价)FROM商品)。
39.D。【解析】根据题意,A选项中使用了JOIN但是少了ON语句所以错误;B选项中不仅没有使用ON语句同时也没有使用降序排列,所以B选项错误;C选项中没有使用降序排列;D选项根据题意进行了查询并将查询结果按照降序进行排列,所以正确。
40.D。【解析】根据题意可知,A选项中WHERE语句中的条件错误;B选项中AS是代表为(销售数量*单价)取的别名,不能使用条件,因此B选项错误;C选项中的GROUP BY没语法错误,但没有HAVING语句;D选项正确
二、基本操作题
【考点指引】本题考查的是数据库中项目、自由表和关系的新建。
(1)【操作步骤】 .
选择【文件】→【新建】命令,选择“项目”,单击“新建文件”按钮,输入项目名称“学生管理”后单击“保存”按钮。
(2)【操作步骤】
在项目管理器中选择“数据”选项卡,然后选择列表框中的“数据库”,单击“添加”命令按钮,在“打开”对话框中选择数据库名“学生”,单击“确定”按钮将数据库“图书借阅”添加到新建的项目“学生管理”中。
(3)【操作步骤】
①在数据库设计器中,选择表“教师”,单击右键,在弹出的快捷菜单中选择“删除”命令,单击“移去”按钮,选择“是(Y)”将表“教师”从“学生”数据库中移除。
②选择【数据库】→【清理数据库】命令清理数据库。
(4)【操作步骤】
在数据库设计器中,将“学生”表中“索引”下面的“学号”主索引字段拖拽到“选课”表中“索引,,下面的“学号”索引字段上,建立两个表之间的永久性联系。
三、简单应用题
【考点指引】本题考查的是使用查询设计器未设计视母和SOL查询语句。
(1)【操作步骤】
选择【文件】→【打开】命令,打开程序文件“temp.prg”,修改程序代码,改正以后的代码如下:
SELECT课程号FROM课程表WHERE课程名="数据结构"INTO ARRAY a
USE教师表
STORE O TO sum
SCAN FOR课程号=a AND工资>=4000
sum=sum+1
ENDSCAN
?sum
运行程序文件。
(2)【操作步骤】
①选择【文件】→【打开】命令,打开“学校”数据库,右击数据库设计器空白处,选择“新建本地视图”,选择“新建视图”,弹出“添加表或视图”对话框,将“教师表”“学院表”分别添加到数据库设计器中,关闭”添加表或视图”对话框。
②在视图设计器的“字段”选项卡中,将“可用字段”列表框中的字段“教师表.姓名”“教师表.工资”“学院表.系名”添加到右边的“选定字段”列表框中。
③在“筛选”选项卡中,选项“字段名称”“条件”“实例”分别选择“教师表.工资”“>一”“4000”。
④在“排序依据”选项卡中,将“选定字段”列表框中的“教师表.工资”“学院表.系名”分别添加到右边的“排序条件”中,在“排序选项”中分别选择“降序”“升序”。
⑤关闭视图设计器并保存视图为“teacher v”四、综合应用题
【考点指引】本题考查的是表单控件的使用。
(1)【操作步骤】
①选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,在表单属性窗口中将Name属性值修改为“myform”;表单中添加两个表格控件Gridl、Grid2,将它们的Name属性值分别修改为“grdl”和“grd2”。
②右击表单设计器的空白处,打开数据环境设计器,将“costumer”表和“order”表加入到数据库环境设计器。
(D将表格控件的RecordSource属性值分别修改为“customer”和“order”,Width属性值都修改为“l30”,Height属性值同时修改为“180”。
(2)【操作步骤】
①右击表单设计器的空白处,在打开的对话框中输入“do mymenu.mpr”。
②选择【文件】一【新建】命令,选择“菜单”,单击“新建文件”按钮,点击“菜单”,打开菜单设计器,在菜单设计器中填“退出”,结果项选择“过程”,点击“创建”,在弹出的对话框中输入:
mymenu.realease
set sysmenu to defa
(3)【操作步骤】
①选择工具栏的菜单选项,选择“生成”。
②选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名“mymenu”,保存在考生文件夹下,然后运行表单。