配色: 字号:
二级C语言公共基础知识点全面汇编
2012-08-04 | 阅:  转:  |  分享 
  
第一部分公共基础部分知识归纳

第一章数据结构与算法

算法--是一组严谨地定义运算顺序的规则

算法的基本要素---一是对数据对象的运算和操作,二是算法的控制结构

算法设计基本方法--列举法、归纳法、递推、递归、减半递推

算法的复杂度---包括时间复杂度和空间复杂度

时间复杂度---执行算法所需的计算工作量

空间复杂度---执行算法所需的内存空间

数据结构---相互有关联的数据元素的集合。如春、夏、秋、冬;18、11、35、23、

16。。。;父亲、儿子、女儿等都是

数据元素。

前件--数据元素之间的关系,如父亲是儿子和女儿的前件

后件--如儿子是父亲的后件

结构--指数据元素之间的前后件关系

数据的逻辑结构—是指反映数据元素之间逻辑关系,而与它们在计算机中的存储

位置无关

数据的存储结构(物理结构)--数据的逻辑结构在计算机存储空间中的存放形式,

数据元素在计算机存储空间的位置关系可能与

逻辑关系不同。

根据数据结构中各数据元素之间前后件关系的复杂程度,可将数据结构分两类--

线性结构与非线性结构

线性结构(线性表)--满足下列两个条件(1)有且只有一个根结点(2)每一个

结点最多有一个前件和后件。则称该数据结构为

线性结构,否则为非线性结构。

线性表是最简单、最常用的一种数据结构,其数据元素之间的相对位置是线性的,

其存储方式为顺序存储的,如数组

栈---是限定在一端进行插入与删除的线性表,一端封闭,另一端开口,其操作原

则是“先进后出”,栈的运算有入栈、退栈、读

栈顶元素

队列--是指在一端进行插入(称为队尾)而在另一端进行删除(称为队头)的线

性表,其操作规则是“先进先出”,其运算有入

队和退队。

树---是一种简单的非线性结构,而且是层次结构,是倒立的大树,有根结点、父

结点、子结点、叶子结点。根结点在第一层,一

个结点所拥有的后件的个数称为该结点的度,所

有结点中最大的度称为树的度,树的最大层次

称为树的深度。

二叉树---(1)非空二叉树只有一个根结点(2)每一个结点最多有两棵子树(左

子树和右子树),其存储结构为链式。

二叉树性质--(1)K层上最多有2(K-1)个结点(2)深度为m的二叉树最多有

2m-1个结点

(3)度为0的结点(叶子结点)比度为2的结点多一个(4)具有

n个结点的二叉树,其深度至少为[Log2n]+1,其

中[Log2n]表示对Log2n取整

满二叉树---除最后一层外,其余层的结点都有两个子结点

完全二叉树--除最后一层外,每一层上的结点数均达到最大值,在最后一层上只

缺少右边的若干结点,叶子结点只可能在层次最

大的两层上出现。满二叉树是完全二叉树,而完

全二叉树不是满二叉树。完全二叉树有两个性

质:(1)具有n个结点的完全二叉树的深度为

[Log2n]+1(2)

二叉树遍历--不重复地访问各个结点。分为前序遍历(DLR-根左右)、中序遍历

(LDR-左根右)和后序遍历(LRD-左右根)

查找技术---顺序查找——对于长度为n的有序线性表,查找时需要比较n次

二分法查找——对于长度为n的有序线性表,查找时需要比较log2n



排序技术---假设线性表的长度为n,则冒泡排序和简单插入排序的比较次数(时

间复杂度)为n(n-1)/2;希尔排序的比较次数为

O(n1.5);简单选择排序的比较次数为n(n-1)/2;堆

排序的比较次数为O(nlog2n).

习题1

算法的时间复杂度是指(),算法的空间复杂度是指

();

线性表、栈、队列、线性链表是(线性结构),树是(非线性结构);数据的存储

结构是指();

队列是(先进先出),栈是(先进后出);

下列二叉树的遍历结果:前序遍历(ABDECF)、中序遍历(DBEAFC)、后续遍

历(DEBFCA)

在深度为5的满二叉树中,叶子结点的个数为(16);设树T的度为4,其中度为

1,2,3,4的结点的个数分别为4,2,1,1。则T中的叶子结点的个数为(8);

对于长度为n的有序线性表,顺序查找次数为(n),二分法查找次数为(log2n);

一棵完全二叉树共有700个结点,则在该二叉树中有(350)个叶子结点;一棵二

叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后续遍历结果为

(DEBFCA);冒泡排序的时间复杂度为(n(n-1)/2);在一个容量为15的循环队列

中,若头指针front=6,尾指针rear=9,则该循环队列中共有(3)元素;

第二章程序设计基础

结构化程序设计的三种结构---是顺序、选择和循环

对象--表示客观世界的任何实体

类---是具有共同属性和方法的对象的集合

实例--任何一个对象都是其对应类的实例

消息--一个实例和另一个实例之间传递的信息

继承--是指直接获得已有的性质和特征,而不必重复定义它们。例如子类继承父



结构化程序设计主要强调--程序的易读性

良好的程序设计风格是---程序应简单、清晰、可读性好

在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(消息)

来实现的

信息隐蔽的概念与(模块独立性)概念直接相关

(任何对象都具有继承性)这句话是错误的

注释分为(序言性注释)和(功能性注释)

在面向对象方法中,信息隐蔽是通过对象的(封装性)来实现的

类是一个支持集成的抽象数据类型,而对象是类的(实例)

在面向对象方法中,类之间共享属性和操作的机制称为(继承)

第三章软件工程基础

软件生命周期---软件产品从提出、实现、使用维护到停止使用退役的过程。分为

软件定义、软件开发、软件运行维护三个阶段。

软件生命周期的主要活动阶段---可行性分析、需求分析、软件设计、软件实现、

软件测试、运行和维护。

常见的需求分析方法---(1)结构化分析方法--主要包括面向数据流的结构化分

析方法SA;面向数据结构的Jackson方法JSD;

面向数据结构的结构化数据系统开发方法

DSSD。

(2)面向对象的分析方法OOA

结构化分析方法工具---(1)数据流图DFD,记住DFD图的几个符号:

(2)数据字典DD

(3)判定树

(4)判定表

程序结构图(SC),N-S图,问题分析图(PAD)

程序流程图(PFD)的几个符号:

软件测试---黑盒测试:功能测试

白盒测试:内部结构测试,穷举路径测试

习题3

在软件生命周期中,能准确地判断软件系统必须做什么和必须具备哪些功能的阶段是(需求

分析)

软件工程的3个要素(工具),(过程),(方法)

检查软件产品是否符合需求定义的过程称为(确认测试)

软件设计原则是(抽象)、(模块化)、(信息隐蔽)

需求分析常用的工具是(DFD)

在结构化方法中,软件功能分解属于(总体设计)阶段

软件测试的饿目的是(改正错误)

软件需求分析阶段可分为四个方面(需求获取)、(需求分析)、(编写需求格式说明)、(需

求评审)

软件是(程序)、(数据)、(文档)的集合

Jakson方法是一中面向(数据流)的结构化方法

软件工程研究的内容包括(软件开发技术)、(软件工程管理)

数据流图的类型有(交换型)、(事务型)

软件开发环境是全面支持软件开发全过程的(软件工具)集合

第四章数据库设计基础

数据库---DB;数据库管理系统--DBMS;数据库管理员---DBA;数据库系统

---DBS;数据库应用系统--DBAS

数据模型所描述的内容分三个部分(数据结构)、(数据操作)、(数据约束)

逻辑数据模型分(层次模型)、(网状模型)、(关系模型)、(面向对象模型)

E-R模型---实体关系模型,主要由实体、属性、联系组成,联系分:1对1,1

对多,多对多;

以二维表为基本结构所建立的模型称为关系模型,关系模型采用二维表来表示,

简称表,由行和列组成,行称为元组或记录,列称为字段

主键--唯一标识一个记录的字段

外键--一个表的字段是其他表的主键

在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段、数据库系

统阶段,其中数据独立性最高的阶段是(数据库系统)

数据库系统减少了(数据冗余);数据库系统的核心是(数据库管理系统)

用树型结构来表示实体间联系的模型称为(层次模型)

关系表中的每一行称为(元组)

关系数据库管理系统能实现的专门关系运算包括(选择)、(投影)、(连接)

在关系数据库中,用来表示实体之间联系的是(二维表)

数据库设计包括两方面的设计内容(概念设计)、(逻辑设计)

将E-R图转换到关系模式时,实体与联系都可以表示成(关系)

一个项目具有一个项目主管,一个项目主管可以管理多个项目,则实体“项目主

管”与“项目”的联系属于(一对多)

数据独立性分为逻辑独立性和物理独立性,当数据的存储结构改变时,其逻辑结

构可以不变,因此,基于逻辑结构的应用程序不必修改,称为(逻辑独立性)

数据库系统中实现各种数据管理功能的核心软件称为(数据库管理系统DBMS)

关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、(参照完整

性)和自定义完整性

下面是公共基础部分可以变化的题:1一棵二叉树,第K层上最多有2

(k-1)个结点,深度为K的二叉树最多有2k-1个结

点,如果是满二叉树呢?

例如:在深度为5的满二叉树中,叶子结点的个数为(=2(5-1)=16)

2一棵二叉树共有70个叶子结点和80个度为1的结点,问这个二叉树的总结点是

多少?

答:因为度为0的结点(叶子结点)比度为2的结点多一个,所以度为2的结点数

是69,所以总结点=70+69+80=219个

3一棵完全二叉树共有700个结点,则在该二叉树中有(350)个叶子结点

解答:700/2=350

若把700改为675呢?(=675/2=337.5进行四舍五入=338)

4设树T的度为4,其中度为1,2,3,4的结点的个数分别为4,2,1,1。则

T中的叶子结点的个数为(8)



答:n0=(t-1)nt+(t-2)n(t-1)+...+1n2+0n1+1=31+21+12+04+1=8

5在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列

中共有多少个元素?(3个)

解答:若头<尾,元素个数=尾-头

:若头>尾,元素个数=15+(尾-头)

6设有

则R和S能进行交集(RnS)、并集(RuS)、差操作(R-S)

如果R和S的元不同的话,则R和S只能进行笛卡尔集(RXS)和自然连接

7关于二叉树遍历问题:有两个题型,一是给出二叉树,求三种遍历结果;二是

