浙教版(2019)选修1《3.1 字符串》2022年同步练习卷(1)
发布:2024/4/20 14:35:0
一、选择题
-
1.某加密算法程序段如下所示:
def jiami(x):
if“A“<=x<=“Z“:
y=chr(ord(x)+32)
elif“0“<=x<=“9“:
y=str((int(x)+1)%10)
else:
y=x
return y
mingwen=input(“请输入明文:“)
miwen=““
for x in mingwen:
miwen=miwen+jiami(x)
print(“密文为:“,miwen)
输入“Abc@789”并运行程序,输出结果是( )组卷:2引用:1难度:0.5 -
2.有如下Python程序段:
执行该程序段后,输出的内容是( )组卷:1引用:4难度:0.5
一、选择题
-
7.有如下Python程序段:
s=“China“;t=[1,3,2];res=“”
for i in range (len(s)):
m=t[i% len(t)]
n=ord(s[i])+m
res=res+chr(n)
print (res)
运行该程序段后,输出的结果是( )组卷:0引用:2难度:0.4
二、非选择题
-
8.字符串分段。输入一串仅由小写字母组成的字符串s,将这个字符串划分为尽可能多的小片段,要求同一个字母只出现在其中的一个片段中,并按照分段顺序逐行输出分段结果。程序运行界面如图所示。
(1)实现上述功能的Python程序如下,请在横线处填入合适的代码。
s=input(“请输入一串仅包含小写字母的字符串:”)
c=0
p=[-1]*52#数组p用来记录各个小写字母出现的起始位置和结束位置
#a[0]记录a出现的起始位置,a[1]记录a出现的结束位置,依次类推
for i in range(0,len(s)):#记录各字符第一次和最后一次出现的位置
a=①
if p[2*a]==-1:
p[2*a]=i
else:
p[2*a+1]=i
for i in range(0,26):
if p[2*i]>p[2*i+1]:
p[2*i+1]=p[2*i]#只出现一次的字符,起始位置就是结束位置
if p[2*i]!=-1:
c+=1
for i in range(o,c):将字符位置按照出现的起始位置升序排序
for j in range(25,i,-1):
if p[2*j]>-1:
if p[2*(j-1]>p[2*j]or②
p[2*(j-1)],p[2*j]=p[2*j],p[2*(j-1)]
p[2*(j-1)+1],p[2*j+1]=p[2*j+1],p[2*(j-1)+1]
t1,t2=p[0],p[1]#字符串分段
for i in range(1,c):
if p[2*i]<t2 and p[2*i+1]>t2:
③
elif p[2*i]>t2:
print(s[t1:t2+1])
tl,t2=p[2*i],p[2*i+1]
print(s[t1:t2+1])
(2)运行程序后,若输入的字符串s为“hshjhqueeqabaa”,输出的结果一共有组卷:7引用:3难度:0.4