深耕专业教研,探索前沿技术
信息技术来源:2026年4月稽阳联谊学校高三联考

第 11 题

答案与解析

本题解析

参考答案

C

解题思路

两段循环依次比较相邻元素,并在左大右小时交换,采用冒泡排序的思想。本程序先从左向右、再从右向左各处理一趟,比较范围受x限制。

程序分析

for i in range(len(a)-1-x):
    if a[i]>a[i+1]:
        a[i],a[i+1]=a[i+1],a[i]

列表长度为6,i依次取0至4-x。每次把相邻元素中较大的移到右边,使下标0至5-x范围内的最大值逐步移动到该范围的最右端。

for i in range(len(a)-2,x,-1):
    if a[i]<a[i-1]:
        a[i],a[i-1]=a[i-1],a[i]

第二趟接着处理第一趟形成的列表。i从4递减到x+1,每次比较a[i]与a[i-1]并把较小值移到左边,使下标x至4范围内的最小值移动到下标x处。

分别代入x=0、1、2,每次都从初始列表[5,4,9,0,2,3]开始:

x 第一趟结束后的a 第二趟结束后的a(最终结果)
0 [4,5,0,2,3,9] [0,4,5,2,3,9]
1 [4,5,0,2,9,3] [4,0,5,2,9,3]
2 [4,5,0,9,2,3] [4,5,0,2,9,3]

三种输入的最终结果依次对应A、B、D。C中的[4,5,0,2,3,9]只是x=0时第一趟结束后的状态,第二趟还会将0向左移到首位。