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

第 11 题

答案与解析

本题解析

参考答案

D

程序分析

arr = [0] * 7
arr[0] = int(input())
for i in range(3):
    v = arr[i]
    s = random.randint(0, 1)    # 随机产生0或1
    ...

数组初始有 7 个元素,输入值存入 arr[0]。循环依次取 i=0、1、2,每轮读取 arr[i],并随机取 s=0 或 1;后两轮使用的数组元素可能已在前一轮被更新。

if v % 2 == s:
    a = v // 2 + s
else:
    a = v // 2 - s

令 t=v//2。s=0 时,无论进入哪个分支都有 a=t;s=1 时,v 为偶数则 a=t-1,v 为奇数则 a=t+1。

arr[2 * i + 1] = a
arr[2 * i + 2] = 2 * (v // 2) - a

每轮把 a 和 2t-a 写入两个后续位置,二者的和固定为 2t。i=0 时生成 arr[1]、arr[2],i=1 时用 arr[1] 生成 arr[3]、arr[4],i=2 时用 arr[2] 生成 arr[5]、arr[6]。v 为偶数时,生成的数对只能是 (t,t) 或 (t-1,t+1);v 为奇数时,只能是 (t,t) 或 (t+1,t-1)。

选项分析

A

可能。16 生成 (8,8),两个 8 均生成 (4,4),三轮都取 s=0 即可。

B

可能。16 生成 (8,8),两个 8 均生成 (3,5),三轮依次取 s=0、1、1 即可。

C

可能。16 生成 (7,9),7 生成 (4,2),9 生成 (5,3),三轮都取 s=1 即可。

D

不可能。前两轮可生成 (7,9) 和 (3,3),但最后一轮 v=9,生成的两个数之和必须是 2×(9//2)=8。选项中的 (4,5) 之和为 9,不符合程序约束。