内容正文:
台州市2024学年高二期末质量评估试题
技术
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生学习记录和兴趣,自动生成学情分析报告和个性化学习方案。关于该在线教育平台中数据与信息的说法,正确的是( )
A. 学生在平台学习过程中不会产生数据
B. 学情分析报告信息的价值不会随着时间的推移而变化
C. 学习方案和学情分析报告必须以同一种数据表现形式呈现
D. 通过分析学生数据生成学情分析报告,体现了信息的可加工处理性
2. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。该在线教育平台的下列应用中,体现人工智能技术的是( )
A. 登录界面“记住密码”功能
B. 自动记录学生的学习视频观看时长
C. 根据学生学习记录生成个性化学习方案
D. 登录平台时自动推送该生的作业批改结果
3. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。关于信息安全和信息社会责任,下列行为不合适的是( )
A. 系统定期对数据进行备份
B. 服务器及时更新系统补丁包
C. 平台弹出用户定期修改密码的提醒窗口
D. 教师在查询或阅卷后不退出系统就离开
4. 某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作;各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。下列关于该系统组成的说法,正确的是( )
A. 手持式扫描枪是输出设备 B. 云端服务器的CPU性能会影响系统响应速度
C. 仓储管理软件属于系统软件 D. 该系统的数据是商品库存和价格
5. 某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作;各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。下列关于该系统中网络技术的说法,不正确的是( )
A. 各门店用手机访问该系统必须通过移动通信网络
B. 将该系统内部局域网接入互联网须使用路由器
C. 各门店通过网络查询库存数据需遵循网络协议
D. 各门店可使用DHCP服务自动设置计算机IP地址
6. 下列关于信息编码的说法正确的是( )
A. 计算机通过声卡播放声音时需要用到模数转换器(ADC)
B. 若二进制数末位是0,则该数对应的十六进制数末位肯定也是0
C. 计算机内英文字符采用二进制进行编码,而汉字采用十六进制进行编码
D. 一幅未经压缩的1024×400像素、16色位图,其存储容量为200KB
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为18,16,2,16,18,0。则输出p的值是( )
A. 1 B. 2 C. 4 D. 5
8. 有一个空栈,将A,B,C,D,E依次入栈,若出栈顺序为B,D,C,E,A,则该栈容量至少是( )
A. 1 B. 2 C. 3 D. 4
9. 已知某二叉树用一维数组d表示,如下表所示,下列说法正确的是( )
d
A
C
D
B
E
F
G
下标
0
1
2
3
4
5
6
7
8
9
10
11
A. 该二叉树的后序遍历为BCGEFDA B. 该二叉树有3个度数为1的节点
C. 该二叉树的高度为3 D. 该二叉树补全为完全二叉树至少需加6个节点
10. 有如下Python程序段:
import random
a = [12,18,23,23,25,29,29,30,31,33]
i,j =0,len(a) -1
key = random.randint(6,15) *2+1
f = [0] * len(a)
while i <= j:
m = (i + j) //2
f[m] =1
if key >= a[m]:
i = m + 1
else:
j = m -1
执行该程序段后,若f值为[0,1,1,0,1,0,0,0,0],则key的值可能为( )
A. 18 B. 21 C. 23 D. 25
11. 数组a中有若干个互不相同的正整数,现要输出数组a中所有和为b的两个元素的下标,实现该功能的程序段如下,方框处应填入的正确代码为( )
a = [8,9,12,11,4,3]
b =16
d = {}
for i in range(len(a)):
x = b - a[i]
if x in d:
print(d[x],i) #输出结果为:2 4
else:
A. d[x] = i B. d[i] = x C. d[a[i]] = i D. d[i] = a[i]
12. 使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据、个数、指针三个数据项,h为头指针,链表节点按“数据”非降序排序。现要对链表节点进行合并,将“数据”相同的节点合并为一个节点,并在节点中记录该数据的个数,如图b所示。实现上述功能的Python程序段如下:
p = h =1
while p != -1:
while q != -1 and d[q][0] == d[p][0]:
q = d[q][2]
c +=1
d[p][1] = c
划线处可选代码有:
①q = p ②q = d[p][2] ③c =1 ④c =0
⑤d[p][2] = q ⑥d[p][2] = d[q][2] ⑦p= d[p][2] ⑧p = q
按划线顺序填入代码顺序正确的是( )
A. ①④⑥⑦ B. ②③⑤⑧ C. ②③⑥⑦ D. ①③⑤⑧
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某地举办菊花展期间,为提升游客观赏体验,举办方将不同品种的菊花穿插摆放,让游客走最少的路,观赏到尽可能多的品种。编写程序,输入菊花品种的摆放序列(用大写字母标识菊花的品种),输出最长连续不重复品种序列的区间,若有多段,输出最前面那段。如某段展区菊花摆放序列为 "ABCABE",则最长连续不重复品种序列的区间为2~5。请回答下列问题:
(1)若某段展区菊花摆放序列为"ABCCDB",最长连续不重复品种序列区间为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
s = input()
index = [-1] *26 # 保存字符最后出现的位置
mx = left = start =0
①____
for right in range(n):
c = s[right]
t = ord(c) -65
if index[t] >= left:
left =②____
index[t] = right
③____
if length > mx:
mx = length
start = left
print("最长连续无重复品种序列的区间为:",start,"~",start + mx -1)
14. 某环保机构开发了一套城市空气质量监测系统,在6个工业园区周边各设置1个监测站。服务器端程序采用Flask Web框架开发。智能终端连接多种传感器,每隔半个小时采集1次PM2.5、PM10及二氧化硫浓度数据上传至服务器,用户通过浏览器查看实时监测结果和历史数据。若服务器判断出任一数据超过相应阈值,系统通过智能终端触发LED屏发布预警信号。
(1)以下措施不能提升系统所采集数据的准确性是____(单选,填字母)
A.选择性能更优的智能终端
B.选择高精度的PM2.5传感器
C.选择更加合适的位置设置监测站
(2)下列功能需要在服务器端程序中实现的是____(单选,填字母:A.采集PM2.5传感器上的数据/B.处理浏览器访问请求)。
(3)某工业园区提交数据到Web服务器的URL为:http://10.106.164.107:8000/ upload? idy=1& idc=1&p=28,则服务器端应用实例app中与该URL关联的路由设置语句是@ app.route("____")。
(4)测试系统时,通过浏览器查看实时数据,发现数据超过阈值但LED屏未发布预警信号,简要说明可能造成上述问题的原因。____(注:回答2项)
(5)将某工业园区一年的数据导出到文件“data.xlsx”中,部分数据如图a所示,其中编号1~3分别对应PM2.5、PM10及二氧化硫传感器。现要统计该工业园区一年里PM2.5平均值最高的5个时间点,并绘制如图b所示的柱形图。
实现上述功能的部分Python程序如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read excel(" data.xlsx")
df["时间点"] =""
for i in df.index:
t =____
df.at[i,"时间点"] = t[11:16]
plt.bar(df1["时间点"],df1["数值"])
#设置绘图参数,代码略
plt.show()
①请在划线处填入合适的代码。
②方框中应填入的语句依次为____(选3项)。
A.df1= df[df.编号 ==1]
B.df1= df1[df1.编号 ==1]
C.df1= df1.sort _values("数值",ascending= False).head(5)
D.df1= df1.sort _values("数值",ascending= True).tail(5)
E.df1= df1.groupby("时间",as index= False).mean()
F.df1= df1.groupby("时间点",as index= False).mean()
15. 某工厂有n种零件需要加工,每种零件信息包含编号、加工难度、收益、数量。有m个工人报名参与加工,每个工人的信息包含技能等级、报名时间。加工难度和技能等级分9个级别,分别用1~9的整数表示。每个工人按照报名时间依序选择一个零件加工,所选零件的加工难度不超过其技能等级。
编写程序模拟零件加工分配过程,先将零件数据按加工难度分类整理,然后每个工人按报名时间依序选择零件加工。计算所有工人能够获得的最高总收益。
编号
加工难度
收益
数量
1
4
14
1
2
4
10
1
3
6
5
4
4
2
12
1
5
7
11
2
6
7
12
1
表a
技能等级
报名时间
8
8:30
4
7:30
5
9:00
6
10:00
表b
请回答下列问题:
(1)如果工厂有6种零件,如表a所示,有4个工人报名参与加工,如表b所示,则能够获得的最高总收益为____。
(2)定义如下sort _work(data,st,ed)函数,列表data存储零件数据,每个元素包含编号、加工难度、收益、数量4个数据项。函数功能是将data[st] ~ data[ed]中的零件数据按“收益”降序排序。
def sort _work(data,st,ed):
n = ed - st +1
for i in range(n -1):
for j in range ( ):
if :
data[j],data[j -1] = data[j -1],data[j]
return data
①划线处应填入的代码为____(单选,填字母)。
A.st +1,ed - i B.ed,st + i,-1 C.n -1,i
②加框处代码有误,应更改____。
(3)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
"'读取n、m;读取n个零件数据存入data列表,每个元素包含编号、加工难度、收益、数量4个数据项,data列表已按“加工难度”升序排序;读取m个工人数据存入wk列表,每个元素包含技能等级、报名时间2个数据项,wk列表已按“报名时间”升序排序。代码略"'
h = [0] *10 #h[i]存储“加工难度”为i的起始位置
t = [0] *10
c = [0] *10
for i in range(n):
①____
c[k] +=1
for i in range(1,10):
h[i] = h[i -1] + c[i -1]
t[i] = h[i] + c[i] -1
if h[i] <= t[i]:
data = sort work(data,h[i],t[i])
ans =0
for w in wk:
mx,p =0,-1
for i in range(w[0],0,-1):
if ②____
mx = data[h[i]][2]
p = i
if p ==-1:#该工人无法分配工作
continue
ans += mx
③____
if data[h[p]][3] == 0:
h[p] +=1
print("最高总收益为:",ans)
第1页/共1页
学科网(北京)股份有限公司
$$
台州市2024学年高二期末质量评估试题
技术
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。关于该在线教育平台中数据与信息的说法,正确的是( )
A. 学生在平台学习过程中不会产生数据
B. 学情分析报告信息的价值不会随着时间的推移而变化
C. 学习方案和学情分析报告必须以同一种数据表现形式呈现
D. 通过分析学生数据生成学情分析报告,体现了信息的可加工处理性
【答案】D
【解析】
【详解】本题考查的是数据与信息。选项A:错误。学生在平台学习过程中会产生大量数据(如学习记录、答题情况等),这些数据是生成学情分析报告的基础。选项B:错误。学情分析报告的价值会随着时间推移而变化(例如学生进步后,旧报告可能不再适用)。选项C:错误。学习方案和学情分析报告可以采用不同形式呈现(如文字报告、图表、可视化数据等)。选项D:正确。通过对原始学习数据的加工处理生成学情报告,体现了信息的可加工性这一特征。故选D。
2. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。该在线教育平台的下列应用中,体现人工智能技术的是( )
A. 登录界面的“记住密码”功能
B. 自动记录学生的学习视频观看时长
C. 根据学生学习记录生成个性化学习方案
D. 登录平台时自动推送该生的作业批改结果
【答案】C
【解析】
【详解】本题考查人工智能技术。A 选项错误: “记住密码” 功能属于用户体验优化,通过本地存储或 Cookie 实现,不涉及智能算法或机器学习,未体现人工智能技术。 B 选项错误: 自动记录学习视频观看时长是数据采集功能,通过计时器和日志系统实现,属于常规数据记录,而非人工智能应用。 C 选项正确: 根据学生学习记录生成个性化学习方案,需利用生成式 AI 技术(如自然语言处理、机器学习算法)分析历史数据、预测学习需求,并动态生成方案,体现了人工智能的自主性和智能决策能力。 D 选项错误: 登录时自动推送作业批改结果属于数据匹配和推送功能,通过数据库查询和用户行为记录实现,不涉及智能分析或学习过程,未体现人工智能技术。 因此,本题选择 C 选项。
3. 某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现利用生成式人工智能对平台进行迭代升级,系统会根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。关于信息安全和信息社会责任,下列行为不合适的是( )
A 系统定期对数据进行备份
B. 服务器及时更新系统补丁包
C. 平台弹出用户定期修改密码的提醒窗口
D. 教师在查询或阅卷后不退出系统就离开
【答案】D
【解析】
【详解】本题考查信息安全和信息社会责任。A 选项正确,系统定期对数据进行备份,可防止数据丢失,属于合适的信息安全措施。B 选项正确,服务器及时更新系统补丁包,能修复系统漏洞,增强系统安全性,是合适的行为。C 选项正确,平台弹出用户定期修改密码的提醒窗口,有助于提高账户安全性,属于合适的安全提醒。D 选项错误,教师在查询或阅卷后不退出系统就离开,可能导致他人未经授权访问系统,存在信息泄露风险,不符合信息安全要求,属于不合适的行为。因此,本题选择 D 选项。
4. 某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作;各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。下列关于该系统组成的说法,正确的是( )
A. 手持式扫描枪是输出设备 B. 云端服务器的CPU性能会影响系统响应速度
C. 仓储管理软件属于系统软件 D. 该系统的数据是商品库存和价格
【答案】B
【解析】
【详解】本题考查的是信息系统组成。选项A错误:手持式扫描枪用于扫描商品二维码,将数据输入系统(如商品信息),因此属于输入设备,而非输出设备(输出设备如显示器、打印机)。选项B正确:CPU(中央处理器)是服务器的核心部件,其性能直接影响数据处理速度。当多个门店同时查询或提交申请时,CPU性能不足会导致响应延迟,因此会影响系统整体响应速度。选项C错误:仓储管理软件是专为超市库存管理设计的应用程序,用于特定业务(如入库、出库、生成提货单),属于应用软件。选项D不准确:题干明确系统处理的是“库存数据”(如入库、出库、查询库存),虽然价格可能存储在系统中,但题干未强调价格是核心数据(仅提及“库存数据”),且系统数据还可能包括商品信息、提货单等,因此选项描述过于片面。故选B。
5. 某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作;各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。下列关于该系统中网络技术的说法,不正确的是( )
A. 各门店用手机访问该系统必须通过移动通信网络
B. 将该系统内部局域网接入互联网须使用路由器
C. 各门店通过网络查询库存数据需遵循网络协议
D. 各门店可使用DHCP服务自动设置计算机IP地址
【答案】A
【解析】
【详解】本题考查的是网络相关知识。移动通信网络(如4G/5G)是手机访问互联网的一种方式,但手机也可以通过Wi-Fi(如连接门店的无线局域网)访问互联网。故选A。
6. 下列关于信息编码的说法正确的是( )
A. 计算机通过声卡播放声音时需要用到模数转换器(ADC)
B. 若二进制数末位是0,则该数对应的十六进制数末位肯定也是0
C. 计算机内英文字符采用二进制进行编码,而汉字采用十六进制进行编码
D. 一幅未经压缩的1024×400像素、16色位图,其存储容量为200KB
【答案】D
【解析】
【详解】本题考查信息编码。 A 选项错误: 计算机播放声音时,需将数字信号转换为模拟信号,使用是数模转换器(DAC);而模数转换器(ADC)用于将模拟声音信号转换为数字信号(如录音场景)。该选项混淆了播放与录音的信号转换过程。 B 选项错误: 二进制数末位为 0 时,其对应的十六进制数末位不一定为 0。例如,二进制数10(末位 0,对应十进制 2)转换为十六进制是2,末位非 0。只有当二进制数的最后 4 位均为 0 时,十六进制末位才为 0(如二进制1000对应十六进制8,末位仍非 0;二进制10000对应十六进制10,末位为 0)。 C 选项错误: 计算机内所有字符(包括英文字符和汉字)均以二进制形式编码。英文字符常用 ASCII 或 Unicode 编码,汉字常用 GB2312、UTF-8 等编码,而十六进制仅为人类阅读方便的表示方式,并非计算机内部存储形式。 D 选项正确: 计算未经压缩的 16 色位图存储容量: 16 色对应 2⁴种颜色,每个像素占4 位(bit)。 像素数:1024×400 = 409600 像素。总位数:409600×4 = 1638400 bit。 转换为字节:1638400 ÷ 8 = 204800 Byte。 换算为 KB:204800 ÷ 1024 = 200 KB,与选项表述一致。 因此,本题选择 D 选项。
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为18,16,2,16,18,0。则输出p的值是( )
A 1 B. 2 C. 4 D. 5
【答案】B
【解析】
【详解】本题考查流程图。
x
mx1
mx2
c
p
18
18
0
2
0
16
18
16
3
2
2
18
16
4
2
16
18
16
5
2
18
18
16
6
2
0
输出p
因此,本题选择B。
8. 有一个空栈,将A,B,C,D,E依次入栈,若出栈顺序为B,D,C,E,A,则该栈容量至少是( )
A. 1 B. 2 C. 3 D. 4
【答案】C
【解析】
【详解】本题考查的是栈的操作。栈是一种后进先出(LIFO)的数据结构。
入栈 A:栈状态为 [A],深度为 1。
入栈 B:栈状态为 [A, B],深度为 2。
出栈 B:输出 B(符合出栈顺序第一个),栈状态为 [A],深度为 1。
入栈 C:栈状态为 [A, C],深度为 2。
入栈 D:栈状态为 [A, C, D],深度为 3(此时深度最大)。
出栈 D:输出 D(符合出栈顺序第二个),栈状态 [A, C],深度为 2。
出栈 C:输出 C(符合出栈顺序第三个),栈状态为 [A],深度为 1。
入栈 E:栈状态为 [A, E],深度为 2。
出栈 E:输出 E(符合出栈顺序第四个),栈状态为 [A],深度为 1。
出栈 A:输出 A(符合出栈顺序第五个),栈空。
故选C。
9. 已知某二叉树用一维数组d表示,如下表所示,下列说法正确的是( )
d
A
C
D
B
E
F
G
下标
0
1
2
3
4
5
6
7
8
9
10
11
A. 该二叉树的后序遍历为BCGEFDA B. 该二叉树有3个度数为1的节点
C. 该二叉树的高度为3 D. 该二叉树补全为完全二叉树至少需加6个节点
【答案】A
【解析】
【详解】本题考查二叉树。根据题意,绘制二叉树如下所示:
所以,该二叉树后序遍历为BCGEFDA;该二叉树有2个度数为1的节点(C,E);该二叉树的高度为4;该二叉树补全为完全二叉树至少需加5个节点。因此,本题选择A。
10. 有如下Python程序段:
import random
a = [12,18,23,23,25,29,29,30,31,33]
i,j =0,len(a) -1
key = random.randint(6,15) *2+1
f = [0] * len(a)
while i <= j:
m = (i + j) //2
f[m] =1
if key >= a[m]:
i = m + 1
else:
j = m -1
执行该程序段后,若f值为[0,1,1,0,1,0,0,0,0],则key的值可能为( )
A. 18 B. 21 C. 23 D. 25
【答案】B
【解析】
【详解】本题考查二分查找。数组 a:有序列表 [12,18,23,23,25,29,29,30,31,33]。 随机数 key:生成范围为 [6*2+1, 15*2+1] = [13, 31] 内的奇数。 标记数组 f:记录二分查找过程中访问的索引位置(值为 1)。 二分查找过程分析 给定 f = [0,1,1,0,1,0,0,0,0],表示访问的索引为 1, 2, 4。根据二分查找逻辑: 初始区间:i=0, j=9,中点 m = (0+9)//2 = 4,访问 a[4]=25,标记 f[4]=1。 比较 key 与 a[4]: 若 key >= 25,则 i = m+1 = 5,后续中点为 (5+9)//2 = 7,但 f[7]=0,矛盾。因此 key < 25,则 j = m-1 = 3,继续查找。新区间 i=0, j=3:中点 m = (0+3)//2 = 1,访问 a[1]=18,标记 f[1]=1。 比较 key 与 a[1]: 若 key >= 18,则 i = m+1 = 2,继续查找。 若 key < 18,则 j = m-1 = 0,后续中点为 0,但 f[0]=0,矛盾。因此 key >= 18。 新区间 i=2, j=3:中点 m = (2+3)//2 = 2,访问 a[2]=23,标记 f[2]=1。 比较 key 与 a[2]: 若 key >= 23,则 i = m+1 = 3,后续中点为 3,但 f[3]=0,矛盾。 因此 key < 23,且 key >= 18,结合 key 为奇数,可能值为 19 或 21。因此,本题选择B。
11. 数组a中有若干个互不相同的正整数,现要输出数组a中所有和为b的两个元素的下标,实现该功能的程序段如下,方框处应填入的正确代码为( )
a = [8,9,12,11,4,3]
b =16
d = {}
for i in range(len(a)):
x = b - a[i]
if x in d:
print(d[x],i) #输出结果为:2 4
else:
A. d[x] = i B. d[i] = x C. d[a[i]] = i D. d[i] = a[i]
【答案】C
【解析】
【详解】本题考查 数组。程序通过字典记录元素信息,实现快速查找和为 b 的两个元素下标。for循环遍历数组 a,对于每个元素 a[i],计算 x = b - a[i],判断 x 是否在字典 d 中。若在,说明找到和为 b 的两个元素(x 对应元素已存,当前元素为 a[i]),输出下标;若不在,需将当前元素的信息存入字典,以便后续查找,代码为d[a[i]] = i:存储当前元素值 a[i] 对应的下标 i,后续遍历到 x(即 b - a[i])时,可通过 x in d 判断是否存在,因此,本题选择C。
12. 使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据、个数、指针三个数据项,h为头指针,链表节点按“数据”非降序排序。现要对链表节点进行合并,将“数据”相同的节点合并为一个节点,并在节点中记录该数据的个数,如图b所示。实现上述功能的Python程序段如下:
p = h =1
while p != -1:
while q != -1 and d[q][0] == d[p][0]:
q = d[q][2]
c +=1
d[p][1] = c
划线处可选代码有:
①q = p ②q = d[p][2] ③c =1 ④c =0
⑤d[p][2] = q ⑥d[p][2] = d[q][2] ⑦p= d[p][2] ⑧p = q
按划线顺序填入代码顺序正确的是( )
A. ①④⑥⑦ B. ②③⑤⑧ C. ②③⑥⑦ D. ①③⑤⑧
【答案】B
【解析】
【详解】本题考查的是链表操作。第一个空(②) q = d[p][2] 作用:将q指向p的下一个节点,开始查找与p数据相同的后续节点。 第二个空(③) c = 1 作用:初始化计数器,包含当前节点p自身(至少有 1 个节点)。 第三个空(⑤) d[p][2] = q 作用:当内层循环结束时,q指向第一个数据不同的节点,将p的指针直接指向q,跳过所有重复节点。 第四个空(⑧) p = q 作用:将p移动到下一个需要处理的节点(即q),继续合并后续节点。故选B。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某地举办菊花展期间,为提升游客观赏体验,举办方将不同品种的菊花穿插摆放,让游客走最少的路,观赏到尽可能多的品种。编写程序,输入菊花品种的摆放序列(用大写字母标识菊花的品种),输出最长连续不重复品种序列的区间,若有多段,输出最前面那段。如某段展区菊花摆放序列为 "ABCABE",则最长连续不重复品种序列的区间为2~5。请回答下列问题:
(1)若某段展区菊花摆放序列为"ABCCDB",最长连续不重复品种序列的区间为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
s = input()
index = [-1] *26 # 保存字符最后出现的位置
mx = left = start =0
①____
for right in range(n):
c = s[right]
t = ord(c) -65
if index[t] >= left:
left =②____
index[t] = right
③____
if length > mx:
mx = length
start = left
print("最长连续无重复品种序列的区间为:",start,"~",start + mx -1)
【答案】 ①. 0~2 ②. n = len(s) ③. index[t] +1 ④. length = right - left +1或length = index[t] - left +1
【解析】
【详解】本题考查滑动窗口算法。
(1)输入序列为 "ABCCDB",最长连续不重复子串为 "ABC",对应索引 0 到 2,转换为题目要求的区间表示为 0~2。
(2)① 该处获取输入字符串的长度,用于控制循环次数,答案为n = len(s)。 ②当检测到重复字符时,移动左边界至上次该字符出现位置的下一位,避免重复字符出现在当前窗口内,答案为index[t] + 1。 ③计算当前窗口的长度,即连续不重复子串的长度,答案为length = right - left + 1 。
14. 某环保机构开发了一套城市空气质量监测系统,在6个工业园区周边各设置1个监测站。服务器端程序采用Flask Web框架开发。智能终端连接多种传感器,每隔半个小时采集1次PM2.5、PM10及二氧化硫浓度数据上传至服务器,用户通过浏览器查看实时监测结果和历史数据。若服务器判断出任一数据超过相应阈值,系统通过智能终端触发LED屏发布预警信号。
(1)以下措施不能提升系统所采集数据的准确性是____(单选,填字母)
A.选择性能更优的智能终端
B.选择高精度的PM2.5传感器
C.选择更加合适的位置设置监测站
(2)下列功能需要在服务器端程序中实现的是____(单选,填字母:A.采集PM2.5传感器上的数据/B.处理浏览器访问请求)。
(3)某工业园区提交数据到Web服务器的URL为:http://10.106.164.107:8000/ upload? idy=1& idc=1&p=28,则服务器端应用实例app中与该URL关联的路由设置语句是@ app.route("____")。
(4)测试系统时,通过浏览器查看实时数据,发现数据超过阈值但LED屏未发布预警信号,简要说明可能造成上述问题原因。____(注:回答2项)
(5)将某工业园区一年的数据导出到文件“data.xlsx”中,部分数据如图a所示,其中编号1~3分别对应PM2.5、PM10及二氧化硫传感器。现要统计该工业园区一年里PM2.5平均值最高的5个时间点,并绘制如图b所示的柱形图。
实现上述功能的部分Python程序如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read excel(" data.xlsx")
df["时间点"] =""
for i in df.index:
t =____
df.at[i,"时间点"] = t[11:16]
plt.bar(df1["时间点"],df1["数值"])
#设置绘图参数,代码略
plt.show()
①请在划线处填入合适的代码。
②方框中应填入的语句依次为____(选3项)。
A.df1= df[df.编号 ==1]
B.df1= df1[df1.编号 ==1]
C.df1= df1.sort _values("数值",ascending= False).head(5)
D.df1= df1.sort _values("数值",ascending= True).tail(5)
E.df1= df1.groupby("时间",as index= False).mean()
F.df1= df1.groupby("时间点",as index= False).mean()
【答案】 ①. A ②. B ③. /upload ④. LED屏损坏;LED屏与智能终端的连接有误;服务器端用于控制LED屏的代码有误;或其他等价答案。 ⑤. df.at[i,"时间"] 或df["时间"][i] ⑥. AFC
【解析】
【详解】本题考查搭建信息系统和pandas数据处理知识。
(1) A 选项选择性能更优的智能终端,对数据的准确性无影响; B 选项选择高精度传感器,直接提高测量精度; C 选项选择合适位置设置监测站,可以选取更具有代表性的数据,因此该空答案为 A。
(2) A 选项采集传感器数据由智能终端硬件完成,属于终端层功能; B 选项处理浏览器访问请求需服务器端 Flask 程序响应 HTTP 请求,属于服务器端功能,因此该空答案为 B。
(3) URL 中10.106.164.107:8000分别是Ip和端口,upload为路径,查询参数由程序解析,Flask 路由仅需匹配路径部分,因此该空答案为/upload。
(4)数据超过阈值但 LED 屏未预警的可能原因: ① 服务器端预警逻辑错误(如阈值判断条件写错,或触发预警的代码未执行); ② 智能终端与 LED 屏通信故障;③LED 屏硬件损坏等。
(5) ① 原数据中 “时间” 列存储完整时间(如 “2024-01-01 10:30:00”),t[11:16]需提取 “10:30” 作为时间点,故需从 “时间” 列取值,因此该空答案为df.at[i, "时间"]。 ② A 选项df1 = df[df.编号 == 1]用于筛选 PM2.5(编号 1)的数据; F 选项df1 = df1.groupby("时间点", as_index=False).mean()按时间点分组计算平均值; C 选项df1 = df1.sort_values("数值", ascending=False).head(5)按平均值降序取前 5 个时间点,因此该空答案为 A、F、C。
15. 某工厂有n种零件需要加工,每种零件的信息包含编号、加工难度、收益、数量。有m个工人报名参与加工,每个工人的信息包含技能等级、报名时间。加工难度和技能等级分9个级别,分别用1~9的整数表示。每个工人按照报名时间依序选择一个零件加工,所选零件的加工难度不超过其技能等级。
编写程序模拟零件加工分配过程,先将零件数据按加工难度分类整理,然后每个工人按报名时间依序选择零件加工。计算所有工人能够获得的最高总收益。
编号
加工难度
收益
数量
1
4
14
1
2
4
10
1
3
6
5
4
4
2
12
1
5
7
11
2
6
7
12
1
表a
技能等级
报名时间
8
8:30
4
7:30
5
9:00
6
10:00
表b
请回答下列问题:
(1)如果工厂有6种零件,如表a所示,有4个工人报名参与加工,如表b所示,则能够获得的最高总收益为____。
(2)定义如下sort _work(data,st,ed)函数,列表data存储零件数据,每个元素包含编号、加工难度、收益、数量4个数据项。函数功能是将data[st] ~ data[ed]中的零件数据按“收益”降序排序。
def sort _work(data,st,ed):
n = ed - st +1
for i in range(n -1):
for j in range ( ):
if :
data[j],data[j -1] = data[j -1],data[j]
return data
①划线处应填入的代码为____(单选,填字母)。
A.st +1,ed - i B.ed,st + i,-1 C.n -1,i
②加框处代码有误,应更改为____。
(3)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
"'读取n、m;读取n个零件数据存入data列表,每个元素包含编号、加工难度、收益、数量4个数据项,data列表已按“加工难度”升序排序;读取m个工人数据存入wk列表,每个元素包含技能等级、报名时间2个数据项,wk列表已按“报名时间”升序排序。代码略"'
h = [0] *10 #h[i]存储“加工难度”为i的起始位置
t = [0] *10
c = [0] *10
for i in range(n):
①____
c[k] +=1
for i in range(1,10):
h[i] = h[i -1] + c[i -1]
t[i] = h[i] + c[i] -1
if h[i] <= t[i]:
data = sort work(data,h[i],t[i])
ans =0
for w in wk:
mx,p =0,-1
for i in range(w[0],0,-1):
if ②____
mx = data[h[i]][2]
p = i
if p ==-1:#该工人无法分配工作
continue
ans += mx
③____
if data[h[p]][3] == 0:
h[p] +=1
print("最高总收益为:",ans)
【答案】 ①. 48 ②. B ③. data[j][2] > data[j -1][2] 或data[j][2] >= data[j -1][2] ④. k = data[i][1] ⑤. h[i] <= t[i] and data[h[i]][2] > mx ⑥. data[h[p]][3] - =1
【解析】
【详解】本题考查链表的应用。
(1)按照题意给工人分配零件:工人1(技能4):可选难度≤4的零件。难度4的起始零件收益14,难度2的起始零件收益12。选择最大收益14(难度4的零件1)。分配后,零件1数量减为0,难度4的起始位置后移(指向收益10的零件2)。 工人2(技能8):可选难度≤8的零件。难度7的起始零件收益12,难度2的起始零件收益12,难度4的起始零件收益10,难度6的起始零件收益5。从高难度向低难度遍历,先遇到难度7的收益12(大于当前最大值0),选择收益12(难度7的零件6)。分配后,零件6数量减为0,难度7的起始位置后移(指向收益11的零件5)。 工人3(技能5):可选难度≤5的零件。难度4的起始零件收益10,难度2的起始零件收益12。选择最大收益12(难度2的零件4)。分配后,零件4数量减为0,难度2的起始位置后移(无零件)。 工人4(技能6):可选难度≤6的零件。难度4的起始零件收益10,难度6的起始零件收益5。选择最大收益10(难度4的零件2)。分配后,零件2数量减为0,难度4的起始位置后移(无零件)。所以总收益为14 + 12 + 12 + 10 = 48。
(2) ① 函数用冒泡排序对data[st]~data[ed]按收益降序排序。冒泡排序内层循环需从st+1到ed - i(或反向遍历),选项 B:ed, st+i, -1等价于range(ed, st+i-1, -1),即从后往前遍历(符合冒泡排序优化写法,减少已排序部分的比较),因此该空答案为 B。 ②原条件data[j]<data[j-1]比较的是列表元素整体(含编号、难度等),需明确比较 “收益”(第 3 个数据项,索引 2),因此修正为data[j][2] < data[j-1][2]。
(3)①c[k]统计难度k的零件数量,h[k]记录难度k的起始索引。遍历零件时,用data[i][1]获取加工难度k,因此该空答案为k = data[i][1]。②遍历工人技能等级w[0],从高到低检查难度i的零件区间[h[i], t[i]]是否有剩余(h[i] <= t[i]),且当前难度的最高收益(data[h[i]][2])大于已记录的mx,因此该空答案为h[i] <= t[i] and data[h[i]][2] > mx。 ③ d 工人选中难度p的零件后,该零件数量减 1(data[h[p]][3]存储数量),因此该空答案为data[h[p]][3] -= 1。
第1页/共1页
学科网(北京)股份有限公司
$$