ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:74.50KB ,
资源ID:6419808      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6419808.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机二级考前辅导材料公共基础知识部分.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机二级考前辅导材料公共基础知识部分.docx

1、全国计算机二级考前辅导材料公共基础知识部分全国计算机二级(笔试)考前辅导材料 第一部分 公共基础知识(30 分) 第二部分 Visual FoxPro(70 分) 第一部分 公共基础知识 包括10 道单选题,5 道填空题,每题2 分,共30 分。 公共基础知识考试内容涉及: 第一部分:数据结构与算法 第二部分:程序设计基础 第三部分:软件工程基础 第四部分:数据库设计基础(参考Visual FoxPro 课程第一章) 重点讲解前三部分的内容,并整理考点与近年真题、模拟题,以及解析。 希望对同学们的复习有帮助。 第一部分:数据结构与算法 重点学习知识点: 1算法的概念、算法时间复杂度及空间复杂度

2、的概念 2数据结构的定义、数据逻辑结构及物理结构的定义 3栈的定义及其运算、线性链表的存储方式 4树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历 考点1 算法的基本概念 考点1 在笔试考试中考核的几率为30%,此考点为识记内容,主要涉及算法复杂度问题较多。 所谓算法是指解题方案的准确完整的描述。计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 软件的主体是程序,程序的核心是算法。用计算机解决问题的过程可以分成三个阶段: 分析问题、设计算法和实现算法(编程)。 Pascal 之父Nicklaus Wirth(尼克劳斯威茨),提出的著名公式: “算法+数据结构=

3、程序”。 1算法的基本特征: 可行性针对实际问题而设计的算法,执行后能够得到满意的结果,必须有一个或者多个输出,有0 个或者多个输入。即使在数学理论上是正确的,如果在实际的计算机上不能执行,则该算法不具有可行性。 确定性算法每一步都有明确定义,不能有歧义。 有穷性算法在有限的时间内完成。 拥有足够的情报算法的执行结果与输入的初始数据有关,不同的输入将会导致不同的结果输出。当算法有足够的情报,此算法才是有效的。当提供的情报不够时,算法可能无效。 2算法的基本要素: 一个算法由两种基本要素组成: (1)对数据对象的运算和操作; 在一般的计算机系统中,基本的运算和操作有以下4 类:算术运算、逻辑运算

4、、关系运算和数据传输(多用于插入,删除操作)。 (2)算法的控制结构。 算法中各操作之间的执行顺序称为算法的控制结构(顺序,选择和循环)。 3.算法的基本设计方法 列举发、归纳法、递推法、递归法、减半递推技术和回溯法。 4. 描述算法的工具 通常有传统流程图、N-S 结构化流程图、算法描述语言等。 可参考大学计算机信息技术教程第3 章3.3 节 【典型真题】 (2011 年9 月)下列叙述中正确的是_ A)算法就是程序 B)设计算法时只需考虑数据结构的设计 C)设计算法时只需考虑结果的可靠性 D)以上三种说法都不对 解析:算法不等同于程序,参考大学计算机信息技术第3.3 节,设计一个计算机算法

5、需要注意以下几点:必须完整考虑整个问题所有可能的情况;算法每一步必须是可执行的;必须在有限步骤内求出预定的结果。设计算法时要考虑数据结构、数据运算与操作、以及算法的可行性、确定性、有穷性等特征。 考点2 算法复杂度 考点2 在笔试考试中,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2 分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 1. 算法的时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。 同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。

6、撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法运行工作量的大小,只依赖于问题的规模(通常用整数n 表示),它是问题规模的函数。即:算法的工作量=f(n) 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。 疑

7、难解答:算法的工作量用什么来计算? 算法的工作量用算法所执行的基本运算或基本操作次数来计算,而算法所执行的基本运算次数是问题规模n 的函数,即算法的工作量=f(n),其中n 是问题的规模。 复杂度通常表示为O(f(n)),O(f(n))代表一种量度(级别)。 时间复杂度 T(n)= O(f(n)) 空间复杂度S(n) = O(f(n)) 举例说明: For i=1 to int(n/2) Do x=x+i end 此算法的基本操作为x+i,问题规模为n,执行x+i 的次数大约为n/2,所以, 时间复杂度T(n)= O(n/2),该算法的复杂度在数量级别上是n 的线性方程。 经典习题 【例题1】

