《全国计算机等级考试二级教程——公共基础知识大纲》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级教程——公共基础知识大纲(32页珍藏版)》请在金锄头文库上搜索。
1、全国计算机等级考试二级教程一一公共基础知识考试大纲基本要求1. 掌握算法的基本概念。2. 掌握基本数据结构及其操作。3. 掌握基本排序和查找算法。4. 掌握逐步求精的结构化程序设计方法。5. 掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。6. 掌握数据库的基本知识,了解关系数据库的设计。考试内容一、基本数据结构与算法1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2. 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概 念。3. 线性表的定义;线性表的顺序存储结构及其插入与删除运算。4. 栈和队列的定义;栈和队列的顺
2、序存储结构及其基本运算。5. 线性单链表、双向链表与循环链表的结构及其基本运算。6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7. 顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。二、程序设计基础1. 程序设计方法与风格。2. 结构化程序设计。3. 面向对象的程序设计方法,对象,方法,属性及继承与多态性。三、软件工程基础1. 软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。3. 结构化设计方法,总体设计与详细设计。4. 软件测试的方法,白盒测试与黑盒测试,测试用
3、例设计,软件测试的实施,单元测试、集成测试和 系统测试。5. 程序的调试,静态调试与动态调试。四、数据库设计基础1. 数据库的基本概念:数据库,数据库管理系统,数据库系统。2. 数据模型,实体联系模型及 E-R图,从E-R图导出关系数据模型。3. 关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4. 数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。考试方式公共基础知识有10道选择题和5道填空题共三十分第一章数据结构与算法1.1算法1、算法是指解题方案的准确而完整的描述。换句话说,算法是对特定问题求解步骤的一种描述。* :算法不等于程序,也不等于计算方
4、法。程序的编制不可能优于算法的设计(注释1 )。2、算法的基本特征(1)可行性。针对实际问题而设计的算法,执行后能够得到满意的结果。(2) 确定性。每一条指令的含义明确, 无二义性。并且在任何条件下,算法只有唯一的一条执行路径, 即相同的输入只能得出相同的输出。(3)有穷性。算法必须在有限的时间内完成。有两重含义,一是算法中的操作步骤为有限个,二是每 个步骤都能在有限时间内完成。(4)拥有足够的情报。算法中各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这就是算法执行的起点或依据。因此,一个算法执行的结果总是与输入的初始数据有关,不 同的输入将会有不同的结果输岀。当输
5、入不够或输入错误时,算法将无法执行或执行有错。一般说来,当 算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。* :综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。3、算法复杂度主要包括时间复杂度和空间复杂度。(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。(2)算法空间复杂度是指执行这个算法所需要的内存空间。(注释1)这是因为:在编写程序时要受到计算机系统运行环境的限制,程序通常还要考虑很多与方法 和分析无关的细节问题。1.2数据结构的基本概
6、念1、数据结构是指相互有关联的数据元素的集合。2、数据结构主要研究和讨论以下三个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。数据的逻辑结构包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系( 注释1)(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。数据的存储结构有顺序、链接、索引等。1)顺序存储。它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储 单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。2)链接存储。它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字
7、 段表示的。由此得到的存储表示称为链式存储结构。3)索引存储:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。* :数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构(也称数据的物理结构)是数据的 逻辑结构在计算机存储空间中的存放形式。同一种逻辑结构的数据可以采用不同的存储结构,但影响数据 处理效率。(3 )对各种数据结构进行的运算。3、数据结构的图形表示一个数据结构除了用二元关系表示外,还可以直观地用图形表示。在数据结构的图形表示中,对于数 据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,并简称为结点;为了 进一步表示各数据元素之间的前后件关系,对于
8、关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。4、数据结构分为两大类型:线性结构和非线性结构。(1 )线性结构(非空的数据结构)条件:1)有且只有一个根结点(注释2); 2)每一个结点最多有一个前驱,也最多有一个后继。* :常见的线性结构有线性表、栈、队列和线性链表等。(2)非线性结构:不满足线性结构条件的数据结构。* :常见的非线性结构有树、二叉树和图等。(注释1)前后件关系:一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在某种 关系(即联系),这种关系反映了该集合中的数据元素所固有的一种结构。在数据处理领域中,通常把数据 元素之间这种固有的关系简单地用前后件
9、关系(即直接前驱与直接后继关系)来描述。(注释2)在数据结构中,没有前去的结点称为根结点。1.3线性表及其顺序存储结构1、 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 线性表是由n(n0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表中数据元素的个数称为线性表的长度。线性表可 以为空表。*:线性表是一种存储结构,它的存储方式:顺序和链式。2、 线性表的顺序存储结构具有两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺
10、序依次存放的。* :由此可以看岀,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面,可以通过计算机直接确定第i个结点的存储地址。3、顺序表的插入、删除运算(学吧学吧独家稿件)(1) 顺序表的插入运算:在一般情况下,要在第i (1i wn)个元素之前插入一个新元素时,首先要从最后一个(即第n个)元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,移动 结束后,第i个位置就被空岀,然后将新元素插入到第i项。插入结束后,线性表的长度就增加了1。*:顺性表的插入运算时需要移动元素,在等概率情况下,平均需要移动n/2个元素。(2) 顺序表
11、的删除运算:在一般情况下,要删除第i (1i wn)个元素时,则要从第i+1个元素开始, 直到第n个元素之间共n-i个元素依次向前移动一个位置。删除结束后,线性表的长度就减小了1。*:进行顺性表的删除运算时也需要移动元素,在等概率情况下,平均需要移动(n-1 ) /2个元素。插入、删除运算不方便。1.4栈和队列1、栈及其基本运算栈是限定在一端进行插入与删除运算的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,栈底元素总是最先被插入的元素。即栈是按照“先进后岀”或“后进先岀”的原则组织数据的。栈具有记忆作用。栈的基本运算:1)插入元素
12、称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素 赋给一个指定的变量,此时指针无变化。栈的存储方式和线性表类似,也有两种,即顺序栈和链式栈。2、队列及其基本运算队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指针(Rear )指向队尾元素,头指针(front )指向排头元素的前一个位置(队头)。队列是“先进先岀”或“后进后岀”的线性表。队列运算包括:1)入队运算:从队尾插入一个元素;2)退队运算:从队头删除一个元素。循环队列及其运算:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑 上的环状空间,供队列循环使用。在循环队列中,用
13、队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。* :循环队列中元素的个数 =rear-front 。1.5线性链表1、 线性表顺序存储的缺点:(1)插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数 据元素时需要移动大量的数据元素 ;(2)线性表的顺序存储结构下,线性表的存储空间不便于扩充;(3)线性 表的顺序存储结构不便于对存储空间的动态分配。2、线性链表:线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结 构,数据
14、元素的逻辑顺序是通过链表中的指针链接来实现的。因此,在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素的值,称为数据域;另一部分用于存放指针,称为指针域,用于指向该结点的前一个或后一个结点(即前件或后件),如下图所示:数据域 wadak0aA()錯点结构空狠m俶示意图线性链表分为单链表、双向链表和循环链表三种类型。在单链表中,每一个结点只有一个指针域,由这个指针只能找到其后件结点,而不能找到其前件结点。因此,在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指针,指向其前件结点;另一个称为右指针,指向其后件结点,这种链表称为双向链表,如下图所示:左指针鱷域右謝I丨II
15、HAD T “ 丨勺丨 L 1 丨 q I L11。査结构一个非空的舉向糖表示意国3、线性链表的基本运算(1)在线性链表中包含指定元素的结点之前插入一个新元素。* :在线性链表中插入元素时,不需要移动数据元素,只需要修改相关结点指针即可,也不会岀现“上溢(注释1)”现象。(2)在线性链表中删除包含指定元素的结点。* :在线性链表中删除元素时,也不需要移动数据元素,只需要修改相关结点指针即可。(3) 将两个线性链表按要求合并成一个线性链表。(4) 将一个线性链表按要求进行分解。(5) 逆转线性链表。(6) 复制线性链表。(7) 线性链表的排序。(8) 线性链表的查找。* :线性链表不能随机存取( 注释2 )。4、循环链表及其基本运算在线性链表中,其插入与删除的运算虽然比较方便,但还存在一个问题,在运算过程中对于空表和对 第一个结点的处理必须单独考虑,使空表与非空表的运算不统一。为了克服线性链表的这个缺点,可以采 用另一种链接方式,