粤教版 选修1 第三章 线性数据的组织和存储 单元练习(附答案解析)

资源下载
  1. 二一教育资源

粤教版 选修1 第三章 线性数据的组织和存储 单元练习(附答案解析)

资源简介

2022年10月17日高中信息技术作业
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.若用1表示进栈操作,用0表示出栈操作,若元素的进栈顺序是“q,w,e,r,t”,为了得到出栈序列“ewrtq”,则应进行的操作序列为(  )
A.1101010100 B.1110010100 C.1110011000 D.1110100100
2.以下有关栈和队列的说法正确的是( )
A.栈和队列都是先进后出 B.栈和队列都是先进先出
C.队列元素前面只有一个,后面有多个 D.栈和队列只允许在端点插入和删除数据
3.有如下程序:
wz=[0,1,2,3,4,5,6]
start=0
qu=[0]*len(wz)
wm="abcdefg"
h=0;t=0
while len(wz)>0:
for i in range(2):
start=(start+1)%len(wz)
qu[t]=wz[start]
t=t+1
wz.pop(start)
mm=""
while h mm=mm+wm[qu[h]]
h=h+1
print(mm)
程序运行后,显示的结果为( )
A.bdfaecg B.bdfaceg C.cfbgead D.cfbeadg
4.在某餐厅点餐系统中, 利用队列来储存当前正在排队顾客的编号,head 指向队首元素,tail 指向队尾元素的下一个位置, 若 tail=head+3,则现在排队的顾客数量为( )
A.2 B.3 C.4 D.5
5.有如下程序段:
bt=["A","B","C","D",None,"E","F"]
result=[]
stack=[]
i=0
while stack or (i if i < len(bt) and bt[i] is not None:
stack.append(i)
i=2*i+1
else:
i=stack.pop()
result.append(bt[i])
i=2*i+2
print("-".join(result))
则程序运行后输出的结果为( )
A.A-B-D-C-E-F B.D-B-E-F-C-A C.D-B-A-E-C-F D.A-B-C-D-E-F
6.一个栈的入栈序列为“6、9、5、7、8、3”,其出栈序列不可能是( )
A.3、8、7、5、9、6 B.7、5、9、8、6、3 C.6、5、7、9、3、8 D.5、9、6、3、7、8
7.某线性表采用顺序存储结构,每个元素占5个存储单元,首地址为1000,则第8个元素的存储地址为(  )
A.1440 B.1444 C.1035 D.1038
8.下列关于数据结构的说法正确的是( )
A.“撤销”操作,是“队列”的应用
B.排队就餐, 是“栈”的应用
C.“链表”存储相邻节点不需要连续空间
D.“树”中每个节点的前后都只有一个相邻节点
9.某队列的数据结构如图所示,head 和tail 分别为队列的头、尾指针。现对该队列进行 以下操作:①队首元素出队输出②队首元素出队再入队,重复①②操作直到队列为空。
que L U C K Y
0 1 2 3 4 5 …
若队列数据元素为“LUCKY”,则输出顺序是( )
A.LYUKC B.LCYUK C.LCYKU D.LUCKY
10.一个序列的入栈顺序为 a,b,c,d,e,则该序列的出栈顺序不可能为( )
A.b,a,d,c,e B.d,c,b,a,e C.d,c,e,a,b D.c,b,a,e,d
11.队列的特点( )
A.先进先出 B.先进后出 C.插入操作只能在队头进行 D.删除操作只能在队尾进行
12.下列有关栈和队列说法,正确的是(  )
A.栈的特点是先进先出,队列的特点是先进后出 B.栈只允在一端进行插入,在另一端进行删除
C.队列限定仅能在一端进行插入和删除操作 D.栈和队列均为操作受限的线性表
13.一个栈的初始状态为空,若它的输入序列为a、b、c、d,则它的输出序列为( )
A.a、b、c、d B.d、c、b、a
C.b、a、c、d D.d、b、a、c
14.在日常幻灯片的放映中,可以通过超级链接方式进行幻灯片之间的任意跳转。和这种跳转方式相似的数据结构是(  )
A.数 B.链表 C.队列 D.栈
15.用栈的数据结构编写进制转换中的“除二取余法”的程序段如下:
st=[-1]*100
top=-1
n=int(input("请输入一个十进制数: "))
while n>0:
while top!=-1:
print(st[top],end="")
top-=1
方框处的代码由以下四部分组成:
①n=n//2 ②top+=1 ③x=n%2 ④st[top]=x
下列选项中,代码顺序正确的是( )
A.③④②① B.③①②④ C.①②③④ D.①③④②
试卷第1页,共3页
试卷第1页,共3页
参考答案:
1.B
【详解】本题主要考查栈的操作。为了得到出栈序列“ewrtq”,即e先出栈,按照进栈顺序,则qwe先进栈,对应111,接着是ew出栈,对应00,后面依次类推可得到应进行的操作序列为1110010100,故本题选B选项。
2.A
【详解】本题主要考查栈和队列数据结构。栈和队列都是先进后出,队头只允许删除元素,队尾只允许插入元素,而栈只允许在栈顶插入和删除元素,故本题选A选项。
3.C
【详解】本题主要考查Python程序的执行。第一次循环后start=2,qu[0]=wz[start]=2;第二至第七次循环后,qu[1]=5,qu[2]=1,qu[3]=6,qu[4]=4,qu[5]=0,qu[6]=3。h初值为0,执行完最后一个while循环,即根据列表qu的值从wm中取对应的元素拼接到mm中,mm=mm+wm[qu[h]],程序运行后,显示的结果为mm="cfbgead",故本题选C选项。
4.B
【详解】本题主要考查队列数据结构。head 指向队首元素,tail 指向队尾元素的下一个位置,则队尾元素的位置是tail-1,若 tail=head+3,则现在排队的顾客数量为tail-1-head+1=head+3-1-head+1=3,故本题选B选项。
5.C
【详解】本题主要考查Python中stack()用法。分析程序可知,前3轮循环,即当i=0、1、3时均满足if判断条件,此时stack=[0,1,3],接下来i=2*i+1=7不满足if判断条件,执行else部分, i=stack.pop()=3,result.append(bt[i])=["D"],i=2*i+2=8,继续执行else,i=stack.pop()=1,result.append(bt[i])=["D","B"],i=2*i+2=4,不满足if判断条件,继续执行else部分,i=stack.pop()=0,result.append(bt[i])=["D","B","A"],此时结合选项可知程序运行后输出的结果为D-B-A-E-C-F,选C选项。
6.D
【详解】本题主要考查栈数据结构。选项D中,先入栈6、9、5,再依次出栈,此时再入栈7、8、3,则出栈顺序只能是3、8、7,故出栈序列不可能是5、9、6、3、7、8,故本题选D选项。
7.C
【详解】本题考查的是顺序存储。顺序存储结构,每个元素占5个存储单元,首地址为1000。用表格简单表示其存储地址,见下表,第8个元素的首地址为1035。故选项C正确。
8.C
【详解】本题主要考查数据结构的描述。“撤销”操作,是“栈”的应用;排队就餐, 是“队列”的应用;“链表”存储相邻节点不需要连续空间;“树”结构不一定是二叉树,也不一定只有一个相邻节点,故本题选C选项。
9.C
【详解】本题主要考查队列数据结构。根据题意先执行①输出L,接着执行②,U为队首出队加入队尾,字符串为CKYU;再次执行①输出C,接着执行②,K为队首出队加入队尾,字符串为YUK;第三次执行①输出Y,接着执行②,U为队首出队加入队尾,字符串为KU;第四次执行①输出K,接着执行②,U为队首出队加入队尾,字符串为U;第五次执行①输出U。因此输出字符串为LCYKU,故本题选C选项。
10.C
【详解】本题主要考查栈数据结构。选项C中先入栈a、b、c、d,接着出栈d、c,再入栈e并出栈,此时只能先出栈b,不可能先出栈a再出栈b,故本题选C选项。
11.A
【详解】本题主要考查队列数据结构。队列的特点是先进先出,插入操作只能在队尾进行,删除操作只能在队头进行,故本题选A选项。
12.D
【详解】本题主要考查栈和队列的描述。栈的特点是先进后出,队列的特点是先进先出;队列只允在一端进行插入,在另一端进行删除; 栈限定仅能在一端进行插入和删除操作; 栈和队列均为操作受限的线性表,故本题选D选项。
13.B
【详解】本题考查的栈的操作。堆栈是一个后进先出的数据结构,若它的输入序列为a、b、c、d,则它的输出序列为d、c、b、a。故本题应选B。
14.B
【详解】本题考查的是对数据结构的理解。链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。故选项B正确。
15.B
【详解】本题主要考查栈及Python程序调试。根据题意“除二取余法”可知先要执行取余,然后才能整除2更新n的值。top初值为-1标记此时栈中无元素,每递增一个元素,top先递增1,再将x保存到栈中,即st[top]=x,故代码顺序正确的是③①②④,故本题选B选项。
答案第1页,共2页
答案第1页,共2页

展开更多......

收起↑

资源预览