全国计算机二级考前辅导材料公共基础知识部分.docx
- 文档编号:6419808
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:57
- 大小:74.50KB
全国计算机二级考前辅导材料公共基础知识部分.docx
《全国计算机二级考前辅导材料公共基础知识部分.docx》由会员分享,可在线阅读,更多相关《全国计算机二级考前辅导材料公共基础知识部分.docx(57页珍藏版)》请在冰豆网上搜索。
全国计算机二级考前辅导材料公共基础知识部分
全国计算机二级(笔试)考前辅导材料
第一部分公共基础知识(30分)
第二部分VisualFoxPro(70分)
第一部分公共基础知识
包括10道单选题,5道填空题,每题2分,共30分。
公共基础知识考试内容涉及:
第一部分:
数据结构与算法
第二部分:
程序设计基础
第三部分:
软件工程基础
第四部分:
数据库设计基础(参考VisualFoxPro课程第一章)
重点讲解前三部分的内容,并整理考点与近年真题、模拟题,以
及解析。
希望对同学们的复习有帮助。
第一部分:
数据结构与算法
重点学习知识点:
1.算法的概念、算法时间复杂度及空间复杂度的概念
2.数据结构的定义、数据逻辑结构及物理结构的定义
3.栈的定义及其运算、线性链表的存储方式
4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的
遍历
考点1算法的基本概念
考点1在笔试考试中考核的几率为30%,此考点为识记内容,主要涉及算法复杂度问题较多。
所谓算法是指解题方案的准确完整的描述。
计算机解题的过程实际上是在实施某种算
法,这种算法称为计算机算法。
软件的主体是程序,程序的核心是算法。
用计算机解决问题的过程可以分成三个阶段:
分析问题、设计算法和实现算法(编程)。
Pascal之父——NicklausWirth(尼克劳斯·威茨),提出的著名公式:
“算法+数据结构=程序”。
1.算法的基本特征:
可行性——针对实际问题而设计的算法,执行后能够得到满意的结果,必须有一个或
者多个输出,有0个或者多个输入。
即使在数学理论上是正确的,如果在
实际的计算机上不能执行,则该算法不具有可行性。
确定性——算法每一步都有明确定义,不能有歧义。
有穷性——算法在有限的时间内完成。
拥有足够的情报——算法的执行结果与输入的初始数据有关,不同的输入将会导致
不同的结果输出。
当算法有足够的情报,此算法才是有效的。
当提供的情报不够时,算法可能无效。
2.算法的基本要素:
一个算法由两种基本要素组成:
(1)对数据对象的运算和操作;
在一般的计算机系统中,基本的运算和操作有以下4类:
算术运算、逻辑运算、
关系运算和数据传输(多用于插入,删除操作)。
(2)算法的控制结构。
算法中各操作之间的执行顺序称为算法的控制结构(顺序,选择和循环)。
3.算法的基本设计方法
列举发、归纳法、递推法、递归法、减半递推技术和回溯法。
4.描述算法的工具
通常有传统流程图、N-S结构化流程图、算法描述语言等。
可参考《大学计算机信息
技术》教程第3章3.3节
【典型真题】
(2011年9月)下列叙述中正确的是______
A)算法就是程序B)设计算法时只需考虑数据结构的设计
C)设计算法时只需考虑结果的可靠性D)以上三种说法都不对
解析:
算法不等同于程序,参考《大学计算机信息技术》第3.3节,设计一个计算机算法需要注意以下几
点:
①必须完整考虑整个问题所有可能的情况;②算法每一步必须是可执行的;③必须在有限步骤内求出
预定的结果。
设计算法时要考虑数据结构、数据运算与操作、以及算法的可行性、确定性、有穷性等特征。
考点2算法复杂度
考点2在笔试考试中,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分
值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机
上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些
与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于
问题的规模(通常用整数n表示),它是问题规模的函数。
即:
算法的工作量=f(n)
2.算法的空间复杂度
算法的空间复杂度是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空
间以及算法执行过程中所需要的额外空间。
其中额外空间包括算法程序执行过程中的工作
单元以及某种数据结构所需要的附加存储空间。
如果额外空间量相对于问题规模来说是常
数,则称该算法是原地工作的。
在许多实际问题中,为了减少算法所占的存储空间,通常
采用压缩存储技术,以便尽量减少不必要的额外空间。
疑难解答:
算法的工作量用什么来计算?
算法的工作量用算法所执行的基本运算或基本操作次数来计算,而算法所执行的基本
运算次数是问题规模n的函数,即算法的工作量=f(n),其中n是问题的规模。
复杂度通常表示为O(f(n)),O(f(n))代表一种量度(级别)。
时间复杂度T(n)=O(f(n))
空间复杂度S(n)=O(f(n))
举例说明:
Fori=1toint(n/2)Do
x=x+i
end
此算法的基本操作为x+i,问题规模为n,执行x+i的次数大约为n/2,所以,
时间复杂度T(n)=O(n/2),该算法的复杂度在数量级别上是n的线性方程。
经典习题
【例题1】对某个问题处理方案的正确而完整的描述称为______。
(答案:
算法)
【例题2】算法复杂度主要包括时间复杂度和复杂度。
(答案:
空间)
解析:
算法的时间复杂度是指执行算法所需要的计算工作量。
通常以基本操作执行的次数来计算,执行的.
次数与问题规模n有关,一般用O(f(n))表示。
算法的空间复杂度是指执行这个算法所需要的内存空间。
【例题3】算法的时间复杂度是指
A)算法的执行时间B)算法所处理的数据量
C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数
【例题4】算法的时间复杂度取决于_______。
A)问题的规模B)待处理的数据的初态
C)问题的难度D)A)和B)
解析:
算法的时间复杂度不仅与问题的规模有关,在同一个问题规模下,而且与输入数据有关。
即与输入
数据所有的可能取值范围、输入各种数据或数据集的概率有关。
【例题5】算法的空间复杂度是指
A)算法程序的长度B)算法程序中的指令条数
C)算法程序所占的存储空间D)算法执行过程中所需要的存储空间
【例题6】下列叙述正确的是______。
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
考点3数据结构的基本概念
考点3在笔试考试中,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分
值为2分,此考点为识记内容,还应该识记数据的逻辑结构和存储结构的概念。
1.数据结构的基本概念
数据结构是指相互有关联的数据元素的集合,即数据的组织形式。
主要研究和讨论以
下三个方面的问题:
①数据的逻辑结构;
②数据的存储结构;
③对各种数据结构进行的运算。
(例如:
插入、删除)
研究数据结构主要目的是为了提高数据处理的效率。
所谓提高数据处理的效率,主要
包括两个方面:
一是提高数据处理的速度,降低时间复杂度;二是尽量节省在数据处理过
程中所占用的计算机存储空间(降低空间复杂度)。
2.什么是数据结构?
(1)数据的逻辑结构
所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。
(2)数据的存储结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的
物理结构)
3.常见的逻辑结构与存储结构
常见的逻辑结构:
集合结构(各种元素之间无任何关系,仅仅同属于一个集合)
线性结构(线性表,栈,队列,线性链表等)
树状结构(树,二叉树,等)
图状结构或网状结构
常用的存储结构:
顺序存储结构、链式存储结构、索引结构
注意:
一种数据的逻辑结构根据需要可以表示成多种存储结构,而采用不同的存储结
构,其数据处理的效率是不同的。
4.逻辑数据结构的图形表示
图1
经典习题
【例题1】在数据结构中,从逻辑上可以把数据结构分成_______。
A)内部结构和外部结构B)线性结构和非线性结构
C)紧凑结构和非紧凑结构D)动态结构和静态结构
解析:
逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间为一对一的关系,非线性结构
表示数据元素之间为一对多或者多对一的关系,所以答案为B)。
【例题2】下列叙述中正确的是______。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
【例题3】下列描述中正确的是()。
(2007年9月)
A)程序执行的效率与数据的存储结构密切相关
B)程序执行的效率只取决于程序的控制结构
C)程序执行的效率只取决于所处理的数据量
D)以上三种说法都不对
解析:
数据的存储结构对程序的执行效率有较大影响,例如在有序存储的表中查找某个元素比无序存储的
表中查找运算快得多。
除此之外,程序的执行效率也与算法有关。
【例题4】下列叙述中正确的是()。
(2008年9月)
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
解析:
顺序存储结构是一种物理结构,表示各个元素在内存单元中的存放地址是连续的。
链式存储结构也
是一种物理结构,表示各个元素在内存中存放的位置不一定是连续的。
借助一个指针,指向下一元素的位
置。
如下图所示:
顺序存储链式存储
图2
另:
顺序存储结构可以存放(表示)线性结构,也可以表示非线性结构。
链式存储结构可以存放(表
示)线性结构,也可以表示非线性结构。
链式存储结构比顺序存储结构未必节省存储空间。
考点4线性结构与非线性结构
考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了
解,在笔试考试中出现的几率为30%,主要是以填空题出现的形式出现,分值为2分,此考
点为识记内容。
根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类
型:
线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个直接前件,也最多有一个直接后件。
则称该数据结构为线性结构。
线性结构又称线性表。
在一个线性结构中插入或删除任何一
个结点后还应是线性结构。
如果一个数据结构不是线性结构,则称之为非线性结构。
疑难解答:
空的数据结构是线性结构还是非线性结构?
一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确
定。
如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于
非线性结构。
经典习题
【例题1】下列叙述中正确的是(2011年3月)
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
解析:
(非空的)线性结构必须同时满足2个条件:
①有且只有一个根节点;②每一个节点最多有一个前驱,
最多有一个后继。
所以,B选项是对的,只满足其中条件①,不一定是线性结构。
线性结构包括:
线性表,
栈,队列,链表结构(单向链表,双向链表,循环链表),所以C,D选项是错的。
A选项有一个以上根结点
的数据结构一定是非线性结构。
【例题2】一个空的数据结构是按线性结构处理的,则属于_______。
(答案:
线性结构)
解析:
一个空的数据结构是线性结构或是非线性结构,要根据具体情况而定。
如果对数据结构的运算是按
线性结构来处理的,则属于线性结构,否则属于非线性结构。
考点5线性表的概念与基本运算
考点5在笔试考试中,在笔试考试中出现的几率为50%,主要是以选择的形式出现,分
值为2分,此考点为识记内容
1.线性表的基本概
线性表是由n(n≥0)个数据元素a1,a2,…,an组成的一个有限序列,表中的每一个
数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。
即
线性表或是一个空表(当n=0),或可以表示为(a1,a2,…,ai,…,an).
非空线性表有如下一些结构特征:
①有且只有一个根结点a1,它无前件;
②有且只有一个终结点an,它无后件;
③除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
2.线性表的顺序存储结构
在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。
线性表的顺序存储结构具有以下两个基本特点:
①线性表中所有元素据所占的存储空间是连续的;
②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
假设线性表中的第一个数据元素的存储地址为ADR(a1),每一个数据元素占K个字节,
则线性表中第i个元素ai在计算机存储空间中的存储地址为ADR(a1)=ADR(a1)+(i-1)K
3.线性表的插入运算
在平均情况下,要在线性表中插入一个新元素,需要移动表中一半的元素。
因此,在
线性表顺序存储的情况下,要插入一个新元素,其效率是很低的。
在表的第i(1≤i≤n+1)个位置,插入一个新元素X,使长度为n的线性表
(a1,a2,…,ai,…,an)变成长度为n+1的线性表(a1,a2,…ai-1,X,ai+1,…,an+1).
用顺序表作为线性表的存储结构时,由于结点的物理顺序必须和结点的逻辑顺
序保持一致,因此我们必须将原表中位置n,n-1,…,i上的结点,依次后移到位置n+1,
n,…,i+1上,空出第i个位置,然后在该位置上插入新结点X。
当i=n+1时,是指在线性表的末尾插入结点,所以无需移动结点,直接将X插入表的
末尾即可。
图3
4.线性表的删除运算
在平均情况下,要在线性表中删除一个元素,需要移动表中表中一半的元素。
因此,
在线性表顺序存储的情况下,要删除一个元素,其效率也是很低的。
是指将表的第i(1≤i≤n)个元素删去,使长度为n的线性表(e1,…,ei-1,ei,ei+1,…,
en)变成长度为n-1的线性表(e1,…,ei-1,ei+1,…,en)。
例如:
线性表(4,9,15,21,28,30,30,42,51,62)删除第5个元素,则需将
第6个元素到第10个元素依次向前移动一个位置.
图4
由线性表在存储结构下的插入与删除运算可以看出,线性表的顺序存储结构对于小线
性表或者其中元素不常变动的线性表来说是合适的,因为顺序存储的结构比较简单。
但这
种顺序存储的方式对于元素经常需要变动的大线性表就不太合适了,因为插入删除的效率
比较低。
注意:
线性表也可以采用链式存储结构。
见考点7.
经典习题
【例题1】在长度为n的线性表中,寻找最大项至少需要比较______次。
(答案:
n)
【例题2】在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元
素个数为n-1。
2012年3月
【例题3】在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中n
个元素。
2011年9月
考点6栈及队列
考点6在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是
以选择的形式出现,分值为2分,此考点为重点掌握内容,应该掌握栈的运算。
1.栈的基本概念
栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另
一端为栈底。
当表中没有元素时称为空栈。
栈顶元素总是后被插入的元素,从而也是最先
被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈是
按照"先进后出"或"后进先出"的原则组织数据的。
图5
2.栈的顺序存储及其运算
用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。
在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶元素。
top=0
表示栈空;top=m表示栈满。
栈的基本运算有三种:
入栈、退栈与读栈顶元素。
(1)入栈运算:
入栈运算是指在栈顶位置插入一个新元素。
首先将栈顶指针加一(即
top加1),然后将新元素插入到栈顶指针指向的位置。
当栈顶指针已经指向存储空间的最
后一个位置时,说明栈空间已满,不可能再进行入栈操作。
这种情况称为栈"上溢"错误。
(2)退栈运算:
退栈是指取出栈顶元素并赋给一个指定的变量。
首先将栈顶元素(栈
顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针减1(即top减1)。
当栈顶指
针为0时,说明栈空,不可进行退栈操作。
这种情况称为栈的"下溢"错误。
(3)读栈顶元素:
读栈顶元素是指将栈顶元素赋给一个指定的变量。
这个运算不删除
栈顶元素,只是将它赋给一个变量,因此栈顶指针不会改变。
当栈顶指针为0时,说明栈
空,读不到栈顶元素。
小技巧:
栈是按照"先进后出"或"后进先出"的原则组织数据,但是出栈方式有多种选择,
在考题中经常考查各种不同的出栈方式。
3.队列的基本概念
队列(Queue)是运算受到限制的一种线性表。
只允许在表的一端进行插入,而在另一
端进行删除元素的,且先进先出(FirstInFirstOut,简称FIFO结构)或后进后出(Last
InLastOut)的线性表,简称LILO结构。
队尾(rear)是允许插入的一端。
队头(front)
是允许删除的一端。
空队列是不含元素的空表。
基本运算:
入队运算和退队运算
图6
4.循环队列
把队列的存储空间设想成一个头尾相接的环状结构,最后一个位置连接第一个位置:
图7
怎样计算循环队列的元素个数?
队列头指针为front,队列尾指针为rear,队列容量为M,则元素个数为|rear-front+M|%M,
注意,这个%是求余运算。
例如:
设循环队列的存储空间为Q(1:
30),初始状态为front=rear=30。
现经过
一系列入队与退队运算后,front=16,rear=15,则循环队列中有个元
素。
经典习题
【例题1】下列关于栈叙述正确的是(2011年3月)
A.栈顶元素最先能被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.以上三种说法都不对
解析:
栈(stack)是限定在一端进行插入和删除的线性表。
在栈顶允许插
入和删除元素,在栈底不允许插入和删除数据元素。
栈顶的元素是最后被插
入的,从而也是最先被删除的元素,遵循“后进先出”或“先进后出”的原
则。
【例题2】下列关于栈的叙述正确的是______。
A.栈是非线性结构B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 考前 辅导材料 公共 基础知识 部分