计算机二级公共基础知识要点.docx
《计算机二级公共基础知识要点.docx》由会员分享,可在线阅读,更多相关《计算机二级公共基础知识要点.docx(57页珍藏版)》请在冰豆网上搜索。
计算机二级公共基础知识要点
计算机二级公共基础知识要点
第1章数据结构与算法
1.1算法
算法:
是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:
是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:
(1)可行性;
(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;
(4)拥有足够的情报。
算法的基本要素:
一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:
一个计算机系统能执行的所有指令的集合。
基本运算包括:
算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:
顺序结构、选择结构、循环结构。
算法基本设计方法:
列举法、归纳法、递推、递归、减半递推技术、回溯法。
算法复杂度:
算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
主要考点
算法的概念,算法的基本特征,算法的复杂度(时间复杂度和空间复杂度的概念及其相互关系)
历年考题
10年3月
(2)算法的时间复杂度是指
A)算法的执行时间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的基本运算次数
09年9月
(4)算法的空间复杂度是指
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
08年4月
(5)算法的有穷性是指()
A)算法程序的运行时间是有限的B)算法程序所处理的数据是有限的
C)算法程序的长度是有限的D)算法只能被有限的用户使用
07年4月
(1)下列叙述中正确的是()
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
06年9月
(7)下列叙述中正确的是________。
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则其时间复杂度必定小
C)一个算法的时间复杂度大,则其空间复杂度必定小
D)上述三种说法都不对
05年9月
(2)算法复杂度主要包括时间复杂度和【2】空间复杂度。
05年4月
(5)问题处理方案的正确而完整的描述称为(算法)。
1.2数据结构的基本概念
数据结构是指相互有关联的数据元素的集合。
数据结构研究的三个方面:
(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
(3)对各种数据结构进行的运算。
数据的逻辑结构包含:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:
不满足线性结构条件的数据结构。
主要考点
逻辑结构和存储结构的概念及相互关系;存储结构的分类;线性结构和非线性结构的理解
历年考题
10年9月
1.下列叙述中正确的是
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D)上述三种说法都不对
09年9月
(1)下列数据结构中,属于非线性结构的是
A)循环队列
B)带链队列
C)二叉树
D)带链栈
08年9月
(4)下列叙述中正确的是()。
A)顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
07年9月
(6)下列叙述中正确的是
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D)以上三种说法都不对
06年9月
(1)数据结构分为线性结构和非线性结构,带链的队列属于[5]线性结构。
05年9月
(4)下列叙述中正确的是( )。
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
05年4月
(1)数据的存储结构是指( )。
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构在计算机中的表示
1.3线性表及其顺序存储结构
线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:
(1)有且只有一个根结点a1,它无前件;
(2)有且只有一个终端结点an,它无后件;
(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:
(1)线性表中所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:
ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:
插入、删除。
主要考点
线性表概念的理解(多与具体的数据结构结合考查),存储地址的计算
1.4栈和队列(考查重点)
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。
栈的基本运算:
(1)插入元素称为入栈运算;
(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
Rear指针指向队尾,front指针指向队头。
队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括
(1)入队运算:
从队尾插入一个元素;
(2)退队运算:
从队头删除一个元素。
循环队列:
s=0表示队列空,s=1且front=rear表示队列满
主要考点
栈和队列的概念及特征;进出栈/队列的顺序判断;栈和队列(包含循环队列)中元素个数的计算
历年考题
10年9月
2.下列叙述中正确的是
A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D)上述三种说法都不对
10年3月
(1)一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。
09年9月
(2)下列数据结构中,能够按照“先进后出”原则存取数据的是
A)循环队列
B)栈
C)队列
D)二叉树
(3)对于循环队列,下列叙述中正确的是
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
09年3月
(1)下列叙述中正确的是()
A)栈是“先进先出”的线性表B)队列是“后进先出”的线性表
C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
(1)假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有(20)个元素。
08年9月
(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A)123456ABCDE
B)EDCBA54321
C)ABCDE12345
D)54321EDCBA
(2)下列叙述中正确的是()。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
08年4月
(7)下列关于栈的叙述正确的是()
A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据
C)只能在栈底插入数据D)不能删除数据
(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有(24)个元素。
07年9月
(3) 线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的_[3]__顺序_____存储结构.
07年4月
(5)下列对队列的叙述正确的是()
A)队列属于非线性表
B)队列按“先进后出”原则组织数据
C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据
06年9月
(2)数据结构分为线性结构和非线性结构,带链的队列属于[5]线性结构。
06年4月
4)按照“后进先出”原则组织数据的数据结构是
A)队列
B)栈
C)双向链表
D)二叉树
5)下列叙述中正确的是
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
05年9月
(3)下列关于栈的描述正确的是( )。
A)在栈中只能插入元素而不能删除元素
B)在栈中只能删除元素而不能插入元素
C)栈是特殊的线性表,只能在一端插入或删除元素
D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
(1)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。
05年4月
(2)下列关于栈的描述中错误的是( )。
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
1.5线性链表
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:
(1)用于存储数据元素值,称为数据域;
(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式既可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:
左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:
查找、插入、删除。
主要考点
线性链表的基本概念及和顺序表之间在存储时的区别
历年考题
06年4月
5)下列叙述中正确的是
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
05年4月
(5)下列对于线性链表的描述中正确的是( )。
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
1.6树与二叉树(考查重点)
树是一种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。
树的最大层次称为树的深度。
二叉树的特点:
(1)非空二叉树只有一个根结点;
(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
二叉树的基本性质:
(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;
(2)深度为m的二叉树最多有2m-1个结点;
(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;
(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分;
(5)具有n个结点的完全二叉树的深度为[log2n]+1;
(6)设完全二叉树共有n个结点。
如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:
①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);
②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);
③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。
完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:
(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;
(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;
(3)后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
主要考点
根据二叉树的基本性质和满二叉树的特点进行结点个数的计算;二叉树的遍历顺序
历年考题
10年3月
(3)设二叉树如下:
对该二叉树进行后序遍历的结果为【3】EDBGHFCA。
09年9月
(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树共有【1】14个结点。
09年3月
(2)支持子程序调用的数据结构是()
A)栈B)树C)队列D)二叉树
(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()
A)10B)8C)6D)4
08年9月
(1)对下列二叉树进行中序遍历的结果__DBXEAYFZC_________。
08年4月
(2)深度为5的满二叉树有(16)个叶子结点。
07年9月
(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A)219 B)221 C)229 D)231
(4)对下列二叉树进行中序遍历的结果为_[4]_ACBDFEHGP_。
07年4月
(6)对下列二叉树
进行前序遍历的结果为()
A) DYBEAFCZX B) YDEBFZXCA
C) ABDYECFXZ D) ABCDEFXYZ
(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()
A) n+1 B) n-1 C) 2n D) n/2
(1) 在深度为7的满二叉树中,度为2的结点个数为___63____。
06年9月
(10)对下列二叉树进行中序遍历的结果是_ACBDFEG_______。
A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG
06年4月
6)对如下二叉树
进行后序遍历的结果为
A)ABCDEF
B)DBEAFC
C)ABDECF
D)DEBFCA
7)在深度为7的满二叉树中,叶子结点的个数为
A)32
B)31
C)64
D)63
05年9月
(2)一棵二叉树第六层(根结点为第一层)的结点数最多为【4】32个。
05年4月
(1)某二叉树中,度为2的结点有18个,则该二叉树中有(19 )个叶子结点。
1.7查找技术
顺序查找的使用情况:
(1)线性表为无序表;
(2)表采用链式存储结构。
顺序查找在最坏情况下需要比较的次数为n次。
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,二分查找最坏情况只需比较log2n次。
主要考点
顺序查找和二分查找的适用范围;二分查找最坏情况下比较次数
历年考题
10年3月
(1)下列叙述中正确的是
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
08年9月
(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A)O(n)B)O(n2)
C)O(log2n)D)O(nlog2n)
06年9月
(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为________。
A)63 B)64 C)6 D)7
05年9月
(2)下列数据结构中,能用二分法进行查找的是( )。
A)顺序存储的有序线性表 B)线性链表
C)二叉链表 D)有序线性链表
05年4月
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。
A)log2n
B)n/2
C)n
D)n+1
1.8排序技术
排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法:
(1)冒泡排序法,需要比较的次数为n(n-1)/2;
(2)快速排序法。
插入类排序法:
(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;
(2)希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:
(1)简单选择排序法,最坏情况需要n(n-1)/2次比较;
(2)堆排序法,最坏情况需要O(nlog2n)次比较。
主要考点
各类排序方法在最坏情况下的比较次数
历年考题
09年3月
(4)下列排序方法中,最坏情况下比较次数最少的是()
A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序
08年4月
(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()
A)快速排序B)冒泡排序C)直接插入排序D)堆排序
07年9月
(7)冒泡排序在最坏情况下的比较次数是
A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2
06年4月
1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为____45___[1]________。
05年4月
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。
A)冒泡排序为n/2
B)冒泡排序为n
C)快速排序为n
D)快速排序为n(n-1)/2
第2章程序设计基础
2.1程序设计设计方法和风格
如何形成良好的程序设计风格
1、源程序文档化;2、数据说明的方法;
3、语句的结构;4、输入和输出。
注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。
主要考点
良好程序设计风格的理解
历年考题
07年9月
(4)下列叙述中,不符合良好程序设计风格的是
A)程序的效率第一,清晰第二 B)程序的可读性好
C)程序中有必要的注释 D)输入数据前要有提示信息
06年9月
(1)下列选项中不符合良好程序设计风格的是________。
A)源程序要文档化 B)数据说明的次序要规范化
C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚
2.2结构化程序设计
结构化程序设计方法的四条原则是:
1.自顶向下;2.逐步求精;3.模块化;4.限制使用goto语句。
结构化程序的基本结构和特点:
(1)顺序结构:
一种简单的程序设计,最基本、最常用的结构;
(2)选择结构:
又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;
(3)循环结构:
可根据给定条件,判断是否需要重复执行某一相同程序段。
主要考点
结构化程序设计的原则;三种基本结构
历年考题
09年3月
(3)符合结构化原则的三种基本控制结构是:
选择结构、循环结构和(顺序结构)。
08年4月
(2)结构化程序设计的基本原则不包括()
A)多态性B)自顶向下C)模块化D)逐步求精
06年4月
1)下列选项中不属于结构化程序设计方法的是
A)自顶向下
B)逐步求精
C)模块化
D)可复用
2.3面向对象的程序设计
面向对象的程序设计:
以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。
面向对象方法的优点:
(1)与人类习惯的思维方法一致;
(2)稳定性好;
(3)可重用性好;
(4)易于开发大型软件产品;
(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象所包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。
面向对象的基本特征:
封装、继承和多态。
对象的基本特点:
(1)标识惟一性;
(2)