深耕专业教研,探索前沿技术
信息技术来源:浙江省选考科目考试绍兴市适应性试卷(2026年4月)

第 14 题

答案与解析

第(1)小题

参考答案

2

“任意连续 k 个数据”表示每次向后移动一个数据取一组,相邻组可以重叠。6 个数据中,每组取连续 3 个,共有 6-3+1=4 组。
平均值大于 50,等价于三个数据之和大于 3×50=150,可直接比较各组的和,避免平均值取近似数影响判断。

数据位置 三个温度值 总和 平均值是否大于 50
第 1~3 个 49.90、50.10、49.80 149.80 否
第 2~4 个 50.10、49.80、50.20 150.10 是
第 3~5 个 49.80、50.20、49.90 149.90 否
第 4~6 个 50.20、49.90、50.20 150.30 是

共有 2 个平均值大于阈值。本小题只统计超过阈值的平均值个数,不要求这些平均值连续出现。

第(2)小题

参考答案
  1. total = 0

  2. lst[v] = tmp

  3. ave > pt

程序分析

lst = [0.0] * k
i = 0
c = 0
①
while True:
    # 获取实时监测温度值tmp,代码略
    ...
    i = i + 1

lst 有 k 个位置,初值均为 0;i、c 的初值也为 0。每轮接收并处理一个温度值后,i 增加 1,因此处理当前数据时,已经收到 i+1 个温度值。

v = i % k
total = total + tmp - lst[v]
②

v=i % k 按 0、1、…、k-1 循环取值,每隔 k 轮回到同一位置。total 的更新语句加入当前温度 tmp,并减去 lst[v] 中原有的值;空②位于这一计算之后。

if i >= k - 1:
    ave = total / k
    if ③:
        c = c + 1
    else:
        c = 0
    if c >= m:
        # 发出温度过高警报,代码略
        c = 0

i≥k-1 时,已经收到至少 k 个温度值,才计算平均值。空③的条件成立时 c 加 1,否则 c 清零,因此 c 记录连续满足该条件的次数。达到 m 次便报警,并重新从 0 开始计数。

填空分析

①

total / k 用于计算一组数据的平均值,所以 total 需要保存这一组的总和。接收数据前,各位置均为 0,总和也为 0;第一轮更新又会读取 total,须先初始化:

total = 0

②

total 已按“加入 tmp、减去 lst[v] 旧值”更新,接着应把 tmp 存入同一位置:

lst[v] = tmp

这样,k 轮后再次访问该位置时,减去的正是本轮温度。前 k 轮依次填满列表,此后每轮替换最早的数据,使列表保留最近 k 个温度值,total 保持为它们的总和。赋值位于总和计算之后,才能保留本次应减去的旧值。

③

题目要求平均值严格大于阈值时才累计超温次数,填写:

ave > pt

等于或小于阈值时条件为假,进入 else 清零,表示连续超温中断。