内容正文:
六校联盟2025学年第一学期期中联考(2025.11)
高二技术试题卷
考生须知:
1.考试范围:信息技术 (必修一第一单元至第三单元);通用技术 (技术与设计1第一章至第五章)
2.本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共12页,第一部分1至6页,第二部分7至12页。满分100分,考试时间90分钟。
3.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆的发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。结合实例,回答下列关于数据、信息和知识的描述不正确的是( )
A. 1.4是数据
B. 利用北斗定位等系统训练受阅方队,这是智慧的体现
C. 不同角度拍摄阅兵画面,呈现的视觉效果不一样,说明信息具有真伪性
D. “东风-41改进型洲际导弹具备强大的战略威慑能力。”这是知识的体现
2. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆的发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。下列关于该过程中大数据应用的说法,正确的是( )
A. 大数据让训练方案更精准,是因为它对每一个数据的精确性要求极高,不允许存在任何误差
B. 装备实时数据的价值密度高,每一条数据都能直接用于生成“最佳行驶速度曲线”
C. “夜间开展关键合练”是仅通过大数据分析就能直接得出的结论,无需考虑市民生活需求
D. 大数据分析更注重从海量数据中挖掘“发动机转速”与“油温”的相关性规律
3. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆的发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。用UltraEdit软件查看字符“2025抗战80年!”的内码如图所示,下列说法正确的是( )
A. 图中共有6个ASCII编码的字符
B. 存储当前字符需要15b
C. 内码用十六进制表示,故计算机中用十六进制存储内码
D. 字符“!”的内码为“A3A1”
4. 小张用手机相机拍照,并将照片保存为1024×768像素,颜色位深度16位BMP格式位图图像后再使用图像处理软件美化,下列说法正确的是( )
A. 若将该图像转换为256级灰度的BMP格式位图,则存储容量变为原来的2倍
B. 该图像某个像素的颜色值编码可能表示为003FH
C. 拍照过程实现了信号的数模转换
D. 该图像格式在图像处理软件中任意放大,不会影响清晰度
5. 下列关于数据管理与安全的说法,正确的是( )
A. 现代社会只用计算机进行数据管理 B. 在Windows操作系统中,采用文件夹来管理文件
C. 只要安装了杀毒软件就能完全保证数据的安全 D. 数据加密是为了提高数据自身的完整性
6. 某算法的部分流程图如图所示,执行这部分流程后,输出sum、i的值分别是( )
A. 14、4 B. 14、5 C. 17、4 D. 31、4
7. 一个班的学生排成一列,从第一位同学开始按1-6循环报数,能正确表示第n位同学所报数字的Python表达式是( )
A. n%6 B. n C. (n-1)%6+1 D. (n+1)%6-1
8. a="345",若要构造其回文数b为“34543”,以下语句无法实现的是( )
A. b=a+a[-2:-4:-1] B. b=str(int(a)*100+int(a[1::-1]))
C. b=a+a[1]+a[0] D. b=(a[0]+a[1]+a[2])*2
9. 身体质量指数(BMI=体重(kg)/身高(米)²),主要用于衡量人体胖瘦程度的一个参考指标。中国成人居民BMI衡量标准是小于18.5为消瘦、18.5~23.9为正常、大于23.9为肥胖。测得某人的身高及体重数据存入变量h、w,下列 Python程序段不能正确输出胖瘦程度的代码是( )
A.
bmi = w/(h*h)
if bmi < 18.5:
sta = "消瘦"
elif bmi<=23.9:
sta = "正常"
else:
sta = "肥胖"
print(sta)
B.
bmi = w/(h*h)
sta = "肥胖"
if bmi < 18.5:
sta = "消瘦"
elif bmi <= 23.9:
sta = "正常"
print(sta)
C.
bmi = w/(h*h)
sta = "消瘦"
if bmi > 23.9:
sta = "肥胖"
elif bmi <= 23.9:
sta = "正常"
print(sta)
D.
bmi = w/(h*h)
if bmi > 23.9:
sta = "肥胖"
if 18.5 <= bmi <= 23.9:
sta = "正常"
elif bmi < 18.5
sta = "消瘦"
print(sta)
A. A B. B C. C D. D
10. 有如下程序段:
a=input(""); b=input("")
result=""
for i in range(0,len(a)):
if a[i]==b[i%len(b)]:
result="0"+result
else:
result="1"+result
print(result)
若输入的数据依次为1110011和110,则输出的结果为( )
A. 0111100 B. 0010011 C. 0011110 D. 1000011
11. 对输入字符串进行去重,并保持原顺序不变,例如,从键盘输入“桃之夭夭,灼灼其华”执行程序后,输出的字符串为“桃之夭,灼其华”。实现上述功能的Python程序如下:
a=input("请输入字符串: ")
n=len(a)
i=0
while i < n:
j=i+1
while j < n:
if a[i] == a[j]:
a=①
n-=1
else:
②
i+=1
print("去重后结果是: ",a)
划线处应填入的正确代码为( )
A. ①a[:i]+a[i+1:] ②i+=1 B. ①a[:j]+a[j+1:] ②j+=1
C. ①a[1:j]+a[j+1:] ②j+=1 D. ①a[1:i]+a[i+1:] ②i+=1
12. 有如下 Python程序段:
from random import randint
a = [0] * 6
for i in range(len(a)):
a[i] = randint(1,10)
for i in range(1,len(a)):
if i%2 == 1 and a[i] < a[i-1]:
a[i],a[i-1] = a[i-1],a[i]
else:
a[i] -= 1
执行程序后,列表a的值不可能是( )
A. [4,6,2,3,4,5] B. [2,4,0,3,2,2] C. [4,7,6,6,9,7] D. [4,4,2,5,3,5]
二、非选择题(本大题共3小题;其中第13小题10分,第14小题8分,第15小题8分;共26分)
13. 某巡检机器人在平面区域内沿预设途经点移动,路径为依次连接各途经点的折线。编写程序,输入途经点数量和各点的二维坐标(x,y,单位:米),(注:机器人每次巡检结束都要回到出发点)计算并输出机器人移动的总路径长度。
第一步:抽象与建模
机器人的移动路径是“折线”,由多个“途经点”依次连接而成,总路径长度=各相邻途经点之间的直线距离之和。相邻两点之间的距离可通过数学公式计算(勾股定理)。
第二步:算法设计
核心是“计算相邻点距离并累加”,使用(1)____算法。(解析算法/枚举算法)
步骤如下:
①输入数据:读取途经的点的数量n。
②计算相邻点距离:对于第j/个点(j从2到n),与前一个点(j-1)的距离公式为:
③输出距离s
第三步:编写程序
import math
def dis(x,y):
dx=y[0]-x[0]
(2)____
return sqrt(dx**2+dy**2)
d={}
s=0
n=int(input("请输入途经点数量: "))
for i in range(1,n+1):
x=int(input("请输入第"+str(i)+ "个途经点的x坐标: "))
y=int(input("请输入第"+str(i)+ "个途经点y坐标: "))
d[i]=[x,y]
j=n
while j > 1:
s=s+dis(d[j-1]d[j])
j-=1
(3)____
print("机器人总路径长度为: ",s)
第四步:调试程序
小明在调试程序时发现错误提示:
NameError: name ‘sqrt’ is not defined
(4)如何修改加框处语句?写出两种方法。____
14. 小李经营了一家花卉大棚,大棚内花卉生长的最佳光照强度为800至1200勒克斯,最佳二氧化碳浓度为400至600ppm。现有检测到一个月的光照和二氧化碳浓度数据,小李想利用Python程序计算最佳光照和二氧化碳浓度持续的最长天数并输出起止日期,若有多段最长天数,则输出所有日期。请回答下列问题:
(1)若某段时间检测到的光照和二氧化碳浓度值如表所示,则最佳的光照和二氧化碳浓度持续的最长天数为____天。
日期
光照强度(lux)
二氧化碳浓度(ppm)
5月1日
900
450
5月2日
1000
500
5月3日
1100
550
5月4日
700
350
5月5日
1200
600
5月6日
1300
650
5月7日
950
480
5月8日
1050
520
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#列表a保存每天检测到的光照和二氧化碳浓度数据,a[2*i]和a[2*i+1]分别表示第i天的光照强度和二氧化碳浓度数据,
#列表b保存日期数据,代码略
n=len(a)
t,ans,last=0,0,[]
for i in range(n//2):
if 800<=a[2*i] <= 1200 and 400<=a[2 * i+1]<=600:
t+=1
if t> ans:
ans=t
①____
last.append(i)
else:
t=0
print("最佳光照和二氧化碳浓度持续的最长天数为: ",ans)
print("起止日期: ")
for i in range(len(last)):
start=②____
print(b[start], "——",b[last[i]])
(3)程序中加框处代码有误,请改正。____
15. 信息技术林老师要求学生上交上机作业时的文件名按“学号姓名.docx”格式提交,如“01张三.docx”。老师编写了一段程序,希望快速找出哪些同学未提交,但总会发现学生上交时会出现“2501张三.docx”、“二五01张三.docx”等数字表示不当的格式。(不考虑学生重名)
(1)读取文件名并返回,请在划线处填入合适的代码
import os
def readname():#读取某个文件夹内所有文件的文件名
filepath="pics//"
#读取到的文件名以字符串的形式,作为元素存储在列表allname中
allname=os.listdir(filepath)
#os.listdir()用于返回指定的文件夹包含的文件或文件夹的名字的列表
return ____
(2)获得学生姓名,请在划线处填入合适的代码
def checkname(name):
s=""
for i in name:
if i == ".":
____
if i not in num:
s+=i
return s
(3)主程序,请在划线处填入合适的代码
name=readname()
num=["0","1","2","3","4","5","6","7","8","9","零","一","二","三","四","五","六","七","八","九",""]
#student列表存放本班学生名单,如student=["沈胤宏","林芳茹","洪彬钦","刘依琪"]
yes=[]; no=[]; s=0; result={}
for item in name:
item=checkname(item)
yes. append(item) #将学生的姓名加入列表
s=s+1
for m in student:
if ____:
no.append(m)
(4)输出结果
result["应提交人数"]=len(student)
result["已提交人数"]=
result["已提交的同学"]=yes
result["还未提交的同学"]=no
print(result)
划线处可以填入的代码是多选,填字母( )
A. len(yes) B.s C. len(no) D. len(name)
第1页/共1页
学科网(北京)股份有限公司
$
六校联盟2025学年第一学期期中联考(2025.11)
高二技术试题卷
考生须知:
1.考试范围:信息技术 (必修一第一单元至第三单元);通用技术 (技术与设计1第一章至第五章)
2.本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共12页,第一部分1至6页,第二部分7至12页。满分100分,考试时间90分钟。
3.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆的发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。结合实例,回答下列关于数据、信息和知识的描述不正确的是( )
A. 1.4是数据
B. 利用北斗定位等系统训练受阅方队,这是智慧的体现
C. 不同角度拍摄阅兵画面,呈现的视觉效果不一样,说明信息具有真伪性
D. “东风-41改进型洲际导弹具备强大的战略威慑能力。”这是知识的体现
【答案】C
【解析】
【详解】本题考查数据、信息和知识。A选项正确,数据是原始数值、符号等未加工的素材,1.4作为东风-41改进型洲际导弹射程的具体数值,属于数据范畴。B选项正确,智慧是综合运用知识、技术与实践经验解决复杂问题的能力,利用北斗定位、模拟仿真、智能评估系统训练受阅方队,是结合技术需求与实际场景的复杂解决方案,体现了智慧的应用。C选项错误,信息的真伪性指信息是否真实可靠,不同角度拍摄阅兵画面呈现不同视觉效果,反映的是信息的呈现形式多样性(或依附性,依附于拍摄角度这一载体),并非信息的真伪性。D选项正确,知识是对信息的提炼、总结与应用,通过东风-41改进型洲际导弹的射程、搭载分导热核弹头等关键信息,提炼出其具备强大战略威慑能力的结论,属于知识的体现。因此,本题选择C选项。
2. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆的发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。下列关于该过程中大数据应用的说法,正确的是( )
A. 大数据让训练方案更精准,是因为它对每一个数据的精确性要求极高,不允许存在任何误差
B. 装备实时数据的价值密度高,每一条数据都能直接用于生成“最佳行驶速度曲线”
C. “夜间开展关键合练”是仅通过大数据分析就能直接得出的结论,无需考虑市民生活需求
D. 大数据分析更注重从海量数据中挖掘“发动机转速”与“油温”相关性规律
【答案】D
【解析】
【详解】本题考查大数据的特征。A选项错误,大数据的核心是从海量数据中挖掘规律,允许数据存在一定误差,并非要求每一个数据绝对精确无误差,其价值在于整体关联性而非单个数据的精准度;B选项错误,装备实时数据属于典型的低价值密度数据,单条数据无实际意义,需通过海量数据汇总分析才能提炼出“最佳行驶速度曲线”,无法直接使用;C选项错误,题目明确提到“指挥部综合训练效果与市民生活需求”选择夜间合练,该结论是结合大数据分析结果与人文需求得出的,并非仅靠大数据单独推导;D选项正确,大数据分析的核心优势的就是从海量、多维度数据中挖掘变量间的相关性规律,“发动机转速”与“油温”的关联分析正是大数据在该场景中的典型应用。因此,本题选择D选项。
3. 2025年9月3日,中国举行纪念抗日战争胜利80周年大阅兵。此次阅兵展示了众多先进军事装备,例如东风-41改进型洲际导弹射程达1.4万公里,可搭载多枚分导热核弹头引起众多关注。为确保装备方队精准受阅,技术团队开展了一系列工作:①收集装备车辆发动机转速、油温等实时数值;②通过分析这些数值,得出“不同油温下车辆最佳行驶速度曲线”;③结合“装备方队百米标齐误差需≤0.03米”的要求,制定训练方案;④通过精准的北斗定位、模拟仿真、智能评估系统进行训练⑤指挥部综合训练效果与市民生活需求,选择夜间开展关键合练。用UltraEdit软件查看字符“2025抗战80年!”的内码如图所示,下列说法正确的是( )
A. 图中共有6个ASCII编码的字符
B. 存储当前字符需要15b
C. 内码用十六进制表示,故计算机中用十六进制存储内码
D. 字符“!”的内码为“A3A1”
【答案】D
【解析】
【详解】本题考查字符内码。A选项错误,ASCII编码为单字节(十六进制00-7F),图中“2”“0”“2”“5”“8”“0”及末尾的空格(内码20)均为ASCII字符,共7个,并非6个;B选项错误,存储容量以字节为基础计算,图中内码共15字节,对应15×8=120位(b),并非15b;C选项错误,计算机中所有数据均以二进制形式存储,十六进制仅为人类阅读内码的便捷表示方式;D选项正确,GB2312编码中全角字符“!”的内码为双字节的“A3A1”,与图中对应位置的内码一致。因此,本题选择D选项。
4. 小张用手机相机拍照,并将照片保存为1024×768像素,颜色位深度16位的BMP格式位图图像后再使用图像处理软件美化,下列说法正确的是( )
A. 若将该图像转换为256级灰度的BMP格式位图,则存储容量变为原来的2倍
B. 该图像某个像素的颜色值编码可能表示为003FH
C. 拍照过程实现了信号的数模转换
D. 该图像格式在图像处理软件中任意放大,不会影响清晰度
【答案】B
【解析】
【详解】本题考查图像存储原理、位深度计算及位图特性。A选项错误,图像存储容量=像素总数×颜色位深度/8,原图像位深度16位,256级灰度对应位深度8位(2^8=256),像素总数不变,存储容量应为原来的1/2(8/16),而非2倍。B选项正确,16位颜色位深度的像素编码为2字节(16位二进制),对应4位十六进制数,003FH是4位十六进制表示,符合16位编码规则,可能是该像素的颜色值编码。C选项错误,拍照过程是将现实中的模拟光信号转换为数字信号,属于模数转换(A/D转换),数模转换(D/A转换)是数字信号转模拟信号(如屏幕显示图像),二者方向相反。D选项错误,BMP格式是位图(像素图),由像素点阵列组成,任意放大时像素点会被拉伸插值,导致图像模糊,清晰度下降,矢量图才具备放大不失真的特性。因此,本题选择B选项。
5. 下列关于数据管理与安全的说法,正确的是( )
A. 现代社会只用计算机进行数据管理 B. 在Windows操作系统中,采用文件夹来管理文件
C. 只要安装了杀毒软件就能完全保证数据的安全 D. 数据加密是为了提高数据自身的完整性
【答案】B
【解析】
【详解】本题考查数据管理与安全。A选项,现代社会数据管理方式多样,不只是用计算机,错误;B选项,在Windows操作系统中,采用文件夹来管理文件,这是常见且正确的方式,正确;C选项,安装杀毒软件不能完全保证数据的安全,还需要用户自身的良好操作习惯和其他安全措施,错误;D选项,数据加密是为了提高数据的保密性,而非完整性,错误。故答案为:B。
6. 某算法的部分流程图如图所示,执行这部分流程后,输出sum、i的值分别是( )
A. 14、4 B. 14、5 C. 17、4 D. 31、4
【答案】B
【解析】
【详解】本题考查流程图。初始值为s=36589,i=0,sum=0。流程执行如下:
1. s=36589>0,s=36589//10=3658,i=0+1=1。
2. s=3658>0,且i是奇数,sum=0+8=8,s=3658//10=365,i=1+1=2。
3.s=365>0,s=365//10=36,i=2+1=3。
4. s=36>0,且i是奇数,sum=8+6=14,s=36//10=3,i=3+1=4。
5. s=3>0,s=3//10=0,i=4+1=5。 此时s=0,退出循环,输出sum=14,i=5。
因此,本题选择B选项。
7. 一个班的学生排成一列,从第一位同学开始按1-6循环报数,能正确表示第n位同学所报数字的Python表达式是( )
A. n%6 B. n C. (n-1)%6+1 D. (n+1)%6-1
【答案】C
【解析】
【详解】本题考查Python表达式。从第一位同学开始报数,按照1~ 6循环报数,能正确表示第n位同学所报数字的Python表达式是(n-1)%6+1,不能用n%6的原因是当n是6的倍数时,所报的数字成0了,故选C。
8. a="345",若要构造其回文数b为“34543”,以下语句无法实现的是( )
A. b=a+a[-2:-4:-1] B. b=str(int(a)*100+int(a[1::-1]))
C. b=a+a[1]+a[0] D. b=(a[0]+a[1]+a[2])*2
【答案】D
【解析】
【详解】本题考查Python中字符串的索引、切片、类型转换以及字符串拼接。首先已知a="345",目标是构造回文数b="34543",A选项:a[-2:-4:-1]切片结果为"43",a拼接该结果得到"34543",可实现;B选项:int(a)=345,345*100=34500,a[1::-1]为"43",int后为43,34500+43=34543,转字符串后得到目标值,可实现;C选项:a[1]是"4",a[0]是"3",拼接后为"34543",可实现;D选项:a[0]+a[1]+a[2]结果为"345",乘以2后得到"345345",并非目标回文数,无法实现。因此,本题选择D选项。
9. 身体质量指数(BMI=体重(kg)/身高(米)²),主要用于衡量人体胖瘦程度的一个参考指标。中国成人居民BMI衡量标准是小于18.5为消瘦、18.5~23.9为正常、大于23.9为肥胖。测得某人的身高及体重数据存入变量h、w,下列 Python程序段不能正确输出胖瘦程度的代码是( )
A.
bmi = w/(h*h)
if bmi < 18.5:
sta = "消瘦"
elif bmi<=23.9:
sta = "正常"
else:
sta = "肥胖"
print(sta)
B.
bmi = w/(h*h)
sta = "肥胖"
if bmi < 18.5:
sta = "消瘦"
elif bmi <= 23.9:
sta = "正常"
print(sta)
C.
bmi = w/(h*h)
sta = "消瘦"
if bmi > 23.9:
sta = "肥胖"
elif bmi <= 23.9:
sta = "正常"
print(sta)
D.
bmi = w/(h*h)
if bmi > 23.9:
sta = "肥胖"
if 18.5 <= bmi <= 23.9:
sta = "正常"
elif bmi < 18.5
sta = "消瘦"
print(sta)
A. A B. B C. C D. D
【答案】C
【解析】
【详解】本题考查的是Python分支语句。选项C,当 bmi < 18.5(如 bmi = 17),初始为“消瘦”,但 bmi <= 23.9 成立(因 17 ≤ 23.9),故被错误覆盖为“正常”。 不能正确输出(消瘦情况被误判为正常)。故选C。
10. 有如下程序段:
a=input(""); b=input("")
result=""
for i in range(0,len(a)):
if a[i]==b[i%len(b)]:
result="0"+result
else:
result="1"+result
print(result)
若输入的数据依次为1110011和110,则输出的结果为( )
A. 0111100 B. 0010011 C. 0011110 D. 1000011
【答案】A
【解析】
【详解】本题考查Python的输入处理、字符串索引、for循环以及字符串拼接。首先明确输入数据:a="1110011"(长度7),b="110"(长度3);循环变量i从0到6(共7次循环),核心逻辑是通过i%len(b)让b的索引循环匹配a的每个字符,比较后将"0"(相等)或"1"(不相等)拼接到result前面,具体循环过程为:i=0时,i%3=0,a[0]='1'与b[0]='1'相等,result="0";i=1时,i%3=1,a[1]='1'与b[1]='1'相等,result="00";i=2时,i%3=2,a[2]='1'与b[2]='0'不相等,result="100";i=3时,i%3=0,a[3]='0'与b[0]='1'不相等,result="1100";i=4时,i%3=1,a[4]='0'与b[1]='1'不相等,result="11100";i=5时,i%3=2,a[5]='1'与b[2]='0'不相等,result="111100";i=6时,i%3=0,a[6]='1'与b[0]='1'相等,result="0111100"。因此,本题选择A选项。
11. 对输入的字符串进行去重,并保持原顺序不变,例如,从键盘输入“桃之夭夭,灼灼其华”执行程序后,输出的字符串为“桃之夭,灼其华”。实现上述功能的Python程序如下:
a=input("请输入字符串: ")
n=len(a)
i=0
while i < n:
j=i+1
while j < n:
if a[i] == a[j]:
a=①
n-=1
else:
②
i+=1
print("去重后的结果是: ",a)
划线处应填入的正确代码为( )
A. ①a[:i]+a[i+1:] ②i+=1 B. ①a[:j]+a[j+1:] ②j+=1
C. ①a[1:j]+a[j+1:] ②j+=1 D. ①a[1:i]+a[i+1:] ②i+=1
【答案】B
【解析】
【详解】本题考查Python中字符串去重并保持原顺序的循环实现逻辑。首先分析程序逻辑:外层循环变量i遍历字符串每个字符,内层循环变量j从i+1开始,检查后续字符是否与a[i]重复。当a[i]==a[j]时,说明a[j]是重复字符,需要删除该位置的字符。由于Python字符串不可变,需通过切片拼接实现删除,删除j位置字符的正确切片方式是a[:j]+a[j+1:](a[:j]获取j位置之前的所有字符,a[j+1:]获取j位置之后的所有字符,拼接后即移除了j位置字符),因此①处应填a[:j]+a[j+1:]。当a[i]≠a[j]时,需要继续检查下一个字符,即j自增1,因此②处应填j+=1。其他选项中,①处若使用a[:i]+a[i+1:]会删除i位置字符(而非重复的j位置),a[1:j]+a[j+1:]会错误跳过第一个字符;②处若使用i+=1会破坏内层循环逻辑,导致无法遍历后续字符。因此,本题选择B选项。
12. 有如下 Python程序段:
from random import randint
a = [0] * 6
for i in range(len(a)):
a[i] = randint(1,10)
for i in range(1,len(a)):
if i%2 == 1 and a[i] < a[i-1]:
a[i],a[i-1] = a[i-1],a[i]
else:
a[i] -= 1
执行程序后,列表a的值不可能是( )
A. [4,6,2,3,4,5] B. [2,4,0,3,2,2] C. [4,7,6,6,9,7] D. [4,4,2,5,3,5]
【答案】C
【解析】
【详解】本题考查的是Python程序分析。索引4(位置4)的值在循环中总是减1(因为 i=4 是偶数),所以处理后 a[4] 的值必须比初始值小1。在选项C中,a[4]=9,因此初始值必须为10。索引5(i=5,奇数)的处理: 如果交换发生,a[5] 应等于交换前索引4的值(即9),但选项 a[5]=7 ≠ 9,矛盾。 如果不交换,a[5] 应比操作前值小1,即 a[5] = p5 - 1 = 7,所以 p5 = 8(操作前索引5的值)。但操作前索引4的值为9,p5 = 8 < 9 为真,条件满足,必须交换,与不交换假设矛盾。 因此,无论交换与否,都无法得到 a[5]=7,选项C不可能。故本题应选C。
二、非选择题(本大题共3小题;其中第13小题10分,第14小题8分,第15小题8分;共26分)
13. 某巡检机器人在平面区域内沿预设途经点移动,路径为依次连接各途经点的折线。编写程序,输入途经点数量和各点的二维坐标(x,y,单位:米),(注:机器人每次巡检结束都要回到出发点)计算并输出机器人移动的总路径长度。
第一步:抽象与建模
机器人的移动路径是“折线”,由多个“途经点”依次连接而成,总路径长度=各相邻途经点之间的直线距离之和。相邻两点之间的距离可通过数学公式计算(勾股定理)。
第二步:算法设计
核心是“计算相邻点距离并累加”,使用(1)____算法。(解析算法/枚举算法)
步骤如下:
①输入数据:读取途经的点的数量n。
②计算相邻点距离:对于第j/个点(j从2到n),与前一个点(j-1)的距离公式为:
③输出距离s
第三步:编写程序
import math
def dis(x,y):
dx=y[0]-x[0]
(2)____
return sqrt(dx**2+dy**2)
d={}
s=0
n=int(input("请输入途经点数量: "))
for i in range(1,n+1):
x=int(input("请输入第"+str(i)+ "个途经点的x坐标: "))
y=int(input("请输入第"+str(i)+ "个途经点的y坐标: "))
d[i]=[x,y]
j=n
while j > 1:
s=s+dis(d[j-1],d[j])
j-=1
(3)____
print("机器人总路径长度为: ",s)
第四步:调试程序
小明在调试程序时发现错误提示:
NameError: name ‘sqrt’ is not defined
(4)如何修改加框处语句?写出两种方法。____
【答案】 ①. 解析算法 ②. dy=y[1]-x[1] ③. s=s+dis(d[n],d[1]) ④. return math.sqrt(dx**2+dy**2);②return(dx**2+dy**2)**0.5
【解析】
【详解】本题考查循环语句,函数。
(1)解析算法是通过已知公式或逻辑直接推导结果,此处通过计算相邻点距离(勾股定理)并累加得到总路径,属于直接应用数学公式的解析过程,而非枚举所有可能情况,因此该空答案为解析算法。
(2)该处需要计算两点y坐标的差值。函数dis中,dx为两点x坐标的差(y[0]-x[0]),对应的dy应为两点y坐标的差,即y[1](第二个点的y坐标)减去x[1](第一个点的y坐标),因此该空答案为dy = y[1] - x[1]。
(3)该处需要补充回到出发点的距离计算。题目明确机器人需回到出发点,前面的循环仅计算了从点1到点2、点2到点3……点n-1到点n的距离,缺少点n到点1的距离,需添加该距离到总长度s中,因此该空答案为s += dis(d[n], d[1])(或s = s + dis(d[n], d[1]))。
(4)该处需要修正sqrt未定义的错误。因为sqrt函数属于math模块,未直接导入时需用模块名限定。因此修改方法为:①return math.sqrt(dx**2 + dy**2);②return(dx**2+dy**2)**0.5。
14. 小李经营了一家花卉大棚,大棚内花卉生长的最佳光照强度为800至1200勒克斯,最佳二氧化碳浓度为400至600ppm。现有检测到一个月的光照和二氧化碳浓度数据,小李想利用Python程序计算最佳光照和二氧化碳浓度持续的最长天数并输出起止日期,若有多段最长天数,则输出所有日期。请回答下列问题:
(1)若某段时间检测到的光照和二氧化碳浓度值如表所示,则最佳的光照和二氧化碳浓度持续的最长天数为____天。
日期
光照强度(lux)
二氧化碳浓度(ppm)
5月1日
900
450
5月2日
1000
500
5月3日
1100
550
5月4日
700
350
5月5日
1200
600
5月6日
1300
650
5月7日
950
480
5月8日
1050
520
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#列表a保存每天检测到的光照和二氧化碳浓度数据,a[2*i]和a[2*i+1]分别表示第i天的光照强度和二氧化碳浓度数据,
#列表b保存日期数据,代码略
n=len(a)
t,ans,last=0,0,[]
for i in range(n//2):
if 800<=a[2*i] <= 1200 and 400<=a[2 * i+1]<=600:
t+=1
if t> ans:
ans=t
①____
last.append(i)
else:
t=0
print("最佳光照和二氧化碳浓度持续的最长天数为: ",ans)
print("起止日期: ")
for i in range(len(last)):
start=②____
print(b[start], "——",b[last[i]])
(3)程序中加框处代码有误,请改正。____
【答案】 ①. 3 ②. last=[i] ③. last[i]-ans+1 ④. elif t==ans
【解析】
【详解】本题考查Python程序实现。
(1)处,需判断每天是否同时满足最佳光照(800-1200 lux)和二氧化碳浓度(400-600 ppm),再统计最长连续符合条件的天数: 5月1日:光照900(符合)、二氧化碳450(符合);5月2日:光照1000(符合)、二氧化碳500(符合);5月3日:光照1100(符合)、二氧化碳550(符合);(连续3天) 。5月4日:光照700(不符合)、二氧化碳350(不符合);(中断)。5月5日:光照1200(符合)、二氧化碳600(符合);(1天)。 5月6日:光照1300(不符合)、二氧化碳650(不符合);(中断)。5月7日:光照950(符合)、二氧化碳480(符合);5月8日:光照1050(符合)、二氧化碳520(符合);(连续2天) 。 最长连续天数为3天,因此该空答案为3。
(2)①处,该处用于更新最长持续段的结束索引。当当前连续天数t超过历史最长ans时,需将最长天数ans更新为t,同时重置存储结束索引的列表last,仅保留当前结束索引i(因为新的最长段覆盖了之前的),因此该空答案为last = [i]。 ②处,该处用于计算最长持续段的起始索引。已知结束索引为last[i],最长持续天数为ans,起始索引 = 结束索引 -(ans - 1),因此该空答案为last[i] - ans + 1。
(3)处,加框处代码错误包含了“当前连续天数t小于ans”的情况,导致非最长段的索引被加入last。正确逻辑应为:仅当当前连续天数t等于ans时(即出现新的等长最长段),才将结束索引加入last,因此需将else改为elif t == ans:。
15. 信息技术林老师要求学生上交上机作业时的文件名按“学号姓名.docx”格式提交,如“01张三.docx”。老师编写了一段程序,希望快速找出哪些同学未提交,但总会发现学生上交时会出现“2501张三.docx”、“二五01张三.docx”等数字表示不当的格式。(不考虑学生重名)
(1)读取文件名并返回,请在划线处填入合适的代码
import os
def readname():#读取某个文件夹内所有文件的文件名
filepath="pics//"
#读取到的文件名以字符串的形式,作为元素存储在列表allname中
allname=os.listdir(filepath)
#os.listdir()用于返回指定文件夹包含的文件或文件夹的名字的列表
return ____
(2)获得学生姓名,请在划线处填入合适的代码
def checkname(name):
s=""
for i in name:
if i == ".":
____
if i not in num:
s+=i
return s
(3)主程序,请在划线处填入合适代码
name=readname()
num=["0","1","2","3","4","5","6","7","8","9","零","一","二","三","四","五","六","七","八","九",""]
#student列表存放本班学生名单,如student=["沈胤宏","林芳茹","洪彬钦","刘依琪"]
yes=[]; no=[]; s=0; result={}
for item in name:
item=checkname(item)
yes. append(item) #将学生的姓名加入列表
s=s+1
for m in student:
if ____:
no.append(m)
(4)输出结果
result["应提交人数"]=len(student)
result["已提交人数"]=
result["已提交的同学"]=yes
result["还未提交的同学"]=no
print(result)
划线处可以填入的代码是多选,填字母( )
A. len(yes) B.s C. len(no) D. len(name)
【答案】 ①. allname ②. return s或者break ③. m not in yes或者not m in yes ④. ABD
【解析】
【详解】本题考查循环语句和函数。
(1)该处函数readname的功能是读取指定文件夹内的所有文件名并返回,os.listdir(filepath)的结果已存储在allname列表中,函数需返回该列表以提供给后续程序使用,因此该空答案为allname。
(2)该处遍历文件名的字符以提取学生姓名,当遇到"."时,说明已到达文件后缀(如.docx)的起始位置,无需继续遍历字符,需中断for循环,因此该空答案为return s或者break。
(3)该处需筛选未提交作业的学生,逻辑为:若学生姓名m不在已提交名单yes列表中,则该学生未提交,需将其加入no列表,因此该空答案为m not in yes或者not m in yes。
(4)该处需为result["已提交人数"]赋值,需分析各选项逻辑:A选项len(yes):yes列表存储所有已提交学生的姓名,其长度直接对应已提交人数,正确;B选项s:变量s在遍历已提交文件名时逐个累加(每处理1个文件名s+1),最终值等于已提交人数,正确;C选项len(no):no列表存储未提交学生,其长度是未提交人数,错误;D选项len(name):name是readname返回的已提交文件名列表,其长度等于已提交人数,正确; 因此该空答案为ABD。
第1页/共1页
学科网(北京)股份有限公司
$