给出两种遍历,求第三种遍历结果。后者有点难度

三种遍历是:前序(根左右)、中序(左根右)和后序(左右根)

8关于查找和排序问题:

查找技术---顺序查找——对于长度为n的有序线性表,查找时需要比较n次

二分法查找——对于长度为n的有序线性表,查找时需要比较log2n



排序技术---假设线性表的长度为n,则冒泡排序和简单插入排序的比较次数(时

间复杂度)为n(n-1)/2;希尔排序的比较次数为

O(n1.5);简单选择排序的比较次数为n(n-1)/2;堆

排序的比较次数为O(nlog2n).

9关于出栈的问题:记住是先进后出

例1:栈底到顶依次存放A、B、C、D,在第五个元素E入栈前,栈中元素可以出

栈,则出栈可能的序列是

ABCEDDCBEADBCEACDABE

例2:如果进栈序列为e1,e2,e3,e4,则可能的出栈序列为:

e3,e1,e4,e2e2,e4,e3,e1e3,e4,e1,e2任意顺序

10关于E---R图

是实体属性和实体关系图,实体之间的关系有1:11:mm:n

第二部分全国计算机等级考试二级公共考试训练

模拟试题一一选择题(每小题2分)

在下列各题的A),B),C),D),4个选项中,只有1个选项是正确选项添涂在

答题卡相应位置上,答在试卷上不得分。

1.栈和队列的共同特点是(C)。

A)都是先进先出B)都是先进后出

C)只允许在端点处插入和删除元素C)没有共同点

2.已知二叉树后序编历序列是dabec,中续遍历序列是debac,它的前序编

历序列是(D)。

A)acbedB)decabC)deabc

D)cebda3

3.链表不具有的特点是(B)。

A)不必事先估计存储空间B)可随机访问任一元



C)插入删除不需要的移动元素D)所需空间与线性长



4.结构化程序设计的3种结构是(D)。

A)顺序结构、选择结构、转移结构B)分支结构、等价结构、

循环结构

C)多分支结构、赋值机构、等价结构D)顺序结构、选择结构、

循环结构

5.为了提高测试的效率。应该(D)

A)随即选取测试数据B)取一切可能的输入数据

作为测试数据

C)在完成编码以后指定软件的测试次数D)集中对付那些错误的群

集的程序

6.算法的时间复杂度是指(C)

A)执行算法程序所需要的时间B)算法程序的长度

C)在完成编码以后指定软件的测试次数D)算法程序中的指定

条数

7.软件生命周期中花费用最多的阶段是(D)

A)详细设计B)软件编码C)软件测试D)

软件维护

8.数据库管理系统DBMS中用来定义模拟、内模式和外模式的语言为(C)

A)CB)BasicC)DDL

D)DML

9.下列有关数据库的描述,正确的是(C)

A)数据库是一个DBF文件B)数据库是一个关系

C)数据库是一个结构化的数据集合D)数据库是一组文件

10.下列有关数据库的描述,正确的是(D)

A)数据处理是将信息转化为数据的过程

B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结

构不变

C)关系中的每一列称为元组,一个元组就是一个字节

D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另

一个关系的

键字,则称其为本关系的外关键字

二、填空题(每空2分)

请将每一个空的正确答案写在答题卡【11】~【15】序号的横线上,答案试

卷上不得分。

1算法的基本特征是可行性、确定性、【有穷性】。

2在长度为n的有序线性表中进行二分查找。最坏的情况下,需

要的比较次数为【log2n】。

3在面向对象的程序设计中。类描述的是具有相似性质的一组

【对象】。

4通常,将软件产品从提出、实现、使用维护到停止使用退役的

过程称为【软件生命周期】。

5数据库管理系统常见的数据模型有层次模型、网状模型和【关

系模型】3种。

模拟测试二一.选择题(每小题2分)

在下列各题的A),B),C),D),4个选项中,只有1个选项是正确的,请将正确选项填

涂在答题卡相应的位置上,答在试卷上不得分.

1.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该

二叉树的后序遍历为(B)

A)GEDHFBCAB)DGEBHFCAC)ABCDEFGH

D)ACBFEDHG

2.树是结点的集合,它的根结点的数目是(A)

A)有且只有1个B)1或多于1C)0或1D)至少2

3.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是(B)

A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序

4.在设计程序时,应采纳的原则之一是(D)

A)不限制goto语句的使用B)减少或取消注解行

C)程序越短越好D)程序结构应有助于读者理



5.程序设计语言的基本成分是数据成分,运算成分,控制成分和(D)

A)对象成分B)变量成分C)语句成分D)传输成分

6.下列叙述中,不属于软件需求规格说明书的作用的是(D)

A)便于用户,开发人员进行理解和交流

B)反映出用户问题的结构,可以作为软件开发工作的基础和依据

C)作为确认测试和验收的依据

D)便于开发人员进行需求分析

7.下列不属于软件工程3个要素的是(D)

A)工具B)过程C)方法D)环境

8.单个用户使用的数据视图描述称为(A)

A)外模式B)概念模式C)内模式D)储存模式

9.将E-R图转换到关系模式时,实体与联系都可以表示成(B)

A)属性B)关系C)键D)域

10.SQL语言又称为(C)

A)结构化定义语言B)结构化控制语言

C)结构化查询语言D)结构化操纵语言

二.填空题(每空2分)

请将每一个空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不得分.

1.数据结构分为逻辑结构与储存结构,线性链表属于[存储结构].

2.在面向对象方法中,类之间共享属性和操作的机制称为[继承].

3.耦合和内聚是评价模块独立性的两个主要标准,其中[内聚]反映了模块内

个成分之间的联系.

4.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”

与实体“项目”的联系属于[一对多]的联系

5.数据库设计分为以下6个设计阶段:需求分析阶段﹑[数据库概念设计阶段]

﹑逻辑设计阶段﹑物理设计阶段﹑实施阶段﹑运行和维护阶段.

模拟测试三1.选择题(每小题2分)

在下列各题的A),B),C),D)4个选项中,只有1个选项是正确的,请将正确选项填

涂在答题卡的相应位置上,答在试卷上不得分.

1.算法的空间复杂度是指(D)

A)算法程序的长度B)算法程序中的指令条数

C)算法程序所占的存储空间D)执行过程中所需要的存储

空间

2.用链表示线性表的优点是(C)

A)便于随机存取B)花费的存储空间较顺序储

存少

C)便于插入和删除操作D)数据元素的物理顺序与逻

辑顺序相同

3.数据结构中,与所使用的计算机无关的是数据的(C)

A)存储结构B)物理结构C)逻辑结构D)物理和

存储结构

4.结构化程序设计主要强调的是(D)

A)程序的规模B)程序的效率

C)程序设计语言的先进性D)程序易读性

5.软件设计包括软件的结构﹑数据接口和过程设计,其中软件的过程设计是

指(B)

A)模块间的关系B)系统结构部件转换成软件

的过程描述

C)软件层次结构D)软件开发过程

6.检查软件产品是否符合需求定义的过程称为(A)

A)确认测试B)集成测试C)验证测试D)验收测试

7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符

组成.下列图符名称标识的图符不属于数据流图合法图符的是(A)

A)控制流B)加工C)数据存储D)源和



8.应用数据库的主要目的是(C)

A)解决数据保密问题B)解决数据完整性问题

C)解决数据共享问题D)解决数据量大的问题

9.在数据库设计中,将E-R图转换成关系数据模型的过程属于(B)

A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理

设计阶段

10.在数据管理技术的发展过程中,经历了人工管理阶段﹑文件系统阶段和数

据库系统阶段.其中数据独立性最高的阶段是(A)

A)数据库系统B)文件系统C)人工管理D)数据

项管理

2.填空题(每空2分)

请将每一个空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不

得分.

1.数据的逻辑结构有线性结构和[非线性结构]两大类.

2.顺序储方法是把逻辑上相邻的结点存储在物理位置和[相临]的存储单

元中.

3.一个类可以从直接或间接的祖先中继承所有属性和方法.采用这个方法

提高了软件的[可重用性].

4.软件工程研究的内容主要包括:[软件开发]技术和软件工程管理.

5.关系操作的特点是[逻辑数据模型]操作.

模拟测试四1.选择题(每小题2分)

在下列各题的A),B),C),D)4个选项中,只有1个选项是正确的,请将正确选

项填涂在答题卡的相应位置上,答在试卷上不得分.

1.在深度为5的满二叉树中,叶子结点的个数为(B)

A)32B)31C)16

D)15

2.若某二叉树的前序遍历是abdgcefh,中序遍历是dgbaechf,后序遍历的结点访

问顺序是(D)

A)bdgcefhaB)gdbecfhaC)bdgaechf

D)gdbehfca

3.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归应用.而实现

递归调用中的储存分配通常用(A)

A)栈B)堆C)数组D)

链表

4.软件工程的理论和技术性研究的内容主要包括软件开发技术和(B)

A)消除软件危机B)软件工程管理

C)程序设计自动化D)实现软件可重用

5.开发软件时对提高开发人员工作效率至关重要的是(B)

A)操作系统的资源管理功能B)先进的软件开发工具而

后环境

C)程序人员的数量D)计算机的并行处理能力

6.在软件测试设计中,软件测试是主目的是(D)

A)实验性运行软件B)证明软件正确

C)找出软件中全部错误D)发现软件错误而执行程



7.数据处理的最小单位是(C)

A)数据B)数据元素C)数据项D)

数据结构

8.索引属于(B)

A)模式B)内模式C)外模式D)

概念模式

9.下述关于数据库系统的叙述中正确的是(B)

A)数据库系统减少了数据冗余

C)数据库系统避免了一切冗余

D)数据库系统中的一致性是指数据类型一致

E)数据库系统比文件系统管理更多的数据

10.数据库系统的核心是(B)

A)数据库B)数据库管理系统C)模拟模型D)

软件工程

二填空题(每空2分)

请将每一个空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不得

分.

1.树形结构中,树根结点没有[前件].

2.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向[12]

的设计方法.

3.面向对象的模型中,最基本的概念是对象和[数据结构].

4.软件设计模块化的目的是[类].

5.数据模型按不同应用层次分成3种类型,它们是概念数据模型﹑[降低副杂

性]和物理数据模型.

模拟测试五一选择题(每小题2分)

在下列各题的A),B),C),D)4个选项中,只有1个选项是正确的,请将正确选项填

涂在答题卡的相应位置上,答在试卷上不得分.

