机密★启用前
2005 年 4 月全国计算机等级考试二级笔试试卷
Visual FoxPro 数据库程序设计
27
注意事项
一、考生应严格遵守考场规则,得到监考人员指令后方可作答。
二、考生拿到试卷后应首先将自己的姓名、准考证号等内容涂写在答题卡的相应位置上。
三、选择题答案必须用铅笔填涂在答题卡的相应位置上,填空题的答案必须用蓝、黑色钢笔或圆珠笔写在答题卡的相应位置上,答案写在试卷上无效。
四、注意字迹清楚,保持卷面整洁。
五、考试结束将试卷和答题卡放在桌上,不得带走。待监考人员收毕清点后,方可离场。
* * * 版权所有,任何单位或个人不得保留、复制和出版,违者必究 * * *
教育部考试中心
二 00 五年二月制
二级Visual FoxPro数据库程序设计试卷 第1页 (共6页)
全国计算机等级考试二级Visual FoxPro数据库设计
2005年4月笔试试卷
(考试时间90分钟,满分100分)
一、选择题(每小题 2分,共 70分)
(1)数据的存储结构是指( )。
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构在计算机中的表示
(2)下列关于栈的描述中错误的是( )。
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是
( )。
A)冒泡排序为n/2
B)冒泡排序为n
C)快速排序为n
D)快速排序为n(n-1)/2
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。
A)log2n B)n/2
C)n D)n+1
(5)下列对于线性链表的描述中正确的是( )。
A)存储空间不一定连续,且各元素的存储顺序是任意的
B)存储空间不一定连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
(6)下列对于软件测试的描述中正确的是( )。
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
(7)为了使模块尽可能独立,要求( )。
A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
(8)下列描述中正确的是( )。
A)程序就是软件
二级Visual FoxPro数据库程序设计试卷 第2页 (共6页)
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指( )。
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
(10)用树形结构表示实体之间联系的模型是( )。
A)关系模型
B)网状模型
C)层次模型
D)以上三个都是
(11)在创建数据库结构时,给该表指定了主索引,这属于数据完整性中的( )。
A)参照完整性
B)实体完整性
C)域完整性
D)用户定义完整性
(12)在创建数据库结构时,为该表中一些字段建立普通索引,其目的是( )。
A)改变表中记录的物理顺序
B)为了对表进行实体完整性约束
C)加快数据库表的更新速度
D)加快数据库表的查询速度
(13)数据库系统中对数据库进行管理的核心软件是( )。
A)DBMS B)DB
C)OS D)DBS
(14)设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表( )。
A)在父表连接字段上建立普通索引,在子表连接字段上建立主索引
B)在父表连接字段上建立主索引,在子表连接字段上建立普通索引
C)在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引
D)在父表和子表的连接字段上都要建立主索引
(15)关系运算中的选择运算是( )。
A)从关系中找出满足给定条件的元组的操作
B)从关系中选择若干个属性组成新的关系的操作
C)从关系中选择满足给定条件的属性的操作
D)A和B都对
(16)在指定字段或表达式中不允许出现重复值的索引是( )。
A)惟一索引
B)惟一索引和候选索引
C)惟一索引和主索引
D)主索引和候选索引
(17)在Visual FoxPro中,下列关于删除记录的描述中正确的是( )。
A)SQL的DELETE命令在删除数据库表中的记录之前,不需要用USE命令打开表
二级Visual FoxPro数据库程序设计试卷 第3页 (共6页)
B)SQL的DELETE命令和传统Visual FoxPro的DELETE命令在删除数据库表中的记录之前,都需要用USE命令打开表
C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统Visual FoxPro
的DELETE命令只能逻辑删除数据库表中的记录
D)传统Visual FoxPro的DELETE命令在删除数据库表中的记录之前不需要用USE命令打开表
(18)在Visual FoxPro中,如果希望跳出SCAN … ENDSCAN循环体、执行ENDSCAN后面的语句,应使用( )。
A)LOOP语句
B)EXIT语句
C)BREAK语句
D)RETURN语句
(19)打开数据库abc的正确命令是( )。
A)OPEN DATABASE abc
B)USE abc
C)USE DATABASE abc
D)OPEN abc
(20)在Visual FoxPro中,下列关于表的描述中正确的是( )。
A)在数据库表和自由表中,都能给字段定义有效性规则和默认值
B)在自由表中,能给表中的字段定义有效性规则和默认值
C)在数据库表中,能给表中的字段定义有效性规则和默认值
D)在数据库表和自由表中,都不能给字段定义有效性规则和默性值
(21)Visual FoxPro的“参照完整性”中“插入规则”包括的选择是( )。
A)级联和忽略
B)级联和删除
C)级联和限制
D)限制和忽略
(22)在Visual FoxPro中,下列关于查询和视图的描述中正确的是( )。
A)查询是一个预先定义好的SQL SELECT语句文件
B)视图是一个预先定义好的SQL SELECT语句文件
C)查询和视图是同一种文件,只是名称不同
D)查询和视图都是一个存储数据的表
(23)在Visual FoxPro中,下列关于视图描述中错误的是( )。
A)通过视图可以对表进行查询
B)通过视图可以对表进行更新
C)视图是一个虚表
D)视图就是一种查询
(24)使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是( )。
A)DELETE FOR AGE>30
B)DELETE FROM S WHERE AGE>30
C)DELETE S FOR AGE>30
D)DELETE S WHERE AGE>30
(25)在Visual FoxPro中,使用LOCATE FOR命令按条件查找记录,当查找到满足条件的第一条记录后,如果还需要查找下一条满足条件的记录,应使用( )。
二级Visual FoxPro数据库程序设计试卷 第4页 (共6页)
A)再次使用LOCATE FOR命令
B)SKIP命令
C)CONTINUE命令
D)GO命令
(26)在Visual FoxPro中,删除数据库表S的SQL命令是( )。
A)DROP TABLE S
B)DELETE TABLE S
C)DELETE TABLE S.DBF
D)ERASE TABLE S
(27)下列表达式中,表达式返回结果为.F.的是( )。
A)AT(″A″,″BCD″) B)″[信息]″$″管理信息系统″
C)ISNULL(.NULL.) D)SUBSTR(″计算机技术″,3,2)
(28)使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号
(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、
18,正确命令是( )。
A)APPEND INTO S(SNO,SN,SEX,AGE) VALUES(′0401′,′王芳′,′女′,18)
B)APPEND S VALUES(′0401′,′王芳′,18,′女′)
C)INSERT INTO S(SNO,SN,SEX,AGE)VALUES(′0401′,′王芳′,′女′,18)
D)INSERT S VALUES(′0401′,′王芳′,18,′女′)
(29)假设某个表单中有一个命令按钮cmdClose,为了实现当用户单击此按钮时能够关闭该表单的功能,应在该按钮的Click事件中写入语句( )。
A)Thisform.Close B)Thisform.Erase
C)Thisform.Release D)Thisform.Return
(30)在SQL的SELECT查询结果中,消除重复记录的方法是( )。
A)通过指定主关键字 B)通过指定惟一索引
C)使用DISTINCT子句 D)使用HAVING子句
(31)在Visual FoxPro中,以下关于SQL的SELECT语句的描述中错误的是( )。
A)SELECT子句中可以包含表中的列和表达式
B)SELECT子句中可以使用别名
C)SELECT子句规定了结果集中的列顺序
D)SELECT子句中列的顺序应该与表中列的顺序一致
(32)下列关于SQL的HAVING子句的描述中错误的是( )。
A)HAVING子句必须与GROUP BY子句同时使用
B)HAVING子句与GROUP BY子句无关
C)使用WHERE子句的同时可以使用HAVING子句
D)使用HAVING子句的作用是限定分组的条件
(33)在Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,则当删除父表中的记录时,系统反应是( )。
A)不做参照完整性检查
B)不准删除父表中的记录
C)自动删除子表中所有相关的记录
D)若子表中有相关记录,则禁止删除父表中记录
(34)~(35)题使用如下三个数据库表,
学生表:S(学号,姓名,性别,出生日期,院系)
二级Visual FoxPro数据库程序设计试卷 第5页 (共6页)
课程表:C(课程号,课程名,学时)
选课成绩表:SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
(34)用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。
A)SELECT 学号,姓名 FROM S WHERE NOT EXISTS;
(SELECT *FROM SC WHERE SC.学号=S.学号 AND 成绩<85)
B)SELECT 学号,姓名 FROM S WHERE NOT EXISTS;
(SELECT *FROM SC WHERE SC.学号=S.学号 AND 成绩>=85)
C)SELECT 学号,姓名 FROM S,SC
WHERE S.学号=SC.学号 AND 成绩>=85
D)SELECT 学号,姓名 FROM S,SC
WHERE S.学号=SC.学号 AND ALL 成绩>=85
(35)用SQL语句检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,
并按平均成绩降序排序,正确的命令是( )。
A)SELECT S.学号,姓名,平均成绩FROM S,SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 平均成绩 DESC
B)SELECT 学号,姓名,AVG(成绩)FROM S,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY 学号 ORDER BY 3 DESC
C)SELECT S.学号,姓名(成绩)平均成绩FROM S,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY S.学号 ORDER BY 平均成绩 DESC
D)SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,.SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 3 DESC
二、填空题(每空 2分,共 30分)
(1)某二叉树中度为2的结点有18个,则该二叉树中有 【1】 个叶子结点。
(2)在面向对象方法中,类的实例称为 【2】 。
(3)诊断和改正程序中错误的工作通常称为 【3】 。
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为 【4】 。
(5)问题处理方案的正确而完整的描述称为 【5】 。
(6)在奥运会游泳比赛中,一个游泳运动员可以参加多项比赛,一个游泳比赛项目可以有多个运动员参加,游泳运动员与游泳比赛项目两个实体之间的联系是 【6】 联系。
(7)执行命令A=2005/4/2之后,内存变量A的数据类型是 【7】 型。
(8)下列程序显示的结果是 【8】 。
s=1
i=0
do while i<8
s=s+i
i=i+2
enddo
二级Visual FoxPro数据库程序设计试卷 第6页 (共6页)
s
(9)在Visual FoxPro中,可以在表设计器中为字段设置默认值的表是 【9】 表。
(10)Visual FoxPro中数据库文件的扩展名(后缀)是 【10】 。
(11)~(13)题使用如下三个数据库表,
金牌榜.dbf:国家代码 C(3),金牌数I,银牌数I,铜牌数I
获奖牌情况.dbf:国家代码C(3),运动员名称C(20),项目名称C(30),名次I
国家.dbf:国家代码C(3),国家名称C(20)
“金牌榜”表中一个国家一条记录;“获奖牌情况”表中每个项目中的各个名次都有一
条记录,名次只取前3名,例如,
国家代码 运动员名称项目名称 名次
001 刘翔 男子110米栏 1
001 李小鹏 男子双杠 3
002 菲尔普斯 游泳男子200米自由泳 3
002 菲尔普斯 游泳男子400米个人混合泳1
001 郭晶晶 女子三米板跳板 1
001 李婷/孙甜甜网球女子双打 1
(11)为表“金牌榜”增加一个字段“奖牌总数”,同时为该字段设置有效性规则:奖牌总数>=0,应使用SQL语句,
ALTER TABLE 金牌榜 【11】 奖牌总数I 【12】 奖牌总数>=0。
(12)使用“获奖牌情况”和“国家”两个表查询“中国”所获金牌(名次为1)的数量,
应使用SQL语句,
SELECT COUNT(*) FROM 国家 INNER JOIN 获奖牌情况;
【13】 国家.国家代码 = 获奖牌情况.国家代码;
WHERE 国家.国家名称=″中国″ AND 名次=1
(13)将金牌榜.dbf中的新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,
应使用SQL语句,
【14】 金牌榜 【15】 奖牌总数=金牌数+银牌数+铜牌数