笔试部分
一、选择题
1.在Visual FoxPro中,关于查询和视图的正确描述是( )
A.查询是一个预先定义好的SQL SELECT语句文件
B.视图是一个预先定义好的SQL SELECT语句文件
C.查询和视图是同一种文件,只是名称不同
D.查询和视图都是一个存储数据的表
【参考答案】 A
2.在Visual FoxPro中,以下关于视图描述中错误的是( )
A.通过视图可以对表进行查询 B.通过视图可以对表进行更新
C.视图是一个虚表 D.视图就是一种查询
【参考答案】 D
3.使用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
【参考答案】 B
4.在Visual FoxPro中,使用LOCATE FOR
A.再次使用LOCATE FOR
B.SKIP命令
C.CONTINUE命令
D.GO命令
【参考答案】 C
5.在Visual FoxPro中,删除数据库表S的SQL命令是( )
A.DROP TABLE S B.DELETE TABLE S C.DELETE TABLE S.DBF D.ERASE TABLE S
【参考答案】 A
6.下列表达式中,表达式返回结果为.F.的是( )
A.AT(″A″,″BCD″) B.″[信息]″$″管理信息系统″
C.ISNULL(.NULL.) D.SUBSTR(″计算机技术″,3,2)
【参考答案】 B
7. 使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确的命令是( )
A. APPEND INTO S (SNO,SN,SXE,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,'女')
【参考答案】 C
8.假设某个表单中有一个命令按钮cmdClose,为了实现当用户单击此按钮时能够关闭该表单的功能,应在该按钮的Click事件中写入语句( )
A.ThisForm.Close
B.ThisForm.Erase
C.ThisForm.Release
D.ThisForm.Return
【参考答案】 C
9.在SQL的SELECT查询结果中,消除重复记录的方法是( )
A.通过指定主关系键 B.通过指定惟一索引
C.使用DISTINCT子句 D.使用HAVING子句
【参考答案】 C
10.在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是( )
A.SELECT子句中可以包含表中的列和表达式
B.SELECT子句中可以使用别名
C.SELECT子句规定了结果集中的列顺序
D.SELECT子句中列的顺序应该与表中列的顺序一致
【参考答案】 D
.
www.59wj.com
11.下列关于SQL中HAVING子句的描述,错误的是( )
A.HAVING子句必须与GROUP BY子句同时使用
B.HAVING子句与GROUP BY子句无关
C.使用WHERE子句的同时可以使用HAVING子句
D.使用HAVING子句的作用是限定分组的条件
【参考答案】 B
12.在Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了"限制",则当删除父表中的记录时,系统反应是( )
A.不做参照完整性检查
B.不准删除父表中的记录
C.自动删除子表中所有相关的记录
D.若子表中有相关记录,则禁止删除父表中记录
【参考答案】 D
第13-14题使用如下三个数据库表:
学生表:S(学号,姓名,性别,出生日期,院系)
课程表:C(课程号,课程名,学时)
选课成绩表:SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
13. 用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
【参考答案】 A
14.用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.学号,姓名,AVG(成绩) 平均成绩 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
【参考答案】 D
15.下列叙述中正确的是( )
A.程序设计就是编制程序 B.程序的测试必须由程序员自己去完成
C.程序经调试改错后还应进行再测试 D.程序经调试改错后不必进行再测试
【参考答案】 C
16.下列数据结构中,能用二分法进行查找的是( )
A.顺序存储的有序线性表 B.线性链表 C.二叉链表 D.有序线性链表
【参考答案】 A
17.下列关于栈的描述正确的是( )
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
【参考答案】 D
18.下列叙述中正确的是( )
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
【参考答案】 D
19.下列描述中正确的是( )
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
【参考答案】 C
20.在软件设计中,不属于过程设计工具的是( )
A.PDL(过程设计语言) B.PAD图 C.N-S图 D.DFD图
【参考答案】 D
.
www.59wj.com
21.下列叙述中正确的是( )
A.软件交付使用后还需要进行维护 B.软件一旦交付使用就不需要再进行维护
C.软件交付使用后其生命周期就结束 D.软件维护是指修复程序中被破坏的指令
【参考答案】 A
22.数据库设计的根本目标是要解决( )
A.数据共享问题
B.数据安全问题
C.大量数据存储问题
D.简化数据维护
【参考答案】 A
23.设有如下关系表:
R S T
A B C A B C A B C
1 1 2 3 1 3 1 1 2
2 2 3
3 1 3
则下列操作中正确的是( )
A.T=R∩S B.T=R∪S C.T=R×S D.T=R/S
【参考答案】 B
24.数据库系统的核心是( )
A.数据模型 B.数据库管理系统 C.数据库 D.数据库管理员
【参考答案】 B
25.Visual FoxPro是一种关系型数据库管理系统,这里关系通常是指( )
A.数据库文件(dbc文件)
B.一个数据库中两个表之间有一定的关系
C.表文件(dbf文件)
D.一个表文件中两个记录之间有一定的关系
【参考答案】 C
26.扩展名为mnx的文件是( )
A.备注文件 B.项目文件
C.表单文件 D.菜单文件
【参考答案】 D
27.报表的数据源可以是( )
A.表或视图 B.表或查询
C.表、查询或视图 D.表或其他报表
【参考答案】 C
28.如果添加到项目中的文件标识为"排除",表示( )
A.此类文件不是应用程序的一部分
B.生成应用程序时不包括此类文件
C.生成应用程序时包括此类文件,用户可以修改
D.生成应用程序时包括此类文件,用户不能修改
【参考答案】 C
29."项目管理器"的"运行"按钮用于执行选定的文件,这些文件可以是( )
A.查询、视图或表单 B.表单、报表和标签
C.查询、表单或程序 D.以上文件都可以
【参考答案】 C
30.允许出现重复字段值的索引是( )
A.侯选索引和主索引 B.普通索引和惟一索引
C.侯选索引和惟一索引 D.普通索引和候选索引
【参考答案】 B
.
www.59wj.com
31.纯文本形式保存设计结果的设计器是()
A.查询设计器
B.表单设计器
C.菜单设计器
D.以上三种都不是
【参考答案】 A
32.以下关于视图的描述正确的是( )
A.视图保存在项目文件中 B.视图保存在数据库文件中
C.视图保存在表文件中 D.视图保存在视图文件中
【参考答案】 A
33.下面有关表间永久联系和关联的描述中,正确的是( )
A.永久联系中的父表一定有索引,关联中的父表不需要有索引
B.无论是永久联系还是关联,子表一定有索引
C.永久联系中子表的记录指针会随父表的记录指针的移动而移动
D.关联中父表的记录指针会随子表的记录指针的移动而移动
【参考答案】 B
34.下面关于类、对象、属性和方法的叙述中,错误的是( )
A.类是对一类相似对象的描述,这些对象具有相同种类的属性和方法
B.属性用于描述对象的状态,方法用于表示对象的行为
C.基于同一个类产生的两个对象可以分别设置自己的属性值
D.通过执行不同对象的同名方法,其结果必然是相同的
【参考答案】 D
35.在下面的Visual FoxPro表达式中,运算结果为逻辑真的是( )
A.EMPTY(.NULL.)
B.LIKE(′xy?′,′xyz′)
C.AT(′xy′,′abcxyz′)
D.ISNULL(SPACE(0))
【参考答案】 B
.
www.59wj.com
二、填空题
1.某二叉树中度为2的结点有18个,则该二叉树中有【1】个叶子结点。
【参考答案】
【1】19
2.在面向对象方法中,类的实例称为【2】。
【参考答案】
【2】对象
3.诊断和改正程序中错误的工作通常称为【3】。
【参考答案】
【3】程序调试
4.在关系数据库中,把数据表示成二维表,每一个二维表称为【4】。
【参考答案】
【4】关系
5.问题处理方案的正确而完整的描述称为【5】。
【参考答案】
【5】算法
6.在奥运会游泳比赛中,一个游泳运动员可以参加多项比赛,一个游泳比赛项目可以有多个运动员参加,游泳运动员与游泳比赛项目两个实体之间的联系是【6】联系。
【参考答案】
【6】多对多
7.执行命令A=2005/4/2之后,内存变量A的数据类型是【7】型。
【参考答案】
【7】数值
8.如下程序显示的结果是【8】。
s=1
i=0
do while i<8
s=s+i
i=i+2
enddo
?s
【参考答案】
【8】13
9.在Visual FoxPro中,可以在表设计器中为字段设置默认值的表是【9】表。
【参考答案】
【9】数据库表
10.Visual FoxPro中数据库文件的扩展名(后缀)是【10】。
【参考答案】
.
www.59wj.com
【10】DBC
11-13题使用如下三个数据库表:
金牌榜.DBF 国家代码 C(3),金牌数 I,银牌数 I,铜牌数 I
获奖牌情况.DBF 国家代码 C(3),运动员名称 C(20),项目名称 C(3),名次 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
【参考答案】
【11】ADD 【12】CHECK
12.使用"获奖牌情况"和"国家"两个表查询"中国"所获金牌(名次为1)的数量,应使用SQL语句
SELECT COUNT(*) FROM 国家 INNER JOIN 获奖牌情况;
【13】国家.国家代码=获奖牌情况.国家代码;
WHERE 国家.国家名称="中国" AND 名次=1
【参考答案】
【13】ON
13.将金牌榜.DBF中的新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,应使用SQL语句 【14】金牌榜【15】奖牌总数=金牌数+银牌数+铜牌数
【参考答案】
【14】UPDATE 【15】SET
.
www.59wj.com
上机部分
1.基本操作题
(1)打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。
(2)为OrderItem表创建一个主索引,索引名为PK,索引表达式为“会员号+商品号”。再为OrderItem表创建两个普通索引(升序),其中一个索引名和索引表达式是“会员号”;另一个索引名和索引表达式是“商品号”。
(3)通过“会员号”字段建立客户表Customer和订单表OrderItem之间的永久联系(注意不要建立多余的联系)。
(4)为以上建立的联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“限制”。
【参考答案】
(1)在“命令”窗口输入命令:MODIFY DATABASE Ecommerce,打开数据库设计器,选择“添加表”快捷菜单命令,添加考生文件夹下的表OrderItem。
(2)具体步骤如下:
① 右击数据库设计器中的表OrderItem,选择“修改”快捷菜单命令。
② 弹出表设计器,单击“索引”选项卡,在索引名中输入PK,在索引类型中选择“主索引”选项,在索引表达式中输入“会员号+商品号”。
③ 用同样的方法再为OrderItem创建两个普通索引(升序),一个索引名和索引表达式均是“会员号”;另一个索引名和索引表达式均是“商品号”,单击“确定”按钮,保存表结构。
(3)在数据库设计器中,单击Customer表中的索引“会员号”,并拖动其到表OrderItem的“会员号”索引上,这样两个表之间就建立起了永久性联系。
(4)右键单击客户表Customer和订单表OrderItem之间的连线,选择菜单命令“数据库”→“编辑参照完整性(I)”(系统首先要求清理数据库),系统弹出“参照
完整性生成器”对话框,按照题意设置参照完整性即可。
【试题解析】
本试题考查的主要是针对数据表的一些基本操作,添加数据表以及对数据表进行连接和设置参照完整性都是在数据库设计器中完成的,数据表的索引建立是在数据表设计器中完成的。
.
www.59wj.com
2.简单应用题
(1)请按要求修改modi1.prg程序文件中的错误,并使之能够正确运行(具体修改要求在程序文件中)。
注意:不可以增加或删除程序行。
(2)在考生文件夹下有表customer(客户)和order(订单),用SQL SELECT语句查询所有客户的订单信息,要求在结果中包括公司名称、订单编号、金额和送货方式4个字段的信息,并先按公司名称升序排序、再按订单编号升序排序,查询结果存放在results.dbf文件中,并要求将完整的SQL语句保存在sq1.prg文件中。
【参考答案】
(1)具体步骤如下:
① 在“命令”窗口输入命令:MODIFY COMMAND modi1.prg。
② 进入程序文件编辑窗口,查看文件中程序段:
****下面是modi1.prg文件的源程序内容****
&&&&在下一行添加一条打开customer表的语句,然后把“(此处空行)”删除
(此处空行)
&&&&表没有索引,修改如下语句使之能显示所有“北京”客户的信息
SCAN WHILE所在地='北京'
?客户编号,公司名称,联系人姓名
ENDSCAN
*************************************
③ 根据源程序中提示的错误,修改后的程序段如下所示:
****下面是修改后的modi1.prg文件内容****
USE customer &&打开当前数据表
SCAN FOR 所在地='北京' &&此处为语法错误
?客户编号,公司名称,联系人姓名
ENDSCAN
***********************************
(2)具体步骤如下:
① 在“命令”窗口输入命令:MODIFY COMMAND sql。
② 进入程序文件编辑器,编写如下程序段:
****下面是sql.prg文件的源程序内容****
SELECT customer.公司名称,order.订单编号,order.金额,order.送货方式;
FROM customer INNER JOIN order;
ON customer.客户编号=order.客户编号;
ORDER BY customer.公司名称,order.订单编号;
INTO TABLE results
*************************************
.
www.59wj.com
③ 保存文件,在“命令”窗口输入命令:DO sq1,查询结果将自动保存到新表中。
【试题解析】
本试题(1)小题考查的是用SCAN-ENDSCAN循环语句查询数据表中的记录,执行循环前,首先要打开查询的表文件;(2)小题为SQL多表联接查询,注意表之间进行关联的字段以及每个表中字段的选取即可。
3.综合应用题
使用报表设计器建立一个报表,具体要求如下:
(1)报表的内容(细节带区)是order_list表的订单号、订购日期和总金额。
(2)增加数据分组,分组表达式是“order_list客户号”,组标头带区的内容是“客户号”,组注脚带区的内容是该组订单的“总金额”合计。
(3)增加标题带区,标题是“订单分组汇总表(按客户)”,要求是3号字、黑体,括号是全角符号。
(4)增加总结带区,该带区的内容是所有订单的总金额合计,最后将建立的报表文件保存为report1.frx文件。
提示:在考试的过程中可以使用“显示”→“预览”菜单命令查看报表的效果。
【参考答案】
具体步骤如下:
① 打开表设计器,为order_list表按“客户号”字段建立一个普通索引。
② 在“命令”窗口输入命令:CREATE REPORT report1。
③ 弹出报表设计器,右击报表空白区,选择快捷菜单“数据环境”命令。
④ 进入数据环境设计器,把数据表order_list添加到其中。
⑤ 将数据环境中order_list表中的订单号、订购日期和总金额3个字段依次拖放到报表的细节带区。
⑥ 选择菜单命令“报表”→“数据分组”,系统弹出“数据分组”对话框,在对话框中输入分组表达式“order_list.客户号”,然后关闭对话框。
⑦ 返回到报表设计器,可以看到报表设计器中多了两个带区:组标头和组注脚带区,在数据环境中,将order_list表中的“客户号”字段拖放到组标头带区,并在报表控件栏中单击“标签”按钮,添加一个标签“客户号”。
⑧ 以同样的方法为组注脚带区增加一个“总金额”标签,并将“总金额”字段拖放到该带区。
⑨ 双击域控件“总金额”,系统弹出“报表表达式”对话框,在对话框中单击 “计算”命令按钮,在弹出的对话框中选中“总和”单选按钮,关闭对话框,回到报表设计器。
⑩ 选择菜单命令“报表”→“标题/总结”,弹出“标题/总结”对话框,在对话框中选中“标题带区”和“总结带区”复选框,为报表增加一个标题带区和一个总结带区。
选择菜单命令“报表”→“默认字体”,在弹出的“字体”对话框中,根据题意设置3号黑体字,接着通过“报表控件”工具栏,为总结带区添加一个标签“订单分组汇总表(按客户)”。
在总结带区添加一个标签“总金额”,再添加一个域控件,在弹出的“报表表达式”中为域控件设置表达式为“order_list.总金额”,在“格式”对话框中选中“数值型”单选按钮,单击“计算”命令按钮。
弹出“计算字段”对话框,选中“总和”单选按钮,关闭对话框,回到报表设计器。
保存报表,利用常用工具栏中的“预览”图标按钮,可预览报表效果。
【试题解析】
本试题考查的主要内容是利用报表设计器完成报表的设计。本题涉及到报表分组、标题/总结的设计,以及字体的设计,这些都可以通过“报表”菜单中的命令来完成,其他需注意的地方是数据表和字段的拖动以及域控件表达式的设置。
.