1.数据结构作为计算机的一门学科,主要研究数据的逻辑结构﹑对各种数据结构

进行的运算以及(A)

A)数据的存储结构B)计算方法C)数据映象D)逻

辑存储

2.串的长度是(D)

A)串中不同字符的个数B)串中不同字母的个数

C)串中所含字符的个数且字符个数大于零D)串中所含字符的个数

3.在计算机中,算法是指(B)

A)加工方法B)解题方案的准确而完整

的描述

C)排序方法D)查询方法

4.以下不属于对象的基本特征的是(C)

A)分类性B)多态性C)继承性D)封

装性

5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作

(B)

A)软件投机B)软件危机C)软件工程D)软

件产生

6.下面不属于软件设计原则的是(C)

A)抽象B)模块化C)自底向上D)信

息隐蔽

7.开发大型软件时,产生困难的根本原因是(A)

A)大系统的复杂性C)人员知识不足

C)客观世界千边万化D)时间紧﹑任务重

8下列QSL语句中,用于修改表结构的是(A)

A)ALTERB)CREATEC)UPDATE

D)INSERT

9.数据库﹑数据库系统和数据库管理之间的关系是(B)

A)数据库包括数据库系统和数据库管理系统

B)数据库系统包括数据库和数据库管理系统

C)数据库管理系统包括数据库和数据库系统

D)三者没有明显的包含关系

10.关系模型允许定义3类数据约束,下列不属于数据约束的是(C)

A)实体完整性的约束B)参照完整性的约束

C)域完整性的约束D)用户自定义的完整性约



二填空题(每空2分)

请将每一个空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不得

分.

1.长度为n的顺序存储在线性表中,当在任何位置上插上一个元素概率都相等时,

插入一个元素所需移动元素的平均个数为[n/2].

2.用树型结构表示实体类型及实体间联系的数据模型称为[层次模型].

3.类是一个支持集成的抽象数据类型,而对象是类的[实例].

4.数据流图的类型有[14]和事务型.

5.当数据的物理结构(存储结构﹑存取方式等)改变时,不影响数据库的逻辑结

构,从而不致引起应用程序的变化,这是指数据的[变换行].

模拟测试六一.选择题(每小题2分)

在下列各题的A),B)C),D)4个选项中,只有1个选项是正确的,请将正确选项填涂

在答题卡相应的位置上,答在试卷上不得分.

1.假设线性表的长度为n,则在最坏的情况下,冒泡排序需要的比较次数为(D)

A)log2n

2.算法分析的目的是(D)

A)找出数据结构的合理性B)找出算法中输入和输

出之间的关系

C)分析算法的易懂性和可靠性D)分析算法的效率以求

改进

3.线性表L=(a),下列说法正确的是(D)

A)每个元素都有一个直接前件和直接后件

B)线性表中至少要有一个元素

C)表中诸元素的排列顺序必须是由小到大或由大到小

D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接

前件和直接后件

4.在单链表中,增加头结点的目的是(A)

A)方便运算的实现B)使单链表至少有一个结



C)标识表中首结点的位置D)说明单链表是线性表的

链式存储实现

5.软件工程的出现是由于(C)

A)程序设计方法学的影响B)软件产业化的需要

C)软件危机的出现D)计算机的发展

6.软件开发离不开系统环境的支持,其中必要的测试数据属于(D)

A)硬件资源B)通信资源C)支持软件D)

辅助资源

7.在数据流图中,带有名字的箭头表示(D)

A)模块之间的调用关系B)程序的组成成分

C)控制程序的执行顺序D)数据的流向

8.分布式数据库系统不具有的特点是(D)

A)数据分布性和逻辑整体性B)位置透明性和复制透明



C)分布性D)数据冗余

9.关系表中的每一横行称为一个(A)

A)元组B)字段C)属性D)



10.下列数据模型中,具有坚实理论基础的是(C)

A)层次模型B)网状模型C)关系模型D)

以上三个都是

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷

上不得分.

2.在算法正确的前提下,评价一个算法的两个标准是[时间复杂度和空间复

杂度].

3.将代数式z=转换成程序设计中的表达式为

[SQRT(x^2+y^2)/(a+b)].

4.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了[软件工

程学]的原理来设计软件,这就是软件工程诞生的基础.

5.[数据模型]是数据库设计的核心.

6.在关系模型中,把数据看成一个二维表,每一个二维表称为一个[关系].

模拟测试七一.选择题(每小题2分)

在下列各题的A),B)C),D)4个选项中,只有1个选项是正确的,请将正确选项填涂

在答题卡相应的位置上,答在试卷上不得分

1.下列叙述中正确的是(A)

A)线性表是线性结构B)栈与队列是非线性结构

C)线性链表是非线性结构D)二叉树是线性结构

2.非空的循环单列表head的尾结点(由p所指向),满足(C)

A)p->next==NULLB)p==NULLC)p->next=head

D)p=head

3.已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是

(B)

A)堆排序B)直接插入排序C)快速排序D)直

接选择排序

4.对建立良好的程序设计风格,下面描述正确的是(A)

A)程序应简单﹑清晰﹑可读性好B)符号名的命名只要符合

语法

C)充分考虑程序的执行效率D)程序的注释可有可无

5.下列不属于结构化分析常用工具的是(A)

A)数据流图B)数据字典C)判定树D)PAD



6.在软件生产过程中,需求信息的给出是(D)

A)程序员B)项目管理者C)软件分析设计人员D)

软件用户

7.下列工具中为需求分析常用的工具是(D)

A)PADB)PFDC)N-SD)DFD

8.NULL是指(C)

A)0B)空格C)未知的值或无任何值D)空字符串

9.数据库的故障恢复一般是由(C)

A)数据流图完成的B)数据字典完成的

C)DBA完成的D)PAD图完成的

10.下列说法中,不属于数据模型所描述的内容的是(C)

A)数据结构B)数据操作C)数据查询D)数据

约束

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷

上不得分.

1.冒泡排序法在最好的情况下的元素交换次数为[0].

2.在最坏的情况下,堆排序需要比较的次数为[O(log2n)].

3.若串s=“MathTypes”,则其子串的数目是[46].

4.软件开发环境是全面支持软件开发全过程的[软件工具]集合.

5.关系数据库的关系演算语言是以[谓词演算]为基础的DML语言.

模拟测试八一.选择题(每小题2分)

在下列各题的A),B)C),D)4个选项中,只有1个选项是正确的,请将正确选项填涂

在答题卡相应的位置上,答在试卷上不得分.

1.循环链表的主要优点是(B)

C)不在需要头指针了

D)从表中任一结点出发都能访问到整个链表

E)在进行插入﹑删除运算时,能更好地保证链表不断开

F)已知某个结点的位置后,能够容易找到它的直接前件

2.栈底至栈顶依次存放元素A,B,C,D,在第五个元素E入栈前,栈中元素可以出栈,

则出栈序列可能是(B)

A)ABCDEB)DCBEAC)DBCEA

D)CDABE

3.n个顶点的强连通图的边数至少有(C)

A)n-1B)n(n-1)C)nD)n+1

4.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,在程

序的效率相比,人们更重视程序的(C)

A)安全性B)一致性C)可理解性D)合

理性

5.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块

的(C)

A)抽象和信息隐蔽B)局部化和封装化

C)内聚性和耦合性D)激活机制和控制方法

6.软件开发的结构化生命周期方法将软件生命周期划分成(A)

A)定义﹑开发﹑运行维护B)设计阶段﹑编程阶段﹑

测试阶段

C)总体设计﹑详细设计﹑编程调试D)需求分析﹑功能定义﹑

系统设计

7.在软件工程中,白盒测试法可用于测试程序的内部结构,此方法将程序看作是

(A)

A)路径的集合B)循环的集合C)目标的集合D)

地址的集合

8.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统

具有(A)

A)特定的数据模型B)数据无冗余

C)数据可共享D)专门的数据管理软件

9.数据库设计包括两个方面的设计内容,它们是(A)

A)概念设计和逻辑设计B)模式设计和内模式设计

C)内模式设计和物理设计D)结构特性设计和行为特

性设计

10.实体是信息世界中广泛使用的一个术语,它用于表示(C)

A)有生命的事物B)无生命的事物C)实际存在的事物D)

一切事物

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不

得分.

1.常用的黑盒测试有等价分类法﹑[边值分析法]﹑因果图法和错误推测法4

种.

2.测试的目的的暴露错误,评价程序的可靠性;而[调试]的目的是发现错误的

位置并改正错误.

3.软件维护活动包括以下几类:改正性维护﹑适应性维护﹑[完善性]维护和预

防性维护.

4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为

[消息].

5.关键字ASC和DESC分别表示[升序排列和降序排列]的含义.

模拟测试九一.选择题(每小题2分)

在下列各题的A),B)C),D)4个选项中,只有1个选项是正确的,请将正确选项填涂

在答题卡相应的位置上,答在试卷上不得分

1.最简单的交换排序方法是(D)

A)快速排序B)选择排序C)堆排序D)冒

泡排序

2.栈通常采用的两种存储结构是(A)

A)线性存储结构和链表存储结构

B)列方式和索引方式

C)表存储结构和数组

D)线行存储结构和非线性存储结构

3.线性表的顺序存储结构和线性表的链式存储结构分别是(B)

A)顺序存储的存储结构、顺序结构的存储结构

B)随机存储的存储结构、顺序存储的存储结构

C)随机存储的存储结构、随机存取的存储结构

D)任意存储的存储结构、任意存储的存储结构

4.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例

的方法是(A)

A)黑盒测试法B)白盒测试法C)错误推测法D)安装测试法

5.在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示(A)

A)模块之间的调用关系B)程序的组成成分

C)控制程序的执行顺序D)数据的流向

6.下列选项中,不属于模块间耦合的是(C)

A)数据耦合B)同构耦合C)异构耦合D)公用耦合

7.一个关系中属性个数为1时,称此关系为(C)

A)对应关系B)单一关系C)一元关系D)二元关系

8.为用户与数据库系统提供接口的语言是(C)

A)高级语言B)数据描述语言(DDL)C)数据操纵语言(DML)D)

汇编总汇

9.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据数据不一致性

和(D)

A)可重用性差B)安全性差C)非持久性D)冗余性

10.需求分析阶段的任务是确定(D)

A)软件开发方法B)软件开发工具C)软件开发费用D)

软件系统功能

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不

得分.

