浙教版(2019)选择性必修1《第三章字符串、队列和栈》
2022年单元测试卷
1. 有如下python 程序段:
from random import*
s=''
for i in range(1,4):
k=int(random( )*3+1)
c=chr(96+k)
if i%2==k%2:
s=s+c
else:
s=c+s
print(s)
若该段程序执行以后,s 的值不可能的是( )
A. 'abc'
B. 'bbc'
C. 'aab'
D. 'caa'
2. 有如下python程序段:(注:字母ASCII码>数字ASCII码,小写字母ASCII码>大
写字母ASCII码)
import random
s=“olympicGames2021“;ans=““;i=0
while i<len(s)-2:
t=int(random.random( )*2)+1
x=s[i];y=s[i+t]
if x>y:
ans+=x
else:
ans+=y
i=i+t+1
print(ans)
执行程序后,输出结果可能为( )
A. oyies
B. ymcms2
C. oypcms2
D. ypces1
3. 有如下Python程序段:
s=“ABCDEF“
ch=““
for i in range(0,len(s)):
a=int(input( ));b=(a+2)%6
ch=ch+chr(ord(s[b])+32)
print(ch)
运行程序后,依次输入3、1、4、5、2、6,输出ch的值是( )
A. cadebf
B. fdabec
C. aabbab
D. ecfadb
4. 有如下Python程序段:
s=input(“请输入一串字符串:”)
m=cnt=1
for i in range(1,len(s)):
if s[i]>s[i-1]:
cnt+=1
if cnt>m:
m=cnt
else:
cnt=1
print(m)
该程序段的功能是( )
A. 输出字符串s中最大的字符的索引
B. 输出字符串s中最大的字符
C. 输出字符串s中最长的递增序列
D. 输出字符串s中最长的递增序列长度
5. 有如下Python程序段:
s=input(“请输入一串字符串:”)
f=True
for i in range(0,len(s)//2):
if s[i]!=s[len(s)-i-1]:
f=False
break
print(f)
若执行该程序后,输出的结果是“True”,那么输入的值可能是( )
A. onion
B. hello
C. 278
D. 111
6. 一个栈的入栈序列为1,2,3,4,5,则其出栈序列不可能为( )
A. 1,2,3,4,5
B. 4,5,3,2,1
C. 4,3,5,1,2
D. 3,2,1,5,4
7. 一个栈的输入序列为“12345“,输出的第一个元素为“4“,则输出的第3个元素不可能的是( )
A. 1
B. 2
C. 3
D. 5
8. 某Python程序如下:
s=“xyAB#Fk”;k=x=“”;flag=True
字符串长度为0for i in range(len(s)):
If“a”<=s[i]<=“z”and flag:
x=chr(((ord(s[i])-95))%26+97)#字符“a”的ASCⅡ码值为97
elif“A”<=s[i]<=“Z”and flag:
x=chr>(((Cord(s[i])-41))%26+65)#字符“A”的ASCⅡ码值为65
flag=False
else:
x=s[i];flag=True
k=k+x
print(k)
执行该程序后,输出值为( )
A. ZAyb#dK
B. yzYZ#Dm
C. zaYB#Dk
D. zaYZ#Dm
9. 创建一个容量为3的队列,元素2,3,5,1,3,5,2依次等待入队。入队规则为:
①若当前待入队元素已经在队列中,则跳过该元素,否则转②
②若当前队列已满,将队首元素出队列,否则转③
③将当前待入队元素入队列
操作完成后,队列中的元素为( )
A. 2,3,5,1
B. 1,2,3,5
C. 2,3,5
D. 5,1,2
10. 已知一个栈的入栈序列是a,c,e,h,r,t,e,其出栈序列可能的是( )
A. c,h,c,a,t,e,r
B. h,e,c,t,a,r,e
C. t,e,a,c,h,e,r
D. r,e,t,e,a,c,h
11. 一个栈的入栈序列为“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
12. 一个栈的入栈序列为1,2,3,4,5,其出栈序列为sl,s2,s3,s4,s5。若s2是3,则s1不可能是( )
A. 1
B. 2
C. 4
D. 5
13. 在某餐厅点餐系统中,利用队列来储存当前正在排队顾客的编号,head指向队首元素,tail指向队尾元素的下一个位置,若tail=head+3,则现在排队的顾客数量为( )
A. 2
B. 3
C. 4
D. 5
14. 依次在初始为空的队列中插入元素a,b,c,d 以后,紧接着做了两次删除操作,此时的队首元素是( )
A. a
B. b
C. c
D. d
15. 用栈的数据结构编写进制转换中的“除二取余法”的程序段如下:
方框处的代码由以下四部分组成:
①n=n//2
②top+=1
③x=n%2
④st[top]=x
下列选项中,代码顺序正确的是( )
A. ③④②①
B. ③①②④
C. ①②③④
D. ①③④②
16. 某队列的数据结构如图所示,head 和tail 分别为队列的头、尾指针。现对该队列进
行以下操作:①队首元素出队输出②队首元素出队再入队,重复①②操作直到队列为空。
若队列数据元素为“LUCKY”,则输出顺序是( )
A. LYUKC
B. LCYUK
C. LCYKU
D. LUCKY
17. 若用1表示进栈操作,用0表示出栈操作,若元素的进栈顺序是“q,w,e,r,t”,为了得到出栈序列“ewrtq”,则应进行的操作序列为( )
A. 1101010100
B. 1110010100
C. 1110011000
D. 1110010100
18. 下列有关栈和队列说法,正确的是( )
A. 栈的特点是先进先出,队列的特点是先进后出
B. 栈只允在一端进行插入,在另一端进行删除
C. 队列限定仅能在一端进行插入和删除操作
D. 栈和队列均为操作受限的线性表
19. 已知变量s=“2029106“,则下列Python表达式计算结果中最大的是( )
A. len(s)
B. int(s[4])
C. int(s)%100
D. int(s)//10**6
20. 有一入栈序列为“ABCD”,以下以“C”开头的出栈序列中不正确的是( )
A. CABD
B. CBAD
C. CBDA
D. CDBA
21. 以下有关栈和队列的说法正确的是( )
A. 栈和队列都是先进后出
B. 栈和队列都是先进先出
C. 队列元素前面只有一个,后面有多个
D. 栈和队列只允许在端点插入和删除数据
22. 一个序列的入栈顺序为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
23. 一个序列的入栈顺序为1,2,3,4,5,6,若4第一个出栈,则下列出栈序列中不可能的是()
A. 4,2,3,1,5,6
B. 4,6,5,3,2,1
C. 4,3,5,2,6,1
D. 4,5,3,6,2,1
24. check函数的功能是检查字符串s是否符合相应要求。如果符合返回True,否则返回False。要求。包括大写字母、小写字母、数字以及其它字符。请出下面代码的两处错误( )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论