2025年5月六校联盟高三技术卷
第一部分 信息技术完美解析(50分)
1.【2025年 5月六校联考信息技术第 1题】
阅读下列材料,回答 1-6题
为助力乡村振兴,某地区与直播平台合作,推出“直播助农”信息服务系统,将滞销水果在 APP 中进行直
播带货销售,观众还可以使用 APP 观看果园实况视频与照片。在水果打包流水线,AI 鉴果设备通过图像识别的
方式自动筛出并剔除坏果。借助大数据技术,系统会为不同的用户推荐他们可能感兴趣的水果。
1. 关于该助农信息系统中数据与信息的说法,正确的是
A. 类型不同的数据必须保存在不同的存储设备
B. 大数据技术不能处理视频、照片等非结构化数据
C. 系统中的所有数据以二进制编码后被计算机处理
D. 直播中的信息因为分享而发生损耗
【答案】C
【解析提供】 信息解析组
【解析】(本题考查数据与信息)
A.存储设备不管什么类型数据都可以正常存储;B.大数据可以处理结构化、半结构化、非结构化数据;C.计算机
内存储的数据都是二进制,因此所有数据要先进行二进制编码才能被计算机处理;D.信息在传递过程中没有损耗
2.【2025年 5月六校联考信息技术第 2题】
2. 关于信息安全与信息社会责任,下列行为合适的是
A. 冒用该地区名义进行销售 B. 加密存储用户信息
C. 盗用他人信息注册账号 D. 使用网络照片冒充实况照片
【答案】B
【解析提供】 信息解析组
【解析】(本题考查信息安全)
结合专利著作权、如何保护个人隐私、结合日常生活经验,答案选择 B
3.【2025年 5月六校联考信息技术第 3题】
3. 关于该信息系统功能,下列说法正确的是
A. 通过大数据训练识别坏果的 AI属于专家系统
B. APP 与服务器的数据传输无需网络协议
C. 系统中的数据仅来自于摄像头
D. 数据存入数据库中方便后期查询
【答案】D
【解析提供】 信息解析组
【解析】(本题考查信息系统功能)
A.通过大数据训练属于深度学习不属于专家系统;B.APP 与服务器的数据传输需要借助网络,需要网络协议;
C.数据来源多源化:用户输入、传感器获取,数据处理过程中也会产生新数据
4.【2025年 5月六校联考信息技术第 4题】
4. 为提升 AI识别准确率与速度,下列帮助最小的是
A. 升级运算器 B. 更换高清摄像头 C. 扩大硬盘容量 D. 增加训练数据
【答案】C
【解析提供】 信息解析组
【解析】(本题考查人工智能)
2025年 5月六校联盟高三信息技术全解析第 1 页 (共 12 页)
A:升级运算器是加强计算机性能;B:更换高清摄像头,相当于对头像进行预处理,使得图像更高清;C:扩大
硬盘容量也是提升计算机性能,但是相对于运算能力的提升,存储能力的提升更加无效一些;D:增加训练数据
有助于提升人工智能准确性
5.【2025年 5月六校联考信息技术第 5题】
5. 关于该信息系统中硬件与网络的说法,正确的是
A. 终端性能影响推荐精度
B. 系统中所有设备需在同一个局域网
C. 手机直播必须借助移动通信网络
D. 配备不间断电源可减少对外部环境的依赖性
【答案】D
【解析提供】 信息解析组
【解析】(本题考查硬件与网络)
A.推荐由服务器计算完成并发送给终端设备,终端性能对服务器无影响;B.终端设备和服务器不在同一局域网;
C.手机直播还可以借助计算机网络、广播电视网络
6.【2025年 5月六校联考信息技术第 6题】
6. 关于该信息系统中软件的说法,正确的是
A. 软件提供大字模式可完全消除数字鸿沟 B. AI鉴果软件属于系统软件
C. 系统中所有设备需统一操作系统 D. APP观看直播体现了 C/S 架构
【答案】D
【解析提供】 信息解析组
【解析】(本题考查信息系统的组成)
A.做不到消除,只能说降低
B.APP属于应用软件
C.网络传输数据可以跨平台通信,只要通信协议一致即可
7.【2025年 5月六校联考信息技术第 7题】
7. 某购物 APP 推出满减活动:商品总价值达到 500 元后,超出部分每满 100
元优惠 35 元(不足 100元部分不优惠),优惠上不封顶。计算优惠金额的
部分流程图如第 7题图所示,表达式为
①s=s-500 ②s=s-600 ③s=s-100 ④s=s//100
则(1)(2)处表达式序号依次为
A. ①③ B. ②③
C. ①④ D. ②④
【答案】B
第 7题图
【解析提供 1】 信息解析组
【解析】(本题考查流程图相关知识)
观察流程图可知:输出为 t,表示优惠金额。循环条件是 s>=0,若条件满足,则 t加一次 35。根据题意,总价值
达到 500元后,超出部分每满 100优惠 35元,因此,(1)处应该是 s=s-600,(2)处应该是 s=s-100。
【解析提供 2】 信息解析组
【解析】(本题考查流程图)
第一次进入循环时,循环体语句中 t=t+35,说明原先的商品总价减去 500后至少还有剩余 100 才能进行优惠 35
元,因此(1)处填写②s=s-600,(2)处将余额 s再进行-100,以便于下一次判断是否还有优惠,因此选 B。
8.【2025年 5月六校联考信息技术第 8题】
2025年 5月六校联盟高三信息技术全解析第 2 页 (共 12 页)
8. 栈 S初始为空,队列 Q存在若干元素,将队列内元素依次出队,当栈空或出队元素与栈顶元素不相同时,出
队元素入栈,否则出队元素重新入队。若队列最终为空,则初始队列 Q从队首到队尾不.可.能.为
A. abaab B. Aabca C. accbb D. cabac
【答案】B
【解析提供 1】 信息解析组
【解析】(本题考查队列和栈的基本知识)
队列最终为空,表示根据入栈的条件,队列中的元素可以全部入栈。
A选项,a入栈,b入栈,a入栈,a入队,b入栈,a入栈。
B选项,a入栈,a入队,b入栈,c入栈,a入栈,a入队,a入队....(a无法入栈)
C选项,a入栈,c入栈,c入队,b入栈,b入队,c入栈,b入栈
D选项,c入栈,a入栈,b入栈,a入栈,c入栈
因此 B选项不可能。
【解析提供 2】 信息解析组
【解析】(本题考查栈和队列的基本操作)
B选项不可能,具体操作如下:
操作 队列 Q:aabca 栈 s
队首 a出队入栈 abca a
队首 a出队后重新入队 bcaa a
队首 b出队入栈 caa ab
队首 c出队入栈 aa abc
队首 a出队入栈 a abca
队首 a出队后重新入队 a abca
队首 a出队后重新入队... ...... abca
最后队列变为[a],队首元素 a反复出队入队,陷入循环,无法清空。
ACD选项都可以实现,A选项最终栈 S中元素为 ababa,C选项最终栈 S中元素为 acbcb,D选项最终栈 S中元
素为 cabac。
9.【2025年 5月六校联考信息技术第 9题】
9. 某完全二叉树具有 2个度为 2的节点,且左子树的深度比右子树大 1。若将其补充为满二叉树后的中序遍历为
FEGDCBA,原完全二叉树的后序遍历为
A. FGEBD B. GFEBD C. CBGFED D. FGECBD
【答案】A
【解析提供 1】 信息解析组
【解析】(本题考查二叉树相关知识点)
题目是完全二叉树,并且度为 2的节点有两个,左子树的深度比右子树大 1.可以确定该二叉树总共有 5个节点,
排除 CD 两个选项。若补充完整中序遍历为 FEGDCBA,那么可知根节点为 D,左子树根节点为 E,CA是补充
上去的节点。因此原完全二叉树的后续遍历为:FGEBD。
D
E B
F G
【解析提供 2】 信息解析组
【解析】(本题考查二叉树)
根据补充后的中序遍历画出二叉树如图所示,原完全二叉树具有 2个度为 2的节点,且左子树的深度比右子树大
1,因此二叉树中 CA为补充的节点,因此原二叉树的后序遍历为 FGEBD,选择 A。
2025年 5月六校联盟高三信息技术全解析第 3 页 (共 12 页)
10.【2025年 5月六校联考信息技术第 10题】
10. 定义如下函数:
def f(x):
if len(x) == 1:
return ""
if x[0] == x[-1]:
return f(x[:-1]) + x[0]
return f(x[1:])
执行语句 t=f("abababb")后,t的值为
A. "bbb" B. "bba" C. "abb" D. "aa"
【答案】C
【解析提供 1】 信息解析组
【解析】(本题考查递归)
递归出口为字符串长度为 1,当字符串首尾字符相同时,将原字符串删去尾字符进行递归并连接上首字符,若首
尾字符不相同则将原字符串删去首字符进行递归,计算过程如下:
f("abababb") 最终结果为"abb"
=f("bababb")
=f("babab") + "b"
=f("baba") + "b"
递 =f("aba") 归
推 =f("ab") + "a" 回
=f("b")
=""
【解析提供 2】 信息解析组
【解析】(本题考查递归的执行过程)
模拟执行过程
第一次调用结果:f(“bababb”)
第二次调用结果:f(“babab”) + “b”
第三次调用结果:f(“baba”) + “b”
第四次调用结果:f(“aba”)
第五次调用结果:f(”ab”) + “a”
第六次调用结果:f(“b”)
第七次调用结果:返回“”
依次返回,按顺序连接了”a”,”b”,”b”,因此答案为 C。
11.【2025年 5月六校联考信息技术第 11题】
11. 某二分查找算法的 Python程序段如下:
2025年 5月六校联盟高三信息技术全解析第 4 页 (共 12 页)
c = 0
i, j = 0, len(a) - 1
while i <= j:
m = (i + j) // 2
if key <= a[m] :
j = m - 1
else:
i = m + 1
c += 1
若非降序数组 a 包含 8 个元素,key 为 a 中一个元素,运行该程序段后 c 的值为 3。若将加框处代码修改为
key
A. 5 B. 6 C. 7 D. 8
【答案】B
【解析提供 1】 信息解析组
【解析】(本题考查二分查找算法)
画一下 c的值变化过程可知:往左或往右都输出 c为 3的话,索引为 0-5的位置可以是相同元素,索引为 6的位
置不能是相同,否则 c就加 1为 4了。
0 1 2 3 4 5 6 7
c = 1
c = 2 c = 2
c = 3 c = 3
因此答案为 B。
【解析提供 2】 信息解析组
【解析】(本题考查二分查找)
画出 8 个元素的二分查找索引树如图所示,若将代码改为 key中数据都不相同时候可能的 key最多,再结合查找次数 c为 3,则可以推出当 key为 a[0]时,查找从索引 0的右
边出,当 key为 a[1]时,查找从索引 2的左边出,当 key为 a[2]时查找从索引 2的右边出,依次类推,可能的 key
为 a[0]~a[5]时是满足要求的,有 6个。
12.【2025年 5月六校联考信息技术第 12题】
12. 有 Python代码段如下:
k, h, t = 10, 0, 0
n = len(nums) ; ans = n + 1
a = [0] * (n + 1) ; q = [0] * (n + 1)
for i in range(n):
2025年 5月六校联盟高三信息技术全解析第 5 页 (共 12 页)
a[i + 1] = a[i] + nums[i]
for i in range(n + 1):
while h != t and a[i] - a[q[h]] >= k:
m = q[h]
h += 1
ans = min(ans, i - m)
q[t] = i
t += 1
print(ans)
执行以上代码段,输出结果为 3,则 nums可能为
A. [1, 2, 3, 3, 3, 2, 1] B. [3, 1, 4, 4, 5, 0, 8] C. [2, 2, 2, 2, 2, 2, 2] D. [9, 7, 6, 3, 5, 5, 1]
【答案】B
【解析提供 1】 信息解析组
【解析】(本题考查数组)
本题代码功能:该代码用于寻找数组 nums中最短的连续子数组,使得其和至少为 k,并返回该子数组的长度。
若不存在这样的子数组,则返回 n+1(n为数组长度)。
关键逻辑:前缀和数组 a:a[i]表示 nums前 i项的和。
单调队列 q:维护可能的最优起点下标 m,使得 a[i]-a[m]>=k,并最小化 i-m(子数组长度)。
选项分析:选项 B:数组为[3,1,4,4,5,0,8]。前缀和为[0,3,4,8,12,17,17,25]。
当 i=5(对应前缀和为 17)时,存在 m=2(对应前缀和为 4),满足 17-4=13>=10,子数组长度为 5-2=3。
此子数组为[4,4,5],和为 13,是满足条件的最短子数组。
其他选项:
A:所有连续 3个元素的最大和为 9,无法满足>=10。错误。
C:需 3个元素最大和为 6,无法满足>=10。错误。
D:存在长度为 2的子数组(如[9,7]),和为 16,ans为 2。错误。
【解析提供 2】 信息解析组
【解析】(本题考查队列与前缀和)
以 A选项数据为例分析代码:
nums 1 2 3 3 3 2 1
a 0 1 3 6 9 12 14 15
a[i]储存 nums[0]~num[i]之和,队列中储存 nums列表的索引,因此 a[i]-a[q[h]]表示 num[q[h]+1]~num[i]之和。
for i in range(n + 1):
while h != t and a[i] - a[q[h]] >= k: #num[q[h]+1]~num[i]之和>=k
m = q[h]
h += 1 #队首元素出队
ans = min(ans, i - m) #记录最短的长度
q[t] = i #索引 i作为元素入队
t += 1
本题代码在寻找区间之和>=k的最短序列长度,根据题干要求输出的长度=3,
A选项,区间之和>=10的最短区间为[2,3,3,3]或[3,3,3,2],长度为 4,错误;
B选项,区间之和>=10的最短区间为[4,4,5],长度为 3,正确;
C选项,区间之和>=10的最短区间为[2,2,2,2,2],长度为 5,错误;
D选项,区间之和>=10的最短区间为[9,7]或[7,6]或[5,5],长度为 2,错误。
13.【2025年 5月六校联考信息技术第 13题】
13. 某电商平台推出促销活动,当两件商品的价格差为 c元时,顾客可以享受组合优惠。现给定所有商品价格的
2025年 5月六校联盟高三信息技术全解析第 6 页 (共 12 页)
序列(假设价格均小于 100元)。请你编写程序,计算差价为 c元的商品组合数。例如:c=1,商品价格为“1,2,1,3”,
符合条件的商品共 3对。价格分别为(1,2),(2,1),(2,3)。实现上述功能的 Python程序段如下:
t = [0] * 100
j = 0
ans = 0
# 输入 c与商品价格字符串 x,x中每个数字间以逗号分隔,代码略
for i in range(len(x) + 1):
if :
num = ①
t[num] += 1
j = 0
else:
j += 1
for a in range(100):
b = a-c
if b > 0:
ans += ②
print("数对总数为:", ans)
请回答下列问题。
(1)若 c=2,商品价格为“1,3,4,5,3,5”,则符合条件的商品组合数为 ▲ 。
(2)加框处应填入的代码为 ▲ (单选,填字母)。
A. i == len(x) or x[i] == "," B. i == len(x) and x[i] == ","
C. i + 1 == len(x) or x[i] == "," D. i + 1 == len(x) and x[i] == ","
(3)请在划线处填入合适的代码。
【答案】(1)6(1分)(2)A(2分)(3)① int(x[i - j : i])(2分)② t[b] * t[a](2分)
【解析提供】 信息解析组
【解析】(本题考查枚举算法)
(1)若 c=2,商品价格为“1,3,4,5,3,5”时的所有符合条件的商品组合数为
1和 3:
第一个 1和第一个 3 → (1, 3)
第一个 1和第二个 3 → (1, 3)
3和 5:
第一个 3和第一个 5 → (3, 5)
第一个 3和第二个 5 → (3, 5)
第二个 3和第一个 5 → (3, 5)
第二个 3和第二个 5 → (3, 5)
故一共 6组
(2)加框处应填入的代码为 ▲ (单选,填字母)。
A. i == len(x) or x[i] == "," B. i == len(x) and x[i] == ","
C. i + 1 == len(x) or x[i] == "," D. i + 1 == len(x) and x[i] == ","
A是“i == len(x) or x[i] == ","”,即当 i等于 x的长度(即处理到字符串结尾)或者当前字符是逗号时,执
行提取数字的操作。因为当 i等于 len(x)时,说明已经处理完所有字符,最后一个字符可能是数字的一部分,
需要提取出来。或者可能是在循环中 i从 0到 len(x),当 i等于 len(x)时,处理最后一个数字。
例如,对于字符串“1,2,3”,当 i=0 时,x[0]是'1',不是逗号;i=1时,x[1]是',',满足条件,提取前面的'1';
i=2时,x[2]是'2',不是逗号;i=3时,x[3]是',',提取'2';i=4时,x[4]是'3',不是逗号;i=5(len(x)=5)时,
i等于 len(x),提取'3',所以选项 A是正确的。
(3)t = [0] * 100 #列表 t,用于统计每个价格出现的次数
2025年 5月六校联盟高三信息技术全解析第 7 页 (共 12 页)
j = 0 # 用于记录当前解析到字符串中的位置
ans = 0 # 用于存储符合条件的商品组合数
# 输入 c 与商品价格字符串 x,x 中每个数字间以逗号分隔,代码略
for i in range(len(x) + 1): # 遍历字符串 x的每个字符,包括结尾
if : # 当遇到逗号或者字符串结尾时
num = ① int(x[i-j:i]) # 提取从 i-j到 i-1的子字符串并转换为整数
t[num] += 1 # 统计该价格出现的次数
j = 0 # 重置 j为 0,准备下一次解析
else:
j += 1 # 如果当前字符不是逗号,增加 j的值
for a in range(100): # 遍历所有可能的价格(0到 99)
b = a - c # 计算与当前价格 a差为 c的价格 b
if 0 <= b < 100 and t[a] > 0 and t[b] > 0: # 如果价格 a和价格 b都存在,确保 b的价格是 0-99之间
ans += ② t[a] * t[b] # 将它们的出现次数相乘并加到 ans中
print("数对总数为:", ans) # 输出符合条件的商品组合数
14.【2025年 5月六校联考信息技术第 14题】
14. 某市智能交通流量监测系统,在 10个主要路口各部署了 1个监测点。智能终端连接传感器与红绿灯,每隔
15分钟采集 1次交通数据并通过网络上传至云端服务器。系统包含以下功能:1.实时监测各路口车流量;2.
根据车流量自动调控红绿灯;3.生成交通流量统计图。请回答下列问题:
(1)下列关于该信息系统中数据传输的说法,正确的是 ▲ (单选,填字母)。
A. 云端服务器直接发送调控指令到红绿灯
B. 数据在云端服务器与交通管理终端的传输是双向的
C. 不同路口的监测数据必须传输到不同的服务器
(2)下列关于该信息系统支撑技术的说法,正确的是 ▲ (多选,填字母)。
A. 不同路口的车流量传感器型号必须一致
B. 车流量的阈值可以存储在监测设备的智能终端中
C. 实时判断交通异常的程序只能在云端服务器运行
D. 若某路口的无线通信模块损坏,可通过光纤直接连接至云端服务器
(3)监测路口 CR05的实时数据提交 URL为:http://203. 56. 78. 9:8000/upload cross=CR05&flow=142,则云
端服务器接收数据的路由应定义为:
@app. route( ▲ )。
(4)系统运行后,发现某.一.个.路口的信号灯长期保持红灯状态,若红绿灯及其与智能终端的连接无故障,
请分析可能原因(答出 2项)。
(5)为改善早高峰(7:00-9:00)拥堵问题,研究人员从系统中抽取部分数据进行分析,2025年 3月 1日的
数据如第 14题图 a 所示。现在研究人员需找出当日早高峰平均车流最大的路口,并绘制该路口 24 小
时车流量变化线形图,如第 14题图 b所示。
第 14题图 a 第 14题图 b
实现该功能的部分 Python程序如下,请选择合适的代码填入划线处:
# 导入相关库,代码略
df = pd. read_excel("traffic_data. xlsx")
df["小时"] = pd. to_datetime(df["时间戳"]). dt. hour #从时间戳中提取小时信息
df1 = df[df["小时"]>=7]
2025年 5月六校联盟高三信息技术全解析第 8 页 (共 12 页)
df1 = ①
df1 = ②
df2 = ③
top = df2. at[0, "路口 ID"]
df1=df[df["路口 ID"]==top] #筛选最拥堵的路口数据
df3=df1. groupby("小时"). 车流量. sum()
④
plt. title(f"路口{top} 24小时车流量变化")
plt. show()
①②③④处可选代码有:
A. df1. sort_values("车流量",ascending=False)
B. df1. groupby("路口 ID",as_index=False). mean()
C. df[df["小时"]<=9]
D. df1[df1["小时"]<=9]
E. plt. plot(df3. index, df3. values)
F. plt. plot(df3. 小时, df3. 车流量)
【答案】
(1)B(2)B、D(3)"/upload"
(4)可能原因:
1.传感器故障:车流量传感器故障,持续上报无车流假数据;
2.软件逻辑错误:控制算法中拥堵阈值设置错误,导致持续红灯。
3.网络故障:该智能终端网络断开,无法接收服务器指令,终端进入安全模式(默认红灯)。
(5)①D②B③A④E
【解析提供】 信息解析组
【解析】(本题考查信息系统和 Pandas)
(1)云端服务器直接发送指令到智能终端,再由智能终端发送指令到红绿灯,则 A错误;在一个信息系统中,
可以把检测数据传输到同一个服务器中,则 C错误。答案选 B。
(2)不同路口的车流量传感器型号可以一致,也可以不一样,区别在于智能终端获取和处理的方式有所不同,
不影响最终结果,则 A错误;车流量的阈值可以直接存储在检测设备的智能终端中,也可以存储在服务器
中,在服务器中进行比较,则 B正确;与选项 B同理判断异常的程序可以写在服务器端也可以写在智能终
端,则 C错误;网络进行数据传输时可以用无线传输介质,也可以使用有线传输介质,则 D正确。
(3)URL为 http://203.56.78.9:8000/upload cross=CR05&flow=142,结合 URL的基本构成可知路由为“/upload”。
(4)由题干可知当前存在执行器显示状态异常,由于红绿灯和智能终端连接无故障,则可能存在传感器故障、
IoT模块(网络)故障等硬件原因,也可能存在软件设计过程中阈值设置错误的问题,则从这两方面进行答题。
(5)根据题干,需要先筛选出早高峰(7:00~9:00)的数据,题目中已经有了 df1=df[df["小时"]>=7]的代码,则还需
筛选小于等于 9点的数据,此时数据存在 df1中,则①处答案为 D.df1[df1["小时"]<=9];接着需要对路口的
进行分组统计,求每个路口车流量的平均值,则②处答案为 B.df1.groupby("路口 ID",as_index=False).mean();
接着在找出车流最大的路口,由 top = df2.at[0, "路口 ID"]可知,当前车流量最大的数据在顶部,则需要进
行降序排序,则③处答案为 A. df1.sort_values("车流量",ascending=False);最后对数据进行绘图,由于在对
“小时”分组时 as_index的参数取默认值,则将小时列转换成 index列,则④处答案为 E. plt.plot(df3.index,
df3.values)。
15.【2025年 5月六校联考信息技术第 15题】
15. 在科学研究中往往会使用超级计算机来进行数据处理。某超级计算机需要根据第二天的预约计划安排计算任
务,预约计划包含项目名称、数据上传时刻和计算所需时长,数据上传之后才能开始计算。为保证计算的正
确率,每个任务开始之后不能中断,计算完成之后才能开始下一个任务。该计算机每天开机 time时刻后,需
关机进行维护。现根据预约计划安排计算任务。
2025年 5月六校联盟高三信息技术全解析第 9 页 (共 12 页)
安排任务的规则为:舍弃 time 时刻内无法完成计算的任务后,若没有等待中的任务,上传时刻最早的任
务安排计算;若有等待中的任务,等待任务中所需时间最短的任务安排计算。
设 time=100,预约计划如第 15题图 a所示。任务 B、E无法在 time 时刻内完成被舍弃,F 最早完成数
据上传开始计算,计算中任务 A、C、D完成数据上传等待计算。F计算完成后,A开始计算。最后的任务
安排为 FACD。请回答下列问题:
项目名称 数据上传时刻 所需时长
A 30 10
B 70 65
C 25 25
D 30 35
E 40 70
F 0 30
第 15题图 a
(1)若将第 15题图 a中项目 E的所需时长改为 5后重新安排计算任务,则任务安排为
▲ 。
(2)定义如下 retain(a)函数,参数 a的每个元素由项目名称、数据上传时刻和所需时长构成。函数的功能是
根据数据上传时刻对 a进行升序排序,同时返回能够在 time 时刻内完成的任务数。
def retain(a, time):
n = len(a)
k = n
i = 0
flag = False
while not flag:
flag = True
c = 0
for j in range(1, k):
if a[j - 1][1] + a[j - 1][2] > time or a[j - 1][1] > a[j][1]:
a[j], a[j - 1] = a[j - 1], a[j]
flag = False
c = j
k = c
i, j = 0, n - 1
while i <= j:
mid = (i + j) // 2
if a[mid][1] + a[mid][2] > time:
j = mid - 1
else:
i = mid + 1
return
① 调用 retain(a)函数,若 time为 100,a为[["A", 0, 30], ["B", 10, 65], ["C", 15, 25], ["D", 30, 80], ["E", 40,
5], ["F", 30, 10]],则加框处代码的执行次数为 ▲ 。
② 划线处应填入的代码为 ▲ (单选,填字母:A. i / B. j / C. mid)。
(3)实现任务安排的 Python程序如下,请在划线处填入合适的代码
def proc(a, m):
h = -1
now = i = 0
task = []
while i < m or h != -1:
if i < m and a[i][1] >= now and h == -1:
①
if now <= time:
2025年 5月六校联盟高三信息技术全解析第 10 页 (共 12 页)
task. append(a[i][0])
i += 1
elif i < m and ② :
if h == -1:
h = i
else:
if a[i][2] < a[h][2]:
a[i][3] = h
h = i
else:
q = p = h
while p != -1 and a[i][2] >= a[p][2]:
q = p
p = a[p][3]
a[q][3] = i
③
i += 1
else:
now += a[h][2]
if now <= time:
task. append(a[h][0])
h = a[h][3]
if now > time:
break
return task
# 读取 time;读取预约计划存入 a列表,每个元素包含项目名称、数据上传时刻和计算所需时长,代
码略
m = retain(a, time)
for i in range(m):
a[i]. append(-1)
ans = proc(a, m)
print(ans)
【答案】
(1)FAEC (1分)
(2)①3 (1分)
②A (1分)
(3)①now = a[i][1] + a[i][2] (2分)
②a[i][1] <= now (2分)
③a[i][3] = p (2分)
【解析提供 1】 信息解析组
【解析】(本题考查数组及链表的综合应用,冒泡排序、二分查找等算法的综合应用)
第(1)小题,考查题意理解。
若将项目 E的所需时长改为 5后重新安排计算任务,处理过程如下:
①任务 B无法在 time 时刻内完成被舍弃;
②完成当前上传时刻最早的任务为 F,所需时长为 30,此期间内任务 A、C、D已经上传;
③完成任务 F后,当前时间为 30,等待中的任务 A所需时长最短,所需时长为 10,此期间任务 E上传,此时等
待中的任务包括任务 C、D、E;
2025年 5月六校联盟高三信息技术全解析第 11 页 (共 12 页)
④完成任务 A后,当前时间为 40,等待中的任务 E所需时长最短,所需时长为 5,此时等待中的任务包括任务
C、D;
⑤完成任务 E后,当前时间为 45,等待中的任务 C所需时长最短,所需时长为 25,此时等待中的任务包括 D;
⑥完成任务 C后,当前时间为 70,等待中的任务 D所需时长为 35,无法在 time时刻内完成。
结合上述分析可知,任务安排为 FAEC;
第(2)小题,考查冒泡排序的优化、二分查找。
①加框处程序表示排序的趟数,用 flag变量表示某趟排序是否发生数据交换,若未发生交换说明数据已经有序,
可以提前结束循环,列表 a需要完成两趟冒泡排序才能完成排序,两趟排序后的下一趟 flag标记未发生数据交换,
故加框处代码的执行次数为 3次;
②完成排序后,无法在 time 时刻内完成的任务会交换到序列的最后。分析排序后的查找算法可知,若当前对分
点元素为无法在 time时刻内完成的任务,则将 j指针移到对分点的左边,否则将 i指针移到对分点的右边。二分
查找结束后,j指针的值为能够在 time时刻内完成的最后一个任务,i指针的值为不能在 time时刻内完成的第一
个任务。因此能够在 time时刻内完成的任务数为 j+1个,即 i个,故应填入的代码选 A;
第(3)小题,考查链表的综合应用。
填空①处对应的情况为:当前等待队列为空且当前遍历项目的数据上传时刻晚于当前时间,因此可以直接处理当
前遍历项目,更新当前时间为当前遍历项目完成的时间,故应填入的代码为 now=a[i][1]+a[i][2];
填空②处对应的情况为:当前遍历项目的数据上传时刻不晚于当前时刻,因此需要根据规则进入等候队列,故应
填入的代码为 a[i][1] <= now;
填空③处表示将当前遍历项目按所需时长升序插入至存储等候队列的链表中,while循环用于遍历找到当前遍历
项目插入的位置为 q与 p之间,因此划线处需要修改当前遍历项目 i的后继节点为 p指向的项目,故应填入的代
码为 a[i][3] = p。
【解析提供 2】 信息解析组
【解析】(本题考查冒泡排序变形、对分查找应用、链表)
(1)F项目完成后,项目 A、D数据已上传,等待计算;A处理所需时长最短,先完成 A项目,完成时间为 40;
C、D、E 项目已上传,等待计算;E处理所需时长最短,先完成 E项目,完成时间为 45;接着完成 C 项
目,完成时间为 70,D项目所需时长为 35,无法在 time 时刻前完成,故答案为:FAEC
(2)①本题考察冒泡排序优化。因为 D项目完成时间为 110,大于 time时刻,故被舍弃。
原始数据:a =[["A", 0, 30], ["B", 10, 65], ["C", 15, 25], ["D", 30, 80], ["E", 40, 5], ["F", 30, 10]]
第一轮完成后:a =[["A", 0, 30], ["B", 10, 65], ["C", 15, 25], ["E", 40, 5], ["F", 30, 10], ["D", 30, 80]]
第二轮完成后:a =[["A", 0, 30], ["B", 10, 65], ["C", 15, 25], ["F", 30, 10], ["E", 40, 5], ["D", 30, 80]]
第三轮完成后:a =[["A", 0, 30], ["B", 10, 65], ["C", 15, 25], ["F", 30, 10], ["E", 40, 5], ["D", 30, 80]],数据无变
化,退出循环,故答案为:3轮。
② 对分查找查找原数组中可以完成的任务,若 a[mid][1] + a[mid][2] <=time,该任务可以被完成;对分查找
退出后,i指向第一个不能完成的任务下标,j指向最后一个可以完成的任务下标,因为需返回的是可以完
成的任务数量,恰好是 i的值,故选 A。
(3)① 本处的状态为:i号任务待处理、该任务到达时间大于等于当前时刻 now、没有等待中的任务;故依顺
序处理 a[i]任务,当前时刻 now更新为:a[i][1] + a[i][2],故答案为:now = a[i][1] + a[i][2]
② 在处理上一任务的过程中,有若干各任务数据已上传,则将这些任务都统一按任务中所需时间升序排列,
放在链表中,等待处理,故到达时间小于等于的都是已上传数据的任务。故答案为:a[i][1] <= now
③ 将 a[i]插入 q与 p节点之间,故答案为:a[i][3] = p
2025年 5月六校联盟高三信息技术全解析第 12 页 (共 12 页)