二级公共基础知识考试大纲
基 本 要 求
(1)掌握算法的基本概念。
(2)掌握基本数据结构及其操作。
(3)掌握基本排序和查找算法。
(4)掌握逐步求精的结构化程序设计方法。
(5)掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
(6)掌握数据库的基本知识,了解关系数据库的设计。
考 试 内 容
1. 基本数据结构与算法
(1)算法的基本概念:算法复杂度的概念和意义(时间复杂度与空间复杂度)。
(2)数据结构的定义:数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
(3)线性表的定义:线性表的顺序存储结构及其插入与删除运算。
(4)栈和队列的定义:栈和队列的顺序存储结构及其基本运算。
(5)线性单链表、双向链表与循环链表的结构及其基本运算。
(6)树的基本概念:二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
(7)顺序查找与二分法查找算法:基本排序算法(交换类排序,选择类排序,插入类排序)。
2. 程序设计基础
(1)程序设计方法与风格。
(2)结构化程序设计。
(3)面向对象的程序设计方法,对象,方法,属性及继承与多态性。
3. 软件工程基础
(1)软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
(2)结构化分析方法,数据流图,数据字典,软件需求规格说明书。
(3)结构化设计方法,总体设计与详细设计。
(4)软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
(5)程序的调试,静态调试与动态调试。
4. 数据库设计基础
(1)数据库的基本概念:数据库,数据库管理系统,数据库系统。
(2)数据模型:实体联系模型及E-R图,从E-R图导出关系数据模型。
(3)关系代数运算:包括集合运算及选择、投影、连接运算,数据库规范化理论。
(4)数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
考 试 方 式
(1)公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计、Access数据库程序设计或Delphi语言程序设计)的笔试部分合为一张试卷。公共基础知识部分占全卷的30分。
(2)公共基础知识有10道选择题和5道填空题。
计算机二级公共基础知识总结数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。1.3 线性表及其顺序存储结构线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。顺序表的运算:插入、删除。
(详见14--16页)1.4 栈和队列栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1且front=rear表示队列满1.5 线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。线性链表的基本运算:查找、插入、删除。
1.6 树与二叉树树是一种简单的非线性结构,所有元素之间具有明显的层次特性。在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。
二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。二叉树的基本性质:(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;(2)深度为m的二叉树最多有2m-1个结点;(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;(4)具有n个结点的二叉树,。
为了方便计算机等级试,特意整理出来的。
第一章数据结构与算法1算法是解题方案的准确而完整的描述,它不等于程序,也不等于计算方法。基本特征:可行性、确定性、有穷性、拥有足够的情报。
2算法复杂度主要包括时间复杂度和空间复杂度。时间复杂度:用来衡量算法执行过程中所需要的基本运算次数。
空间复杂度:用来衡量算法执行过程中所需要的存储空间。3数据结构研究的主要内容:(1)数据的逻辑结构(2)数据的存储结构(3)对各种数据结构进行的运算4研究数据结构的主要目的:提高数据处理的效率。
5数据结构的定义:指相互关联的数据元素的集合。6数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构是数据的逻辑结构在计算机存储空间的存放形式。
同一种逻辑结构可以采用不同存储结构,但影响数据处理效率。7数据结构分为两大类型:线性结构与非线性结构常见线性结构:线性表、栈、队列、线性链表常用非线性结构:树、二叉树、图8线性表示由n(n>=0)个相同类型的数据元素构成的有限序列。
结构特征:(1)数据元素在表中的位置由序号决定,数据元素之间的相对位置是线性的(2)对于一个非空线性表,有且只有一个根节点a1,它无前件,有且只有一个终端结点an,它无后件,除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。基本存储结构:(1)顺序存储(2)链式存储9顺序表的插入运算时需要移动元素,在等概率情况下,平均需要移动n/2个元素。
10进行顺序表的删除运算时也需要移动元素,在等概率情况下,平均移动(n-1)/2个元素。11栈只能在栈顶插入或删除元素,是一种先进后出FILO(或称为后入先出LIFO)的线性表。
12队列是只能从队尾插入元素,在队头删除元素,是一种先进先出FIFO(或后入后出LILO)的线性表。13线性链表不能随机存取。
14在线性链表中插入元素时,不需要移动数据元素,只需要修改相关结点指针即可,也不会出现“上溢”现象。15在线性链表中删除元素时,也不需要移动数据元素,只需要修改相关结点指针即可。
16循环链表实单链表基础上增加了一个表头结点,其插入和删除运算与单链表相同,可以从任意结点出发来访问表中其他所有结点,并实现空表与非空表的运算。17一般二叉树通常采用链式存储结构,对于满二叉树与完全二叉树来说,可以按层序进行顺序存储。
18二分查找知识用于顺序存储的线性表,对于无序线性表和线性表的链式存储结构只能用顺序查找。19冒泡排序是每一趟都会把较小的元素先前移动,最坏比较次数是n(n-1)/2。
20简单插入排序法是将无序序列中的各元素依次插入到已经有序的线性表中,最坏比较次数为n(n-1)/2。21希尔排序法的基本思想:将无序序列划分成若干个子序列(又相隔某个增量h的元素组成)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,在对全体元素进行一次直接插入排序。
因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的。22选择排序每一趟都是找出无序序列中的最小一个元素,最坏比较次数为n(n-1)/2。
23排序技术:(1)交换排序法:冒泡排序、快速排序(2)插入排序法:简单插入排序法、希尔排序(3)选择排序法:简单选择排序法、堆排序法。
1、算法问题处理方案的正确而完整的描述称为【算法】。
算法分析的目的是,分析算法的效率以求改进。算法的基本特征是【可行性】、【确定性】、【有穷性】和拥有足够情报。
算法的有穷性是指:算法程序的运行时间是有限的。算法的复杂度是衡量算法好坏的度量,分为【时间复杂度】和【空间复杂度】。
时间复杂度是指执行算法所需要的【计算工作量】;算法的空间复杂度是指算法执行过程中所需的【存储空间】。算法时间复杂度或空间复杂度中的一项的值,没有办法推出另一项的值。
2、数据结构索引属于存储结构(物理结构)。循环队列属于【存储结构】。
数据的存储结构又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
程序执行的效率与数据的存储结构密切相关。数据结构分为线性结构和非线性结构,带链的队列属于【线性结构】。
线性表的存储结构主要分为顺序存储结构和链式存储结构。顺序存储结构的存储一定是连续的,链式存储的存储空间不一定是连续的。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。队列是一种特殊的线性表,循环队列按照【先进先出】原则组织数据。
循环队列是队列的【顺序】存储结构。数据的独立性分为【物理独立】性和【逻辑独立性】。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序可以不用修改,称为【物理独立性】。3、栈和队列栈是一种特殊的线性表,是只能在一端进行插入和删除的线性表,特点是先进后出栈是【先进后出】的线性表;栈具有记忆作用;对栈的插入与删除操作中,不需要改变【栈底指针】。
假定让元素1、2、3、A、B依次入栈,则出栈的顺序是:B、A、3、2、1。栈与队列都是线性结构,树是非线性结构。
支持子程序调用的数据结构是【栈】。栈与队列的共同点是,都只允许在【端点处】插入和删除元素。
栈只能顺序存储的描述是错误的。栈可以有【顺序和链式】两种存储方式。
队列是允许在一段插入,在另一端进行删除的线性表,其特点是【先进先出】。循环队列中元素的个数是由队头指针和队尾指针共同决定。
循环队列的头指针为front,尾指针为rear,容量为maxSize,则循环队列中元素的个数是【 (rear-front+maxSize) mod maxSize】。4、线性链表线性链表是线性表的链式存储结构。
用链表表示线性表的优点是【便于插入和删除操作】。线性链表的存储空间不一定连续,且个元素的存储顺序是任意的。
5、树与二叉树在树结构中,一个结点所拥有的后件(继)的个数称为该结点的度,所有结点中最大的度称为树的度。二叉树各结点的度只可能取值0、1、2,不可能是其它值。
换言之,知道了度为1结点数量的前提下,叶子结点或度为2的结点中知道其一,就可以求出总的结点数。上述的计算公式,关键要能够应用,例如,深度为7的满二叉树,度为2的结点数量是多少?既然是满二叉树,叶子结点的数量就是第7层的结点数量,也就是26,可以算出叶子结点为64,因此度为2的结点数是63(叶子结点数减去1)。
二叉树的前序遍历、中序遍历、后续遍历:前中后三个词是相对于根来讲的,前序是【根-->左-->右】,中序是【左-->根-->右】,后续是【左-->右-->根】。具体操作为:先序遍历(D L R): 访问根结点,按先序遍历左子树,按先序遍历右子树。
中序遍历(L D R): 按中序遍历左子树,访问根结点,按中序遍历右子树。后序遍历(L R D): 按后序遍历左子树,按后序遍历右子树,访问根结点。
下面以中序遍历为例,来讲解实际的解题方法:对一棵树,将根结点下的左子树用一个椭圆圈起来,右子树也用一个椭圆圈起来。之后,在左子树上标记上1,在根结点标记上2,在右子树上标记上3。
对在左边椭圆内的左子树,现在把它单独拿出来分析。把它的左子树圈起来标上1.1,根结点标记上1.2,右子树标上1.3。
按照上述方法依次往下,直到树不能拆分,然后按照“左-->根--->右”的顺序写出结点的访问先后即可。6、查找技术对于长度为n的线性表,顺序查找最坏情况下需要比较n次。
(对数据是否有序没有要求)。◆ 顺序查找最好情况下查询次数是1,最坏情况下是n,平均为(1+n)/2。
对于长度为n的有序线性表,二分法最坏情况下只需要比较log2n次。(数据必须有序)能用二分法进行查找的是【顺序存储的有序线性表】。
7、排序技术对于长度为n的线性表,【冒泡排序、快速排序、简单插入排序、简单选择排序】这四种排序方式在最坏情况下的比较次数相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希尔排序最坏情况下需要次比较【n1.5】。希尔排序属于【插入类排序法】。
已知数据表A中每个元素距最终位置不远,为节省时间,应该采用的算法是【直接插入排序】。选择排序、插入排序、快速排序、归并排序中对内存要求最大的是【归并排序】。
第二部分 软件工程基础 1、软件工程基本概念软件是包括【程序】、【数据】及【相关文档】的完整集合,软件是一种逻辑产品。软件工程三要素包括【方法、工具。
二级公共基础知识考试大纲基 本 要 求(1)掌握算法的基本概念。
(2)掌握基本数据结构及其操作。(3)掌握基本排序和查找算法。
(4)掌握逐步求精的结构化程序设计方法。(5)掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
(6)掌握数据库的基本知识,了解关系数据库的设计。考 试 内 容1. 基本数据结构与算法(1)算法的基本概念:算法复杂度的概念和意义(时间复杂度与空间复杂度)。
(2)数据结构的定义:数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。(3)线性表的定义:线性表的顺序存储结构及其插入与删除运算。
(4)栈和队列的定义:栈和队列的顺序存储结构及其基本运算。(5)线性单链表、双向链表与循环链表的结构及其基本运算。
(6)树的基本概念:二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。(7)顺序查找与二分法查找算法:基本排序算法(交换类排序,选择类排序,插入类排序)。
2. 程序设计基础(1)程序设计方法与风格。(2)结构化程序设计。
(3)面向对象的程序设计方法,对象,方法,属性及继承与多态性。3. 软件工程基础(1)软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
(2)结构化分析方法,数据流图,数据字典,软件需求规格说明书。(3)结构化设计方法,总体设计与详细设计。
(4)软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。(5)程序的调试,静态调试与动态调试。
4. 数据库设计基础(1)数据库的基本概念:数据库,数据库管理系统,数据库系统。(2)数据模型:实体联系模型及E-R图,从E-R图导出关系数据模型。
(3)关系代数运算:包括集合运算及选择、投影、连接运算,数据库规范化理论。(4)数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
考 试 方 式(1)公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计、Access数据库程序设计或Delphi语言程序设计)的笔试部分合为一张试卷。公共基础知识部分占全卷的30分。
(2)公共基础知识有10道选择题和5道填空题。
至少要把教材通读两遍,把该记住的知识点都记牢,并且加以复习巩固。
可以根据考试大纲,对所做题型进行适当分类整理。也需要多做做往年的真题和模拟题了。
但是做这些题的时候不能大致看一眼,觉得自己会做就忽略不计,要反复练习,认真分析,最好再加以总结。要熟练掌握其操作步骤,考前一定要再重新练习一遍操作。
因为考试是有时间限制的,考试时心情又比较紧张,如果不熟练的话,很容易导致时间不够或者操作错误的时候乱了阵脚。全国计算机等级考试(,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。
二级考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
公共基础知识 基本要求 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.公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计或Access数据库程序设计)的笔试部分合为一张试卷,公共基础知识部分占全卷的30分。 2.公共基础知识有l0道选择题和5道填空题。 C语言程序设计 基本要求 1.熟悉TURBO C集成环境。 2.熟练掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法。 4.TURBO C的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。 考试内容 一、C语言的结构 1.程序的构成,MAIN函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。 2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1.表达式语句,空语句,复合语句。 2.数据的输入与输出,输入输出函数的调用。 3.复合语句。 4.GOTO语句和语句标号的使用。 四、选择结构程序设计 1.用IF语句实现选择结构。 2.用SWITCH语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.FOR循环结构。 2.WHILE和DO WHILE循环结构。 3.CONTINUE语句和BREAK语句。 4.循环的嵌套。 六、数组的定义和引用 1.一维数组和多维数组的定义、初始化和引用 2.字符串与字符数组。 七、函数 1.库函数的正确调用。 2.函数的定义方法。 3.函数的类型和返回值。 4.形式参数与实在参数,参数值的传递。 5.函数的正确调用,嵌套调用,递归调用。 6.局部变量和全局变量。 7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 8.内部函数与外部函数。 八、编译预处理 1.宏定义:不带参数的宏定义;带参数的宏定义。 2.“文件包含”处理。 九、指针 1.指针与指针变量的概念,指针与地址运算符。 2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.739秒