二级公共基础知识全国计算机等级考试二级教程2020年2月2日星期日公共基础知识考试说明及考纲程序设计基本概念及算法程序设计基础软件工程基础数据库设计基础总体章节全国计算机等级考试1、公共基础知识考试说明及考纲基本要求1.掌握算法的基本概念。2.掌握基本数据结构及其操作。3.掌握基本排序和查找算法。4.掌握逐步求精的结构化程序设计方法。5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。6.掌握数据的基本知识,了解关系数据库的设计。考试内容一、基本数据结构与算法1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5.线性单链表、双向链表与循环链表的结构及其基本运算。6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。二、程序设计基础1.程序设计方法与风格。2.结构化程序设计。3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。三、软件工程基础1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。四、数据库设计基础1.数据库的基本概念:数据库,数据库管理系统,数据库系统。2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。考试方式1、公共基础的考试方式为笔试,与VisualFOXPRO的笔试部分合为一张试卷。公共基础部分占全卷的30分。2、公共基础知识有10道选择题和5道填空题。学习方法理解基本概念多做练习适当记忆一些名词与所学的VF程序设计知识结合起来,以增加对知识的理解能力全国计算机等级考试2、程序设计基本概念及算法程序概念什么是程序?△指令的集合。(解释指令)△通过硬件控制系统自动完成某一功能。△通过一系列代码实现。程序怎样执行?怎样编写?△计算机本身仅能识别二进制代码“0”、“1”。△编程最直接、最低级的就是机器语言。△为解决机器语言难理解、记忆等问题。出现符号语言。△为使编程接近自然语言,出现高级语言。如C、PASCAL、FORTRAN2.1算法2.1.1算法(algorithm)基本概念对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。关于问题及问题解决方案的具体描述。算法具有有穷性、确定性、可行性、输入和输出(拥有足够的情报)等5个重要特点。15有穷性:在有限时间有限步骤内执行完毕。确定性:在执行过程中命令只可由一个方式,不可有歧义必须唯一。可行性:对为题的描述可行。有一定的输入输出又称为有足够的情报2.1.2算法的基本要素1、对数据对象的运算和操作算术运算逻辑运算关系运算数据传输2、算法的控制结构算法中各操作之间的执行顺序描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等一个算法一般可以用顺序、选择、循环三种基本机构组合而成。2.2算法复杂度2.2.1时间复杂度•依据算法算法编制的程序在计算机上运行时所消耗的时间来度量。通常有事后统计法和事前分析估算法。•一个算法是由控制结构(顺序、分支和循环)和原操作构成的,算法时间取决于两者的综合效果。复杂性执行效率(事前评估\事后分析)算法的时间复杂度:算法在执行过程中所需要执行的基本运算次序。2.2.2算法的空间复杂度算法空间复杂度:算法在执行过程中所用到的存储空间大小•一般是指执行这个算法所需要的内存空间•一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及某种数据结构所需要的附加存储空间•一个上机执行的程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。例题讲解算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数算法的基本特征是可行性、确定性、【1】和拥有足够的情报。算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间在计算机中,算法是指A)加工方法B)解题方案的准确而完整的描述C)排序方法D)查询方法算法分析的目的是A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【1】。数据元素(DataElement)数据元素是数据的基本单位,即数据集合中的个体。有时一个数据元数可由若干数据项(DataItem)组成。数据项是数据的最小单位。数据元素亦称节点或记录。1.数据的逻辑结构2、数据的存储结构3、数据的运算:检索、排序、插入、删除、修改等。A.线性结构B.非线性结构A顺序存储B链式存储线性表、数组栈、广义表队列、串树形结构图形结构数据结构的三个方面数据结构可描述为Group=(D,R)树形结构全校学生档案管理的组织方式计算机程序管理系统也是典型的树形结构ABCDEFGH树形结构——结点间具有分层次的连接关系HBCDEFGA1423D={1,2,3,4}R={(1,2),(1,3),(1,4),(2,3)(3,4),(2,4)}213D={1,2,3}R={(1,2),(2,3),(3,2),(1,3)}图形结构——节点间的连结是任意的元素n……..元素i……..元素2元素1LoLo+mLo+(i-1)*mLo+(n-1)*m存储地址存储内容顺序存储元素n……..元素i……..元素2元素1存储内容顺序存储结构常用于线性数据结构,将逻辑上相邻的数据元素存储在物理上相邻的存储单元里。顺序存储结构的三个弱点:1.作插入或删除操作时,需移动大量元数。2.长度变化较大时,需按最大空间分配。3.表的容量难以扩充。例题讲解数据结构分为逻辑结构与存储结构,线性链表属于【1】。数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构C)逻辑结构D)物理和存储结构数据的逻辑结构有线性结构和【1】两大类。顺序存储方法是把逻辑上相邻的结点存储在物理位置【2】的存储单元中。数据处理的最小单位是A)数据B)数据元素C)数据项D)数据结构数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及A)数据的存储结构B)计算方法C)数据映象D)逻辑存储线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构2.3.2线性表的顺序存储结构及其插入与删除操作特点:1、线性表中数据元素类型一致,只有数据域,存储空间利用率高。2、所有元素所占的存储空间是连续的3、各数据元素在存储空间中是按逻辑顺序依次存放的2.做插入、删除时需移动大量元素。3.空间估计不明时,按最大空间分配。…..a2a1an…..ai+1ai01i-1in-11-1插入运算ai-1…..a2a1alength…ai+1aixai-1…..a2a1aiai+1…alengthalength……ai+1aix插入算法的分析假设线性表中含有n个数据元素,在进行插入操作时,若假定在n+1个位置上插入元素的可能性均等,则平均移动元素的个数为:1n1iis2n1)i(n1n1E删除算法的分析在进行删除操作时,若假定删除每个元素的可能性均等,则平均移动元素的个数为:分析结论顺序存储结构表示的线性表,在做插入或删除操作时,平均需要移动大约一半的数据元素。当线性表的数据元素量较大,并且经常要对其做插入或删除操作时,这一点需要值得考虑。n1idl21ni)(nn1E2.4栈和队列2.4.1栈和队列的定义栈和队列是两种特殊的线性表,它们是运算时要受到某些限制的线性表,故也称为限定性的数据结构。2.4.1.1栈的定义栈:限定只能在表的一端进行插入和删除的特殊的线性表,此种结构称为后进先出设栈s=(a1,a2,...,ai,...,an),其中a1是栈底元素,an是栈顶元素。栈顶(top):允许插入和删除的一端;约定top始终指向新数据元素将存放的位置。栈底(bottom):不允许插入和删除的一端。a1a2….an进栈出栈栈顶栈底队列的主要运算(1)设置一个空队列;(2)插入一个新的队尾元素,称为进队;(3)删除队头元素,称为出队;(4)读取队头元素;2.4.1.2队列的定义定义:一种特殊的线性结构,限定只能在表的一端进行插入,在表的另一端进行删除的线性表。此种结构称为先进先出(FIFO)表。a1,a2,a3,a4,…………an-1,an队列示意图队头队尾2.4.2栈的顺序存储结构及其基本运算a2a1a1a2top用顺序存储结构表示的栈。顺序栈用一组连续的存储单元存放自栈底到栈顶的数据元素,一般用一维数组表示,设置一个简单变量top指示栈顶位置,称为栈顶指针,它始终指向待插入元素的位置。基本运算:压(进)栈:PUSH出栈:POP例题讲解栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e4,e3,e2,e1D)任意顺序下列关于栈的叙述中正确的是A)在栈中只能插入数据B)在栈中只能删除数据C)栈是先进先出的线性表D)栈是后进先出的线性表下列关于队列的叙述中正确的是A)在队列中只能插入数据B)在队列中只能删除数据C)队列是先进先出的线性表D)队列是后进先出的线性表栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是A)ABCEDB)DCBEAC)DBCEAD)CDABE栈通常采用的两种存储结构是A)线性存储结构和链表存储结构B)散列方式和索引方式C)链表存储结构和数组D)线性存储结构和非线性存储结构栈和队列通常采用的存储结构是【1】。下列数据结构中,按先进后出原则组织数据的是A)线性链表B)栈C)循环链表D)顺序表2.6树树的基本概念二叉树的定义及其存储结构二叉树的前序、中序和后序遍历2.6.1树的定义由一个或多个结点组成的有限集合。仅有一个根结点,结点间有明显的层次结构关系。ACGT2DHIT3JMBELKT1F现实世界中,能用树的结构表示的例子:学校的行政关系、书的层次结构、人类的家族血缘关系等。介绍几个概念:结点(Node):树中的元素,包含数据项及若干指向其子树的分支。结点的度(Degree):结点拥有的子树数。结点的层次:从根结点开始算起,根为第一层。叶子(Leaf):度为零的结点,也称端结点。孩子(Child):结点子树的根称为该结点的孩子结点。兄弟(Sibling):同一双亲的孩子。双亲(Parent):孩子结点的上层结点,称为这些结点的双亲。深度(Depth):树中结点的最大层次数。森林(Forest):M棵互不相交的树的集合。ACGT2DHIT3JMBELKT1F2.6.2二叉树(BinaryTree)1、二叉树的定义及其性质(1)二叉树的定义二叉树的五种基本形