浙江高中技术 · 每一道题,认真读懂
信息技术2026年1月浙江选考

第 12 题

数组

答案与解析

本题解析

参考答案

D

程序分析

i=1
for j in range(1,len(a)):
    if a[j]<a[0]:
        a[i],a[j]=a[j],a[i]
        i+=1

j从下标1开始向后扫描,循环中的交换只涉及下标i和j,因此a[0]始终保持初始值,作为比较的基准值。

遇到小于基准值的元素,就把它交换到下标i处,再将i加1;不小于基准值时,i不变。因此下标1至i-1逐步收集小于基准值的元素,i指向下一个收集位置。扫描结束后,下标i及其后的元素均不小于基准值。

a[0],a[i-1]=a[i-1],a[0]

最后将基准值放到下标i-1。若存在较小元素,原来下标i-1处的较小元素被换到下标0;若不存在较小元素,则i=1,本次是a[0]与自身交换。因此最终基准值左侧的元素都小于它,右侧的元素都不小于它,两侧内部不一定有序。

选项分析

A

可能。2位于结果数组的首位,右侧元素均大于2。初始数组取[2,4,3,5,6,9,7]时,循环不发生交换,最后a[0]与自身交换,即可得到题设结果。

B

可能。5左侧的2、4、3均小于5,右侧的6、9、7均大于5。初始数组取[5,4,3,2,6,9,7]时,4、3、2依次与自身交换,i变为4;最后交换a[0]与a[3],得到题设结果。

C

可能。6左侧的2、4、3、5均小于6,右侧的9、7均大于6。初始数组取[6,4,3,5,2,9,7]时,4、3、5、2依次与自身交换,i变为5;最后交换a[0]与a[4],得到题设结果。

D

不可能。结果中7位于末尾,其左侧存在大于7的9,违反了基准值左侧元素都小于基准值的关系。具体而言,数组中小于7的元素只有2、4、3、5、6,共5个;若初始a[0]为7,循环结束时i=6,最后7应被放到下标5,而题设结果中7在下标6。