1.栈和队列通常采用的存储结构[链式存储和顺序存储]。

2.在程序设计阶段应该采取[自顶向下]和逐步求精的方法,把一个模块的功

能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。

3.软件结构是以[模块]为基础而组成的一种控制层次结构。

4.数据库系统阶段的数据具有较高的独立性,数据独立性包括物理独立性和

[逻辑独立性]两个含义。

5.数据库保护分为:安全性控制、[完整性控制]、并发性控制和数据的复制。

模拟测试十一.选择题(每小题2分)

在下列各题的A),B)C),D)4个选项中,只有1个选项是正确的,请将正确选项填涂

在答题卡相应的位置上,答在试卷上不得分。

1.下列数据结构中,按先进后出原则组织数据的是(B)

A)线性链表B)栈C)循环链表D)顺序表

2.具有3个结点的二叉树有(D)

A)2种形态B)4种形态C)7种形态D)5种形态

3.设有如图所示二叉树:对此二叉树前序列遍历的结果为(B)

A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPY

4.结构化程序设计主要强调的是(D)

A)程序的规模B)程序的效率C)程序设计语言的先进性D)程

序医读性

5.程序的3种基本控制结构是(B)

A)过程、子过程和分程序B)顺序、选择和循环

C)递归、堆栈和队列D)调用、返回和转移

6.下列叙述中,不属于测试的特征的是(C)

A)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)

测试的经济性

7.需求分析中开发人员要从用户那里了解(A)

A)软件做什么B)用户使用界面C)输入的信息D)

软件的规模

8.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属

性个数的是(B)

A)选择B)连接C)投影D)



9.下列叙述中,正确的是(C)

A)用E-R图能表示实体间一对一的联系、一对多的联系和多对多的联系

B)用E-R图只能表示实体集之间一对一的联系

C)用E-R图只能表示实体集之间一对多的联系

D)用E-R图表示的概念数据模型只能转换为关系数据模型

10.“年龄在18~25之间”这种约束是属于数据库当中的(C)

A)原子性措施B)一致性措施C)完整性措施D)

安全性措施

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不

得分.

1.排序是计算机程序设计中一种重要操作,常见的排序方法有插入排序、[交

换排序]和选择排序等。

2.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行

入队运算。这种情况称为[上溢]。

3.[封装]是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分

开。

4.为了便于对照检查,测试用例应由输入数据和预期的[输出结果]两部分

组成。

5.[关系运算]是从二维表列的方向进行的运算。

模拟测试十一1.选择题(每小题2分)

在下列各题的A)B).C).D)4个选项中,只有1个是正确的,请将正确选项填在大答题

卡上,答在试卷上不给分.

1.根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成

(C)

A)动态结构和静态结构B)紧凑结构和非紧凑结构

C)线新性结构和非线性结构D)内部结构和外部结构

2.设一棵二叉树中有3个叶子结点,有8个度为1的接点,则该二叉树中总的接点数

为(B)

A)12B)13C)14D)15

3.在下列几种排序方法中,要求内存最大的是(D)

A)插入批排序B)选择排序C)快速排序D)归并排序

4.下列叙述中,不属于结构化程序设计方法的重要原则是(B)

A)自顶向下B)由底向上C)模板化D)限制使用goto语句

5.下列不属于软件调试技术的是(B)

A)强行排错法B)集成测试法C)回嗍法D)原因排除法

6.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程

序流程图,通常也把这种图称为(B)

A)PAD图B)N-S图C)结构图D)数据流图

7.软件复杂性1度量的参数包括(B)

A)效率B)规模C)完整性D)容错性

8.下列叙述中,不属于数据库系统的是(B)

A)数据库B)数据库管理系统C数据库管理员D)数据库应用

系统

9.数据库系统的核心是(B)

A)数据库B)数据库管理系统C)数据模型D)软件工具

10.视图设计一般有3中设计次序,下列不属于视图设计的是(B)

A)自顶向下B)由外向内C)由内向外D)自底向上

3.填空题(每空2分)

请将每一个空的正确答案写在答题卡11___15的横线上,答在试卷不给分.

1.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的[时间复

杂度和空间复杂度]。

2.数据结构包括数据的逻辑结构.数据的[存储结构]以及对数据的操作运算。

3.可以把具有相同属性的不同对象归类,称为[对象类]。

4.软件工程包括3个要素,分别为方法.工具和[过程]。

5.由关系数据库系统支持的完整性约束是指[实体完整性]和参照完整性。

模拟试题十二一

选择题(每小题2分)在下列各题的A).B).C),D)的4个选项中,只有1个是正确的,请将正确的选项涂写在

答题卡的相应位置上,答在试卷上不给分.

1.由两个栈共享一个存储空间的好处是(B)

A)减少存取时间,降低下溢发生的机率B)节省存储空间,降低下溢发生的机



C)减少存取时间,降低上溢发生的机率D)节省存储空间,降低下溢发生的机



2.设有两个串p和q,求p和q中首次出现位置的运算称作(B)

A)连接B)模式匹配C)求子串D)求串长

3.n个顶点的连接图中边的条数至少为(C)

A)0B)1C)n-1D)n

4.对象实现了数据和操作的结合,是指对数据和数据的操作进行(C)

A)结合B)隐藏C)封装D)抽象

5.下列叙述中,正确的是(D)

A)软件就是程序清单B)软件就是存放在计算机中的文



C)软件应包括程序清单和运算结果D)软件包括程序和文档

6.软件设计中,有利于提高模式独立性的一个准则是(C)

A)低内聚低藕合B)低内聚高藕合

C)高内聚低藕合D)高内聚高藕合

7.软件生命周期中花费时间最多的阶段是(D)

A)详细设计B)而今编码C)软件测试D)软件维护

8.下列4项中说法不正确的是(C)

A)数据库减少了数据冗杂B)数据库中的数据可以共享

C)数据库避免了一切数据的重复D)数据库具有较高的数据的独立



9.下列4项中,必需进行查询优化的是(A)

A)关系数据库B)网状数据库C)层次数据库D)非关系模型

10.最常用的一种基本数据模型是关系数据模型,它的表示应采用(D)

A)树B)网络C)图D)二维表

二.填空题(每空2分)

请将每一空的正确答案写在答题卡[11]~[15]序号的横线上,答在试卷上不

得分.

1.当线系性表采用顺序存储时,其主要特点是[逻辑结构中相临的结点在

存储结构中仍相临]。

2.软件工程的出现是由于[软件危机的出现]。

3.单元测试又称模块测试,一般采用[白盒法]测试。

4.数据库恢复5.是将数据库从[错误]恢复到某一已只的正确状态。

7.数据的基本单位是[数据元素]。

第三部分试卷部分出现的公共基础题(略)

经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法

复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进

行重点学习。

详细重点学习知识点:

1.算法的概念、算法时间复杂度及空间复杂度的概念

2.数据结构的定义、数据逻辑结构及物理结构的定义

3.栈的定义及其运算、线性链表的存储方式

4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历

5.二分查找法

6.冒泡排序法

1.1算法

考点1算法的基本概念

考试链接:

考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2

分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。

计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。

1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。

2.算法的基本要素:

(1)算法中对数据的运算和操作

一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制

结构。

在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、

关系运算和数据传输。

(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。

描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个

算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。

考点2算法复杂度

考试链接:

考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,

主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识

记算法时间复杂度及空间复杂度的概念。

1.算法的时间复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。

同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的

计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合

适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行

工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函

数。即

算法的工作量=f(n)

2.算法的空间复杂度

算法的空间复杂度是指执行这个算法所需要的内存空间。

一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存

储空间以及算法执行过程中所需要的额外空间。其中额外空间包括算法程序执行

过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相

对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了

减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外

空间。

疑难解答:算法的工作量用什么来计算?

算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次

数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。

1.2数据结构的基本概念

考点3数据结构的定义

考试链接:

考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,

主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数

据的逻辑结构和存储结构的概念。

数据结构作为计算机的一门学科,主要研究和讨论以下三个方面:

(1)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的

存储结构;

(3)对各种数据结构进行的运算。

数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并

被计算机程序处理的符号的总称。

数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处

理。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的

集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数

据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件

关系,通常记为R。一个数据结构可以表示成

B=(D,R)

其中B表示数据结构。为了反映D中各数据元素之间的前后件关系,一般用二元

组来表示。

数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据

的物理结构)。

由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了

表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),

在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之

间的前后件关系的信息。

一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺

序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同

的。因此,在进行数据处理时,选择合适的存储结构是很重要的。

考点4线性结构与非线性结构

考试链接:

考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有

所了解,在笔试考试中出现的几率为30%,主要是以填空题出现的形式出现,分

值为2分,此考点为识记内容。

根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两

大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:

(1)有且只有一个根结点;

(2)每一个结点最多有一个前件,也最多有一个后件。

则称该数据结构为线性结构。线性结构又称线性表。在一个线性结构中插入或删

除任何一个结点后还应是线性结构。如果一个数据结构不是线性结构,则称之为

非线性结构。

疑难解答:空的数据结构是线性结构还是非线性结构?

一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况

来确定。如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结

构;否则属于非线性结构。

1.3栈及线性链表

考点5栈及其基本运算

考试链接:

考点5在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,

主要是以选择的形式出现,分值为2分,此考点为重点掌握内容,读者应该掌握

栈的运算。

1.栈的基本概念

栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,

另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从

而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能

被删除的元素。栈是按照"先进后出"或"后进先出"的原则组织数据的。

2.栈的顺序存储及其运算

用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。

在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶

元素。top=0表示栈空;top=m表示栈满。

栈的基本运算有三种:入栈、退栈与读栈顶元素。