8、对某个问题处理方案的正确而完整的描述称为_。 (答案:算法) 【例题2】算法复杂度主要包括时间复杂度和 复杂度。 (答案:空间) 解析:算法的时间复杂度是指执行算法所需要的计算工作量。通常以基本操作执行的次数来计算,执行的.次数与问题规模n有关,一般用O(f(n)表示。算法的空间复杂度是指执行这个算法所需要的内存空间。 【例题3】算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语司或指令条数 D)算法在执行过程中所需要的基本运算次数 【例题4】算法的时间复杂度取决于_。 A)问题的规模 B)待处理的数据的初态 C)问题的难度 D)A)和 B) 解析:算法的时间

9、复杂度不仅与问题的规模有关,在同一个问题规模下,而且与输入数据有关。即与输入数据所有的可能取值范围、输入各种数据或数据集的概率有关。 【例题5】算法的空间复杂度是指 A)算法程序的长度 B)算法程序中的指令条数 C)算法程序所占的存储空间 D)算法执行过程中所需要的存储空间 【例题6】下列叙述正确的是_。 A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 C) 数据的逻辑结构与存储结构是一一对应的 D) 算法的时间复杂度与空间复杂度一定相关 考点3 数据结构的基本概念 考点3 在笔试考试中,在笔试考试中出现的几率为70%,主要是以

10、选择的形式出现,分值为2 分,此考点为识记内容,还应该识记数据的逻辑结构和存储结构的概念。 1.数据结构的基本概念 数据结构是指相互有关联的数据元素的集合,即数据的组织形式。主要研究和讨论以下三个方面的问题: 数据的逻辑结构; 数据的存储结构; 对各种数据结构进行的运算。(例如:插入、删除) 研究数据结构主要目的是为了提高数据处理的效率。所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,降低时间复杂度;二是尽量节省在数据处理过程中所占用的计算机存储空间 (降低空间复杂度) 。 2什么是数据结构 ? (1)数据的逻辑结构 所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构

11、。 (2)数据的存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构) 3.常见的逻辑结构与存储结构 常见的逻辑结构:集合结构 (各种元素之间无任何关系,仅仅同属于一个集合) 线性结构(线性表,栈,队列,线性链表等) 树状结构(树,二叉树,等) 图状结构或网状结构 常用的存储结构:顺序存储结构、链式存储结构、索引结构 注意:一种数据的逻辑结构根据需要可以表示成多种存储结构,而采用不同的存储结构,其数据处理的效率是不同的。 4. 逻辑数据结构的图形表示 图1 经典习题 【例题1】在数据结构中,从逻辑上可以把数据结构分成_。 A)内部结构和外部结构 B)线性

12、结构和非线性结构 C)紧凑结构和非紧凑结构 D)动态结构和静态结构 解析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系,所以答案为B)。 【例题2】下列叙述中正确的是_。 A一个逻辑数据结构只能有一种存储结构 B数据的逻辑结构属于线性结构,存储结构属于非线性结构 C一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 【例题3】下列描述中正确的是( )。 (2007 年9 月) A)程序执行的效率与数据的存储结构密切相关 B

13、)程序执行的效率只取决于程序的控制结构 C)程序执行的效率只取决于所处理的数据量 D)以上三种说法都不对 解析:数据的存储结构对程序的执行效率有较大影响,例如在有序存储的表中查找某个元素比无序存储的表中查找运算快得多。除此之外,程序的执行效率也与算法有关。 【例题4】下列叙述中正确的是( ) 。 (2008 年9 月) A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 解析:顺序存储结构是一种物理结构,表示各

14、个元素在内存单元中的存放地址是连续的。链式存储结构也是一种物理结构,表示各个元素在内存中存放的位置不一定是连续的。借助一个指针,指向下一元素的位置。如下图所示: 顺序存储 链式存储 图2 另:顺序存储结构可以存放(表示)线性结构,也可以表示非线性结构。链式存储结构可以存放(表示)线性结构,也可以表示非线性结构。链式存储结构比顺序存储结构未必节省存储空间。 考点4 线性结构与非线性结构 考点4 在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了解,在笔试考试中出现的几率为30%,主要是以填空题出现的形式出现,分值为2 分,此考点为识记内容。 根据数据结构中各数据元素之间前后件关

15、系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件: (1)有且只有一个根结点; (2)每一个结点最多有一个直接前件,也最多有一个直接后件。 则称该数据结构为线性结构。线性结构又称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。 疑难解答:空的数据结构是线性结构还是非线性结构? 一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确定。如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于非线性结构。 经典习题 【例题1】下列叙述中正确的

