高效作业13 第13课 程序强化——字符处理-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)

2025-10-15
| 11页
| 37人阅读
| 2人下载
浙江良品图书有限公司
进店逛逛

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版必修1 数据与计算
年级 高一
章节 3.3 简单算法及其程序实现
类型 作业-同步练
知识点 顺序结构的程序实现,分支结构的程序实现,循环结构的程序实现
使用场景 同步教学-新授课
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 747 KB
发布时间 2025-10-15
更新时间 2025-10-15
作者 浙江良品图书有限公司
品牌系列 精彩三年·高中同步课程探究与巩固
审核时间 2025-07-29
下载链接 https://m.zxxk.com/soft/53249904.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

高效作业13[第13课 程序强化——字符处理] 【A级 新教材落实与巩固】 1.2024·舟山地区检测有如下Python 程序段: t=0 s=”3abc21” for i in s: if ”0”<=i<=”9”: t=t*2+1 else:     t=t*2 print(t) 执行该程序段后,输出的结果是( C ) A.6   B.7   C.35   D.321 【解析】 执行过程如下表所示,选项C正确。 i ”3” ”a” ”b” ”c” ”2” ”1” t 1 2 4 8 17 35 2.有如下Python 程序段: s=”水果5fRU2IT!” ans=res=”” for x in s: if ”a”<=x<=”z”: ans=ans+chr(ord(x)-32) elif ”A”<=x<=”Z”: ans=ans+chr(ord(x)+32) elif ”0”<=x<=”9”: res=res+x t=ans+res print(t) 执行该程序段后,输出的结果是( C ) A.5fRU2IT B.5Fru2it C.Fruit52 D.52Fruit 【解析】 将大写字母转换为小写字母,将小写字母转换为大写字母,数字直接连接,其他字符舍去,选项C正确。 3.有如下Python程序段: s=input(”请输入字符串: ”) count=0 for i in s: if i>=”0”and i<=”9”: count+=1 print(s[count:count+3]) 若输入的字符串为“AB12CCC222GGBD”,则执行该程序段后,输出的结果是( C ) A.CCC B.GGBD C.CC2 D.C22 【解析】 程序统计数字字符的个数,输入的字符串中数字字符共有5个,则切片的位置为5,6,7,选项C正确。 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 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+0=123,选项A正确。 6.有如下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正确。 7.有如下Python程序段: s='8+9+12+14' sum=0 for i in s: if i=='+': sum+=t else: t=int(i) print(sum) 执行该程序段后,输出的结果是( B ) A.5  B.19  C.23  D.43 【解析】 遇到“+”后,对变量t进行累加,t中存放“+”号左边最近的数字字符转换的数值。故结果为8+9+2=19,选项B正确。 8.有如下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正确。 9.有如下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.529YNH C.H5N2Y9 D.YNH529 【解析】 将字符串中的数字字符正序连接,大写字母逆序连接,其他字符舍去,选项D正确。 10.某数据加密算法的Python程序段如下: s=input(”请输入明文: ”) t=”” for ch in s: if ”a”<=ch<=”z”: ch=chr(ord(ch)-ord(”a”)+ord(”A”)) elif ”0”<=ch<=”9”: ch=str((int(ch)+7)%10) t=ch+t print(t) 若输入明文“pyT638”,则执行该程序段后,输出的结果是( D ) A.305 B.503 C.PYT305 D.503TYP 【解析】 该程序段的功能是:遇到小写字母则将其转换为大写字母;遇到数字,则将其右移7位,其他符号无须转换,倒序输出,选项D正确。 11.2024·余姚中学检测有如下Python 程序段: def findzm(s):    ans=””    for x in s:  if ”a”<=x<=”z”:     ans=ans+x  if ”A”<=x<=”Z”:     ans=x+ans    return ans s1=”26Wa-Ter!” s2=”mE2022LoN!” ans=findzm(s1)+findzm(s2) print(ans) 执行该程序段后,输出的结果是( D ) A.TWNLEaermo B.aerTWmoNLE C.WTaerELNmo D.TWaerNLEmo 【解析】 函数的作用是将小写字母正序连接,大写字母逆序连接,其余字符舍去,选项D正确。 12.小明用Python编写了如下程序,程序功能为:用户输入数字串,数据间用逗号分隔,最后以逗号结尾,程序执行后输出最大的数值。下列程序段中横线处应填入的代码分别为( B ) s=input(”请输入数字串: ”) i=j=max=0 c=t=”” while j<len(s): c=s[j] if c==”,”: t=s[i:j] if int(t)>max: max=int(t) ①________ ②________ print(max) A.①i=i+1 ②j=j+1 B.①i=j+1 ②j=j+1 C.①j=j+1 ②i=i+1 D.①j=i+1 ②i=i+1 【解析】 若当前位置为”,”,代表一段数字串结束,与原有值比较,如果更大,则更新;其中s[i:j]为数字串切片,j是数字串的后一个位置,i是数字串开始位置;当某一段结束,则更新新一段数字串的开始位置,①为i=j+1;②为循环变量变化过程,为j=j+1。故选项B正确。 13.“不重复数”的特征是任何相邻两个数位上的数字都不相同。如 1101 是重复数,1201 是不重复数。判断某数是否为重复数的Python 程序段如下:s=input() i=0;flag=True while i<n-1 and flag: if : flag=False i=i+1 if : print(”重复数”) else: print(”不重复数”) 上述程序段中加框处可选代码有: ①flag=False ②n=len(s) ③s[i]==s[i+1] 下列选项中,代码顺序正确的是( A ) A.②③① B.①③② C.②①③ D.③②① 【解析】 循环中,遍历字符串s,提取第i个字符和第i+1个字符,字符串s的长度是n,故(1)填n=len(s);若i个字符和第i+1个字符相同,flag=False,故(2)填s[i]==s[i+1];退出循环时根据flag的值判断是否为重复数,若flag=False,表示是重复数,故(3)填flag=False。选项A正确。 14.循环字符串:将字符串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正确。 【B级 素养形成与评价】 15.有Python程序段功能如下:输入一个非负数,将该数各位上的数字反转得到一个新数。得到的新数,除了原数为0外,反转得到的新数最高位不应为0。程序运行界面如图所示: 实现上述功能的Python程序段如下,请在横线处填入合适的代码。 a=input('请输入数字') s='' ①__n=len(a)__ while n>1 and a[n-1]=='0': ②__n-=1__ for i in range(n,0,-1): s=③__s+a[i-1]__ print(s) 【解析】 借助len()函数求取字符串的长度,通过倒序,确定最后一个非零数字的位置,再从该位置开始对字符串倒序组合输出。 16.2024·知临中学检测从左往右读和从右往左读都一样的字符串称为回文串。根据回文串的特点,只要字符串左右对称,它就是回文串。判断时,可以先找到中间位置,然后将字符串的左半部分存储到left 中;再将右半部分反转后存储到right 中。若left与right 相等,则为回文串。 请回答下列问题。 (1)实现上述功能的Python程序如下,请在横线处填入合适的代码。 s=input(”请输入一个字符串: ”) length=len(s) #串的长度 mid=length//2 left=s[0:mid] #取左半串 temp=①__s[mid:]__或其他等价答案__ #取右半串 right=”” #右半串反转 for i in range(len(temp)): ② right=right+temp[len(temp)-i-1] 或right=temp[i]+right  if left==right:  print(”Yes”) else: print(”No”) (2)请在下列程序的横线处填入与第(1)小题程序功能相同的语句或语句块。 s=input(”请输入一个字符串: ”) __s1=s[::-1]__或__s1=s[len(s)-1::-1]或s1=s[-1::-1]__ if s==s1:  print(”Yes”) else: print(”No”) 【解析】 (1)①取字符串的右半串s[mid:] ②右半串反转,需要逆序连接。 (2)方法2直接逆向切片。 17.编写“字符串生成”程序,实现如下功能:在输入多个正整数(以“,”为分割符和结束符),以这些整数为位置信息,依次从字符串zd中提取字符并连接成字符串。实现上述功能的Python程序段如下: s=input(”输入各个数字,用逗号分开: ”) zd=”python is a progranuming language.” t,ss=””,”” for ch in s: if ch==”,”: ①__p=int(t)__ ss=ss+zd[p-1:p] t=”” else: ②__t=t+ch__ print(ss) 请回答下列问题。 (1)请在横线处填入合适的代码。 (2)若input 语句中输入内容的结束符缺失(即输入内容为1,18,9,9),则输出的结果是__pas__。 【解析】 (1)在input中输入位置s(字符串形式),在s中提取s,当遇到“,”时,则代表一组结束,①将p转换为整数;②当前字符不是“,”,将字符连接到t中。 (2)由于末尾没有“,”,最后一个数字不会提取。 18.判断两个字符串是否相等:规定字符“?”为万能字符,即可与任意一个字符相等,在忽略字符串中空格以及不区分大小写的前提下,判断两个字符串是否相等。程序运行界面如图所示: 请回答下列问题。 (1)根据以上规则,字符串“??ad??dadwd”和字符串“a???c?d?d?d”__相等__(选填:相等/不相等)。 (2)实现上述功能的Python 程序段如下,请在横线处填入合适的代码。 s1=input(”请输入一个字符串: ”) s2=input(”请输入另一个字符串: ”) s1=s1.upper() s2=s2.upper() s=”” #将字符串s1 中的空格去掉 for i in s1: if i!=” ”: ①__s=s+i__ s1=s #同上,将字符串s2 中的空格去掉,代码略 i=0 if len(s1)!=len(s2): print(”两个字符串不相同”) else: while i<len(s1): c1=s1[i] c2=s2[i] if c1==c2: ②__i=i+1__或i+=1__ else: if ③__c1==”?”__or__c2==”?”__: i+=1 else: break if i==len(s1): print(”两个字符串相等”) else: print(”两个字符串不相等”) 【解析】 (1)问号代表任意字符,由下面两行可知两个字符串相等。 ??ad??dadwd a???c?d?d?d (2)①在字符串中去除空格。 ②c1==c2,则往后移。 ③c1和c2不相等时,若某一个字符为“?”,则认为相等。 19.2024·长兴中学检测小温为统计某次考试成绩的加权总分编写了一个Python程序, 实现如下功能: 输入某位学生所考六科的学科名称和成绩(以“,” 为分割符和结束符), 例如“语文80.5分,数学80分,英语79.5分,物理92分,化学88分,技术90分,”, 六个科目的满分均为100分,最后求得加权总分=语文分数×1.5+数学分数×1.5+英语分数×1.5+物理分数+化学分数+技术分数。 实现上述功能的Python程序段如下: s=input(”请输入各科名称和成绩: ”) i=j=0 total=0 score={} #初始化为空字典 while i<len(s):     ①__ch=s[i]__     if ch=”,”: xk=s[j:j+2] # 学科名称 xkf=float(s[j+2:i-1]) #学科分数 score[xk]=xkf j=②__i+1______     i+=1 for i in score:     if i==”语文” or i==”数学” or i==”英语”:    total=③__total+score[i]*1.5__     else:    total+=score[i] print(total) 请回答下列问题。 (1)若输入如题干所示的内容, 则执行该程序段后,输出的加权总分为__630__。 (2)请在横线处填入合适的代码。 【解析】 (1)加权总分=80.5×1.5+79.5×1.5+80×1.5+92+88+90=630。 (2)①提取字符判断是否是“,”,若是则代表一个学科输入完整;②读取学科和学科分数,存入字典score中,学科为键,学科分数是键值;j是一个学科的开始,j=i+1;③如果是语、数、英三科,则需要*1.5。 20.某密文的解密规则是:①逐行对文档连续重复的大写字母进行去重处理(仅保留1个);②在去重后的文本中,依次取出行号所对应的字符进行连接,即为明文。 编写Python程序实现上述功能。读取密文文件“miwen.txt”,根据解密规则解密并输出明文(如图所示)。相关程序段如下,请在横线处填入合适的代码。 def merge(s):    result=s[0]    for i in range(1,len(s)):  c=s[i]  if ”A”<=c<=”Z”:     if ①__c!=s[i-1]__或s[i]!=s[i-1]__或c!=result[-1]__:     result+=c  else:     result+=c    return result f=open(”miwen.txt”,encoding=”utf-8”) #打开文件 line=f.readline() #从文件中读取一行 s=”” ②__n=0__ while line:     temp=merge(line)     s=③__s+temp[n]__     n=n+1     line=f.readline() f.close() print(s) 【解析】 ①merge()函数的作用是去重,如果是大写字母,又与上一个不同,则保留。 ②n的作用是标识当前是第几行,用于提取字符,行号从0开始。 ③提取第n位置的字符,连接到s中。 21.2024·新昌中学检测老年机因其较大的按键,很适合老年人使用,但其中英文字母的输入方式较为麻烦,导致很多老年人不太会使用。如图所示,这是一款老年机的键盘,其字母的输入方式如下: ①若要输入英文字母“A”,则2 键按1 下;若要输入“B”,则2 键按两下;其他英文字母的输入方式同理。 ②若连续输入的英文字母在同一数字键中,则在输入下一个英文字母前,需先按下1 键以表示确定;若连续输入的英文字母不在同一数字键中,则不需要按1 键,直接按所要输入英文字母对应的数字键即可。 ③若要输入空格,则按0 键。王老师依据该手机的字母输入规则,设计了一个Python 程序。实现输入按键被点击的顺序,显示手机中输入的英文内容的功能。 程序运行界面如图所示: 实现上述功能的程序段如下: keyboard={”0”:” ”,”2”:”ABC”,”3”:”DEF”,”4”:”GHI”,”5”:”JKL”,”6”:”MNO”, ”7”:”PQRS”,”8”:”TUV”,”9”:”WXYZ”} yw=input(”输入按键编号顺序:”) ①__key=yw[0]__ i=1 k=1 result=”” while i<len(yw):     if yw[i]==key: k=k+1     else: if yw[i]==”1”:    ②__i=i+1__ result+=keyboard[key][k-1] key=yw[i] ③__k=1__     i=i+1 result+=keyboard[key][k-1] print(”输出的内容是:”,result) 请回答下列问题。 (1)若按键点击的顺序是“616661666166”,则手机中输入的英文是__MOON__。 (2)请在横线处填入合适的代码。 【解析】 (1)由“若连续输入的英文字母在同一数字键中,则在输入下一个英文字母前,需先按下1 键以表示确定”可知,都在键6中输入,6→M;666→O;66→N。 (2)①对key赋初值,结合i=0,可知需要取第0位置的值。 ②else语句中,yw[i]==”1”成立表示一个字母输入成功,直接跳过该位置。 ③k是计数,统计相同键所按次数,当1个字母输入成功,则需要初始化,k的初值是1。 学科网(北京)股份有限公司 $$

资源预览图

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