内容正文:
第一章 认识数据和数据结构
一、选择题
1.下列关于数据和信息的说法正确的是( )
A.数据是信息的载体,数据是信息所表示的意义 B.数据是信息的载体,信息是数据所表示的意义
C.信息是数据的载体,数据是信息所表示的意义 D.信息是数据的载体,信息是数据所表示的意义
2.以下选项中,属于integer类型常量的是( )
A.123 B.3.1415
C.’ 1.23E+04’ D.True
3.以下对数据结构理解正确的是( )
A.有字符串s="Lost",可通过s[3]="e",将其修改为"Lose"
B.数组、链表、队列、栈、树是几种常见的线性结构
C.队列可在队首和队尾操作,栈也可在栈顶和栈底进行操作
D.每个链表必定有一个头指针,相邻节点存储时不需要连续空间
4.下列关于数据结构的说法,正确的是( )
A.最先出栈的元素,肯定是最先入栈的
B.进行数据查询时,数组中的元素都会被遍历
C.使用链表进行数据插入时,效率一定比数组高
D.为打印机设置打印数据缓冲区,适合用队列实现
5.char 型数据通常占的字节数是( )
A.1 B.2 C.3 D.4
6.一个栈的入栈序列为1,2,3,4,5,其出栈序列为s1,s2,s3,s4,s5。若s2是3,则s1不可能是( )
A.1 B.2 C.4 D.5
7.集合是一个可变容器,集合是无序的存储结构,集合内的数据没有先后关系,集合内的数据对象都是唯一的(不能重复),集合相当于是只有键没有值得字典(键就是集合中的数据),集合内的元素是不可变的,下列说法正确的是()
A.s={1,2,3,3,2,1},pring(s)执行后,输出:{1,2,3}
B.s={6,7,8,9},s.add(1)添加1后s={6,7,8,9,1}
C.s={6,7,8,9},s.pop()执行后,s={6,7,8}
D.s={3,4,5,6,7,8,9},s.remove(5)执行后,s={3,4,5,6,7,9}
8.下列有关数据结构的说法,正确的是( )
A.数组、队列、栈、树均为线性表 B.数组和队列的存储空间都是固定不变的
C.在数组中,可通过数组名和下标直接访问数组元素 D.树结构中元素之间是多对多的关系
9.树结构中元素之间存在的关系是( )。
A.—对一 B.一对多 C.多对一 D.多对多
10.下列选择中数据结构不是图结构的是( )
A.城市交通网 B.电话网 C.公司组织架构 D.互联网
11.队列Q从队首到队尾的元素依次为3,1,2,栈S初始为空。约定以下操作:H操作是指元素出队后再入队,T操作是指元素出队后入栈,P操作是指元素出栈。经过一系列操作后,最终出栈顺序为1,2,3,以下操作不可能的是( )
A.TTPTPP B.HTTTPPP C.THTTPPP D.HΤΡΤΡΤΡ
12.下图是物流配送线路图,是树结构,下列说法错误的是( )
A.一级快件集散中心是树的根结点
B.二级公共配送中心进行地域分配,是一级快件集散中心根结点下的子树
C.共同配送点是二级公共配送中心的子树
D.共同配送点-社区便利店的树的深度是3
13.下列有关数据结构的说法正确的是( )
A.数组是一种适合用于组织、存储涉及频繁插入与删除的数据结构
B.链表中数据元素的逻辑顺序是通过链表中的指针链接次序实现的
C.链表在访问、插入和删除元素时,算法效率比数组高
D.树结构中,每个子节点的父节点可以有多个
14.有如下Python程序段:
a=[1,20,15,6,9,12,30,8,7,5]
n=len(a)
sumx=0
for i in range(n):
if a[i]%3==2:
sumx=sumx+a[i]
print(sumx)
该程序段执行后,输出的结果为( )
A.25 B.28 C.33 D.72
15.全国航运图属于( )
A.线性结构 B.树结构 C.图结构 D.以上均不是
16.队列是一种有限制的( )结构。特点是数据元素只能在( )依次添加(称为[ ]), 在( )依次删除(称为[ ])。
A.线性;一端;进队;另一端;出队 B.线性;二端;进队;二端;出队
C.队列;一端;进队;另一端;出队 D.队列;二端;进队;二端;出队
17.下列关于数据结构的说法,正确的是( )
A.用程序实现问题解决时只能采用一种数据结构
B.数据的逻辑结构是指数据元素间的关系
C.链表比数组更适合大量数据元素的随机访问
D.数组不必占用一片连续存储的单元
18.有一单向链表,每个节点由数据域data和指针域next组成,链表结构如下图所示:
现要删除头节点后面的节点(数据域为data2的节点),则应进行的操作是( )
A.head=head.next B.head.next=data3 C.head=head.next.next D.head.next=head.next.next
19.线性结构数据之间的关系是( )
A.一对一 B.多对多 C.一对多 D.多对一
20.以下说法错误的是( )
A.栈是一种先进后出的数据结构 B.队列是一种先进先出的数据结构
C.C++ STL中的map查询时间复杂度为0(1) D.使用哈希时,可能会发生哈希冲突
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查数据和信息的描述。信息,指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容,信息是加工了的数据。数据是记录客观事物的、可鉴别的符号。即数据是信息的载体,信息是数据所表示的意义,故本题选B选项。
2.A
【详解】本题主要考查程序数据类型。选项依次是整型(integer)、浮点型、字符型、布尔型常量,故本题选A选项。
3.D
【详解】本题考查的是数据结构。字符串通不能通过索引号修改;树是非线性结构;栈限定了只能在栈顶进行插入或删除操作;每个链表必定有一个头指针,相邻节点存储时不需要连续空间。故本题应选D。
4.D
【详解】本题考查数据结构相关内容。A选项,栈的特点是“先进后出,后进先出”,选项错误;B选项,对数组元素进行数据查询时需要看情况,不一定每个元素都被遍历,选项错误;C选项,使用链表进行元素插入时的执行效率不一定高于数组,例如,若插入位置在链表和数组的最后时,数组也无需进行数据移动,此时执行效率一样,选项错误;D选项,打印机的数据缓冲区符合“先进先出,后进先出”,适合用队列实现,选项正确。故本题答案是D选项。
5.A
【详解】本题主要考查C程序语言数据类型。char类型占用1字节,short类型占用2字节,int类型占用4字节,long int类型占用4字节,long long 类型占用8字节,float 类型占用4字节,double 类型占用8字节,long double 类型占用8字节,bool 类型占用1个字节,故本题选A选项。
6.D
【详解】本题主要考查栈数据结构。1先入栈后再出栈,接着2、3入栈,3出栈,s1可能是1;1先入栈未出栈,其次2入栈后再出栈,s1可能是2;1、2、3、4依次入栈,接着4和3出栈,s1可能是4。3和5之间有4,故s1不可能是5,故本题选D选项。
7.A
【详解】本题主要考查集合数据结构。s={1,2,3,3,2,1},print(s)执行后,输出:{1,2,3};s={6,7,8,9},s.add(1)添加1后s={1, 6, 7, 8, 9};s={6,7,8,9},s.pop()执行后,s={7,8,9};s={3,4,5,6,7,8,9},s.remove(5)执行后,s={3,4,6,7,8,9},故本题选A选项。
8.C
【详解】本题考查数据结构相关内容。A选项,数组、队列、栈均为线性表,树为非线性结构,选项错误。B选项,数组的存储空间是固定不变的;队列采用顺序存储得到顺序队列,其存储空间固定不变,采用链式存储得到链队列,其存储空间可变。选项错误。C选项,通过数组名和下标可以直接访问数组元素,选项正确。D选项,树结构中元素之间是一对多的关系,图结构中元素之间是多对多的关系,选项错误。故本题答案是C选项。
9.B
【详解】本题主要考查数据结构。树结构是一种非线性存储结构,存储的是具有一对多关系的数据元素的集合,故本题选B选项。
10.C
【详解】本题考查的是数据结构。图结构是多对多的关系,城市交通网、电话网、互联网属于图结构,公司组织架构是一对多的关系,故本题应选C。
11.B
【详解】本题考查数据结构栈和队列操作相关内容。栈的特点是先进后出,队列的特点是先进先出。结合题目,推知:
A选项,操作序列为TTPTPP,T-->3出队后入栈,栈中元素为3;T-->1出队后入栈,栈中元素为1,3;P-->1出栈,栈中元素为3,出栈顺序为1;T-->2出队后入栈,栈中元素为2,3;P-->2出栈,栈中元素为3,出栈顺序为1,2;P-->3出栈,栈为空,出栈顺序为1,2,3。
B选项,操作序列为HTTTPPP,H-->3出队后入队,队列元素为1,2,3;T-->1出队后入栈,栈中元素为1;T-->2出队后入栈,栈中元素为2,1;T-->3出队后入栈,栈中元素为3,2,1;执行PPP,连续三次出栈,栈为空,出栈顺序为3,2,1。
C选项,操作序列为THTTPPP,T-->3出队后入栈,栈中元素为3;H-->1出队后入队,队列元素为2,1;T-->2出队后入栈,栈中元素为2,3;T-->1出队后入栈,栈中元素为1,2,3;执行PPP,连续三次出栈,栈为空,出栈顺序为1,2,3。
D选项,操作序列为HΤΡΤΡΤΡ,H-->3出队后入队,队列元素为1,2,3;T-->1出队后入栈,栈中元素为1;P-->1出栈,出栈顺序为1,栈空;T-->2出队后入栈,栈中元素为2;。P-->2出栈,出栈顺序为1,2,栈空;T-->3出队后入栈,栈中元素为3,P-->3出栈,出栈顺序为1,2,3。
故本题答案是B选项。
12.D
【详解】本题主要考查数据结构的应用。由图可知,是树结构,一级快件集散中心是树的根结点;二级公共配送中心进行地域分配,是一级快件集散中心根结点下的子树;共同配送点是二级公共配送中心的子树;共同配送点-社区便利店的树的深度是4,故本题选D选项。
13.B
【详解】本题考查数据结构。A选项错误。数组在涉及频繁插入与删除时,由于元素在数组中的位置是固定的,插入和删除可能涉及移动大量元素,效率较低。B选项正确。链表中的元素通过指针链接,每个元素保存下一个元素的地址,从而形成逻辑上的顺序。C选项错误。链表在插入和删除元素时确实具有较高的灵活性和效率,但在访问元素时,由于需要遍历链表,效率相对较低,特别是对于随机访问。D选项错误。在一棵树中,每个子节点只有一个父节点,这是树结构的基本特性。故答案为:B。
14.C
【详解】本题考查Python程序设计相关内容。程序段功能是求数组a中的除3余2的元素之和,除3余2的数据有:20、8、5,因此sumx=20+8+5=33,故本题答案为C选项。
15.C
【详解】本题考查图数据结构的描述。图是最为复杂的数据结构,如果数据元素之间存在一对多或者多对多的关系,那么这种数据的组织结构就叫作图结构。全国航运图存在多对多的关系,属于图结构。线性结构和树结构不存在多对多的关系。故选C。
16.A
【详解】本题主要考查队列数据结构。队列是一种有限制的线性结构。特点是数据元素只能在一端依次添加(称为[进队]), 在另一端依次删除(称为[出队 ]),故本题选A选项。
17.B
【详解】本题主要考查数据结构的描述。用程序实现问题解决时能采用多种数据结构,数据的逻辑结构是指数据元素间的关系,数组更适合大量数据元素的随机访问,数组必须占用一片连续存储的单元,故本题选B选项。
18.D
【详解】本题考查数据结构链表操作相关内容。要删除头节点后面的节点(数据域为data2的节点),只需将头节点的next指针指向下一个节点的下一个节点即可,即head.next=head.next.next,故本题答案为D选项。
19.A
【详解】本题考查数据结构。线性数据结构就是数据元素之间是一对一的关系。故选A。
20.C
【详解】本题主要考查数据结构的描述。C++ STL中的map查询时间复杂度为O(logN),故本题选C选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$