16、是 (2011 年3 月) A.有一个以上根结点的数据结构不一定是非线性结构 B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构 D.双向链表是非线性结构 解析:(非空的)线性结构必须同时满足2个条件:有且只有一个根节点;每一个节点最多有一个前驱, 最多有一个后继。所以,B选项是对的,只满足其中条件,不一定是线性结构。线性结构包括:线性表,栈,队列,链表结构(单向链表,双向链表,循环链表),所以C,D选项是错的。A选项有一个以上根结点的数据结构一定是非线性结构。 【例题2】一个空的数据结构是按线性结构处理的,则属于_。 (答案:线性结构) 解析:一个空的数据结构是线性结构或

17、是非线性结构,要根据具体情况而定。如果对数据结构的运算是按线性结构来处理的,则属于线性结构,否则属于非线性结构。 考点5 线性表的概念与基本运算 考点5 在笔试考试中,在笔试考试中出现的几率为50%,主要是以选择的形式出现,分值为2 分,此考点为识记内容 1. 线性表的基本概 线性表是由n (n0)个数据元素a1,a2,an 组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。即线性表或是一个空表(当n=0),或可以表示为(a1,a2,ai,an) . 非空线性表有如下一些结构特征: 有且只有一个根结点a1,它无前件; 有且只有一个终结点

18、an,它无后件; 除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。 2. 线性表的顺序存储结构 在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。 线性表的顺序存储结构具有以下两个基本特点: 线性表中所有元素据所占的存储空间是连续的; 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 假设线性表中的第一个数据元素的存储地址为ADR(a1),每一个数据元素占K 个字节, 则线性表中第i 个元素ai 在计算机存储空间中的存储地址为 ADR(a1)=ADR(a1)+(i-1)K 3. 线性表的插入运算 在平均情况下,要在线性表中插入一个新元素,需要移动表

19、中一半的元素。因此,在线性表顺序存储的情况下,要插入一个新元素,其效率是很低的。 在表的第i (1in+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. 线性表

20、的删除运算 在平均情况下,要在线性表中删除一个元素,需要移动表中表中一半的元素。因此, 在线性表顺序存储的情况下,要删除一个元素,其效率也是很低的。 是指将表的第i(1in)个元素删去,使长度为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 由线性表在存储结构下的插入与删除运算可以看出,线性表的顺序存储结构对于小线性表或者其中元素不常变动的线性表

21、来说是合适的,因为顺序存储的结构比较简单。但这种顺序存储的方式对于元素经常需要变动的大线性表就不太合适了,因为插入删除的效率比较低。 注意:线性表也可以采用链式存储结构。见考点7. 经典习题 【例题1】在长度为n 的线性表中,寻找最大项至少需要比较_次。 (答案:n) 【例题2】在长度为n 的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为 n-1 。 2012 年3 月 【例题3】在长度为n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中 n 个元素。 2011 年9 月 考点6 栈及队列 考点6 在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,

22、主要是以选择的形式出现,分值为2 分,此考点为重点掌握内容,应该掌握栈的运算 。 1栈的基本概念 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈是按照先进后出或后进先出的原则组织数据的。 图5 2栈的顺序存储及其运算 用一维数组S(1m)作为栈的顺序存储空间,其中m 为最大容量。 在栈的顺序存储空间S(1m)中,S(bottom)为栈底元素,S(top)为栈顶元素。top=0 表示栈空;top=m 表示栈满。 栈的

23、基本运算有三种:入栈、退栈与读栈顶元素。 (1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top 加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈上溢错误。 (2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针减1(即top 减1)。当栈顶指针为0 时,说明栈空,不可进行退栈操作。这种情况称为栈的下溢错误。 (3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将

24、它赋给一个变量,因此栈顶指针不会改变。当栈顶指针为0 时,说明栈空,读不到栈顶元素。 小技巧:栈是按照先进后出或后进先出的原则组织数据,但是出栈方式有多种选择, 在考题中经常考查各种不同的出栈方式。 3. 队列的基本概念 队列(Queue)是运算受到限制的一种线性表。只允许在表的一端进行插入,而在另一端进行删除元素的,且先进先出(First In First Out,简称FIFO 结构)或后进后出(Last In Last Out)的线性表,简称LILO 结构。队尾(rear)是允许插入的一端。队头(front) 是允许删除的一端。空队列是不含元素的空表。 基本运算:入队运算和退队运算 图6

25、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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1