(1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加

一(即top加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经

指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这

种情况称为栈"上溢"错误。

(2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。首先将栈顶元

素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针减一(即top

减1)。当栈顶指针为0时,说明栈空,不可进行退栈操作。这种情况称为栈的"

下溢"错误。

(3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算

不删除栈顶元素,只是将它赋给一个变量,因此栈顶指针不会改变。当栈顶指针

为0时,说明栈空,读不到栈顶元素。

小技巧:栈是按照"先进后出"或"后进先出"的原则组织数据,但是出栈方式有

多种选择,在考题中经常考查各种不同的出栈方式。

考点6线性链表的基本概念

考试链接:

考点6在笔试考试中出现的几率为30%,主要是以选择的形式出现,分值为2分,

此考点为识记内容。重点识记结点的组成。

在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,

称为数据域,另一部分用于存放指针,称为指针域。其中指针用于指向该结点的

前一个或后一个结点(即前件或后件)。

链式存储方式既可用于表示线性结构,也可用于表示非线性结构。

(1)线性链表

线性表的链式存储结构称为线性链表。

在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针,用以

指向其前件结点;另一个称为右指针,用以指向其后件结点。这样的表称为双向

链表。

(2)带链的栈

栈也是线性表,也可以采用链式存储结构。带链的栈可以用来收集计算机存储空

间中所有空闲的存储结点,这种带链的栈称为可利用栈。

疑难解答:在链式结构中,存储空间位置关系与逻辑关系是什么?

在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺

序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针

域来确定的。

1.4树与二叉树

考点7树与二叉树及其基本性质

考试链接:

考点7在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,

主要是以选择的形式出现,有时也有出现在填空题中,分值为2分,此考点为重

点掌握内容。重点识记树及二叉树的性质。

误区警示:

满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。应该注意二者的区

别。

1、树的基本概念

树(tree)是一种简单的非线性结构。在树结构中,每一个结点只有一个前件,

称为父结点,没有前件的结点只有一个,称为树的根结点。每一个结点可以有多

个后件,它们称为该结点的子结点。没有后件的结点称为叶子结点。

在树结构中,一个结点所拥有的后件个数称为该结点的度。叶子结点的度为0。

在树中,所有结点中的最大的度称为树的度。

2、二叉树及其基本性质

(1)二叉树的定义

二叉树是一种很有用的非线性结构,具有以下两个特点:

①非空二叉树只有一个根结点;

②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。

由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左

子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。另

外,二叉树中的每个结点的子树被明显地分为左子树和右子树。在二叉树中,一

个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个

结点既没有左子树也没有右子树时,该结点即为叶子结点。

(2)二叉树的基本性质

二叉树具有以下几个性质:

性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点;

性质2:深度为m的二叉树最多有2m-1个结点;

性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结

点多一个。

性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表

示取log2n的整数部分。

小技巧:在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉

树的叶子结点的先后顺序都是不变的。

3、满二叉树与完全二叉树

满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个

子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k

层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。

完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;

在最后一层上只缺少右边的若干结点。

对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个

结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最

大层次或为p,或为p+1。

完全二叉树具有以下两个性质:

性质5:具有n个结点的完全二叉树的深度为[log2n]+1。

性质6:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左

到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,

n)的结点有以下结论:

①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号

为INT(k/2)。

②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显

然也没有右子结点)。

③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结

点。

考点8二叉树的遍历

考试链接:

考点8在笔试考试中考核几率为30%,分值为2分,读者应该熟练掌握各种遍历

的具体算法,能由两种遍历的结果推导另一种遍历的结果。

在遍历二叉树的过程中,一般先遍历左子树,再遍历右子树。在先左后右的原则

下,根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后

序遍历。

(1)前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在

遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

(2)中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;并且,在

遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。

(3)后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;并且,在

遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

疑难解答:树与二叉树的不同之处是什么?

在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为

二叉树,而树结构中的每一个结点的度可以是任意的。

1.5查找技术

考点9顺序查找

考试链接:

考点9在笔试考试中考核几率在30%,一般出现选择题中,分值为2分,读者应

该具体掌握顺序查找的算法。

查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素

开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;

若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失

败。

在下列两种情况下也只能采用顺序查找:

(1)如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用

顺序查找。

(2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。

考点10二分法查找

考试链接:

考点10在笔试考试中考核几率为30%,一般出现填空题中,分值为2分,考核

比较多查找的比较次数,读者应该具体掌握二分查找法的算法。

二分法只适用于顺序存储的,按非递减排列的有序表,其方法如下:

设有序线性表的长度为n,被查找的元素为i,

(1)将i与线性表的中间项进行比较;

(2)若i与中间项的值相等,则查找成功;

(3)若i小于中间项,则在线性表的前半部分以相同的方法查找;

(4)若i大于中间项,则在线性表的后半部分以相同的方法查找。

疑难解答:二分查找法适用于哪种情况?

二分查找法只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素

按值非递减排列(即从小到大,但允许相邻元素值相等)。

这个过程一直进行到查找成功或子表长度为0为止。

对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次。

1.6排序技术

考点11交换类排序法

考试链接:

考点11属于比较难的内容,一般以选择题的形式考查,考核几率为30%,分值

约为2分,读者应该熟练掌握几种排序算法的基本过程。

冒泡排序法和快速排序法都属于交换类排序法。

(1)冒泡排序法

首先,从表头开始往后扫描线性表,逐次比较相邻两个元素的大小,若前面的元

素大于后面的元素,则将它们互换,不断地将两个相邻元素中的大者往后移动,

最后最大者到了线性表的最后。

然后,从后到前扫描剩下的线性表,逐次比较相邻两个元素的大小,若后面的元

素小于前面的元素,则将它们互换,不断地将两个相邻元素中的小者往前移动,

最后最小者到了线性表的最前面。

对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时已经排好序。

在最坏的情况下,冒泡排序需要比较次数为n(n-1)/2。

(2)快速排序法

它的基本思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),

通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于

或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分

别对两个子序列继续进行排序,直至整个序列有序。

疑难解答:冒泡排序和快速排序的平均执行时间分别是多少?

冒泡排序法的平均执行时间是O(n2),而快速排序法的平均执行时间是O

(nlog2n)。

1.7例题详解

一、选择题

【例1】算法的时间复杂度取决于_______。(考点2)

A)问题的规模B)待处理的数据的初态

C)问题的难度D)A)和B)

解析:算法的时间复杂度不仅与问题的规模有关,在同一个问题规模下,而且与

输入数据有关。即与输入数据所有的可能取值范围、输入各种数据或数据集的概

率有关。

答案:D)

【例2】在数据结构中,从逻辑上可以把数据结构分成_______。(考点3)

A)内部结构和外部结构B)线性结构和非线性结构

C)紧凑结构和非紧凑结构D)动态结构和静态结构

解析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间为一

对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系,所以答

案为B)。

答案:B)

【例3】以下_______不是栈的基本运算。(考点5)

A)判断栈是否为素空B)将栈置为空栈

C)删除栈顶元素D)删除栈底元素

解析:栈的基本运算有:入栈,出栈(删除栈顶元素),初始化、置空、判断栈

是否为空或满、提取栈顶元素等,对栈的操作都是在栈顶进行的。

答案:D)

【例4】链表不具备的特点是_______。(考点6)

A)可随机访问任意一个结点B)插入和删除不需要移

动任何元素

C)不必事先估计存储空间D)所需空间与其长度成

正比

解析:顺序表可以随机访问任意一个结点,而链表必须从第一个数据结点出发,

逐一查找每个结点。所以答案为A)。

答案:A)

【例5】已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它

的前序遍历序列是_______。(考点8)

A)ACBEDB)DEABC

C)DECABD)EDBAC

解析:后序遍历的顺序是"左子树-右子树-根结点";中序遍历顺序是"左子树

-根结点-右子树";前序遍历顺序是"根结点-左子树-右子树"。根据各种遍

历算法,不难得出前序遍历序列是EDBAC。所以答案为D)。

答案:D)

【例6】设有一个已按各元素的值排好序的线性表(长度大于2),对给定的值k,

分别用顺序查找法和二分查找法查找一个与k相等的元素,比较的次数分别是s

和b,在查找不成功的情况下,s和b的关系是_______。(考点9)

A)s=bB)s>bC)s
D)s≥b

解析:对于顺序查找,查找不成功时和给定关键字比较的次数为n+1。二分查找

查找不成功的关键字比较次数为[log2n]+1。当n≥2时,显然n+1>[log2n]

+1。

答案:B)

【例7】在快速排序过程中,每次划分,将被划分的表(或子表)分成左、右两

个子表,考虑这两个子表,下列结论一定正确的是_______。(考点11)

A)左、右两个子表都已各自排好序

B)左边子表中的元素都不大于右边子表中的元素

C)左边子表的长度小于右边子表的长度

D)左、右两个子表中元素的平均值相等

解析:快速排序基本思想是:任取待排序表中的某个元素作为基准(一般取第一

个元素),通过一趟排序,将待排元素分为左右两个子表,左子表元素的排序码

均小于或等于基准元素的排序码,右子表的排序码则大于基准元素的排序码,然

后分别对两个子表继续进行排序,直至整个表有序。

答案:B)

二、填空题

【例1】问题处理方案的正确而完整的描述称为_______。(考点1)

解析:计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。

答案:算法

【例2】一个空的数据结构是按线性结构处理的,则属于_______。(考点4)

解析:一个空的数据结构是线性结构或是非线性结构,要根据具体情况而定。如

果对数据结构的运算是按线性结构来处理的,则属于线性结构,否则属于非线性

结构。

答案:线性结构

【例3】设树T的度为4,其中度为1、2、3和4的结点的个数分别为4、2、

1、1,则T中叶子结点的个数为_______。(考点7)

解析:根据树的性质:树的结点数等于所有结点的度与对应的结点个数乘积之和

加1。

因此树的结点数为1×4+2×2+3×1+4×1+1=16。叶子结点数目等

于树结点总数减去度不为0的结点数之和,即16-(4+2+1+1)=8。

答案:8

【例4】二分法查找的存储结构仅限于_______且是有序的。(考点10)

解析:二分查找,也称折半查找,它是一种高效率的查找方法。但二分查找有条

件限制:要求表必须用顺序存储结构,且表中元素必须按关键字有序(升序或降

序均可)。

答案:顺序存储结构

第2章程序设计基础

经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是结构

化程序设计的原则、面向对象方法的基本概念,读者应对此部分进行重点学习。

详细重点学习知识点:

1.结构化程序设计方法的四个原则

2.对象、类、消息、继承的概念、类与实例的区别

2.1结构化程序设计

考点1结构化程序设计的原则

考试链接:

考点1在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者应该识记结构化程序设计方法的四个主要原则。

20世纪70年代提出了"结构化程序设计"的思想和方法。结构化程序设计方法引

入了工程化思想和结构化思想,使大型软件的开发和编程得到了极大的改善。结

构化程序设计方法的主要原则为:自顶向下、逐步求精、模块化和限制使用goto

语句。

疑难解答:如何进行自顶向下设计方法?

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标;

不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具

体化。

2.2面向对象的程序设计

考点2面向对象方法的基本概念

考试链接:

