公共基础知识选择题及解析.docx
- 文档编号:26376962
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:74
- 大小:74.32KB
公共基础知识选择题及解析.docx
《公共基础知识选择题及解析.docx》由会员分享,可在线阅读,更多相关《公共基础知识选择题及解析.docx(74页珍藏版)》请在冰豆网上搜索。
公共基础知识选择题及解析
第一章数据结构与算法
(1)算法的有穷性是指(A)
A)算法程序的运行时间是有限的
B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的
D)算法只能被有限的用户使用
算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
(2)下列叙述中正确的是(D)
A)算法就是程序
B)设计算法时只需要考虑数据结构的设计
C)设计算法时只需要考虑结果的可靠性
D)以上三种说法都不对
所谓算法是指解题方案的准确而完整的描述。
是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
算法不等于程序,也不等于计算方法。
设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
(3)算法的空间复杂度是指(A)
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
算法的空间复杂度是指执行这个算法所需要的内存空间。
这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
(4)算法的时间复杂度是指(D)
A)算法的执行时间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的基本运算次数
算法的时间复杂度,是指执行算法所需要的计算工作量。
算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。
(5)下列叙述中正确的是(B)
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
算法的时间复杂度是指执行算法所需要的计算工作量。
算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
算法的时间复杂度与空间复杂度并不相关。
数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。
算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
(6)下列叙述中正确的是(D)
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则其时间复杂度必定小
C)一个算法的时间复杂度大,则其空间复杂度必定小
D)算法的时间复杂度与空间复杂度没有直接关系
算法的复杂度主要包括时间复杂度和空间复杂度。
算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
(7)数据的存储结构是指(D)
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构在计算机中的表示
在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。
(8)下列描述中正确的是(D)
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。
数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。
(9)下列描述中正确的是(D)
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构
D)以上三种说法都不对
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。
(10)下列叙述中正确的是(B)
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
(11)下列数据结构中,属于非线性结构的是(C)
A)循环队列
B)带链队列
C)二叉树
D)带链栈
根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:
线性结构和非线性结构。
循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。
(12)下列描述中正确的是(A)
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
线性表的链式存储结构称为线性链表。
线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。
各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。
栈、队列和双向链表是线性结构,树是一种简单的非线性结构。
在树这种数据结构中,所有数据元素的关系具有明显的层次特征。
二叉树是非线性结构。
线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
(13)下面叙述中正确的是(A)
A)线性表是线性结构
B)栈与队列是非线性结构
C)线性链表是非线性结构
D)二叉树是线性结构
线性表是最简单的、最常用的一种线性结构。
所谓线性链表指的是采用链式存储结构的线性表。
栈和队列其实是一种特殊的线性表。
树是一种简单的非线性结构,二叉树是树的一种。
(14)下列关于栈的叙述正确的是(B)
A)栈按“先进先出”组织数据
B)栈按“先进后出”组织数据
C)只能在栈底插入数据
D)不能删除数据
栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。
栈是按照“先进后出”的原则组织数据的。
(15)支持子程序调用的数据结构是(A)
A)栈
B)树
C)队列
D)二叉树
栈是一种限定在一端进行插入与删除的线性表。
在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。
所以一般采用栈式存储方式。
(16)下列数据结构中,能够按照“先进后出”原则存取数据的是(B)
A)循环队列
B)栈
C)队列
D)二叉树
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据;队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
(17)下列关于栈叙述正确的是(A)
A)栈顶元素最先能被删除
B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除
D)以上三种说法都不对
栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
(18)下列关于栈的叙述中,正确的是(C)
A)栈底元素一定是最后入栈的元素
B)栈顶元素一定是最先入栈的元素
C)栈操作遵循先进后出的原则
D)以上三种说法都不对
栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。
(19)下列叙述中正确的是(C)
A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D)上述三种说法都不对
在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。
(20)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(B)
A)12345ABCDE
B)EDCBA54321
C)ABCDE12345
D)54321EDCBA
栈是按照“先进后出”或“后进先出”的原则组织数据的。
所以出栈顺序是EDCBA54321。
(21)一个栈的初始状态为空。
现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是(C)
A)1,2,3,A,B,C
B)C,B,A,1,2,3
C)C,B,A,3,2,1
D)1,2,3,C,B,A
栈是按照“先进后出”或“后进先出”的原则组织数据的。
所以出栈顺序是CBA321。
(22)下列关于栈的描述中错误的是(B)
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
栈是限定在一端进行插入与删除的线性表。
栈顶(top):
插入数据(即入栈)的一端;栈底(bottom):
不能入栈也不能出栈的一端。
栈存储数据的原则:
“先进后出”或“后进先出”。
栈的特性是具有记忆作用。
(23)按照“后进先出”原则组织数据的数据结构是(B)
A)队列
B)栈
C)双向链表
D)二叉树
栈是限定在一端进行插入与删除的线性表。
在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。
即栈是按照“后进先出”(LastInFirstOut,简称LIFO)或“先进后出”(FirstInLastOut,简称FILO)的原则组织数据的。
因此,栈也称为“后进先出表”或“先进后出”表。
(24)下列对队列的描述中正确的是(D)
A)队列属于非线性表
B)队列按“先进后出”原则组织数据
C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据
队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。
允许插入的一端称为队尾;允许删除的一端称为队头。
在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。
因此,队列又称“先进先出”或“后进后出”的线性表。
(25)下列叙述中正确的是(D)
A)栈是一种先进先出的线性表
B)队列是一种后进先出的线性表
C)栈与队列都是非线性结构
D)以上三种说法都不对
栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。
(26)下列叙述中正确的是(D)
A)栈是“先进先出”的线性表
B)队列是“先进后出”的线性表
C)循环队列是非线性结构
D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。
根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:
线性结构与非线性结构。
有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。
(27)下列关于栈的描述中正确的是(C)
A)在栈中只能插入元素而不能删除元素
B)在栈中只能删除元素而不能插入元素
C)栈是特殊的线性表,只能在一端插入或删除元素
D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
(28)下列叙述中正确的是(D)
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。
(29)对于循环队列,下列叙述中正确的是(D)
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。
循环队列的主要操作是:
入队运算和退队运算。
每进行一次入队运算,队尾指针就进一。
每进行一次退队运算,队头指针就进一。
当rear或front等于队列的长度加1时,就把rear或front值置为1。
所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。
(30)下列叙述中正确的是(B)
A)循环队列是队列的一种链式存储结构
B)循环队列是队列的一种顺序存储结构
C)循环队列是非线性结构
D)循环队列是一种逻辑结构
本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。
队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。
(31)设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(D)
A)15
B)16
C)20
D)0或35
循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0;第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。
(32)在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为(B)
A)2
B)3
C)4
D)5
循环队列中,rear表示尾指针,front表示头指针,当有元素入队时,rear=rear+1,而元素出队的时候,front=front+1,当rear值大于front值时,队列中的元素个数为rear-front,当rear的值小于front时,列队中的元素个数为rear-front+m(m表示队列的容量)。
(33)下列叙述中正确的是(D)
A)栈是一种先进先出的线性表
B)队列是一种后进先出的线性表
C)栈与队列都是非线性结构
D)栈与队列都是线性结构
栈是先进后出,队列是先进先出。
栈和队列都是一种线性表,属于线性结构。
(34)下列叙述中正确的是(D)
A)栈是“先进先出”的线性表
B)队列是“先进后出”的线性表
C)循环队列是非线性结构
D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
栈是“先进后出”,队列“是先进先出”。
栈和队列都是一种线性表,属于线性结构。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
采用链式存储结构的线性表称之为线性链表。
(35)下列与队列结构有关联的是(D)
A)函数的递归调用
B)数组元素的引用
C)多重循环的执行
D)先到先服务的作业调度
队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。
(36)下列叙述中正确的是(A)
A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化
B)循环队列中的元素个数随队头指针的变化而动态变化
C)循环队列中的元素个数随队尾指针的变化而动态变化
D)循环队列中的元素个数不会变化
所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。
在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针front指向的后一个位置与队尾指针rear指向位置之间的元素数量。
(37)下列关于线性链表的叙述中,正确的是(C)
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C)进行插入与删除时,不需要移动表中的元素
D)以上都不正确
线性表的链式存储结构称为线性链表。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
(38)下列叙述中正确的是(C)
A)线性表链式存储结构的存储空间一般要少于顺序存储结构
B)线性表链式存储结构与顺序存储结构的存储空间都是连续的
C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的
D)以上都不正确
线性表的存储分为顺序存储和链式存储。
在顺序存储中,所有元素所占的存储空间是连续的。
而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。
所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
(39)下列叙述中正确的是(B)
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D)以上都不正确
线性表的存储分为顺序存储和链式存储。
在顺序存储中,所有元素所占的存储空间是连续的。
而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。
所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
(40)下列叙述中正确的是(B)
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D)上述三种说法都不对
线性表的存储分为顺序存储和链式存储。
在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。
所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。
所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
(41)下列对于线性链表的描述中正确的是(A)
A)存储空间不一定连续,且各元素的存储顺序是任意的
B)存储空间不一定连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。
在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。
(42)下列叙述中正确的是(A)
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。
而链式存储结构的存储空间不一定是连续的。
(43)下列链表中,其逻辑结构属于非线性结构的是(A)
A)二叉链表
B)循环链表
C)双向链表
D)带链的栈
二叉链表作为树的存储结构。
链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。
(44)下列叙述中正确的是(B)
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。
(45)某系统总体结构图如下图所示:
(C)
该系统总体结构图的深度是
A)7
B)6
C)3
D)2
这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。
在树结构中,树的最大层次称为树的深度。
所以这棵树的深度为3。
(46)下列关于二叉树的叙述中,正确的是(B)
A)叶子结点总是比度为2的结点少一个
B)叶子结点总是比度为2的结点多一个
C)叶子结点数是度为2的结点数的两倍
D)度为2的结点数是度为1的结点数的两倍
由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。
(47)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)
A)n+1
B)n-1
C)2n
D)n/2
在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
所以该二叉树的叶子结点数等于n+1。
(48)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(C)
A)10
B)8
C)6
D)4
根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
(49)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为(A)
A)16
B)10
C)6
D)4
根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故此度为1的结点个数=总结点数-叶子节点数-度为2的节点数=25-5-4=16。
(50)一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为(B)
A)219
B)229
C)230
D)231
根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2的节点数+度为1的节点数=80+79+70=229。
(51)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为(A)
A)219
B)221
C)229
D)231
在二叉树中,叶子结点个数为n0,则度为2的结点数n2=n0-1。
本题中叶子结点的个数为70,所以度为2的结点个数为69,因而总结点数=叶子结点数+度为1的结点数+度为2的结点数=70+80+69=219。
(52)某二叉树共有7个结点,其中叶子结点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公共 基础知识 选择题 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)