计算机等级考试二级指导教程公共基础知识.docx
- 文档编号:3258538
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:74
- 大小:242.77KB
计算机等级考试二级指导教程公共基础知识.docx
《计算机等级考试二级指导教程公共基础知识.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级指导教程公共基础知识.docx(74页珍藏版)》请在冰点文库上搜索。
计算机等级考试二级指导教程公共基础知识
全国计算机等级考试指导教程(二级)
——公共基础知识
编著黄海军
2013年9月
目录
前言4
二级考试中的公共基础知识的备考4
历年公共基础知识考点统计与分析6
第一章数据结构与算法7
1.1算法7
1.2数据结构的基本概念8
1.3线性表及其顺序存储结构10
1.4栈和队列11
1.5线性链表13
1.6树与二叉树15
1.7查找技术19
1.8排序技术20
第二章程序设计基础22
2.1程序设计设计方法和风格22
2.2结构化程序设计(面向过程的程序设计方法)23
2.3面向对象的程序设计24
第三章软件工程基础27
3.1软件工程基本概念27
3.2结构化分析方法31
3.3结构化设计方法32
3.4软件测试36
3.5程序的调试39
第四章数据库设计基础41
4.1数据库系统的基本概念41
4.2数据模型45
4.3关系代数47
4.4数据库设计与管理50
计算机等级考试二级指导教程
公共基础知识
前言
二级考试中的公共基础知识的备考
从2005年初开始,教育部对全国计算机等级考试进行了较大调整。
二级考试的笔试包括基础知识和程序设计两部分,其中基础知识占30分。
这次改革的思想就是将基础知识的内容由计算机常识(一级难度)调整为程序开发基础(三级难度),如果这部分知识内容没有掌握好,难以在等级考试中取得好成绩。
因此,必须引起我们足够的重视,这部分因涉及四门课程知识,要求面广。
实际上只要掌握了一定的备考技巧过关也不难的。
大纲的二级基础知识分为数据结构与算法、程序设计基础、软件工基础、数据库设计基础四部分,下面分别说一下学习重点和方法:
(1)数据结构与算法
本章的知识用于提高程序的效率以及对较复杂的问题进行求解。
本章内容在计算机专业基础课中也属于比较难的一门,学习本章的内容必须进行理解,死记硬背是无效的。
对于等级考试,本章重点的考核点主要在二叉树,同时这也是本章的难点,考核形式主要为二叉树的遍历问题(如给图求遍历序列、给前序、中序遍历求后序遍历等)、二叉树的结点问题(如给出一些条件然后求叶子结点个数);还有排序和查找考试中也经常会涉及到,排序主要以计算时间复杂度的形式考核,查找主要以计算最佳/最坏比较次数的方式考核。
其余的知识点主要以概念的形式考察,考生需要仔细看书并理解。
(2)程序设计基础与软件工程基础
这两章以概述的形式简介了规范化开发软件的方法。
与数据结构不同,这两章内容主要是记忆性的知识点。
程序设计基础的内容与大纲改革前添加了面向对象程序设计的内容,考生可以对本章进行几次细读后了解即可;软件工程基础这章主要考核内容为结构化分析及结构化设计方法(即SA及SD,约占50%),信息量较大,其次是软件测试(约占20%),考生需要将相关的概念及规则背诵,在以后有机会进行程序开发时这些知识可以得到深刻理解。
(3)数据库设计基础
数据库是当前软件处理的信息核心,目前大部分软件都是基于数据库的,因此学习一下数据库知识对程序开发也是很有帮助的。
本章主要的考核点是关系模型、关系代数及数据库系统的基本概念,其余的知识点了解即可,其中数据库的设计和管理可以结合着软件工程来看,考生会发现这两者有很多相似之处。
除了关系代数会考一些简单的计算问题外,其余的都是以概念题的形式考核,考生需要仔细的阅读。
以上为复习二级公共基础的方法,顺便提及一点考生在选购教材的时候应当特别注意,应当购买最近版的二级公共基础知识教程(指定教材由高等教育出版社出版),还有考生在备考时,除了应完成教材中的习题外还应当做一下近几年的真题,并且用其估计一下自己的知识欠缺以便更好的进行查漏补缺。
历年公共基础知识考点统计与分析
章节
知识点
2012
下
2012上
2011
下
2011
上
2010
下
2010
上
2009
下
2009
上
2008
下
2008
上
2007
下
2007
上
2006
下
2006
上
2005下
2005
上
数据
结构
与
算法
算法
2
2
0
0
2
0
4
2
0+2
2+2
数据结构的基本概念
0
2
0
0
0
4
0
0
0
2+2
2
线性表及顺序存储
0
0
0
2+2
0
0
0
0
0
0
0
栈和队列
4
4
4
2+2
0
2
0
0+4
2
4
2
线性链表
0
0
0
0
0
0
0
0
2
0
2
树与二叉树
2
0+2
2
2
0+2
2+2
4+2
2
0
4+2
0+2
查找技术
2
0
0
2
0
0
0
2
0
0
2
排序技术
0
0
2
0
2
2
0
0
0+2
2
0
程序
设计
基础
程序设计方法与风格
0
0
0
0
0
0
0
4
0
0
0
结构化程序设计
0
2
0+2
0
2
0
0
0
2
0
0
面向对象程序设计
0
0
0
2
0
2
0+2
0
0+2
0
0+2
软件
工程
基础
软件工程基本概念
4+2
2+2
2
2+2
6
0
2
4
0
4+2
2
结构化分析方法
2
0+2
0
2
0
0+4
0
0
0
0
0
结构化设计方法
0
2
2
0
2
0
2
2
0
2
2
软件测试
0
0+2
2+2
0+2
0+2
0+2
2+2
0
0+2
0
2
程序调试
2
0
0
0
0
2
0
0+2
2
2
0+2
数据库
设计
基础
数据库的基本概念
2
2+2
0+2
2
0+4
2
2+2
4+2
2+2
2+2
2
数据模型
2+2
2
2+2
2+2
2
2+2
2
0
4+2
0
2+2
关系代数
2
2
2
0
2
0
2
2
0
2
0
数据库设计与管理
2
0
2
0+2
0+2
0
0
2
0
2
0
第一章数据结构与算法
1.1算法
1、算法:
是指解题方案的准确而完整的描述。
v算法不等于程序,也不等于计算机方法,程序的编制不可能优于算法的设计。
2、算法的基本特征
(1)可行性;针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;
(3)有穷性,算法必须能在有限的时间内做完,取能在执行有限个步骤后终止,包括合理的执行时间的含义;
(4)拥有足够的情报。
v综上所述,所谓算法就是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
3、算法复杂度主要包括算法时间复杂度和算法空间复杂度。
(1)算法时间复杂度是指执行算法所需要的计算工作量。
可以用执行算法的过程中所需基本运算的执行次数来度量。
(2)算法空间复杂度是指执行这个算法所需要的内存空间。
【真题练习】
(2011年9月)下列叙述中正确的是(D)。
A.算法就是程序B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对
(2010年3月)算法的时间复杂度是指(D)。
A)算法的执行时间B)算法所处理的数据量
C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数
(2009年9月)算法的空间复杂度是指(A)。
A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量
C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数
(2007年4月)下列叙述中正确的是(B)。
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
(2008年3月)算法的有穷性是指()。
A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的D)算法只能被有限的用户使用
(2007年4月)在算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。
这属于算法的()。
A)正当性B)可行性C)确定性D)有穷性
(2006年9月)下列叙述中正确的是()。
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则其时间复杂度必定小
C)一个算法的时间复杂度大,则其空间复杂度必定小
D)上述三种说法都不对
(2005年9月)算法复杂度主要包括时间复杂度和【2】复杂度。
(2005年4月)算法具有5个特性,下列选项中不属于算法特性的是()。
A)有穷性B)简洁性C)可行性D)确定性
(2005年4月)问题处理方案正确而完整的描述称为【5】。
1.2数据结构的基本概念
1、数据结构是指相互有关联的数据元素的集合。
2、数据结构研究的三个方面:
数据的逻辑结构、存储结构、运算。
(1)数据集合中和数元素之间所固有的逻辑关系,即数据的逻辑结构;
数据的逻辑结构包含:
1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
数据的存储结构有顺序、链接、索引等。
1)顺序存储。
它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构。
2)链接存储。
它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
由此得到的存储表示称为链式存储结构。
3)索引存储:
除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
(3)对各种数据结构进行的运算。
v数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构(也称数据的物理结构)是数据的逻辑结构在计算机存储空间中的存放形式。
同一种逻辑结构的数据可以采用不同的存储结构,但影响数据处理效率。
3、数据结构的图形表示
一个数据结构除了用二元关系表示外,还可以直观地用图形表示。
在数据结构的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,并简称为结点;为了进一步表示各数据元素之间的前后件关系,对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。
4、数据结构分为两大类型:
线性结构和非线性结构。
(1)线性结构(非空的数据结构)条件:
1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。
v常见的线性结构有线性表、栈、队列和线性链表等。
(2)非线性结构:
不满足线性结构条件的数据结构。
v常见的非线性结构有树、二叉树和图等。
【真题练习】
(2011年9月)数据结构分为线性结构与非线性结构,带链的栈属于【1】
(2009年9月)下列数据结构中,属于非线性结构的是()。
A)循环队列B)带链队列C)二叉树D)带链栈
(2007年9月)下列叙述中正确的是()。
A)程序执行的效率与数据的存储结构密切相关
B)程序执行的效率只取决于程序的控制结构
C)程序执行的效率只取决于所处理的数据量
D)以上三种说法都不对
(2007年9月)下列叙述中正确的是()。
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构
D)以上三种说法都不对
(2005年9月)下列叙述中正确的是()。
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
(2005年9月)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。
(2005年4月)数据的存储结构是指()。
A)存储在外存中的数据B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示
1.3线性表及其顺序存储结构
1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
线性表是由n(n≥0)个数据元素组成的一个有限序列。
在复杂线性表中,由若干数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:
(1)且只有一个根结点a,它无前件;
(2)有且只有一个终端点a,它无后件;
(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
2、线性表的顺序储结构具有以下两个基本特点:
(1)线性表中所有元素的所占的存储空间是连续的;
(2)线性表中各数元素在存储空间中是按逻辑顺序依次存放的。
a的存储地址为:
ADR(a)=ADR(a)+(i-1)k,ADR(a)为第一个元素的地址,k代表每个元素占的字节数。
v由此可以看出,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面,可以通过计算机直接确定第i个结点的存储地址。
3、顺序表的运算:
插入、删除。
(1)顺序表的插入运算:
在一般情况下,要在第i(1≤i≤n)个元素之前插入一个新元素时,首先要从最后一个(即第n个)元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,移动结束后,第i个位置就被空出,然后将新元素插入到第i项。
插入结束后,线性表的长度就增加了1。
v顺性表的插入运算时需要移动元素,在等概率情况下,平均需要移动n/2个元素。
(2)顺序表的删除运算:
在一般情况下,要删除第i(1≤i≤n)个元素时,则要从第i+1个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置。
删除结束后,线性表的长度就减小了1。
v进行顺性表的删除运算时也需要移动元素,在等概率情况下,平均需要移动(n-1)/2个元素。
插入、删除运算不方便。
【真题练习】
(2012年3月)将长度为n的顺序存储在线性表中删除一个元素,最坏情况下需要移动表中的元素个数为()。
(2011年9月)在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中【2】.
(2008年9月)下列叙述中正确的是()。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
(2008年9月)线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的[3]存储结构
1.4栈和队列
1、栈及其基本运算
(1)栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。
(2)栈的基本运算:
1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素给一个指定的变量,此时指针无变化。
栈的存储方式和线性表类似,也有两种,即顺序栈和链式栈。
2、队列及其基本运算
(1)队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
Rear指针指向队尾,front指针指向队头。
队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
(2)队列运算包括1)入队运算:
从队尾插入一个元素;2)退队运算:
从队头删除一个元素。
(3)循环队列及其运算:
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。
v循环队列是队列的链式存储结构,循环队列中元素的个数=rear-front。
【真题练习】
(2012年3月)下列叙述中正确的是:
A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构
C、循环队列是非线性结构D、循环队列是一直逻辑结构
(2012年3月)下列叙述中正确的是
A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表
C、栈和队列都是非线性结构D、以上三种说法都不对
(2012年3月)设循环队列的存储空间为Q(1:
3),初始状态为front=rear=30。
现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有()个元素。
(2010年3月)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。
(2010年3月)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
(2009年9月)下列数据结果中,能够按照“先进后出”原则存取数据的是()。
A)循环队列B)栈C)队列D)二叉树
(2009年9月)对于循环队列,下列叙述中正确的是()。
A)队头指针是固定不变的B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针
(2009年3月)下列叙述中正确的是()。
A)栈是“先进先出”的线性表B)队列是“先进先出”的线性表
C)循环队列是非线性结构
D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构
(2009年3月)支持子程序调用的数据结构是()。
A)栈B)树C)队列D)二叉树
(2009年3月)假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。
(2008年9月)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA
(2008年9月)下列叙述中正确的是()。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
(2008年3月)下列关于栈的叙述正确的是()。
A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据
C)只能在栈底插入数据D)不能删除数据
(2008年3月)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【3】个元素。
(2007年4月)下列对队列的叙述正确的是()。
A)队列属于非线性表B)队列按“先进后出”原则组织数据
C)队列在队尾删除数据D)队列按“先进先出”原则组织数据
(2006年9月)按“后进后出”原则组织数据的数据结构是[4]。
(2006年9月)数据结构分为线性结构和非线性结构,带链的队列属于[5]。
(2006年4月)按照“后进先出”原则组织数据的数据结构是()。
A)队列B)栈C)双向链表D)二叉树
(2005年9月)下列数据结构中,能用二分法进行查找的是()。
A)顺序存储的有序线性表B)线性链表C)二叉链表D)有序线性链表
(2005年9月)下列关于栈的描述正确的是()。
A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素
C)栈是特殊的线性表,只能在一端插入或删除元素
D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
(2005年4月)下列关于栈的描述中错误的是()。
A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
1.5线性链表
1、线性表顺序存储的缺点:
(1)插入或删除的运算效率很低。
在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素;
(2)线性表的顺序存储结构下,线性表的存储空间不便于扩充;(3)线性表的顺序存储结构不便于对存储空间的动态分配。
2、线性链表:
线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:
(1)用于存储据元素值,称为数据域;
(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表分为单链表、双向链表和循环链表三种类型。
在单链表中,每一个结点只有一个指针域,由这个指针只能找到其后件结点,而不能找到其前件结点。
因此,在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指针,指向其前件结点;另一个称为右指针,指向其后件结点,这种链表称为双向链表。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:
左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
3、线性链表的基本运算:
查找、插入、删除。
(1)在线性链表中包含指定元素的结点之前插入一个新元素。
v在线性链表中插入元素时,不需要移动数据元素,只需要修改相关结点指针即可,也不会出现“上溢”现象。
(2)在线性链表中删除包含指定元素的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 指导 教程 公共 基础知识