考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,

主要是以填空题的形式出现,分值为2分,此考点为重点识记内容,读者应该识

记几个基本要素的定义、对象的特征以及消息、继承、类的定义。

误区警示:

当使用"对象"这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,

但是当使用"实例"这个术语时,必须是指一个具体的对象。

面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。

(1)对象

通常把对对象的操作也称为方法或服务。

属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作

来改变。属性值应该指的是纯粹的数据值,而不能指对象。

操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。

对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。

(2)类和实例

类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对

象的性质,而一个对象则是其对应类的一个实例。

类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组

合法操作。

(3)消息

消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,

它统一了数据流和控制流。

一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个

或多个参数。

(4)继承

广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。

继承分为单继承与多重继承。单继承是指,一个类只允许有一个父类,即类等级

为树形结构。多重继承是指,一个类允许有多个父类。

(5)多态性

对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全

不同的行动,该现象称为多态性。

疑难解答:能举一下现实中的对象及其属性和操作吗?

一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号等)及其操作(如启

动、刹车等)。一个窗口是对象,它包含了窗口的属性(如大小、颜色等)及其

操作(如打开、关闭等)。

2.3例题详解

一、选择题

【例1】结构化程序设计方法提出于_______。(考点1)

A)20世纪50年代B)20世纪60年代

C)20世纪70年代D)20世纪80年代

解析:20世纪70年代提出了"结构化程序设计(structuredprogramming)"的

思想和方法。结构化程序设计方法引入了工程化思想和结构化思想,使大型软件

的开发和编程得到了极大的改善。

答案:C)

【例2】结构化程序设计方法的主要原则有下列4项,不正确的是_______。(考

点1)

A)自下向上B)逐步求精

C)模块化D)限制使用goto语句

解析:结构化程序设计方法的主要原则为:

(1)自顶向下:即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目

标。

(2)逐步求精:对复杂问题,应设计一些子目标作过渡,逐步细化。

(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小

目标,把每个小目标称为一个模块。

(4)限制使用goto语句。

答案:A)

【例3】面向对象的开发方法中,类与对象的关系是_______。(考点2)

A)抽象与具体B)具体与抽象

C)部分与整体D)整体与部分

解析:现实世界中的很多事物都具有相似的性质,把具有相似的属性和操作的对

象归为类,也就是说类是具有共同属性、共同方法的对象的集合,是对对象的抽

象。它描述了该对象类型的所有对象的性质,而一个对象则是对应类的一个具体

实例。所以本题正确答案为A)项。

答案:A)

二、填空题

【例1】在面向对象方法中,使用已经存在的类定义作为基础建立新的类定义,

这样的技术叫做_______。(考点2)

解析:继承是面向对象方法的一个主要特征。继承是使用已有的类定义作为基础

建立新类的定义技术。已有的类可当作基类来引用,则新类相应地可当作派生类

来引用。

答案:继承

【例2】对象的基本特点包括_______、分类性、多态性、封装性和模块独立性

好等5个特点。(考点2)

解析:对象具有如下的基本特点:

(1)标识惟一性。对象是可区分的,并且由对象的内在本质来区分;

(2)分类性。可以将具有相同属性和操作的对象抽象成类;

(3)多态性。同一个操作可以是不同对象的行为;

(4)封装性。只能看到对象的外部特征,无需知道数据的具体结构以及实现操

作的算法;

(5)模块独立性。面向对象是由数据及可以对这些数据施加的操作所组成的统

一体。

答案:标识惟一性

【例3】对象根据所接收的消息而做出动作,同样的消息被不同的对象所接收时

可能导致完全不同的行为,这种现象称为_______。(考点2)

解析:对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导

致完全不同的行为,该现象称为多态性。

答案:多态性

第3章软件工程基础

经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件

生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者

应对此部分进行重点学习。

详细重点学习知识点:

1.软件的概念、软件生命周期的概念及各阶段所包含的活动

2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的

工具

3.软件测试的目的、软件测试的4个步骤、

4.软件调试的任务

3.1软件工程基本概念

考点1软件定义与软件特点

考试链接:

考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选

择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,

特点及其分类。

软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文

档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述

的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文

档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成:

(1)机器可执行的程序和数据;

(2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。

软件的特点:

(1)软件是逻辑实体,而不是物理实体,具有抽象性;

(2)没有明显的制作过程,可进行大量的复制;

(3)使用期间不存在磨损、老化问题;

(4)软件的开发、运行对计算机系统具有依赖性;

(5)软件复杂性高,成本昂贵;

(6)软件开发涉及诸多社会因素。

根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。

小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机

管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑

软件是介于两者之间,协助用户开发软件的工具性软件。

考点2软件工程过程与软件生命周期

考试链接:

考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式

出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,

主要活动阶段及其任务。

软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一

般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活

动,如图3-1所示。

图3-1软件生命周期

还可以将软件生命周期分为如上图所示的软件定义、软件开发和软件运行维护3

个阶段。

生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软

件实施、软件测试及运行与维护。

3.2结构化设计方法

考点3软件设计的基本概念

考试链接:

考点3在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选

择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立

性中的耦合性和内聚性。

误区警示:

在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高内

聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块

的独立性。

1.软件设计的基础

从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。

(1)结构设计定义软件系统各主要部件之间的关系;

(2)数据设计将分析时创建的模型转化为数据结构的定义;

(3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通

信;

(4)过程设计则是把系统结构部件转换为软件的过程性描述。

从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。

(1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结

构或数据库模式;

(2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法

和数据结构的细节。

2.软件设计的基本原理

(1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象

的层次从概要设计到详细设计逐步降低。

(2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块

化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。

(3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不

需要这些信息的其他模块来说是不能访问的。

(4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,

并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要

度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内

聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模

块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。

内聚性是度量一个模块功能强度的一个相对指标。内聚是从功能角度来衡量模块

的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由

弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、

功能内聚。

耦合性是模块之间互相连接的紧密程度的度量。耦合性取决于各个模块之间接口

的复杂度、调用方式以及哪些信息通过接口。耦合可以分为下列几种,它们之间

的耦合度由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、

数据耦合、非直接耦合。

在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,

应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,

有利于提高模块的独立性。

小提示:上面仅是对耦合机制进行的一个分类。可见一个模块与其他模块的耦

合性越强则该模块独立性越弱。原则上讲,模块化设计总是希望模块之间的耦合

表现为非直接耦合方式。但是,由于问题所固有的复杂性和结构化设计的原则,

非直接耦合是不存在的。

考点4详细设计

考试链接:

考点4在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式

出现,分值为2分,此考点为识记内容,读者应该识记过程设计包括哪些常用工

具。

详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用

某种选定的表达表示工具算法和数据结构的细节。

详细过程设计的常用工具有:

(1)图形工具:程序流程图,N-S,PAD,HIPO。

(2)表格工具:判定表。

(3)语言工具:PDL(伪码)。

程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后判断重复型和

多分支选择型。

方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE

重复型和UNTIL重复型。

PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、WHILE重复

型和UNTIL重复型。

过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英

语的词汇和结构化程序设计语言,类似编程语言。

PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。

疑难解答:程序流程图,N-S图,PAD图的控制结构的异同点是什么?

相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还

有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、

UNTIL重复型而有后判断重复型和先判断重复型。

3.3软件测试

考点5软件测试的目的

考试链接:

考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,

主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测

试是为了发现错误。

软件测试是在软件投入运行前对软件需求、设计、编码的最后审核。其工作量、

成本占总工作量、总成本的40%以上,而且具有较高的组织管理和技术难度。

(1)软件测试是为了发现错误而执行程序的过程;

(2)一个好的测试用例是能够发现至今尚未发现的错误的用例;

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

考点6软件测试的实施

考试链接:

考点6在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两

种测试方式。

软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。

单元测试是对软件设计的最小单位--模块(程序单元)进行正确性检验测试。单

元测试的技术可以采用静态分析和动态测试。

集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误,主要依

据是概要设计说明书。集成测试所设计的内容包括:软件单元的接口测试、全局

数据结构测试、边界条件和非法输入的测试等。集成测试时将模块组装成程序,

通常采用两种方式:非增量方式组装和增量方式组装。

确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说

明中确定的各种需求,包括软件配置是否完全、正确。确认测试的实施首先运用

黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明

确认的标准。

系统测试是通过测试确认软件,作为整个基于计算机系统的一个元素,与计算机

硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使

用)环境下对计算机系统进行一系列的集成测试和确认测试。

系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外

部接口测试、安全性测试等。

3.4软件的调试

考点7软件调试的基本概念

考试链接:

考点7在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,

主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者应该识

记软件调试的概念。

误区警示:

程序经调试改错后还应进行再测试,因为经调试后有可能产生新的错误,而且测

试是贯穿生命周期的整个过程。

在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。程

序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。

程序调试活动由两部分组成,一是根据错误的迹象确定程序中错误的确切性质、

原因和位置;二是对程序进行修改,排除这个错误。程序调试的基本步骤:

(1)错误定位。从错误的外部表现形式入手,研究有关部分的程序,确定程序

中出错位置,找出错误的内在原因;

(2)修改设计和代码,以排除错误;

(3)进行回归测试,防止引进新的错误。

调试原则可以从以下两个方面考虑:

(1)确定错误的性质和位置时的注意事项

分析思考与错误征兆有关的信息;避开死胡同;只把调试工具当作辅助手段来使

用;避免用试探法,最多只能把它当作最后手段。

(2)修改错误原则

在出现错误的地方,很可能有别的错误;修改错误的一个常见失误是只修改了这

个错误的征兆或这个错误的表现,而没有修改错误本身;注意修正一个错误的同

时有可能会引入新的错误;修改错误的过程将迫使人们暂时回到程序设计阶段;

修改源代码程序,不要改变目标代码。

疑难解答:软件测试与软件调试有何不同?

软件测试是尽可能多地发现软件中的错误,而软件调试的任务是诊断和改正程序

中的错误。软件测试贯穿整个软件生命周期,调试主要在开发阶段。

3.5例题详解

一、选择题

【例1】对软件的特点,下面描述正确的是_______。(考点1)

A)软件是一种物理实体

B)软件在运行使用期间不存在老化问题

C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制

D)软件的生产有一个明显的制作过程

解析:软件在运行期间不会因为介质的磨损而老化,只可能因为适应硬件环境以

及需求变化进行修改而引入错误,导致失效率升高从而软件退化,所以本题正确

答案为B)。

答案:B)

【例2】以下哪项是软件生命周期的主要活动阶段?_______(考点2)

A)需求分析B)软件开发

