深耕专业教研,探索前沿技术
信息技术来源:2026年6月浙江省普通高校招生选考科目考试

第 11 题

答案与解析

本题解析

参考答案

B

程序分析

# 随机产生10个互不相等的整数存入列表a,代码略
m, r = 0, 0
for i in range(len(a)):
    if a[i] < a[m]:
        r = i
    else:
        m = i

m 和 r 初值均为 0,i 依次取 0~9。i=0 时,a[0]<a[0] 不成立,执行 m=0。

此后,若 a[i]<a[m],程序只更新 r,m 不变;否则,因各整数互不相等,必有 a[i]>a[m],程序把 m 改为 i。也就是说,遇到更大的数才更新 m,遇到较小的数则保留它,所以 m 始终是已扫描部分最大值的下标。

r 只在当前元素小于此前最大值时被赋为 i。i 逐次增大,后一次赋值会覆盖前一次,因此 r 记录最后一次出现这种情况的位置;若一直未出现,r 保持初值 0。

最终 r=6,说明 i=6 时进入了 if 分支,而 i=7、8、9 时都不能再进入,否则 r 会被改为更大的下标。因此,a[6] 小于前 6 个元素中的最大值,而 a[7] 又大于这个最大值,必有 a[6]<a[7],③一定为 True。

①、②比较的是指定位置,那个最大值却未必在下标 0 或 5,不能由它们推出相应大小关系。以下两组列表说明它们不一定成立:

列表 a i=0~5 的处理 i=6 i=7~9 的处理 不成立的表达式
[1,2,3,4,5,6,0,7,8,9] 每轮都执行 else,m 依次为 0、1、2、3、4、5,r=0 0<6,r=6,m=5 7、8、9 依次刷新最大值,m 依次为 7、8、9,r 保持 6 ①:1<0 为 False
[0,1,2,3,6,4,5,7,8,9] i=0~4 时 m 依次为 0、1、2、3、4;i=5 时 4<6,r=5,m=4 5<6,r=6,m=4 7、8、9 依次刷新最大值,m 依次为 7、8、9,r 保持 6 ②:5<4 为 False

只有③一定为 True,共 1 个,对应 B。