内容正文:
2024学年第二学期丽水发展共同体期中联考
高二年级技术学科 试题
考生须知:
1.本卷共12页满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分 信息技术
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。下列关于该系统中数据与信息的说法,不正确的是( )
A. 平台上的练习、试题等文本数据属于非结构化数据
B. 用户观看的在线课程视频属于模拟信号
C. 平台提供的学情分析报告对不同的学生来说参考价值是不一样的
D. 学生、教师和家长均可登录平台查看相关数据,体现了信息的共享性
2. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。关于信息安全与信息社会责任,下列行为恰当的是( )
A. 冒用他人身份注册线上活动资格
B. 观众私自录制在线课程内容并用于商业盈利
C. 在该平台进行直播授课时,开启弹幕互动
D. 在社交群内公开分享所有参与者注册信息
3. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。为使系统更准确地进行作业批改,下列方法可行的是( )
A. 升级学生终端的硬件配置 B. 增加服务器的存储容量
C. 对AI批改算法进行优化 D. 提升校园网络速度
4. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。下列关于该信息系统组成与功能的说法,正确的是( )
A. 该系统中的用户就是工人和工地负责人
B. 该信息系统不具备数据加工处理功能
C. 该系统可以直接在裸机上运行
D. 该系统中的摄像头属于硬件
5. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。下列关于该系统中网络技术的说法,正确的是( )
A. 平台服务器与各工地处于不同的局域网,它们之间的通信需要经过网关
B. 使用浏览器访问该系统需要网络协议的支持,使用APP访问则不需要
C. 移动终端要与服务器进行通信,必须通过移动通信网络
D. 摄像头接入网络时不需要IP地址
6. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。某地区有200个工地,每个工地最多有10个抓拍摄像头。若使用二进制对这些摄像头进行编码,二进制的前几位表示工地号,其余位表示摄像头号,则所需的二进制位数最少是( )
A. 13 B. 12 C. 11 D. 10
7. 某算法的部分流程图如图所示,下列说法正确的是( )
A. 输出s的值是-6
B. 语句“i≤n?”执行的次数是6次
C. 程序结束后i的值是6
D. 改变循环体中三条语句的顺序,不影响程序运行结果
8. 队列Q从队首到队尾元素依次为"m","n","p","q",栈S初始为空。约定:O操作是指弹出队首元素并压入栈顶,I操作:弹出栈顶元素并加入队列末尾。经过"OOIOOIO"系列操作后,栈S的栈顶元素为( )
A. "m" B. "n" C. "p" D. "q"
9. 某完全二叉树包含6个节点,其根节点在前序遍历序列和中序遍历序列中的位置序号(从0开始编号)分别记为x和y,则x+y的值为( )
A. 2 B. 4 C. 3 D. 5
10. 定义如下函数:
def trans(n):
if n <= 1:
return str(1-n%2)
else:
return trans(n//2) + str(1-n%2)
print(trans(13))
执行该段程序后,输出结果是( )
A. 1101 B. 0010 C. 1011 D. 0100
11. 小明编写程序实现数据升序功能,部分 Python 程序如下:
def bubble_sort(d):
n=len(d)
for i in range(1,n):
for j in range(i,n):
if d[j-1]>d[j]:
d[j-1],d[j]=d[j],d[j-1]
该程序段存在问题,适合作为测试数据的是( )
A. [3, 4, 6, 7] B. [4, 3, 7, 6] C. [6, 7, 3, 4] D. [6, 3, 4, 7]
12. 已知列表 a 中有 n 个大于 0 的正整数,且按降序排列。若要实现在列表 a 中插入一个数 temp,并保持数据的有序性不变,实现该功能的 Python 程序段如下:
#生成满足条件的列表 a,代码略
a.append(0) #append 用于在列表末尾添加元素
n=len(a)-1
L=0
R=n-1
while L <= R:
m=(L+R)//2
if a[m] < temp:
R=m-1
else:
L=m+1
for j in range( ① ):
a[j]=a[j-1]
②
print(a)
划线处应填入的代码为( )
A. ①0, n, 1 ②a[R]=temp B. ①n, 0, -1 ②a[L]=temp
C. ①R, n, 1 ②a[R]=temp D. ①n, L, -1 ②a[L]=temp
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 编写 Python 程序求生日幸运数。算法如下:遍历身份证号,提取其中最大连续非 0 数字的和作为生日幸运数(遇到 0,当前连续结束;“X”作 10 处理),如图中连续数字“21982”各位数字的和(2+1+9+8+2=22)最大,输出生日幸运数 22。程序运行界面如图所示。
请回答下列问题:
(1)实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
s=input("请输入您的身份证号:")
max=0;sum=0
for ch in s:
if ①____:
if sum>max:
②______
sum=0
else:
if ch=="x" or ch=="X":
sum+=10
else:
③______
if sum>max:
max=sum
print("您的生日幸运数为:",max)
(2)若将加框处代码删去后再运行程序,输入身份证号 330036202005160346X,则输出的生日幸运数为________。
14. “校园一卡通”是数字化校园的重要组成部分,真正的“一卡通”不是简单的消费卡,它可以应用到校园管理的各个方面。某校对“一卡通”系统进行了升级,增加了刷卡进出校门的功能,老师可以通过浏览器访问相关网页,对学生迟到、早退的情况进行监管。请回答下列问题:
(1)该系统基于 B/S 架构开发,下列关于该架构的说法,正确的是________(多选,填字母)
A.对服务器的要求较高 B.降低了系统的通信开销
C.升级和维护比较方便 D.升级和维护较 C/S 架构难度更大
(2)该系统基于 Flask Web 框架编写服务器端程序,部分代码如下。
#导入 Flask 框架模块及其它相关模块,代码略
app=Flask(__name__)
@app.route("/user")
def index():
#从数据库读取学生刷卡进出校门相关数据,并返回页面,代码略
#服务器其他功能,代码略
if __name__=="main":
app.run(host="192.168.1.168",port=8080)
若老师想通过浏览器访问相关网页,查看学生刷卡进出校门相关数据,则应访问的URL是 http://________。
(3)老师将该系统中某天高二年级的入校刷卡数据导出为“data.xlsx”,部分数据如图 a 所示。学校规定 7 点以后(包括 7 点)视为迟到。编写 Python 程序,统计各班的迟到人数(假设所有同学都正常刷卡)并完成降序排列,同时筛选出迟到人数不为 0 的班级,绘制如图 b 所示的柱形图。
图 a
图 b
实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
def judge(x):
t=x.split(":") #split 按指定分隔符分割字符串,返回包含这些子串的列表
if ①______:
return 1
else:
return 0
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx") #读取 Excel 文件
s=[]
for i in ②_______:
s.append(judge(i)) #append 用于在列表末尾添加元素
df["迟到人数"]=s #在 df 中新增一列名为“迟到人数”,数据为列表 s 的内容
plt.bar(df1["班级"],df1["迟到人数"]) #绘制柱形图
#设置绘图参数,显示如图b所示的柱形图,代码略
(4)程序的方框中可选代码如下,则方框中应填入的语句依次为________(选 3 项,填字母序列)。
A.df1=df.sort_values( "迟到人数",ascending=False) #降序排序
B.df1=df1.sort_values( "迟到人数",ascending=False)
C.df1=df1[df1.迟到人数!=0] #筛选
D.df1=df1[df1."迟到人数"!=0]
E.df1=df.groupby("班级",as_index=False).sum() #分组求和
F.df1=df.groupby("班级",as_index=False).count() #分组计数
15. 某市足球爱好者众多,体育局举办了 3 项针对不同年龄段的足球赛事。各年龄段使用场地型号相同,但比赛时长不同,年龄段一: 40 分钟/场,年龄段二:60 分钟/场,年龄段三:90 分钟/场。现已知各赛事的赛程安排,要求在 3 天内完成比赛,则赛事组委会最少要租借多少个场地。
在如下所示样例中,[[0,"09:20",1], [1,"12:00",1], [2,"16:00",1], [0,"09:00",2], [1,"10:00",2], [2,"14:00",2], [0,"10:00",3], [1,"11:00",3], [2,"13:00",3]],根据要求,完成这样的赛事至少要租借 2 个场地。(注:[0,"09:20",1]表示该比赛天次编号为 0,比赛开始时间为"09:20",年龄段编号为 1;规则允许一场比赛结束,下一场可立即开始。)
请回答下列问题:
(1)若将上面年龄段三的所有比赛提前一个小时,则至少要租借________个场地。
(2)定义如下timechange(lst)函数,实现将比赛开始时间转换为分钟。lst 列表的 3 个数据项依次为天次编号、比赛开始时间、年龄段编号,请在划线处填入合适的代码。
def timechange(lst):
lst[1]=_________
(3)实现相应功能的 Python 程序如下,请在划线处填入合适的代码。
#check 函数用于检查是否有可用的场地,若有则返回该场地的索引,若没有则返回-1
def check(place,time):
for i in range(len(place)):
if ①______:
return i
return -1
def plan(data):
type={1:40,2:60,3:90}
heads=[-1,-1,-1]
#利用 timechange 函数,对各赛程开始时间进行预处理,转换成分钟,代码略
for i in range(len(data)):
data[i].append(-1) #为 data[i]追加一个元素-1
for i in range(len(data)):
②______
if heads[v]==-1:
heads[v]=i
else:
p=q=heads[v]
while q!=-1 and data[q][1]< data[i][1]:
p=q
q=data[q][3]
if p==q:
data[i][3]=heads[v]
heads[v]=i
else:
data[i][3]= data[p][3]
data[p][3]=i
m=0
for i in range(3):
place=[] #place 列表用于记录每个场地的使用状态
cnt=0;p=heads[i]
while p!=-1:
curtime=data[p][1]
q=check(place,curtime)
if q!=-1:
③________
else:
cnt+=1
place.append([cnt,curtime+type[data[p][2]]])
p=data[p][3]
if cnt>m:
m=cnt
return m
'''读取所有年龄段的赛程数据,存入 data 列表,每个元素包含天次编号(0-2)、比赛开始时间、年龄段编号(1-3)3 个数据项。代码略'''
res=plan(data)
print("赛事组委会至少要租借 %d 个场地"%res)
第1页/共1页
学科网(北京)股份有限公司
$$
2024学年第二学期丽水发展共同体期中联考
高二年级技术学科 试题
考生须知:
1.本卷共12页满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分 信息技术
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。下列关于该系统中数据与信息的说法,不正确的是( )
A. 平台上的练习、试题等文本数据属于非结构化数据
B. 用户观看的在线课程视频属于模拟信号
C. 平台提供的学情分析报告对不同的学生来说参考价值是不一样的
D. 学生、教师和家长均可登录平台查看相关数据,体现了信息的共享性
【答案】B
【解析】
【详解】本题考查的是数据与信息。选项A说法正确,练习、试题等文本数据通常没有严格的格式限制,属于非结构化数据;选项B说法错误,在线课程视频是通过互联网传输的,属于数字信号,而非模拟信号;选项C说法正确,情分析报告是基于学生的个人学习数据生成的,不同学生的学习情况不同,因此报告的参考价值也会不同;选项D说法错误,信息的共享性:信息可以被多个用户共同使用,学生、教师和家长均可查看数据,确实体现了信息的共享性。故选B。
2. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。关于信息安全与信息社会责任,下列行为恰当的是( )
A. 冒用他人身份注册线上活动资格
B. 观众私自录制在线课程内容并用于商业盈利
C. 在该平台进行直播授课时,开启弹幕互动
D. 在社交群内公开分享所有参与者的注册信息
【答案】C
【解析】
【详解】本题考查的是信息安全与社会责任。冒用他人身份注册线上活动资格,违反信息安全原则(身份盗用)和信息社会责任(诚信问题)。观众私自录制在线课程内容并用于商业盈利,侵犯知识产权(课程内容版权)和平台使用协议,属于非法牟利行为。在社交群内公开分享所有参与者的注册信息,严重违反隐私保护原则(泄露个人信息),可能触犯相关法律法规。故选C。
3. 2025年某市推出的“智慧教育云”平台,整合了全市中小学的教学资源和在线课程。平台采用大数据分析,提供学习建议,并支持AI智能批改作业。学生、教师和家长可通过终端设备登录平台,获取学习资料和学情分析报告。为使系统更准确地进行作业批改,下列方法可行的是( )
A. 升级学生终端的硬件配置 B. 增加服务器的存储容量
C. 对AI批改算法进行优化 D. 提升校园网络速度
【答案】C
【解析】
【详解】本题考查的是人工智能应用。选项A不可行,升级学生终端的硬件配置,主要影响终端运行流畅度,与AI批改准确性无关;选项B不可行,仅扩展数据存储能力,不直接提升批改精度;选项C可行,直接改进AI模型的学习能力、判断逻辑和错误检测机制,显著提高批改准确性;选项D不可行,仅改善数据传输效率,不影响批改结果。故选C。
4. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。下列关于该信息系统组成与功能的说法,正确的是( )
A. 该系统中的用户就是工人和工地负责人
B 该信息系统不具备数据加工处理功能
C. 该系统可以直接在裸机上运行
D. 该系统中的摄像头属于硬件
【答案】D
【解析】
【详解】本题考查的是信息系统组成与功能。选项A说法错误,虽然工人和工地负责人是系统的直接使用者,但住建部等监管机构也是系统的用户;选项B说法错误,系统通过摄像头实时识别安全装备(如安全帽、反光衣),并进行报警,这涉及图像识别和数据处理,说明系统具备数据加工处理功能;选项C说法错误,现代信息系统通常需要操作系统(如Windows、Linux)支持,裸机(无操作系统)无法直接运行此类复杂系统;选项D说法正确,摄像头是采集图像的物理设备,属于硬件组成部分。故选D。
5. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。下列关于该系统中网络技术的说法,正确的是( )
A. 平台服务器与各工地处于不同的局域网,它们之间的通信需要经过网关
B. 使用浏览器访问该系统需要网络协议的支持,使用APP访问则不需要
C. 移动终端要与服务器进行通信,必须通过移动通信网络
D. 摄像头接入网络时不需要IP地址
【答案】A
【解析】
【详解】本题考查网络技术。 A 选项正确,不同局域网之间的通信需要通过网关进行数据转发、协议转换等操作,网关是实现不同网络连接的关键设备。 B 选项错误,无论是使用浏览器还是 APP 访问系统,都必须依赖网络协议(如 TCP/IP 等)来保障数据的传输、解析和交互,不存在不需要网络协议的情况。 C 选项错误,移动终端与服务器通信的方式包括但不限于移动通信网络(如 4G/5G),也可以通过 Wi-Fi 网络连接,并非 “必须” 通过移动通信网络。 D 选项错误,摄像头作为网络设备接入网络时,需要分配 IP 地址以标识其在网络中的唯一位置,否则无法与其他设备(如服务器)进行数据交互。 因此,本题选择 A 选项。
6. 中国建科院推出的“智慧工地”平台是国内领先的建筑施工监管系统,旨在提升工地安全管理。它的核心功能包括通过摄像头实时识别工人是否佩戴安全帽、穿反光衣,未佩戴者自动报警。它的数据直通住建部“全国工程质量安全监管信息平台”,实现重大风险自动上报。某地区有200个工地,每个工地最多有10个抓拍摄像头。若使用二进制对这些摄像头进行编码,二进制的前几位表示工地号,其余位表示摄像头号,则所需的二进制位数最少是( )
A. 13 B. 12 C. 11 D. 10
【答案】B
【解析】
【详解】本题考查二进制编码位数计算。已知有 200 个工地,因为27=128<200,28=256>200,所以表示工地号至少需要 8 位二进制数。每个工地最多有 10 个抓拍摄像头,因为23=8<10,24=16>10,所以表示摄像头号至少需要 4 位二进制数。将表示工地号和摄像头号所需的二进制位数相加,即8+4=12位。因此,本题选择 B 选项。
7. 某算法的部分流程图如图所示,下列说法正确的是( )
A. 输出s的值是-6
B. 语句“i≤n?”执行的次数是6次
C. 程序结束后i的值是6
D. 改变循环体中三条语句的顺序,不影响程序运行结果
【答案】A
【解析】
【详解】本题考查的是流程图识读。流程图执行过程如下:
i
n
f
s
初始
1
6
0
第一次循环结束
2
6
1
1
第二次循环结束
3
6
-1
-2
第三次循环结束
4
6
1
3
第四次循环结束
5
6
-1
-4
第五次循环结束
6
6
1
5
第六次循环结束
7
6
-1
-6
故输出s的值是-6,语句“i≤n?”执行的次数是7次,程序结束后i的值是7,改变循环体中三条语句的顺序,会影响程序运行结构。故选A。
8. 队列Q从队首到队尾元素依次为"m","n","p","q",栈S初始为空。约定:O操作是指弹出队首元素并压入栈顶,I操作:弹出栈顶元素并加入队列末尾。经过"OOIOOIO"系列操作后,栈S的栈顶元素为( )
A "m" B. "n" C. "p" D. "q"
【答案】B
【解析】
【详解】本题考查队列与栈的基本操作。
初始状态:队列 Q = ["m", "n", "p", "q"](队首到队尾),栈 S = 空。
按操作序列逐步分析:
第 1 次 O 操作:弹出 Q 队首 "m",压入 S 栈顶 → Q = ["n", "p", "q"],S = ["m"](栈顶 "m")。
第 2 次 O 操作:弹出 Q 队首 "n",压入 S 栈顶 → Q = ["p", "q"],S = ["m", "n"](栈顶 "n")。
第 1 次 I 操作:弹出 S 栈顶 "n",加入 Q 队尾 → Q = ["p", "q", "n"],S = ["m"](栈顶 "m")
第 3 次 O 操作:弹出 Q 队首 "p",压入 S 栈顶 → Q = ["q", "n"],S = ["m", "p"](栈顶 "p")。
第 4 次 O 操作:弹出 Q 队首 "q",压入 S 栈顶 → Q = ["n"],S = ["m", "p", "q"](栈顶 "q")。
第 2 次 I 操作:弹出 S 栈顶 "q",加入 Q 队尾 → Q = ["n", "q"],S = ["m", "p"](栈顶 "p")。
第 3 次 O 操作:弹出 Q 队首 "n",压入 S 栈顶 → Q = ["q"],S = ["m", "p", "n"](栈顶 "n")。
最终栈 S 状态:栈顶元素为最后压入的 "n"。
因此,本题选择B选项。
9. 某完全二叉树包含6个节点,其根节点在前序遍历序列和中序遍历序列中的位置序号(从0开始编号)分别记为x和y,则x+y的值为( )
A 2 B. 4 C. 3 D. 5
【答案】C
【解析】
【详解】本题考查二叉树的结构及遍历。某完全二叉树包含6个节点,则根节点的左子树节点个数为3个;由前序遍历为根节点、左子树、右子树可知,其根节点的位置处于第1个,即序号x=0;由中序遍历为左子树、根节点、右子树可知,其根节点的位置处于第3+1=4个,即序号y=3;由此得出:x+y=3。因此,本题选择C选项。
10. 定义如下函数:
def trans(n):
if n <= 1:
return str(1-n%2)
else:
return trans(n//2) + str(1-n%2)
print(trans(13))
执行该段程序后,输出的结果是( )
A. 1101 B. 0010 C. 1011 D. 0100
【答案】B
【解析】
【详解】本题考查的是递归。n // 2是n除以2的整数部分(即右移一位)。1 - n % 2是对最低位取反。程序的功能是将输入的数字转换为二进制数,每位取反。13转换二进制数位:1101,取反后位:0010,故选B。
11. 小明编写程序实现数据升序功能,部分 Python 程序如下:
def bubble_sort(d):
n=len(d)
for i in range(1,n):
for j in range(i,n):
if d[j-1]>d[j]:
d[j-1],d[j]=d[j],d[j-1]
该程序段存在问题,适合作为测试数据的是( )
A. [3, 4, 6, 7] B. [4, 3, 7, 6] C. [6, 7, 3, 4] D. [6, 3, 4, 7]
【答案】C
【解析】
【详解】本题考查的是冒泡排序。分析内层for循环可知,当第一轮排序结束,即内层for循环结束时,列表d中最后一个元素是最大的一个元素,是有序的,但是下一次不参与排序的是第一个元素,因此,当列表d=[6, 7, 3, 4]时,第一轮排序结束后结果为[6, 3, 4, 7],而6不再参与排序,程序结束后,结果为[6, 3, 4, 7],元素并没有升序排列。因此,本题选择C。
12. 已知列表 a 中有 n 个大于 0 的正整数,且按降序排列。若要实现在列表 a 中插入一个数 temp,并保持数据的有序性不变,实现该功能的 Python 程序段如下:
#生成满足条件的列表 a,代码略
a.append(0) #append 用于在列表末尾添加元素
n=len(a)-1
L=0
R=n-1
while L <= R:
m=(L+R)//2
if a[m] < temp:
R=m-1
else:
L=m+1
for j in range( ① ):
a[j]=a[j-1]
②
print(a)
划线处应填入的代码为( )
A. ①0, n, 1 ②a[R]=temp B. ①n, 0, -1 ②a[L]=temp
C. ①R, n, 1 ②a[R]=temp D. ①n, L, -1 ②a[L]=temp
【答案】D
【解析】
【详解】本题考查二分查找和插入排序。已知列表 a 按降序排列,需插入一个数 temp 并保持降序。程序首先进行二分查找确定插入位置:循环结束后,找到第一个比 temp 小的元素位置 L,L 是插入位置。①处:需将插入位置 L 及其后的元素后移。由于列表已扩展一个位置(a.append(0)),需从末尾开始逆序移动,避免覆盖。循环范围应为 range(n, L, -1)(即从末尾 n 到 L+1)。②处:移动元素后,L 位置被腾出(原 L 位置的元素已后移),直接赋值 a[L] = temp。因此,本题选择D选项。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 编写 Python 程序求生日幸运数。算法如下:遍历身份证号,提取其中最大连续非 0 数字的和作为生日幸运数(遇到 0,当前连续结束;“X”作 10 处理),如图中连续数字“21982”各位数字的和(2+1+9+8+2=22)最大,输出生日幸运数 22。程序运行界面如图所示。
请回答下列问题:
(1)实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
s=input("请输入您的身份证号:")
max=0;sum=0
for ch in s:
if ①____:
if sum>max:
②______
sum=0
else:
if ch=="x" or ch=="X":
sum+=10
else:
③______
if sum>max:
max=sum
print("您的生日幸运数为:",max)
(2)若将加框处代码删去后再运行程序,输入身份证号 330036202005160346X,则输出的生日幸运数为________。
【答案】 ①. ch=="0"或 ch<"1" ②. max=sum ③. sum+=int(ch) ④. 12
【解析】
【详解】本题考查Python程序综合应用。
①目的是判断当前字符是否为 0 或者非数字(因为遇到 0 当前连续结束,非数字也不符合连续非 0 数字的要求)。在 Python 中,ch是字符串中的单个字符,ch == "0"判断是否为字符 '0' ,ch < "1"可以判断是否为非数字字符(字符在 ASCII 码表中,数字字符是连续有序的,小于 '1' 的字符不是数字字符),所以此处应填ch == "0" or ch < "1" 。
②当当前连续非 0 数字的和sum大于之前记录的最大和max时,需要更新max的值,使其等于当前的sum ,所以应填max = sum 。
③当字符是数字且不为 0 时,需要将其转换为整数并累加到sum中。在 Python 中,使用int(ch)可以将字符形式的数字转换为整数,所以此处应填sum += int(ch) 。
④对于身份证号330036202005160346X ,若将加框处代码删去后再运行程序,则最后一组数不会统计在内,前一个连续数字516,和为5+1+6=12,此时max=12,最后一组是346,和sum=3+4+6=13,由于删除了加框代码,此时不会再更新max=sum=13,因此输出的生日幸运数为12。
14. “校园一卡通”是数字化校园的重要组成部分,真正的“一卡通”不是简单的消费卡,它可以应用到校园管理的各个方面。某校对“一卡通”系统进行了升级,增加了刷卡进出校门的功能,老师可以通过浏览器访问相关网页,对学生迟到、早退的情况进行监管。请回答下列问题:
(1)该系统基于 B/S 架构开发,下列关于该架构的说法,正确的是________(多选,填字母)
A.对服务器的要求较高 B.降低了系统的通信开销
C.升级和维护比较方便 D.升级和维护较 C/S 架构难度更大
(2)该系统基于 Flask Web 框架编写服务器端的程序,部分代码如下。
#导入 Flask 框架模块及其它相关模块,代码略
app=Flask(__name__)
@app.route("/user")
def index():
#从数据库读取学生刷卡进出校门相关数据,并返回页面,代码略
#服务器其他功能,代码略
if __name__=="main":
app.run(host="192.168.1.168",port=8080)
若老师想通过浏览器访问相关网页,查看学生刷卡进出校门相关数据,则应访问的URL是 http://________。
(3)老师将该系统中某天高二年级的入校刷卡数据导出为“data.xlsx”,部分数据如图 a 所示。学校规定 7 点以后(包括 7 点)视为迟到。编写 Python 程序,统计各班的迟到人数(假设所有同学都正常刷卡)并完成降序排列,同时筛选出迟到人数不为 0 的班级,绘制如图 b 所示的柱形图。
图 a
图 b
实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
def judge(x):
t=x.split(":") #split 按指定分隔符分割字符串,返回包含这些子串的列表
if ①______:
return 1
else:
return 0
import pandas as pd
import matplotlib.pyplot as plt
df=pdread_excel("data.xlsx") #读取 Excel 文件
s=[]
for i in ②_______:
s.append(judge(i)) #append 用于在列表末尾添加元素
df["迟到人数"]=s #在 df 中新增一列名为“迟到人数”,数据为列表 s 的内容
plt.bar(df1["班级"],df1["迟到人数"]) #绘制柱形图
#设置绘图参数,显示如图b所示的柱形图,代码略
(4)程序的方框中可选代码如下,则方框中应填入的语句依次为________(选 3 项,填字母序列)。
A.df1=df.sort_values( "迟到人数",ascending=False) #降序排序
B.df1=df1.sort_values( "迟到人数",ascending=False)
C.df1=df1[df1.迟到人数!=0] #筛选
D.df1=df1[df1."迟到人数"!=0]
E.df1=df.groupby("班级",as_index=False).sum() #分组求和
F.df1=df.groupby("班级",as_index=False).count() #分组计数
【答案】 ①. AC ②. 192.168.1.168:8080/user ③. int(t[0])>=7 ④. df.刷卡时间 或 df[“刷卡时间”] ⑤. EBC 或 ECB
【解析】
【详解】本题考查的是信息系统搭建及数据分析。
(1)B/S架构中,大部分计算和数据处理都在服务器端进行,因此对服务器的性能要求较高。B/S架构的升级和维护主要集中在服务器端,客户端只需通过浏览器访问,因此升级和维护较为方便。故选AC。
(2)根据代码中的app.run(host="192.168.1.168",port=8080)和@app.route("/user"),老师应访问的URL为:http://192.168.1.168:8080/user。
(3)①处,学校规定 7 点以后(包括 7 点)视为迟到,故此处应为:int(t[0])>=7;②遍历刷卡时间列,代码应为:df.刷卡时间 或 df["刷卡时间"]。
(4)编写Python程序,统计各班的迟到人数并完成降序排列,同时筛选出迟到人数不为0的班级,绘制柱形图。可以先按班级分组并求和,统计各班的迟到人数(E),然后对迟到人数进行降序排序(B),最后筛选出迟到人数不为0的班级(C)。其中BC顺序可以对调。故语句依次为:EBC 或 ECB。
15. 某市足球爱好者众多,体育局举办了 3 项针对不同年龄段的足球赛事。各年龄段使用场地型号相同,但比赛时长不同,年龄段一: 40 分钟/场,年龄段二:60 分钟/场,年龄段三:90 分钟/场。现已知各赛事的赛程安排,要求在 3 天内完成比赛,则赛事组委会最少要租借多少个场地。
在如下所示的样例中,[[0,"09:20",1], [1,"12:00",1], [2,"16:00",1], [0,"09:00",2], [1,"10:00",2], [2,"14:00",2], [0,"10:00",3], [1,"11:00",3], [2,"13:00",3]],根据要求,完成这样的赛事至少要租借 2 个场地。(注:[0,"09:20",1]表示该比赛天次编号为 0,比赛开始时间为"09:20",年龄段编号为 1;规则允许一场比赛结束,下一场可立即开始。)
请回答下列问题:
(1)若将上面年龄段三的所有比赛提前一个小时,则至少要租借________个场地。
(2)定义如下timechange(lst)函数,实现将比赛开始时间转换为分钟。lst 列表的 3 个数据项依次为天次编号、比赛开始时间、年龄段编号,请在划线处填入合适的代码。
def timechange(lst):
lst[1]=_________
(3)实现相应功能的 Python 程序如下,请在划线处填入合适的代码。
#check 函数用于检查是否有可用的场地,若有则返回该场地的索引,若没有则返回-1
def check(place,time):
for i in range(len(place)):
if ①______:
return i
return -1
def plan(data):
type={1:40,2:60,3:90}
heads=[-1,-1,-1]
#利用 timechange 函数,对各赛程的开始时间进行预处理,转换成分钟,代码略
for i in range(len(data)):
data[i].append(-1) #为 data[i]追加一个元素-1
for i in range(len(data)):
②______
if heads[v]==-1:
heads[v]=i
else:
p=q=heads[v]
while q!=-1 and data[q][1]< data[i][1]:
p=q
q=data[q][3]
if p==q:
data[i][3]=heads[v]
heads[v]=i
else:
data[i][3]= data[p][3]
data[p][3]=i
m=0
for i in range(3):
place=[] #place 列表用于记录每个场地的使用状态
cnt=0;p=heads[i]
while p!=-1:
curtime=data[p][1]
q=check(place,curtime)
if q!=-1:
③________
else:
cnt+=1
place.append([cnt,curtime+type[data[p][2]]])
p=data[p][3]
if cnt>m:
m=cnt
return m
'''读取所有年龄段的赛程数据,存入 data 列表,每个元素包含天次编号(0-2)、比赛开始时间、年龄段编号(1-3)3 个数据项。代码略'''
res=plan(data)
print("赛事组委会至少要租借 %d 个场地"%res)
【答案】 ①. 3 ②. int(lst[1][0:2])*60+int(lst[1][3:])或 int(lst[1][0:2])*60+int(lst[1][3:5])或 int(lst[-2][0:2])*60+int(lst[-2][3:5]) 或其他等价答案 ③. place[i][1]<=time ④. v=data[i][0] ⑤. place[q][1]=curtime+type[data[p][2]]
【解析】
【详解】本题考查链表。
(1)若将上面年龄段三的所有比赛提前一个小时,则年龄段二:09:00-10:00 ;年龄段一:09:20-10:00 ; 年龄段三:09:50-11:20 这三个时间段在同一个天次0内,需要三个场地才能同时进行。因此至少要租借3个场地。
(2)将比赛开始时间转换为分钟,即取前两位(小时)乘 60 加上后两位(分钟)。因此该空答案为 int(lst[1][0:2]) * 60 + int(lst[1][3:])。
(3)①处:check函数检查场地是否可用,当场地的结束时间place[i][1]小于等于当前比赛开始时间time时,场地可用。因此该空答案为 place[i][1] <= time。 ②处:结合heads=[-1,-1,-1](对应三个天次)及逻辑,v应取当前比赛的天次编号,即 v = data[i][0]。因此该空答案为 v = data[i][0]。 ③处:找到可用场地q后,更新场地的结束时间为当前比赛开始时间curtime加上该年龄段比赛时长type[data[p][2]]。因此该空答案为 place[q][1] = curtime + type[data[p][2]]。
第1页/共1页
学科网(北京)股份有限公司
$$