C)软件确认D)软件演进

解析:B)、C)、D)项都是软件工程过程的基本活动,还有一个是软件规格说明。

答案:A)

【例3】从技术观点看,软件设计包括_______。(考点3)

A)结构设计、数据设计、接口设计、程序设计

B)结构设计、数据设计、接口设计、过程设计

C)结构设计、数据设计、文档设计、过程设计

D)结构设计、数据设计、文档设计、程序设计

解析:技术角度,要进行结构、接口、数据、过程的设计。结构设计是定义系统

各部件关系,数据设计是根据分析模型转化数据结构,接口设计是描述如何通信,

过程设计是把系统结构部件转化为软件的过程性描述。

答案:B)

【例4】以下哪个是软件测试的目的?_______(考点5)

A)证明程序没有错误B)演示程序的正确性

C)发现程序中的错误D)改正程序中的错误

解析:关于测试目的的基本知识,IEEE的定义是:使用人工或自动手段来运行

或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期

结果与实际结果之间的差别,所以正确答案是C)。

答案:C)

【例5】以下哪个测试要对接口测试?_______。(考点6)

A)单元测试B)集成测试

C)验收测试D)系统测试

解析:检查对测试实施各阶段的了解,集成测试时要进行接口测试、全局数据结

构测试、边界条件测试和非法输入的测试等,所以正确答案是B)。

答案:B)

【例6】程序调试的主要任务是_______。(考点7)

A)检查错误B)改正错误

C)发现错误D)以上都不是

解析:程序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。

答案:B)

【例7】以下哪些不是程序调试的基本步骤?_______(考点7)

A)分析错误原因B)错误定位

C)修改设计代码以排除错误D)回归测试,防止引入新错误

解析:程序调试的基本步骤:

(1)错误定位。从错误的外部表现形式入手,研究有关部分的程序,确定程序

中出错位置,找出错误的内在原因。

(2)修改设计和代码,以排除错误。

(3)进行回归测试,防止引进新的错误。

答案:A)

【例8】在修改错误时应遵循的原则有_______。(考点7)

A)注意修改错误本身而不仅仅是错误的征兆和表现

B)修改错误的是源代码而不是目标代码

C)遵循在程序设计过程中的各种方法和原则

D)以上3个都是

解析:修改错误原则:

(1)在出现错误的地方,很可能有别的错误;

(2)修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而

没有修改错误本身;

(3)注意修正一个错误的同时有可能会引入新的错误;

(4)修改错误的过程将迫使人们暂时回到程序设计阶段;

(5)修改源代码程序,不要改变目标代码。

答案:D)

二、填空题

【例1】软件设计是软件工程的重要阶段,是一个把软件需求转换为_______的

过程。(考点3)

解析:软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过

程。其基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即

软件设计是确定系统的物理模型。

答案:软件表示

【例2】_______是指把一个待开发的软件分解成若干小的简单的部分。(考点3)

解析:模块化是指把一个待开发的软件分解成若干小的简单的部分。如高级语言

中的过程、函数、子程序等。每个模块可以完成一个特定的子功能,各个模块可

以按一定的方法组装起来成为一个整体,从而实现整个系统的功能。

答案:模块化

【例3】数据流图采用4种符号表示_______、数据源点和终点、数据流向和数

据加工。(考点4)

解析:数据流图可以表达软件系统的数据存储、数据源点和终点、数据流向和数

据加工。其中,用箭头表示数据流向,用圆或者椭圆表示数据加工,用双杠表示

数据存储,用方框来表示数据源点和终点。

答案:数据存储

第4章数据库设计基础

经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是数据

库管理系统,数据库基本特点,数据库系统的三级模式及二级映射,E-R模型,

关系模型和关系代数,读者应对此部分进行重点学习。

详细重点学习知识点:

1.数据的概念、数据库管理系统提供的数据语言、数据管理员的主要工作、数

据库系统阶段的特点、数据的物理独立性及逻辑独立性、数据统一管理与控制、

三级模式及两级映射的概念

2.数据模型3个描述内容、E-R模型的概念及其E-R图表示法、关系操纵、关

系模型三类数据约束

3.关系模型的基本操作、关系代数中的扩充运算

4.数据库设计生命周期法的4个阶段

4.1数据库系统的基本概念

考点1数据、数据库、数据库管理系统

考试链接:

考点1在笔试考试中,是一个经常考查的内容,在笔试考试中出现的机率为70%,

主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者还应该

识记数据语言所包括的数据定义语言、数据操纵语言和数据控制语言。

数据是数据库中存储的基本对象,描述事物的符号记录。

数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统

一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个

应用程序所共享。

数据库管理系统(DBMS,DatabaseManagementSystem)是数据库的机构,它是

一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和

数据服务等。数据库管理系统是数据系统的核心,主要有如下功能:数据模式定

义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义和检查、数据

库的并发控制与故障恢复、数据的服务。

为完成数据库管理系统的功能,数据库管理系统提供相应的数据语言:数据定义

语言、数据操纵语言、数据控制语言。

数据库管理员的主要工作如下:数据库设计、数据库维护、改善系统性能,提高

系统效率。

考点2数据库系统的发展

考试链接:

考点2在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者还应该注意各个阶段的特点。

数据管理技术的发展经历了3个阶段,见表4-1:

表4-1各阶段特点的详细说明

考点3数据库系统的基本特点

考试链接:

考点3在笔试考试中出现的机率为30%,主要是以填空题的形式出现,分值为2

分,此考点为识记内容,读者还应该理解物理独立性和逻辑独立性的定义。

数据独立性是数据与程序间的互不依赖性,即数据库中的数据独立于应用程序而

不依赖于应用程序。

数据的独立性一般分为物理独立性与逻辑独立性两种。

(1)物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独

立的。当数据的物理结构(包括存储结构、存取方式等)改变时,如存储设备的

更换、物理存储的更换、存取方式改变等,应用程序都不用改变。

(2)逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据

的逻辑结构改变了,如修改数据模式、增加新的数据类型、改变数据间联系等,

用户程序都可以不变。

数据统一管理与控制主要包括以下3个方面:数据的完整性检查、数据的安全性

保护和并发控制。

考点4数据库系统的内部结构体系

考试链接:

考点4在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者还应该理解三级模式及两级映射的定义。

误区警示:

一个数据库只有一个概念模式。一个概念模式可以有若干个外模式。三级模式都

有几种名称,读者应该熟记每个模式的另一些名称。

1.数据统系统的3级模式

(1)概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,

是全体用户(应用)公共数据视图。一个数据库只有一个概念模式。

(2)外模式,外模式也称子模式,它是数据库用户能够看见和使用的局部数据

的逻辑结构和特征的描述,它是由概念模式推导而出来的,是数据库用户的数据

视图,是与某一应用有关的数据的逻辑表示。一个概念模式可以有若干个外模式。

(3)内模式,内模式又称物理模式,它给出了数据库物理存储结构与物理存取

方法。

内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模

式处于中间层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它

反映了用户对数据的要求。

小提示:内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形

式,概念模式处于中间层,它反映了设计者的数据全局逻辑要求,而外模式处于

最外层,它反映了用户对数据的要求。

2.数据库系统的两级映射

两级映射保证了数据库系统中数据的独立性。

(1)概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构

到数据的物理存储结构间的对应关系;

(2)外模式到概念模式的映射。概念模式是一个全局模式而外模式是用户的局

部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个

基本视图。

疑难解答:数据库应用系统的结构是什么样的?

数据库应用系统的7个部分以一定的逻辑层次结构方式组成一个有机的整体,它

们的结构关系是:应用系统工、应用开发工具软件、数据库管理系统、操作系统、

硬件。

4.2数据模型

考点5数据模型的基本概念

考试链接:

考点5在笔试考试中是一个经常考查的内容,出现的机率为70%,主要是以填空

形式出现,分值为2分,此考点为重点识记内容,读者应该识记数据模型的3

个部分。

数据模型用来抽象、表示和处理现实世界中的数据和信息。分为两个阶段:把现

实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据

模型。

数据模型所描述的内容有3个部分,它们是数据结构、数据操作与数据约束。

考点6E-R模型

考试链接:

考点6在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为4

分,此考点为理解内容,读者应该理解实体间三种函数关系,识记实体、属性、

联系各用什么图形来表示。

1.E-R模型的基本概念

(1)实体:现实世界中的事物可以抽象成为实体,实体是概念世界中的基本单

位,它们是客观存在的且又能相互区别的事物。

(2)属性:现实世界中事物均有一些特性,这些特性可以用属性来表示。

(3)码:唯一标识实体的属性集称为码。

(4)域:属性的取值范围称为该属性的域。

(5)联系:在现实世界中事物间的关联称为联系。

两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几

种:一对一的联系、一对多或多对一联系、多对多。

2.E-R模型的图示法

E-R模型用E-R图来表示。

(1)实体表示法:在E-R图中用矩形表示实体集,在矩形内写上该实体集的名

字。

(2)属性表示法:在E-R图中用椭圆形表示属性,在椭圆形内写上该属性的名

称。

(3)联系表示法:在E-R图中用菱形表示联系,菱形内写上联系名。

考点7层次模型

考试链接:

考点7在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者应该理解层次模型的定义。它的基本结构是树形结

构。

满足下面两个条件的基本层次联系的集合为层次模型。

(1)有且只有一个结点没有双亲结点,这个结点称为根结点;

(2)除根结点以外的其他结点有且仅有一个双亲结点。

考点8关系模型

考试链接:

考点8笔试考试中,是一个经常考查的内容,在笔试考试中出现的机率为70%,

主要是以选择题的形式出现,分值为2分,此考点重点掌握为理解内容,读者应

该理解二维表的7个性质,识记三类数据约束。

误区警示:

当对关系模型进行查询运算,涉及到多种运算时,应当注意它们之间的先后顺序,

因为有可能进行投影运算时,把符合条件的记录过滤,产生错误的结果。

关系模型采用二维表来表示,二维表一般满足下面7个性质:

(1)二维表中元组个数是有限的--元组个数有限性;

(2)二维表中元组均不相同--元组的唯一性;

(3)二维表中元组的次序可以任意交换--元组的次序无关性;

(4)二维表中元组的分量是不可分割的基本数据项--元组分量的原子性;

(5)二维表中属性名各不相同--属性名唯一性;

