12014年3月计算机等级考试二级公共基础知识培训2二级Access考试介绍一、考试方式1.笔试:90分钟,满分100分,其中含公共基础知识部分30分2.上机操作:90分钟,满分100分二、笔试题型及分值(根据考试大纲及往年试题)1.选择题70分(每小题2分,共35题)2.填空题30分(每空2分,共15题)三、上机操作1.基本操作(30分)2.简单应用(40分)3.综合应用(30分)3我们的目标通过二级考试4基础知识部分:30分设有10道选择题和5道填空题5第一章数据结构与算法1.1算法1.2数据结构的基本概念1.3线性表及其顺序存储结构1.4栈和队列1.5线性链表1.6树与二叉树1.7查找技术1.8排序技术6数据结构与算法历年试题分数分布71.1算法1.1.1算法的基本概念算法:是指解题方案的准确而完整的描述。算法不等于程序,也不等于计算机方法,程序的编制不可能优于算法的设计。算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。(3)有穷性(finiteness):算法必须的有限时间内做完,即算法必须能在执行有限个步骤之后终止。(4)拥有足够的情报:要使算法有效必须为算法提供足够的情报。当算法拥有足够的情报时,此算法才是有效的;当提供的情报不够时,算法可能无效。综上所述,算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的,此顺序将在有限的次数后终止。81.1算法2.算法的基本要素:算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。指令系统:一个计算机系统能执行的所有指令的集合。基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制结构:顺序结构、选择结构、循环结构。算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。91.1.2算法复杂度算法的复杂度主要包括时间复杂度和空间复杂度。1.时间复杂度:指执行算法所需要的计算工作量或(算法在执行过程中所需基本运算的执行次数)2.空间复杂度:执行这个算法所需要的内存空间10算法的历年考题2004.9(1)下面叙述正确的是A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)以上三种描述都不对(1)算法的复杂度主要包括______复杂度和空间复杂度。2005.4(5)问题处理方案的正确而完整的描述称为______。2005.9(2)算法复杂度主要包括时间复杂度和______复杂度。11算法的历年考题2006.9(7)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对2007.4(1)下列叙述中正确的是A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关2008.4(1)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用121.2数据结构的基本概念利用计算机进行数据处理是计算机应用的一个重要领域。在进行数据处理时,实现需要处理的数据元素一般很多,而这些大量的数据元素都需要存放在计算机中,因此,大量的数据元素在计算机中如何组织,以便提高数据处理的效率,并且节省计算机的存储空间,这是进行数据处理的关键问题。131.2数据结构的基本概念数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题。(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。141.2.1什么是数据结构数据结构是指相互有关联的数据元素的集合。更通俗地说,数据结构是指带有结构的数据元素的集合。在此,所谓结构实际上就是指数据元素之间的前后件关系。由上所述,一个数据结构应包含以下两方面的信息:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。15数据的逻辑结构和存储结构数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)常用的存储结构有顺序、链接、索引等。采用不同的存储结构,其数据处理的效率是不同的。161.2.2数据结构的图形表示在数据结构中,没有前件的结点称为根结点;没有后件的结点称为终端结点(也称为叶子结点),其他称为内部结点。插入和删除是对数据结构的两种基本运算。此外对数据结构的运算还有查找、分类、合并、分解、复制和修改等。171.2.3线性结构与非线性结构线性结构条件:1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。3)在一个线性结构中插入或删除任何一个结点后还应该是线性结构。非线性结构:不满足线性结构条件的数据结构。18NCRE考题2004.9(2)以下数据结构中不属于线性数据结构的是A)队列B)线性表C)二叉树D)栈(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的__。2005.4(1)数据的存储结构是指A)存储在外存中的数据B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示19NCRE考题2005.9(4)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率2007.9(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对201.3线性表及其顺序存储结构1.3.1线性表的基本概念线性表是最简单、最常用的一种数据结构线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。211.3.2线性表的顺序存储结构在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。线性表的顺序存储结构具有以下两个基本特点:1)线性表中所有元素的所占的存储空间是连续的;2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。例:一个矢量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是。221.3.3线性表的插入运算在i的位置上插入x231.3.4线性表的删除运算序号元素序号元素0a00a01a11a12a22a2i–1ai–1i–1ai–1iaiiai+1i+1ai+1i+1ai+2numanumnum–1anum(a)删除ai前(b)删除ai后241.4栈和队列251.4.1栈及其基本运算1.定义栈(Stack)是一种只允许在一端进行插入和删除的线性表,它是一种操作受限的线性表。在表中只允许进行插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。栈的插入操作通常称为入栈(push),而栈的删除操作则称为出栈或退栈(pop)。当栈中无数据元素时,称为空栈。栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。262.栈的顺序存储及其运算栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。271.4.2队列及其基本运算1.什么是队列队列(Queue)是一种只允许在一端进行插入,而在另一端进行删除的线性表,它是一种操作受限的线性表。在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头(front)。队列的插入操作通常称为入队列或进队列,而队列的删除操作则称为出队列或退队列。当队列中无数据元素时,称为空队列。根据队列的定义可知,队头元素总是最先进队列,也总是最先出队列;队尾元素总是最后进队列,因而也是最后出队列。这种表是按照先进先出(FIFO,FirstInFirstOut)的原则组织数据的,因此,队列也被称为“先进先出”表。28队列示意图292.循环队列及其运算在实际应用中,队列的顺序存储结构一般采用循环队列的形式。30循环队列循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用,因此它仍然是线性结构。循环队列有队头指针和队尾指针,它队列中元素的个数是由队头指针和队尾指针共同决定的。为了能区分队满还是队列空,通常需要增加一个标志S。队列空的条件为S=0,队列满的条件为S=1,rear=front。31历年考题—栈2005.4(2)下列关于栈的描述中错误的是A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针2005.9(3)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素32历年考题—栈2006.4(4)按照“后进先出”原则组织数据的数据结构是A)队列B)栈C)双向链表D)二叉树2006.9(4)按“先进后出”原则组织数据的数据结构是_____。2008.4下列关于栈的叙述正确的是A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据332008.9(1)一个栈的初始状态为空,现将元素1、2、3、4、5、A、B、C、D、E入栈,然后再依次出栈,则元素出栈的顺序是A)12345ABCDEB)EDCBA54321C)ABCDE123456D)54321EDCBA34思考题35历年考题—队列2005.9(5)数据结构分为逻辑结构和存储结构,循环队列属于______结构。2006.9(5)数据结构分为线性结构和非线性结构,带链的队列属于_____。2007.4(5)下列对队列的叙述正确的是A)队列属于非线性表B)队列按“先进后出”原则组织数据C)队列在队尾删除数据D)队列按“先进先出”原则组织数据36历年考题—队列2007.9(3)线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线形表,循环队列是队列的【3】存储结构。2008.4(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【3】个元素。372008.9(2)下列叙述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化D)循环队列中元素的个数是由队头指针和队尾指针共同决定的381.5线性链表1.5.1线性链表的基本概念线性