信息技术来源:浙江七校2026年普通高等学校招生全国统一考试模拟考试
第 14 题
答案与解析
第(1)小题
参考答案
1
乐跑新星要求50公里≤里程<60公里。表中已列出的学生只有陈*的58公里符合条件,60公里属于乐跑先锋。表中省略了部分学生,因此能确定获得乐跑新星的学生至少有1人。
第(2)小题
参考答案
a[data[i][1]] += 1
j >= star
s = 0
程序分析
max_km = max([d[1] for d in data]) #计算最大里程
total = len(data)
master = 80 #乐跑达人最低里程
star = 50 #乐跑新星最低里程
for i in range(len(data)):
①data中每个元素按[姓名,里程]存储,所以data[i][1]是第i个学生的月累计里程。max_km取得全班最大里程,total记录全班人数;for循环逐个访问学生记录。
s, j = 0, max_km
while ②:
s += a[j]
if j == master:
master_rate = s / total * 100
③
j = star + 10
j -= 1
star_rate = s / total * 100j从最大里程开始递减,每轮将a[j]累加到s;当j到达80时,用s除以全班人数计算达人占比。因此a[j]需要保存里程恰好为j公里的学生人数,s累加各里程对应的人数。图中已有90公里的记录,保证本题会经过j=80这一统计位置。
计算达人占比后,分支将j更新为star+10,即60;随后执行分支外的j -= 1,下一轮从59公里开始,跳过60~79公里的先锋区间。循环结束后,再用s计算新星占比。
填空分析
①
每读到一名学生,就应将其里程对应的人数增加1。当前学生的里程是data[i][1],对应的计数位置是a[data[i][1]],因此填写:
a[data[i][1]] += 1
计数前须将a初始化为长度至少为max_km+1、元素全为0的列表;题给片段未展示这一步。
②
新星的里程范围是50~59公里,j递减统计时必须包含50公里,减到49公里后停止。因此填写:
j >= star
star为50,也可写j >= 50。
③
执行到此处时,s已经累加了里程不低于80公里的人数,达人占比也已保存。接下来要单独累计新星人数,须先清除这部分累计值,因此填写:
s = 0
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_zhejiangqixiao_q014
