《计算机二级考试选择题题库(共43页).doc》由会员分享,可在线阅读,更多相关《计算机二级考试选择题题库(共43页).doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上河南中启教育培训中心2017全国计算机二级考试2017年选择题集锦解析中启教育教研室计算机二级考试选择题题库(1)算法的有穷性是指 A、算法程序的运行时间是有限的 B、算法程序所处理的数据量是有限的 C、算法程序的长度是有限的 D、算法只能被有限的用户使用答案:A解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。(2)下列叙述中正确的是 A、算法就是程序 B、设计算法时只需要考虑数据结构的设计 C、设计算法时只需要考虑结果的可靠性 D、以上三种说法都不对答案:D解析:所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算
2、顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。(3)算法的空间复杂度是指 A、算法在执行过程中所需要的计算机存储空间 B、算法所处理的数据量 C、算法程序中的语句或指令条数 D、算法在执行过程中所需要的临时工作单元数答案:A解析:算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。(4)算法的时间复杂度是指 A、算法的执行时间 B、算法所处理的数据量 C、算法程序中
3、的语句或指令条数 D、算法在执行过程中所需要的基本运算次数答案:D解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。(5)下列叙述中正确的是 A、算法的效率只与问题的规模有关,而与数据的存储结构无关 B、算法的时间复杂度是指执行算法所需要的计算工作量 C、数据的逻辑结构与存储结构是一一对应的 D、算法的时间复杂度与空间复杂度一定相关答案:B解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要
4、的内存空间。算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。(6)下列叙述中正确的是 A、一个算法的空间复杂度大,则其时间复杂度也必定大 B、一个算法的空间复杂度大,则其时间复杂度必定小 C、一个算法的时间复杂度大,则其空间复杂度必定小 D、算法的时间复杂度与空间复杂度没有直接关系答案:D解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法
5、所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。(7)数据的存储结构是指 A、存储在外存中的数据 B、数据所占的存储空间量 C、数据在计算机中的顺序存储方式 D、数据的逻辑结构在计算机中的表示答案:D解析:在对数据进行处理时,各数据元素在计算机中的存储关系,即为数
6、据的存储结构。(8)下列描述中正确的是 A、一个逻辑数据结构只能有一种存储结构 B、数据的逻辑结构属于线性结构,存储结构属于非线性结构 C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率答案:D解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。(9)下列描述中正确的是 A、数据的逻辑
7、结构与存储结构必定是一一对应的 B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 C、程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构 D、以上三种说法都不对答案:D解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。(10)下列叙述中正确的是 A、有一个以上根结点的数据结构不一定是非线性结构 B、只有一个根结点的数据结构不一定是线性结构 C、循环链表是非线性
8、结构 D、双向链表是非线性结构答案:B解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。(11)下列数据结构中,属于非线性结构的是 A、循环队列 B、带链队列 C、二叉树 D、带链栈答案:C解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。(12)下列描述中正确的是 A、线性链表是线性表的链式存储结构 B、栈与队列是非线性结构 C、双向链表是非线性结构 D、只有根结点的二叉树是线性结构答案:A解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单
9、位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。(13)下面叙述中正确的是 A、线性表是线性结构 B、栈与队列是非线性结构 C、线性链表是非线性结构 D、二叉树是线性结构答案:A解析:线性表是最简单的、最
10、常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。(14)下列关于栈的叙述正确的是 A、栈按“先进先出”组织数据 B、栈按“先进后出”组织数据 C、只能在栈底插入数据 D、不能删除数据答案:B解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。(15)支持子程序调用的数据结构是 A、栈 B、树 C、队列 D、二叉树答案:A解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后
11、转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。(16)下列数据结构中,能够按照“先进后出”原则存取数据的是 A、循环队列 B、栈 C、队列 D、二叉树答案:B解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据;队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。(17)下列关于栈叙述正确的是 A、栈顶元素能最先被删除 B、栈顶元素最后才能被删除 C、栈底元素永远不能被删除 D、以上三种说法都不对答案:A解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除
12、。(18)下列关于栈的叙述中,正确的是 A、栈底元素一定是最后入栈的元素 B、栈顶元素一定是最先入栈的元素 C、栈操作遵循先进后出的原则 D、以上三种说法都不对答案:C解析:栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。(19)下列叙述中正确的是 A、在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B、在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C、在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D、上述三种说法都不对答案:C解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能
13、在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。(20)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是 A、12345ABCDE B、EDCBA54321 C、ABCDE12345 D、54321EDCBA答案:B解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。(21)一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是 A、1,2,3,A,B,C B、C,B,A,1,2,3 C、C,B,A,3,2,
14、1 D、1,2,3,C,B,A答案:C解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是CBA321。(22)下列关于栈的描述中错误的是 A、栈是先进后出的线性表 B、栈只能顺序存储 C、栈具有记忆作用 D、对栈的插入与删除操作中,不需要改变栈底指针答案:B解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端;栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。(23)按照“后进先出”原则组织数据的数据结构是 A、队列 B、栈 C、双向链表 D、二叉树答案:B解析:栈是限定在
15、一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照“后进先出”(Last In First Out,简称LIFO)或“先进后出”(First In Last Out,简称FILO)的原则组织数据的。因此,栈也称为“后进先出表”或“先进后出”表。(24)下列对队列的描述中正确的是 A、队列属于非线性表 B、队列按“先进后出”原则组织数据 C、队列在队尾删除数据 D、队列按“先进先出”原则组织数据答案:D解析:队列(queue)是指
16、允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾;允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。(25)下列叙述中正确的是 A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈与队列都是非线性结构 D、以上三种说法都不对答案:D解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。(26)下列叙述中正确的是 A、栈是“先进先出”的线性表 B、队列是“先进后出”的线性表 C、循环队列是非线性结构 D、D)有序线性表既可以采用
17、顺序存储结构,也可以采用链式存储结构答案:D解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。(27)下列关于栈的描述中正确的是 A、在栈中只能插入元素而不能删除元素 B、在栈中只能删除元素而不能插入元素 C、栈是特殊的线性表,只能在一端插入或删除元素 D、栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素答案:C解析:栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为
18、栈顶,不允许插入与删除的另一端称为栈底。(28)下列叙述中正确的是 A、循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B、在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C、在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D、循环队列中元素的个数是由队头指针和队尾指针共同决定答案:D解析:循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。(29)对于循环队列,下列叙述中正确的是 A、队头指针是固定不变的 B、队头指针一定大于队尾指针 C、队头指针一定小于队尾指针 D、队头指针可以大于队尾指针,也可以小
19、于队尾指针答案:D解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加1时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。(30)下列叙述中正确的是 A、循环队列是队列的一种链式存储结构 B、循环队列是队列的一种顺序存储结构 C、循环队列是非
20、线性结构 D、循环队列是一种逻辑结构答案:B解析:本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。(31)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 A、15 B、16 C、20 D、0或35答案:D解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0;第二种情况是队头指针第一次到达15,而尾指针第二次到达15
21、,此时元素个数为35。(32)在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为 A、2 B、3 C、4 D、5答案:B解析:循环队列中,rear表示尾指针,front表示头指针,当有元素入队时,rear=rear+1,而元素出队的时候,front=front+1,当rear值大于front值时,队列中的元素个数为rear-front,当rear的值小于front时,列队中的元素个数为rear-front+m(m表示队列的容量)。(33)下列叙述中正确的是 A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈与队列都是非线性结构
22、D、栈与队列都是线性结构答案:D解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。(34)下列叙述中正确的是 A、栈是“先进先出”的线性表 B、队列是“先进后出”的线性表 C、循环队列是非线性结构 D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构答案:D解析:栈是“先进后出”,队列“是先进先出”。栈和队列都是一种线性表,属于线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。采用链式存储结构的线性表称之为线性链表。(35)下列与队列结构有关联的是 A、函数的递归调用 B、数组元素的引用 C、多重循环的执行 D、先到先服务的作业调度答案:D解析
23、:队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。(36)下列叙述中正确的是 A、循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 B、循环队列中的元素个数随队头指针的变化而动态变化 C、循环队列中的元素个数随队尾指针的变化而动态变化 D、循环队列中的元素个数不会变化答案:A解析:所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针front指向的后一个位置与队尾指针rear指向位置之间的元素数量。
24、(37)下列关于线性链表的叙述中,正确的是 A、各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 B、各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 C、进行插入与删除时,不需要移动表中的元素 D、以上都不正确答案:C解析:线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。(38)下列叙述中正确的是 A、线性表链式存储结构的存储空间一般要少于顺序存储结构 B、线性表链式存储结构与顺序存储结构的存储空间都是连续的 C、线性表
25、链式存储结构的存储空间可以是连续的,也可以是不连续的 D、以上都不正确答案:C解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。(39)下列叙述中正确的是 A、线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B、线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C、线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D、以
26、上都不正确答案:B解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。(40)下列叙述中正确的是 A、线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B、线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C、线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D、上述三种说法都不对答案:B解析:线性表的存储分为顺序存储和链式
27、存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。(41)下列对于线性链表的描述中正确的是 A、存储空间不一定连续,且各元素的存储顺序是任意的 B、存储空间不一定连续,且前件元素一定存储在后件元素的前面 C、存储空间必须连续,且前件元素一定存储在后件元素的前面 D、存储空间必须连续,且各元素的存储顺序是任意的答
28、案:A解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。(42)下列叙述中正确的是 A、顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B、顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C、顺序存储结构能存储有序表,链式存储结构不能存储有序表 D、链式存储结构比顺序存储结构节省存储空间答案:A解析:顺序存储方式主要用于线性的数据结构
29、,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。(43)下列链表中,其逻辑结构属于非线性结构的是 A、二叉链表 B、循环链表 C、双向链表 D、带链的栈答案:A解析:二叉链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。(44)下列叙述中正确的是 A、有一个以上根结点的数据结构不一定是非线性结构 B、只有一个根结点的数据结构不一定是线性结构 C、循环链表是非线性结构 D、双向链表是非线性结构答案:B解析:在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结
30、构。(45)某系统总体结构图如下图所示:该系统总体结构图的深度是 A、7 B、6 C、3 D、2答案:C解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为3。(46)下列关于二叉树的叙述中,正确的是 A、叶子结点总是比度为2的结点少一个 B、叶子结点总是比度为2的结点多一个 C、叶子结点数是度为2的结点数的两倍 D、度为2的结点数是度为1的结点数的两倍答案:B解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。(47)某二叉树中有n个度为
31、2的结点,则该二叉树中的叶子结点数为 A、n+1 B、n-1 C、2n D、n/2答案:A解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。(48)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A、10 B、8 C、6 D、4答案:C解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。(49)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为 A、16 B、10 C、6 D、4答案:A解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点
32、多一个,故此度为1的结点个数=总结点数-叶子节点数-度为2的节点数=25-5-4=16。(50)一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为 A、219 B、229 C、230 D、231答案:B解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2的节点数+度为1的节点数=80+79+70=229。(51)一棵二叉树中共有70个叶子结点与80个度为的结点,则该二叉树中的总结点数为 A、219 B、221 C、229 D、231答案:A解析:在二叉树中,叶子结点个数为n0,则度为2的结点数n2=
33、 n0-1。本题中叶子结点的个数为70,所以度为2的结点个数为69,因而总结点数=叶子结点数+度为1的结点数+度为2 的结点数=70+80+69=219。(52)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) A、3 B、4 C、6 D、7答案:D解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为7层,每层只有一个结点。(53)某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层) A、3 B、6 C、8 D、12答案:D解析:根据二
34、叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。(54)设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为 A、8 B、7 C、6 D、5答案:B解析:深度为m二叉树其总结点数为2m-1=24-1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15-4-2-1-1=7。(55)设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为 A、85 B、120 C、250 D、350答案:D解析: 具有n个结点的完全二叉树的深度
35、为long2n+1,计算出该完全二叉树的深度为10。 设度为0的结点(即叶子结点)为n0,度为1的结点为n1,度为2的结点为n2,总结点数为n,深度为k。n=n1+n2+n0,由于n0=n2+1则n2=n0-1,故n=n1+n0-1+n0=n1+2n0-1。由于完全二叉树中度为1的结点数只有两种可能:0或1。 假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2m-1个结点,根据以上计算所得的深度10来计算,应有210-1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。故n=n1+2n0-1=1+2n0-1=2n0,则n0=n/2=700/2=
36、350。(56)在深度为7的满二叉树中,叶子结点的个数为 A、32 B、31 C、64 D、63答案:C解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。(57)对下列二叉树进行前序遍历的结果是 A、DYBEAFCZX B、YDEBFZXCA C、ABDYECFXZ D、ABCDEFXYZ答案:C解析:二叉树前序遍历的简
37、单描述:若二叉树为空,则结束返回;否则:访问根结点;前序遍历左子树;前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。(58)对如下二叉树进行后序遍历的结果为 A、ABCDEF B、DBEAFC C、ABDECF D、DEBFCA答案:D解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先
38、后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D)为正确答案。(59)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 A、log2n B、n/2 C、n D、n+1答案:C解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。(60)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为 A、63 B、64 C、6 D、7答案:B解
39、析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。(61)下列叙述中正确的是 A、对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B、
40、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)答案:A解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:线性表为无序表;表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。(62)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 A、O(n) B、O(n2) C、O(log2n) D、O(nlog2n)答案:C解析:对于长度为n的有序线性表,在最坏情况下,二分法查
41、找只需比较log2n次,而顺序查找需要比较n次。(63)下列数据结构中,能用二分法进行查找的是 A、顺序存储的有序线性表 B、线性链表 C、二叉链表 D、有序线性链表答案:A解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。(64)冒泡排序在最坏情况下的比较次数是 A、n(n+1)/2 B、nlog2n C、n(n-1)/2 D、n/2答案:C解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过 n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。(65)对长度为10的线性
42、表进行冒泡排序,最坏情况下需要比较的次数为 A、9 B、10 C、45 D、90答案:C解析:线性表的长度为n,最坏情况下冒泡排序需要比较的次数为n(n-1)/2。(66)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 A、冒泡排序为n/2 B、冒泡排序为n C、快速排序为n D、快速排序为n(n-1)/2答案:D解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。(67)对长度为n的线
43、性表作快速排序,在最坏情况下,比较次数为 A、n B、n-1 C、n(n-1) D、n(n-1)/2答案:D解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。(68)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n1)/2的排序方法是 A、快速排序 B、冒泡排序 C、直接插入排序 D、堆排序答案:D解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单
44、插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)。(69)下列排序方法中,最坏情况下比较次数最少的是 A、冒泡排序 B、简单选择排序 C、直接插入排序 D、堆排序答案:D解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。其中堆排序的比较次数最少。(70)下列叙述中正确的是 A、程序执行的效率与数据的存储结构密切相关 B、程序执行的效率只取决于程序的控制结构 C、程序执行的效率只取决于所处理的数据量 D、以上都不正确答案:A解析:影响程序执行效
45、率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。(71)下列描述中,不符合良好程序设计风格要求的是 A、程序的效率第一,清晰第二 B、程序的可读性好 C、程序中要有必要的注释 D、输入数据前要有提示信息答案:A解析:一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。(72)结构化程序所要求的基本结构不包括 A、顺序结构 B、GOTO跳转
46、 C、选择(分支)结构 D、重复(循环)结构答案:B解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。(73)下列选项中不属于结构化程序设计原则的是 A、可封装 B、自顶向下 C、模块化 D、逐步求精答案:A解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。(74)结构化程序设计的基本原则不包括 A、多元性 B、自顶向下 C、模块化 D、逐步求精答案:A解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。(75)下列选项中不属于结构化程序设计方法的是 A、自顶向下 B、逐步求精 C、模块化 D、可复用答案:D解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部