高效作业7 第7课 字符串1——初识字符串-【精彩三年】2024-2025学年高中信息技术选择性必修1课程探究与巩固Word教参(浙教版2019)

2025-08-08
| 11页
| 125人阅读
| 1人下载
浙江良品图书有限公司
进店逛逛

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版选修1 数据与数据结构
年级 高二
章节 3.1 字符串
类型 作业-同步练
知识点 字符串的概念与特性,字符串的基本操作
使用场景 同步教学-新授课
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 80 KB
发布时间 2025-08-08
更新时间 2025-08-08
作者 浙江良品图书有限公司
品牌系列 精彩三年·高中同步课程探究与巩固
审核时间 2025-07-11
下载链接 https://m.zxxk.com/soft/52989637.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

高效作业7[第7课 字符串1——初识字符串](见学生用书P191) 【A级 新教材落实与巩固】 1.下列关于字符串的概念和特性的说法中,正确的是( B ) A.空串和空格串是相同的 B.如果两个字符串相同,则必然长度相同且对应位置的字符必须相同 C.因为GB2312字符集分别使用1字节和2字节来表示英文和中文,故字符串“我爱Python”的长度为10 D.一个字符串中只能包含一种字符集字符 【解析】 空串表示没有字符,空格串中的空格也是字符,字符串相同表示长度和对应位置字符都相同,字符串长度是由字符个数决定的,一个字符串可以包含多种字符集,选项B正确。 2.下列关于字符串的说法中,不正确的是( C ) A.字符串是字符的有限序列 B.字符串也可以比较大小 C.字符串是一种非线性表结构 D.字符串的存储既可以采用顺序存储结构,也可以采用链式存储结构 【解析】 字符串数据结构是一种线性表结构,选项C错误。 3.有如下Python程序段: s=”Good-Luck-2022!” n=0;m=0;k=0 for i in range(len(s)): ch=s[i] if ch>=”0” and ch<=”9”: m=m+1 elif ch>=”a” and ch<=”z”: n=n+1 else: k=k+l 执行该程序段后, 变量k的值为( D ) A. 2   B. 3   C.4   D.5 【解析】 遍历字符串,判断不同类型字符的个数,k为大写字母或符号的个数,选项D正确。 4.有如下Python程序段: m=”p25y3t12h8n5” sum=t=0 flag=True for ch in m: if ”0”<=ch<=”9”:  t=t*10+int(ch) else: if flag==True: sum+=t t=0 flag=not flag print(sum) 执行该程序段后,变量sum 的值为( D ) A.53 B.48 C.32 D.11 【解析】 将字符串中的数字串间隔取出,并转换成数字累加;利用flag实现间隔提取,选项D正确。 5.有如下Python程序段: s=input() t=0 sum=0 for i in range(len(s)-1,-1,-1): c=s[i] if c>=”0” and c<=”9”:  t=t*10+int(c) elif c>=”a” and c<=”z”: sum=sum+t else: t=0 print(str(sum)) 若输入“123aBc456”,则执行该程序段后,输出的结果是( B ) A.456 B.654 C.579 D.975 【解析】 从后往前遍历字符串s,提取第i个字符放在c中,若c是数字字符,将int(c)与t*10累加,故t用来统计当前提取出的连续数字,若c是小写字母,则将t累加在sum中;若c是其他字符,则将t清零,选项B正确。 6.2023·湖州中学检测有如下Python程序段: s=input(”请输入任意字符串: ”) st=”” for n in s: if '0'<=n<='9': st=st+n elif 'A'<=n<='Z': st=n+st print(st) 若输入“Happy5New2Year9!”,则输出的结果是 ( D ) A. 9Y2N5H B. 741YNH C. H5N2Y9 D.YNH529 【解析】 将字符串中的数字字符正序连接,大写字符逆序连接,其余字符舍去,选项D正确。 7.有如下Python程序段: s=input() t=0;sum=0 for i in s: if '0'<=i<='9': t=t*10+int(i) elif 'a'<=i<='z': sum+=t else: t=0 print(sum) 若键盘输入“123sAw34”(不包括引号),则执行该程序段后,输出的结果是( A ) A.123 B.246 C.157 D.321 【解析】 依次实现对字符串的遍历,截取数字字符串转变为数值存入变量t中,当遇到小写字母后累加到sum中,遇到除数字及小写字母外的字符,将t清零,故sum的结果为123,选项A正确。 8.某字符串加密算法的Python程序段如下: s=”TXAB1234”;ans=”” i=j=0 n=len(s) for t in s[0:n//2]: j=int(s[n-i-1]) ans=chr((ord(t)+j-65)%26+65)+ans #字符“A”的ASCII 码值为65 i+=1 print(ans) 执行该程序段后,输出的结果是( C ) A.XACC B.UZDF C.CCAX D.FDZU 【解析】 关键是理解chr((ord(t)+j-65)%26+65)的作用,它先将大写字母转换为[0,25]的整数,再向后移动t 位,最后转换为对应的大写字母,如T 在大写字母表上后移4 位为X,X 后移3 位为A,以此类推,选项C正确。 9. 某加密的Python程序段如下: s1=input(”请输入明文: ”) q=”1357902468”;s2=”” for ch in s1: if ”0”<=ch<=”9”: s2+=q[int(ch)] elif ”a”<=ch<=”z”: s2+=chr((ord(ch)-ord(”a”)+2)%26+ord(”a”)) else: s2+=ch print(s2) 若输入s1的值为“Mike5216qq.com”,则执行该程序段后,输出的结果是( C ) A. Mgic053@oo.amk B. Kgic931@oo.amk C. Mkmg053@ss.eqo D.Okmg931@ss.eqo 【解析】 遇到数字,利用字符串q,提取q中int(ch)位置的字符,并连接到s2中;遇到小写字母则向右移动2位,用新字母替换并连接到s2中;其他字符直接连接到s2中。故选项C正确。 10.2023·春晖中学检测有如下Python程序段: import random 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的值可能是( B ) A.cadebf B.fdabec C.aabbab D.ecfadb 【解析】 程序功能:将输入a为初始位置,再后移2步,得到新的位置,在字符串s中提取字符,再将大写字母转换成小写字母。例如,a=3, 则b=5,提取得到大写字母“F”,转换成小写字母“f”,选项B正确。 11.有如下Python 程序段: s=input() y=”” for i in range(len(s)): c=s[i] if c>=”A” and c<=”Z”: c=chr(ord(c)+3) y=c+y print(y) 若输入的s为“A1b2C3”,则执行该程序段后,输出的结果是( C ) A. A1b2C3 B.D1b2F3 C.3F2b1D D.3C2b1A 【解析】 程序功能:将大写字母往后移动3位,并把每个字符逆序连接。故选项C正确。 12.有如下Python程序段: a=input('请输入一串英文字符串: ') s=” sum=0 for ch in a: s=s+str(ord(ch)-ord('A')+1) for ch in s: sum+=int(ch) print(sum) 若输入字符串“ZBAX”(不包含引号),则输出的结果是( C ) A.8 B.13 C.17 D.4 【解析】 第1个循环将字符串中的字母转换成其在英文字母表中的位置并加1,再转换成字母连接到s中;第2个循环将这些值累加到sum中。故选项C正确。 13.2023·舟山中学检测有如下加密的Python程序段: def encrypt(code, key): code_new='' for i in range(len(code)): code_new=code[(i+key)%len(code)]+code_new return code_new code=input('请输入加密字符串: ') key=int(input('请输入偏移位数: ')) print(encrypt(code,key)) 若输入“Python”和“3”,则输出的结果是( D ) A. mvqelk B. sbwkrq C. honPyt D.tyPnoh 【解析】 将code和key输入后,调用函数encrypt()进行加密;函数中,在code字符串中提取当前位置的后3个位置上的字符,并逆序连接;循环结束后,将结果返回。故选项D正确。 14.2024·强基联盟检测有如下Python程序段: import random s1=”abcde”; s2=”12345”; res=”” i,j=0,len(s2)-1 while i<=len(s1)-1 and j>=0: k=random.randint(0,1) if k==0: res+=s1[i+k] i+=1 else: res+=s2[j-k] j-=1 print(res) 执行程序后,变量res不可能的是( C ) A.ab4c321d5 B.4a32b1cde C.5abc321 D.ab4cd3e 【解析】 i、j双指针分别从前往后、从后往前遍历s1、s2两个字符串。若随机数k=0,则从s1字符串中取对应的字符连接到res中;若k=1,则从s2字符串中取对应的字符连接到res中。res字符串首个字符只可能为s1[1]或s2[3],不可能为“5”,故选项C错误。选项A中的“5”为当j=0,k=1时取到的s2[-1]。 15.有如下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) 执行该程序段后,输出的结果是( A ) A.Dkkod B.Ciknb C.DkjoD D.Cijob 【解析】 该程序段遍历字符串s,取出英文字符向后偏移m 位。故选项A正确。 16.有如下Python程序段: s=”PYTHON12-30ab?cd!” y=”” for i in range(len(s)-1,-1,-1): ch=s[i] if ch<=”9” and ch>=”0”: y=ch+y elif ch<=”z”and ch>=”a”: y=y+ch print(y) 执行该程序段后,输出的结果为( C ) A. ”dcba0321” B. ”dcba0321BV” C. ”1230dcba” D. ”0321abcd” 【解析】 从后往前遍历字符串s,提取第i个字符放在ch中,ch是数字字符,将ch拼接在y前面,若ch是小写字母,将ch拼接在y后面,若ch是其他字符,不做任何处理,选项C正确。 【B级 素养形成与评价】 17. 在传递信息的过程中,通常会将一些敏感信息加密,下列是对数据进行加密的Python 程序段,若输入的数据为“my789”,则输出的结果是( B ) s=input() t=”” for ch in s: if ”0”<=ch<=”9”: x=int(ch)+3 if x>=10: x=x%10 ch=str(x) t=t+ch print(t) A.my123 B. my012 C.pa012 D.pa123 【解析】 for ch in s:逐个访问字符串“my789” 当ch=m 时,执行t=t+ch,t=m; 当ch=y 时,执行t=t+ch,t=my; 当ch=7 时,x=7+3=10,执行x=x%10=0,再执行t=t+ch,t=my0; 当ch=8 时,x=8+3=11,执行x=x%10=1,再执行t=t+ch,t=my01; 当ch=9 时,x=9+3=12,执行x=x%10=2,再执行t=t+ch,t=my012。 选项A正确。 18.2023·杭十四检测有如下Python程序段: k=3 sum,j,c=0,0,0 flag=False for ch in s: if ”0”<=ch<=”9”: c=c*10+int(ch)  j+=1 elif ”a”<=ch<=”z”: flag=True else: if j==k and flag: sum+=c flag=False j=0;c=0 当字符串s为“ab018/20c2/d101/e”时,执行该程序段后,sum的值为( D ) A.18 B.101 C. 119 D.321 【解析】 阅读程序可知,该程序段遍历字符串s,遇数字字符则进行累加,遇英文字符则将flag 标为True,遇到其他字符时,检测flag 的状态与所遍历到的数字字符个数,如果flag 为True 且数字字符个数为3,将c 累加进sum。sum=18+202+101=321,选项D 正确。 19. 有如下Python 程序段: s=input(”请输入字符串: ”) if s[0]==”(”: flag=True else: flag=False cnt,sum=0,0 for i in range(1,len(s)-1): c=s[i] if flag: if ”a”<=c<=”z”:  sum=sum+1 else: if sum!=0: cnt=cnt+1 sum=0 if c==”(”: flag=True if c==”)”: flag=False 用户输入的内容为一串只包含字母、左右括号和空格的字符串“Reality(is temporary) while(ideals(are)permanent)”,执行该程序段后,变量cnt 的值为( C ) A.2 B.3 C.4 D.5 【解析】 统计从“(”括号开始的单词个数,遇到“(”,标记flag为True,单词“is”“temporary”统计; 遇到“)”,标记flag为False,单词“while”不统计;再遇到“(”,标记flag为True,单词“ideals”“are”统计,最后遇到“)”,标记flag为False,单词“permanent”不统计,选项C正确。 20.有如下Python程序段: s=input('请输入数据: ') t=s[0] maxt=0 for i in range(len(s)): if s[i]>s[i-1]: t+=s[i] if len(t)>maxt: maxt=len(t) ans=t else: t=s[i] print(ans) 输入“12123234561”,执行该程序段后, 输出的结果是( A ) A. 23456 B. 12123 C. 34561 D.1212323 【解析】 在字符串s中查找最长的连续升序串;语句“s[i]> s[i-1]”成立,表示在升序,将s[i]连接到t中,如果t的长度大于最长长度,则记下新的最长长度和最长升序串,选项A正确。 21.2023·绍兴鲁迅中学检测某信息系统根据动态的8位字符串(包含2个英文字母、4个数字和2个特殊符号)生成验证码。对应的Python程序段如下: #获取动态的8位字符串s,过程略 num=0 p=”” for i in s: if ”0”<=i<=”9”: num=num+int(i) elif ”a”<=i<=”z”:  p=p+chr(ord(i)-32) elif ”A”<=i<=”Z”: p=p+chr((ord(i)-ord(”A”)+3)% 26+ord(”A”)) p=p+str(num%10)+str(num//10) print(”验证码为: ”,p) 若动态字符串s为“8Y!5u23_”,则执行该程序段后,输出的验证码是( D ) A.Bw53  B.8Bz1  C.BU18  D.BU81 【解析】 遇到数字则转换成数值累加到num中;遇到小写字母则转换成大写,连接到p中;遇到大写字母后移3位,连接到p中。选项D正确。 22. 有如下Python 程序段: s=”xyAB#Fk”;k=x=””;flag=True for i in range(len(s)): if ”a”<=s[i]<=”z” and flag: x=chr((ord(s[i])-95)%26+97) #字符“a”的ASCII 码值为97 elif ”A”<=s[i]<=”Z” and flag: x=chr((ord(s[i])-41)%26+65) #字符“A”的ASCII 码值为65 flag=False else: x=s[i];flag=True k=k+x print(k) 执行该程序段后,输出的结果是( C ) A.ZAyb#dK B.yzYZ#Dm C.zaYB#Dk D.zaYZ#Dm 【解析】 小写字母按字母表顺序往右移动2 个字母(-95=-97+2);大写字母按字母表顺序往右移动24 个字母(-41=-65+24),也可以理解为往左移动2 个字母。此时,flag 变量更新为False;大小写是否移位还受flag 变量的控制,flag 为True 时才移位。其他字符不变化,此时flag 变量更新为True。原字符串“xyAB#Fk” 按以上规则变换为“zaYB#Dk” ,选项C正确。 23.EAN13的校验码计算过程:排除校验码的倒数第1个数起,隔位相加求和后乘3,得到数值a;排除校验码的倒数第2个数起,隔位相加得到数值b;a与b相加,总和除以10取余,计算得出的余数减10后,其绝对值就是校验码。计算校验码的Python程序段如下: s=input(”请输入EAN13标准码的前12位: ”) sum=0,sum1=0;sum2=0;f=0 for i in range(len(s)-1,-1,-1): if①____________: sum1+=int(s[i]) else: sum2+=int(s[i]) sum=②____________ f=10-sum%10 print(”校验码为: ”,f) 则①、②处填入的代码分别为( D ) A. ①i%2==1 ②sum1+sum2 B.①i%2==0 ②sum1+sum2 C. ①i%2==1 ②sum1+sum2*3 D.①i%2==0 ②sum1+sum2*3 【解析】 文字描述排除选项A、B;由“sum1+sum2*3”可知,sum2累加i为奇数时对应位置的数值,选项D正确。 24.2023·金华一中检测小明想要在数字串s 中寻找连续数字之和为k 的子串,若有多个子串符合,则输出第一个子串。例如,s=”20220520”,k=7,则符合要求的子串为”205”。实现该功能的部分Python 程序段如下: i=0;j=0;sum=0 for j in range(len(s)): sum+=int(s[j]) while sum>k: c=s[i] ①____________ i+=1 if sum==k: print(”符合要求的子串为: ”,②__________ ) break 则①、②处填入的代码分别为( D ) A.①sum=sum+int(c) ②s[i:j+1] B.①sum=sum-int(c) ②s[i-1:j+1] C.①sum=sum+int(c) ②s[i:j] D.①sum=sum-int(c) ②s[i:j+1] 【解析】 利用窗口推移的思想,从i位置开始到j位置结束,逐个累加并与k比较,如果小于k,则继续寻找;如果大于k,则去除窗口的开始位置值(sum=sum-int(c)),窗口开始位置后移(i+=1);如果相等,则找到。故选项D正确。 25.循环字符串:将字符串s 的头尾相连成环,再从其中某处断开得到字符串s1,则s1 为s 的循环字符串。例如字符串s=“abcd”,则“bcda”“cdab”“dabc”均为s 的循环字符串。现有如下Python 程序段,可判断两个字符串是否为循环字符串。 s=input() s1=input() for i in range(len(s)): if s1==tmp: if flag:  print(”两个字符串是循环字符串”) else: print(”不是循环字符串”) 上述程序段中加框处可选的代码有: ①flag=False ②flag=True ③tmp=s[i:len(s)]+s[ :i] ④tmp=s[i+1:len(s)]+s[ :i] 下列选项中,代码顺序正确的是( A ) A.①③② B.②③① C.①④② D.②④① 【解析】 当flag 值为True 时输出的是循环字符串,故条件成立是flag=True,flag 初值应赋为False,所以(1)处填①,(3)处填②;tmp 应为i 处分割s 形成新的循环字符串,按照切片的语法规则s[M:N],N 处取不到字符,选④将会漏掉下标为i 的字符,选项A正确。 26.2023·台州中学检测通过键盘输入一串字符串,程序输出该字符串的所有子串。例如,在下列程序段中输入“the”后,将会输出['t','th','the','h','he','e']。 s=input(”请输入一个字符串: ”) a=[] for i in range(len(s)): for j in range(): a.append() print(a) 则①、②处填入的代码分别为( A ) A.①i,len(s) ②s[i:j+1] B.①i,len(s)-i+1 ②s[i:j+i] C.①i,len(s)-i+1 ②s[i:j+1] D.①i,len(s) ②s[j:j+i] 【解析】 本题程序需要输出字符串的所有子串,分析题干中给出的程序可以推断出,外循环中i变量用来枚举每一个起点,而内循环中j变量用来枚举i位之后的每个终点,再通过切片,根据 “左取右不取 ”的规则将子串取出。选项A正确。 学科网(北京)股份有限公司 $$

资源预览图

高效作业7 第7课 字符串1——初识字符串-【精彩三年】2024-2025学年高中信息技术选择性必修1课程探究与巩固Word教参(浙教版2019)
1
高效作业7 第7课 字符串1——初识字符串-【精彩三年】2024-2025学年高中信息技术选择性必修1课程探究与巩固Word教参(浙教版2019)
2
高效作业7 第7课 字符串1——初识字符串-【精彩三年】2024-2025学年高中信息技术选择性必修1课程探究与巩固Word教参(浙教版2019)
3
所属专辑
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。