




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 数据结构与算法下列叙述中正确的是()。A) 算法就是程序B) 设计算法时只需要考虑数据结构的设计C) 设计算法时只需要考虑结果的可靠性D) 以上三种说法都不对 参考答案:D【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A)错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。算法的有穷性是指()。A) 算法程序的运行时间是有限的B) 算法程序所处理的数据量是有限的C) 算法程序的长度是有限的D) 算法只能被有限的用户使用 参考答案:A【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行
2、时间是有限的。下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 算法的时间复杂度与空间复杂度没有直接关系 参考答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。下列叙述中正确的是A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相
3、关 参考答案:B【解析】算法的效率与问题的规模和数据的存储结构都有关,A错误。算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。算法的时间复杂度和空间复杂度没有直接的联系,D错误。下列叙述中正确的是算法时间复杂度的度量方法是A) 算法程序的长度B) 执行算法所需要的基本运算次数C) 执行算法所需要的所有运算次数D) 执行算法所需要的时间 参考答案:B【解析】算法的时间复杂度是指执行算法所需要的计算工作量,算法的计算工作量是用算法所执行的基本运算次数来度量的,B选项正确。下列叙
4、述中错误的是A) 算法的时间复杂度与算法所处理数据的存储结构有直接关系B) 算法的空间复杂度与算法所处理数据的存储结构有直接关系C) 算法的时间复杂度与空间复杂度有直接关系D) 算法的时间复杂度与算法程序执行的具体时间是不一致的 参考答案:C【解析】算法的时间复杂度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A选项叙述正确。算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B选项叙述正确。而算法的时间复杂度与空间复杂度没有直接关系,故选择C选项。算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法
5、实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的,D选项叙述正确。算法的空间复杂度是指()。A) 算法在执行过程中所需要的计算机存储空间B) 算法所处理的数据量C) 算法程序中的语句或指令条数D) 算法在执行过程中所需要的临时工作单元数 参考答案:A【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A)。算法空间复杂度的度量方法是A) 算法程序的长度B) 算法所处理的数据量C) 执行算法所需要的工作单元D) 执行算法所需要的存储空间 参考答案:D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间,。算法执行期间所需的存储空间包括3个部分:输
6、入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。D选项正确。定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。A) 369B) 369C) 0.369D) 整数集合1,2,3,4,5 参考答案:B 【解析】只有B)选项369可以用无符号整数来表示和存储。A)选项369有负号,选项C)0.369是小数都不能用无符号整数类存储。选项D)是一个整数集合得用数组来存储。下列叙述中正确的是A) 程序执行的效率与数据的存储结构密切相关B) 程序执行的效率只取决于程序的控制结构C) 程序执行的效率只取决于所处理的数据量D) 以上说法均错误 参考答案:A【解析】
7、程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。下列叙述中正确的是()。A) 有一个以上根结点的数据结构不一定是非线性结构B) 只有一个根结点的数据结构不一定是线性结构C) 循环链表是非线性结构D) 双向链表是非线性结构 参考答案:B 【解析】线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以B)正确。所以有一个以上根结点的数据结构一定是非线性结构,所以A)错误。循环链表和双向链表都是线性结构的数据结构。下列叙述中正确的是A) 有且只有一个根结点的数据结构一定是线性结构B) 每一个结点最多有一个前件也最多有一个后件的数据结构
8、一定是线性结构C) 有且只有一个根结点的数据结构一定是非线性结构D) 有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构 参考答案:D【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,称为线性结构,故A、B和C选项都错误;不同时满足以上两个条件的数据结构就称为非线性结构,其中树形结构只有一个根结点,D选项正确。下列叙述中正确的是A) 存储空间不连续的所有链表一定是非线性结构B) 结点中有多个指针域的所有链表一定是非线性结构C) 能顺序存储的数据结构一定是线性结构D) 带链的栈与队列是线性结构 参考答案:D【解析】一个非空
9、的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,称为线性表,可以采用顺序存储和链接存储,其中链式存储空间不连续,所以A选项错误。双向链表节点有两个指针域,指向前一个节点的指针和指向后一个节点的指针,也是线性结构,B选项错误。顺序存储结构中可能根节点不唯一,故可能不是线性结构,C选项错误。栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表。D选项正确。下列叙述中正确的是A) 循环队列属于队列的链式存储结构B) 双向链表是二叉树的链式存储结构C) 非线性结构只能采用链式存储结构D)
10、 有的非线性结构也可以采用顺序存储结构 参考答案:D【解析】循环队列是队列的一种顺序存储结构,A选项错误。双向链表为顺序存储结构,二叉树通常采用链式存储结构,B选项错误。完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式,C选项错误,D选项正确。下列叙述中正确的是A) 在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构B) 在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构C) 在链表中,如果每个结点有两个指针域,则该链表一定是线性结构D) 在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是线性结构 参考答案:B【解析】一个非空的数据结构如果
11、满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构。双向链表节点有两个指针域,指向前一个节点的指针和指向后一个节点的指针,也是线性结构,A选项错误。如果有两个节点的同一个指针域的值相等,说明一个节点有两个前件,属于非线性结构,B选项正确,D选项正确。非线性结构主要是指树形结构和网状结构,可以满足每个节点有两个指针域的条件,C选项正确。设数据元素的集合D= 1,2,3,4,5 ,则满足下列关系R的数据结构中为线性结构的是A) R= (1,2), (3,4), (5,1) B) R= (1,3), (4,1), (3,2), (5,4) C) R= (1
12、,2), (2,3), (4,5) D) R= (1,3), (2,4), (3,5) 参考答案:B【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构。不同时满足以上两个条件的数据结构就称为非线性结构。A选项中有两个根节点3和5故错误。B选项根节点为5,排列顺序为54132,B选项正确。C选项有两个根节点1和4,故错误。D选项有两个根节点1和2,故错误。下列叙述中正确的是A) 栈与队列都只能顺序存储B) 循环队列是队列的顺序存储结构C) 循环链表是循环队列的链式存储结构D) 栈是顺序存储结构而队列是链式存储结构 参考答案
13、:B【解析】栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构, B选项正确。下列叙述中正确的是A) 存储空间连续的数据结构一定是线性结构B) 存储空间不连续的数据结构一定是非线性结构C) 没有根结点的非空数据结构一定是线性结构D) 具有两个根结点的数据结构一定是非线性结构 参考答案:D【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件
14、,也最多有一个后件,称为线性结构,也称为线性表,可以采用顺序存储和链接存储,其中顺序存储的空间连续而链式存储空间不连续。非线性结构是指不满足以上两个条件的数据结构,非线性结构主要是指树形结构和网状结构。数据结构线性与否与存储空间是否连续没有直接关系,如二叉树可以用一片连续的空间来存储,但其为非线性结构,A选项错误。线性表的链式存储结构可以用不连续的空间来存储,但其为线性结构,B选项错误。没有根结点的非空数据结构一定不是线性结构,C选项错误。具有两个根结点的结构一定是非线性结构,D选项正确。下列叙述中正确的是A) 带链队列的存储空间可以不连续,但队头指针必须大于队尾指针B) 带链队列的存储空间可
15、以不连续,但队头指针必须小于队尾指针C) 带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针D) 带链队列的存储空间一定是不连续的 参考答案:C【解析】带链的队列就是用一个单链表来表示队列,队列中的每一个元素对应链表中的一个节点,其存储结构既可以采用顺序存储也可以是链接存储,其中顺序存储的空间连续而链式存储空间不连续,D选项错误。循环队列中,由于指针超过队列地址最大值时会移动到队列最小地址处,所以队头指针可以大于也可以小于队尾指针,A、B选项错误,C选项正确。下列叙述中正确的是()。A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针
16、对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间 参考答案:A【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,所以B)与C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D)错误。下列叙述中正确的是()。A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D) 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比
17、性 参考答案:B【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。下列叙述中正确的是A) 线性表链式存储结构的存储空间一般要少于顺序存储结构B) 线性表链式存储结构与顺序存储结构的存储空间都是连续的C) 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D) 以上说法均错误 参考答案:C【解析】线性表的顺序存储结构具备如下两个基本特征:(1)线性表中的所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的
18、,甚至是零散分布在内存中的任意位置上的。因此C正确。下列叙述中正确的是()。A) 栈是"先进先出"的线性表B) 队列是"先进后出"的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A) 12345ABCDEB) EDCBA54321C) ABCDE12345
19、D) 54321EDCBA 参考答案:B【解析】栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B)。下列关于栈的叙述正确的是()。A) 栈按"先进先出"组织数据B) 栈按"先进后出"组织数据C) 只能在栈底插入数据D) 不能删除数据 参考答案:B【解析】栈是按"先进后出"的原则组织数据的,数据的插入和删除都在栈顶进行操作。下列叙述中正确的是()。A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态
20、变化D) 以上说法都不正确 参考答案:C【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。下列关于栈叙述正确的是()。A) 栈顶元素最先能被删除B) 栈顶元素最后才能被删除C) 栈底元素永远不能被删除D) 栈底元素最先被删除 参考答案:A 【解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A)。下列叙述中正确的是()。A) 栈是一种先进先出的线性表B) 队列是一种后进先出的线性表C) 栈与队列都是非线性结构D) 以上三种说法都不对 参考答案:D 【解析】栈是一种先进后出的线性表
21、,队列是一种先进先出的线性表,栈与队列都是线性结构。下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原则D) 以上说法均错误 参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。因此,栈称为先进后出表,或"后进先出"表,所以选择C。一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是A) 1,2,3,A,B,CB) C,B,A,1,2,3C)
22、C,B,A,3,2,1D) 1,2,3,C,B,A 参考答案:C【解析】栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选C。设栈的顺序存储空间为S(1: 50),初始状态为top=0。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为A) 30B) 29C) 20D) 19 参考答案:C【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。当栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。top=20,则当前栈中有20个元素,C选项正确。设栈的顺序
23、存储空间为S(1: m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为A) 30B) 20C) m-19D) m-20 参考答案:C【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=m+1,当top=20时,元素依次存储在单元20:m中,个数为m-19,C选项正确。设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)
24、。则栈中的元素个数为A) 30B) 29C) 20D) 19 参考答案:C【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。元素依次存储在单元30:49中,个数为一个栈的初始状态为空。现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为A) ABCB) CBAC) EDCD) CDE 参考答案:C【解析】栈所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指
25、定变量。队列指允许在一端进行插入,而在另一端进行删除的线性表。习惯上称往队列的队尾插入一个元素为入队运算,称从队列的队头删除一个元素为退队运算。元素入栈后为ABCDE,退栈并入队后,队中元素为EDC。退队时从队头开始,顺序为EDC,C选项正确。下列数据结构中,能够按照"先进后出"原则存取数据的是()。A) 循环队列B) 栈C) 队列D) 二叉树 参考答案:B 【解析】栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。下列与队列结构有关联的是A) 函数的递归调用B) 数组元素的引用C) 多重循环的执行D) 先到先服务的作业调度 参考答案:D【解析】队列的修改是依先
26、进先出的原则进行的,D正确。对于循环队列,下列叙述中正确的是()。A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针 参考答案:D【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。下列叙述中正确的是()。A) 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B) 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)
27、循环队列中元素的个数是由队头指针和队尾指针共同决定 参考答案:D【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。下列叙述中正确的是()。A) 循环队列是队列的一种链式存储结构B) 循环队列是队列的一种顺序存储结构C) 循环队列是非线性结构D) 循环队列是一种逻辑结构 参考答案:B【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。设循环队列的存储空间为Q(1: 35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,r
28、ear=15,则循环队列中的元素个数为A) 15B) 16C) 20D) 0或35 参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加,朝前移动。只不过当头尾指针指向向量上界时,其加操作的结果是指向向量的下界。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。答案为D选项。下列叙述中正确的是A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B) 循环队列中的元素个数随队头指针的变化而动态变化C) 循环队列中的元素个数随队尾指
29、针的变化而动态变化D) 以上说法都不对 参考答案:A【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化,A正确。设循环队列为Q(1: m),初始状态为front=rear=m。现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为A) 1 B) 2C) m-1D) 0或m 参考答案:D【解析】由初始状态为front=rear=m可知此时循环队列为空。
30、入队运算时,首先队尾指针进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear=m+1时,置rear=1。退队运算时,排头指针进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。若经过运算,front=rear可知队列空或者队列满,D选项正确。设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为A) 4B) 6C) m-5D) m-6 参考答案:A【解析】循
31、环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=15,rear=20时,队列中有5个元素,比较次数为4次,A选项正确。设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为A) 5B) 6C) m-5D) m-6 参考答案:D【解析】循环队列是队列
32、的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,比较次数为m-6次,D选项正确。下列数据结构中,属于非线性结构的是()。A) 循环队列B) 带链队列C) 二叉树D) 带链栈 参考答案:C 【解析】树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。下列关于线性链表的叙述中,正确的是()。A) 各数据结点的存储空间可以不
33、连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C) 进行插入与删除时,不需要移动表中的元素D) 以上说法均不正确 参考答案:C 【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。下列叙述中正确的是A) 链表结点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构B) 线性表的链式存储结构中,每个结点必须有指向前件和指向后件的两个指针C) 线性表的链式存储结构中,每个结点
34、只能有一个指向后件的指针D) 线性表的链式存储结构中,叶子结点的指针只能是空 参考答案:A【解析】双向链表与树形结构的节点均可以包含两个指针域,但前者为线性结构后者为非线性结构,A选项正确。双向链表含有指向前件和指向后件的两个指针,C选项错误。线性链表,就是指线性表的链式存储结构。由于这种链表中,每个节点只有一个指针域,故又称为单链表,B选项错误。二叉树为非线结构,叶子节点没有后件但是可以有指向前件的指针,D选项错误。下列叙述中错误的是A) 在双向链表中,可以从任何一个结点开始直接遍历到所有结点B) 在循环链表中,可以从任何一个结点开始直接遍历到所有结点C) 在线性单链表中,可以从任何一个结点
35、开始直接遍历到所有结点D) 在二叉链表中,可以从根结点开始遍历到所有结点 参考答案:C【解析】线性单链表就是指线性表的链式存储结构,这种结构只能从一个节点遍历到其后的所有节点,故C选项叙述错误;在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,所以可以从任何一个节点开始直接遍历到所有节点,最后一个节点的指针域的值由NULL改为指向表头节点,这样的链表称为循环链表;双向链表是指链表节点含有指向前一个节点的指针和指向后一个节点的指针,所以可以从任何一个节点开始直接遍历到所有节点;二叉树链表中节点指针由父节点指向子节点,可以从根节点开始遍历到所有节点,所以选项A、B、D叙述均正确。下列叙
36、述中错误的是A) 在带链队列中,队头指针和队尾指针都是在动态变化的B) 在带链栈中,栈顶指针和栈底指针都是在动态变化的C) 在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D) 在带链队列中,队头指针和队尾指针可以指向同一个位置 参考答案:B【解析】带链的队列就是用一个单链表来表示队列,队列中的每一个元素对应链表中的一个节点,在入队和退队过程中,队头指针和队尾指针都是在动态变化的,A选项叙述正确,循环队列中当队列满或者空时,队头指针和队尾指针指向同一个位置,D选项叙述正确。栈也可以采用链式存储结构表示,把栈组织成一个单链表,这种数据结构可称为带链的栈,入栈和退栈过程中栈底指针不变,栈顶指
37、针随之变化,B选项叙述错误,C选项叙述正确。故选择B选项。下列链表中,其逻辑结构属于非线性结构的是A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈 参考答案:A【解析】在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,
38、是一种存储结构,不属于线性结构。答案为A选项。支持子程序调用的数据结构是()。A) 栈B) 树C) 队列D) 二叉树 参考答案:A【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。某系统总体结构图如下图所示:该系统总体结构图的深度是()。A) 7B) 6C) 3D) 2 参考答案:C【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统-功能2-功能2.1,就是最深的度数的一个表现。某二叉树有
39、5个度为2的结点,则该二叉树中的叶子结点数是()。A) 10B) 8C) 6D) 4 参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是516个。下列关于二叉树的叙述中,正确的是()。A) 叶子结点总是比度为2的结点少一个B) 叶子结点总是比度为2的结点多一个C) 叶子结点数是度为2的结点数的两倍D) 度为2的结点数是度为1的结点数的两倍 参考答案:B【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择B)。某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根
40、结点在第1层)()。A) 3B) 4C) 6D) 7 参考答案:D【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总比度为2的节点多一个,所以本题中度为2的节点为110个,所以可以知道本题目中的二叉树的每一个节点都有一个分支,所以共7个节点共7层,即深度为7。第二章 程序设计基础下列选项中不属于结构化程序设计原则的是()。A) 可封装B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。结构化程序设计的基本原则不包括()。A) 多态性B) 自顶向下C) 模块化D) 逐步求精 参
41、考答案:A 【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。下列选项中属于面向对象设计方法主要特征的是()。A) 继承B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A)。结构化程序所要求的基本结构不包括()。A) 顺序结构B) GOTO跳转C) 选择(分支)结构D) 重复(循环)结构 参考答案:B 【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。结构化程序包括
42、的基本控制结构是A) 主程序与子程序B) 选择结构、循环结构与层次结构C) 顺序结构、选择结构与循环结构D) 输入、处理、输出 参考答案:C【解析】结构化程序包括的基本控制结构只有三种,即顺序结构、选择结构与循环结构,C选项正确。结构化程序设计中,下面对goto语句使用描述正确的是A) 禁止使用goto语句B) 使用goto语句程序效率高C) 应避免滥用goto语句D) 以上说法均错误 参考答案:C【解析】结构化程序设计中,要注意尽量避免goto语句的使用,故选C。在面向对象方法中,不属于"对象"基本特点的是()。A) 一致性B) 分类性C) 多态性D) 标识唯一性 参考答
43、案:A【解析】对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A)。下面对对象概念描述正确的是A) 对象间的通信靠消息传递B) 对象是名字和方法的封装体C) 任何对象必须有继承性D) 对象的多态性是指一个对象有多个操作 参考答案:A【解析】对象之间进行通信的构造叫做消息,A正确。多态性是指同一个操作可以是不同对象的行为,D错误。对象不一定必须有继承性,C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,B错误。下面属于整数类的实例是A) 0x518B) 0.518C) "-518"D) 518E-
44、2 参考答案:A【解析】整数类实例包括:十进制常量用09表示,不能以0开头;八进制常量用07表示,必须用0开头;十六进制常量用09和AF(af)表示,必须以0x或0X开头。A选项正确。B选项是浮点数实例,C选项是字符串实例,D选项为科学计数法表示的浮点数实例。下面属于字符类的实例是A) '518'B) "5"C) 'nmD) 'n' 参考答案:D【解析】字符实例的一般形式是用一对单引号括起来的一个字符。另外ASCII码中还有一些控制字符,C语言中用转义字符的形式来书写这些常,转义字符一反斜杠()开始,后面跟1个字符或字符序列。'
45、;518'单引号中有三个字符,A选项错误。"5"双引号为字符串,B选项错误。'nm'单引号中有两个字符,C选项错误。'n'为换行符,属于字符类实例,D选项正确。面向对象方法中,继承是指()。A) 一组对象所具有的相似性质B) 一个对象具有另一个对象的性质C) 各对象之间的共同性质D) 类之间共享属性和操作的机制 参考答案:D 【解析】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。第三章 软
46、件工程基础构成计算机软件的是A) 源代码B) 程序和数据C) 程序和文档D) 程序、数据及相关文档 参考答案:D【解析】软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序 参考答案:C 【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。A) 学生成绩管理系统B) C语言编译程序C) UNIX 操作系统D) 数据库管理系统 参考答案:A【解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025停车场经营权转让合同样本
- 胫骨骨折护理
- 2025年人工肝知识试题
- 隐匿性冠心病的临床护理
- 电气点检培训体系构建
- 耳石症个案护理
- 转移性小肠肿瘤的临床护理
- 小学语文教师试用期转正工作总结模版
- 面试技巧完整课件
- 循证医学实施难点与对策
- 民用爆炸物品仓库管理规定培训课件
- 康复医学科作业治疗技术操作规范2023版
- 活动安保应急预案
- 人教版八年级物理下册 实验题02 压力压强实验(含答案详解)
- 马克思主义基本原理智慧树知到课后章节答案2023年下宁波大学
- 肝硬化病人的护理练习题
- 一文读懂-特鲁索综合征病例、影像、诊断、治疗
- CW6163B万能卧式车床的控制线路图解
- 贵州省情学习通超星课后章节答案期末考试题库2023年
- 小学随班就读学生教育随笔
- 新能源系统 课件 第10章 多能互补、可持续能源系统
评论
0/150
提交评论