(6)二维表中属性与次序无关,可任意交换--属性的次序无关性;

(7)二维表属性的分量具有与该属性相同的值域--分量值域的统一性。

在二维表中惟一标识元组的最小属性值称为该表的键或码。二维表中可能有若干

个健,它们称为表的侯选码或侯选健。从二维表的所有侯选键选取一个作为用户

使用的键称为主键或主码。表A中的某属性集是某表B的键,则称该属性值为A

的外键或外码。

关系操纵:数据查询、数据删除、数据插入、数据修改。

关系模型允许定义三类数据约束,它们是实体完整性约束、参照完整性约束以及

用户定义的完整性约束。

小提示:关系模式采用二维表来表示,一个关系对应一张二维表。可以这么说,

一个关系就是一个二维表,但是一个二维表不一定是一个关系。

疑难解答:E-R图是如何向关系模式转换的?

从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R

图中属性也可以转换成关系的属性。实体集也可以转换成关系。

4.3关系代数

考点9关系代数

考试链接:

考点9在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2

分,此考点重点掌握理解内容,读者应该理解关系模型的基本操作以及关系代数

的几种运算。

误区警示:

当对关系模型进行查询运算,涉及到多种运算时,应当注意它们之间的先后顺序,

因为有可能进行投影运算时,把符合条件的记录过滤,产生错误的结果。

1.关系模型的基本操作

关系模型的基本操作:插入、删除、修改和查询。

其中查询包含如下运算:

①投影运算。从R中选择出若干属性列组成新的关系。

②选择运算。选择运算是一个一元运算,关系R通过选择运算(并由该运算给出

所选择的逻辑条件)后仍为一个关系。设关系的逻辑条件为F,则R满足F的选

择运算可写成:σF(R)

③笛卡尔积运算。设有n元关系R及m元关系S,它们分别有p、q个元组,则

关系R与S经笛卡尔积记为R×S,该关系是一个n+m元关系,元组个数是p×q,

由R与S的有序组组合而成。

小提示:当关系模式进行笛卡尔积运算时,读者应该注意运算后的结果是n+m

元关系,元组个数是p×q,这是经常混淆的。

2.关系代数中的扩充运算

(1)交运算:关系R与S经交运算后所得到的关系是由那些既在R内又在S内

的有序组所组成,记为R∩S。

(2)除运算

如果将笛卡尔积运算看作乘运算的话,除运算就是它的逆运算。当关系T=R×S

时,则可将除运算写成:T÷R=S或T/R=S

S称为T除以R的商。除法运算不是基本运算,它可以由基本运算推导而出。

(3)连接与自然连接运算

连接运算又可称为θ运算,这是一种二元运算,通过它可以将两个关系合并成一

个大关系。设有关系R、S以及比较式iθj,其中i为R中的域,j为S中的域,

θ含义同前。则可以将R、S在域i,j上的θ连接记为:

R|×|S

iθj

在θ连接中如果θ为"=",就称此连接为等值连接,否则称为不等值连接;如θ

为"<"时称为小于连接;如θ为">"时称为大于连接。

自然连接(naturaljoin)是一种特殊的等值连接,它满足下面的条件:

①两关系间有公共域;

②通过公共域的等值进行连接。

设有关系R、S,R有域A1,A2,…,An,S有域B1,B2,…,Bm,并且,Ai1,Ai2,…,

Aij,与B1,B2,…,Bj分别为相同域,此时它们自然连接可记为:

R|×|S

自然连接的含义可用下式表示:

R|×|S=πA1,A2,……An,Bj+1,……Bm(σAi1=B1^Ai2=B2^…^Aij=,Bj(R×S))

疑难解答:连接与自然连接的不同之处在什么?

一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以是

同时从行和列的角度进行运算。

4.4数据库设计与管理

考点10数据库设计概述

考试链接:

考点10在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2

分,此考点为识记内容,读者还应识记数据库设计的前4个阶段以及它们相应的

任务。

数据库设计中有两种方法,面向数据的方法和面向过程的方法:

面向数据的方法是以信息需求为主,兼顾处理需求;面向过程的方法是以处理需

求为主,兼顾信息需求。由于数据在系统中稳定性高,数据已成为系统的核心,

因此面向数据的设计方法已成为主流。

数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目

标独立的若干阶段。它们是:需求分析阶段、概念设计阶段、逻辑设计阶段、物

理设计阶段、编码阶段、测试阶段、运行阶段和进一步修改阶段。在数据库设计

中采用前4个阶段。

疑难解答:数据库设计的前4个阶段的成果分别是什么?

数据库设计中一般采用前4个阶段,它们的成果分别是需求说明书、概念数据模

型、逻辑数据模型和数据库内模式。

4.4例题详解

一、选择题

【例1】对于数据库系统,负责定义数据库内容,决定存储结构和存取策略及安

全授权等工作的是_______。(考点1)

A)应用程序员B)用户

C)数据库管理员D)数据库管理系统的软件设计员

解析:数据库管理员(简称DBA),具有如下的职能:设计、定义数据库系统;

帮助用户使用数据库系统;监督与控制数据库系统的使用和运行;改进和重组数

据库系统;转储和恢复数据库;重构数据库。所以,定义数据库内容,决定存储

结构和存取策略及安全授权等是数据库管理员(DBA)的职责。

答案:C)

【例2】在数据库管理技术的发展过程中,经历了人工管理阶段、文件系统阶段

和数据库系统阶段。在这几个阶段中,数据独立性最高的是_______。(考点2)

A)数据库系统B)文件系统

C)人工管理D)数据项管理

解析:在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖于程序。

在文件系统阶段,数据共享性差,冗余度大,独立性也较差。所以B)选项和C)

选项均是错误的。

答案:A)

【例3】在数据库系统中,当总体逻辑结构改变时,通过改变_______,使局部

逻辑结构不变,从而使建立在局部逻辑结构之上的应用程序也保持不变,称之为

数据和程序的逻辑独立性。(考点3)

A)应用程序B)逻辑结构和物理结构之间的映



C)存储结构D)局部逻辑结构到总体逻辑结构

的映射

解析:模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。

当模式改变时,由数据库管理员对外模式/模式映射做相应改变,可以使外模式

保持不变。应用程序是依据数据的外模式编写的,从而应用程序也不必改变。保

证了数据与程序的逻辑独立性,即数据的逻辑独立性。

答案:D)

【例4】数据库系统依靠_______支持数据的独立性。(考点4)

A)具有封装机制

B)定义完整性约束条件

C)模式分级,各级模式之间的映射

D)DDL语言和DML语言互相独立

解析:。数据库的三级模式结构指数据库系统由外模式、模式和内模式3级构成。

数据库管理系统在这3级模式之间提供了两层映射:外模式/模式映射,模式/

内模式映射。这两层映射保证了数据库系统中的数据能够具有较高的逻辑独立性

和物理独立性。

答案:C)

【例5】将E-R图转换到关系模式时,实体与联系都可以表示成_______。(考点

6)

A)属性B)关系

C)键D)域

解析:E-R图由实体、实体的属性和实体之间的联系3个要素组成,关系模型的

逻辑结构是一组关系模式的集合,将E-R图转换为关系模型:将实体、实体的属

性和实体之间的联系转化为关系模式。

答案:B)

【例6】用树形结构来表示实体之间联系的模型称为_______。(考点7)

A)关系模型B)层次模型

C)网状模型D)数据模型

解析:满足下面两个条件的基本层次联系的集合为层次模型:

(1)有且只有一个结点没有双亲结点,这个结点称为根结点;

(2)根以外的其它结点有且仅有一个双亲结点。

层次模型的特点:

(1)结点的双亲是惟一的;

(2)只能直接处理一对多的实体联系;

(3)每个记录类型定义一个排序字段,也称为码字段;

(4)任何记录值只有按其路径查看时,才能显出它的全部意义;

(5)没有一个子女记录值能够脱离双亲记录值而独立存在。

答案:B)

【例7】对数据库中的数据可以进行查询、插入、删除、修改(更新),这是因

为数据库管理系统提供了_______。(考点8)

A)数据定义功能B)数据操纵功能

C)数据维护功能D)数据控制功能

解析:数据库管理系统包括如下功能:

(1)数据定义功能:DBMS提供数据定义语言(DDL),用户可以通过它方便地对

数据库中的数据对象进行定义;

(2)数据操纵功能:DBMS还提供数据操作语言(DML),用户可以通过它操纵数

据,实现对数据库的基本操作,如查询、插入、删除和修改;

(3)数据库的运行管理:数据库在建立、运用和维护时由数据库管理系统统一

管理,统一控制以保证数据的安全性、完整性、多用户对数据的并发使用及发生

故障后的系统恢复;

(4)数据库的建立和维护功能:它包括数据库初始数据的输入、转换功能,数

据库的转储、恢复功能,数据库的重组、功能和性能监视等等。

答案:B)

【例8】设关系R和关系S的属性元数分别是3和4,关系T是R与S的笛卡儿

积,即T=R×S,则关系T的属性元数是_______(考点9)

A)7B)9

C)12D)16

解析:笛卡儿积的定义是设关系R和S的元数分别是r和s,R和S的笛卡儿积

是一个(r+s)元属性的集合,每一个元组的前r个分量来自R的一个元组,后

s个分量来自s的一个元组。所以关系T的属性元数是3+4=7。

答案:A)

【例9】下述_______不属于数据库设计的内容。(考点10)

A)数据库管理系统B)数据库概念结构

C)数据库逻辑结构D)数据库物理结构

解析:数据库设计是确定系统所需要的数据库结构。数据库设计包括概念设计、

逻辑设计和建立数据库(又称物理设计)。

答案:A)

二、填空题

【例1】一个数据库的数据模型至少应该包括以下3个组成部分,_______、数

据操作和数据的完整性约束条件。(考点5)

解析:数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静

态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操

作和完整性约束3部分组成。其中,数据结构是对系统静态特性的描述,数据操

作是对系统动态特性的描述,数据的完整性约束用以限定符合数据模型的数据库

状态以及状态的变化,以保证数据的正确性、有效性和相容性。

答案:数据结构

【例2】在关系数据模型中,二维表的列称为属性,二维表的行称为_____。(考

点8)

解析:一个关系是一张二维表。表中的行称为元组,一行对应一个元组,一个元

组对应存储在文件中的一个记录值。

答案:元组

献花(0)
+1
(本文系朽木轩首藏)