一、选择题17. 执行下列程序;
SET TALK OFF
STORE 0 TO X,Y
DO WHILE X<6
X=X+Y
Y=Y+2
ENDDO
? X,Y
SET TALK ON
RETURN
在屏幕上显示的输出结果是( )。
A B C D
D
[解析] DO WHlLE-ENDDO语句的格式:
DO WHILE<条件>
<命令序列>
ENDDO
执行该语句时,先判断DO WHILE处的循环条件是否成立,如果条件为真,则执行DO WHILE与ENDDO之间的<命令序列>(循环体)。当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体.若条件为假,则结束该循环语句,执行ENDDO后面的语句。
先将0赋给两个变量x和Y,使用一个DO WHILE循环语句来操作,判断条件是变量x是否小于6,如果大于或等于6,则退出循环,否则执行循环体,执行X=X+Y,X=0,再执行Y=Y+2后,Y=2,重复此循环体的操作。题干中的循环步骤及结果见下表。
|
X |
Y |
判断条件X<6 |
初始值 |
0 |
0 |
真 |
因为X<6,条件真,执行循环体 |
0 |
2 |
真 |
因为X<6,条件真,执行循环体 |
2 |
4 |
真 |
因为X<6,条件真,执行循环体 |
6 |
6 |
假 |
因为X>6,条件假,退出循环体 |
6 |
6 |
|
X,Y最终的显示值都是6。
19. 当前目录下有XUESH .dbf和CHJI .dbf两个表文件,要求查找同时选修了课程号为
“9801”和 “9802”的学生姓名,下列SQL语句的空白处应填入的语句为( )。
SELECT姓名 FROM XUESH, CHJI;
WHERE XUESH.学号=CHJI.学号;
AND课程号=“9801”;
AND姓名______
(SELECT 姓名 FROM XUESH,CHJI;
WHERE XUESH.学号=CHJI.学号;
AND课程号=“9802”)
A B C D
A
[解析] 本小题为SQL的嵌套查询,通过内层查找符合条件的记录集合,再通过外层查询检索该集合中相同的记录值,使用的特殊运算符为IN(包含运算)。
ANY、ALL和SOME是量词,其中ANY和SOME是同义词,在进行比较运算时只要于查询中有一行能使结果为真,则结果为真:而ALL则要求于查询中的所有行都使结果为真时,结果才为真。
EXITS是谓词,EXITS和NOT EXITS是用来检查在于查询中是否有结果返回(即存在元组或不存在元组)。
(31)到(35)题使用下列数据表。
“作者”表:
作者编号 姓名 所在城市
1101 张晓云 北京
1102 李 丽 北京
1103 袁熙林 上海
1104 赵三立 广州
1105 方德胜 上海
1106 刘 清 北京
“图书”表:
图书编号 书名 出版单位 价格 作者编号 页数
1101 计算机基础知识 经济科学出版社 32.80 1101 252
2202 会计基础知识 经济科学出版社 17.80 1105 215
1102 VB 9.0初级入门 人民邮电出版社 22.50 1102 264
1103 Word 2003基础知识 大地出版杜 19.80 1101 298
1105 VFP 6.0程序设计基础 大地出版社 38.50 1103 310
2201 中级会计财务知识 经济科学出版社 28.80 1106 245
1110 计算机网络基础 高等教育出版社 26.50 1101 258
11ll 计算机组成原理 北京大学出版社 31.20 1103 98
1112 数据库设计原理 高等教育出版杜 35.50 1101 330
1113 C语言程序设计 北京大学出版社 32.00 1102 326
1114 软件设计分析 高等教育出版社 34.50 1102 330
2203 信息系统分析理论 经济科学出版社 24.50 1102 235 二、填空题1. 在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
自顶向下
[解析] 程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡。上述方法概括为:自顶向下,逐步细化。
2. 注释一般分为序言性注释和______注释。
功能性
[解析] 注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。
3. 在面向对象方法中,类的实例称为______。
对象
[解析] 在面向对象的程序设计方法中,类是具有相同属性或方法的对象的抽象,对象是类的实例。
4. 某二叉树中度为2的结点有18个,则该二叉树中有______个叶子结点。
19
[解析] 在任意一棵二叉树中,度数为。的结点(即叶子结点)总比度为2的结点多一个,因此该二叉树中叶子结点为18+1=19。
5. 数据流图的类型有______和事务型。
变换型
[解析] 典型的数据流类型有两种;变换型和事务型。
6. 项目管理器中,用于显示应用程序中所有的文件的是“______”选项卡。
全部
[解析] 项目管理器一共有6个选项卡,其中“数据”、“文档”、“类”、“代码”和“其他”5个选项卡用来分类显示各种文件,“全部”选项卡则显示所有的文件,实现对它们的管理。
7. 自由表与数据库表相比较,在数据库中可以建立______索引,而在自由表中不能建立。
主
[解析] 自由表不能建立字段级规则和约束等。事实上,数据库表与自由表相比,数据库表具有以下特点:
· 数据库表可以使用长表名,在表中可以使用长字段名。
· 可以为数据库表中的字段指定标题和添加注释。
· 可以为数据库表的这段指定默认值和输入掩码。
· 数据库表的字段有默认的控件类。
· 可以为数据库表规定字段级规则和记录级规则.数据库表支持主关键字、参照完整性和表之间的关联。
· 支持INSERT、UPDATE和DELETE事件的触发器。
8. “报表控件”工具栏中的“图片/ActiveX绑定”控件用于显示图片和______字段的内容。
通用型
[解析] Visual FoxPro在打开“报表设计器”窗口的同时也会打开一个“报丧控件”工具栏。该工具栏有多个图标按钮,每个按钮有不同的功能。其中“图片/ActiveX绑定控件”按钮的功能是用于显示图片和通用型字段的内容。
9. 在Visual FoxPro中,用来确定复选框是否被选中的属性是______。
Value
[解析] 复选框用于标识一个两值状态,如真(.T.)或假(.F.)。当处于选中状态时,夏选框内显示一个对勾:否则,复选框内为空白.复选框可以通过Value属性来设置或返回复选框的状态。
10. 利用SQL语句的定义功能,建立一个学生表文件,其中为学号建立主索引,年龄的默认值为18,语句格式为:
CREATE TABLE学生(;
学号C
______;
年龄I DEFAULT 18)
PRIMARY KEY
[解析] 在Visual FoxPro中可以通过SQL的CROAT TABLE命令建立表。其中,通过PRIMARY KEY短语可以为指定字段创建一个主索引,索引标识名与字段名相同。
11. 通过Visual FoxPro的视图,不仅可以查询数据库表,还可以______数据库表。
操作 (或更新)
[解析] 在Visual FoxPro中,视图是可以更新的,但是这种更新是否反映在基本表中则取决于视图更新属性的设置。在关系数据库中,视图始终不曾真正地含有数据,它总是原来表的一个窗口。所以,虽然视图可以像表一样进行各种查询,但是插入、更新、删除操作在视图上却有一定的限制。一般情况下,当一个视图是由单个表导出时可以进行插入和更新操作,但不能进行删除操作:当视图是从多个表导出时,插入,更新和删除操作都不允许进行。
12. 为了通过视图更新基本表中的数据,需要在视图设计器界面的左下角选中______复选框。
发送SQL更新
[解析] 视图是根据基本表派生出来的,但是在Visual FoxPro中它已经不完全是操作基本表的窗口。在一个活动周期内视图和基本表已经成为两张表,默认对视图的更新不反映在基本表中,对基本表的更新在视图中也得不到反映。但是在关闭数据库后视图中的数据将消失,当再次打开数据库时视图从基本表中重新检囊数据。所以默认情况下,视图在打开时从基本表中检索数据,然后构成一个独立的临时表供用户使用。
为了通过视图能够更新基本表中的数据,需要在视图设计器界面的左下角中勾选“发 SQL更新”夏选框.
13. 使用SQL语句实现将一条新的记录插入“学生”表中:
INSERT______学生(学号,姓名)VALUES(“9801”,“李峰”)
INTO
[解析] INSERT命令用于在一个表中添加新记录,然后给新记录的字段赋值。格式为:
INSERT INTO表名[(列名1[,列名2,...])]
VALUES(表达式1[,表达式2,...])
其中,INTO表名指出了要添加新记录的表名;列名1[,列名2,...]是字段名表,插入记录不完整时使用:VALUES指出要输入到新记录的指定字段中的数据值;
如果省略前面的字段名表,将按照表结构中定义的顺序依次指定每个字段的值。添加新记录后,该字段所包含的数值就是VALUES子句中所包含的数据。
14. 当前目录下有“选课表”文件,要求查找既选修了“计算机”,又选修了“日语”的学生号,则语句为:
SELECT A.学号FROM选课表A,选课表B;
WHERE A.学号=B.学号AND; ”
A.课程名称=“计算机”AND______
B.课程名称=“日语”
[解析] 一般的查询中,别名并不是必须的,但是在自连接查询中,别名是必不可少的。
SQL不仅可以对多个关系实行连接操作,也可以将同一关系与其自身进行连接,这种连接称为自连接.在可以进行这种自连接操作的关系上,实际存在着一种特殊的递归联系,即关系中的一些元组,根据出自同一值域的两个不同的属性,可以与另外一些元组有一种对应关系(一对多的联系)。
15. 在成绩表中,检索选修3门以上课程的学生及格学科的总成绩。成绩表中包含学号、
姓名、课程名和成绩4个字段。请将下列SQL语句补充完整。
SELECT 学号,SUM(成绩)FROM 成绩表;
WHERE成绩>=60;
GROUP BY学号;
______COUNT(*)>=3
HAVING
[解析] 在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE于句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。
另外,使用HAVING子句可以对这些组进一步加以控制.用这个子句定义这些组所必须满足的条件,以便将其包含在结果中。
本题中,根据学号将学生记录分组,然后利用SQL的统计函数 COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。