信息技术2026年1月浙江选考
第 7 题
答案与解析
本题解析
参考答案
D
程序分析
i←n-1 → i≠0?
N → 输出c
Y → a[i]<a[i-1]?
Y → 交换a[i]和a[i-1]的值 → c←i → i←i-1
N → i←i-1
i←i-1 → 返回i≠0?i从n-1递减至1,每轮比较a[i]与a[i-1]。只有发生交换时才执行c←i,因此c记录最近一次交换时右侧元素的下标,而不是交换次数。未交换时c保持不变;i减至0后结束扫描,输出最后一次交换留下的c。
解题思路
流程从数组右端向左扫描,依次比较相邻元素,右侧元素较小时交换,使较小值向左移动。这是冒泡排序的一趟扫描,题目没有执行完整排序。
按扫描顺序,发生交换的情况如下:
| i | 交换前比较的值 | 交换后的数组 | c |
|---|---|---|---|
| 7 | 6<9 | 2,3,4,8,5,4,6,9 | 7 |
| 5 | 4<5 | 2,3,4,8,4,5,6,9 | 5 |
| 4 | 4<8 | 2,3,4,4,8,5,6,9 | 4 |
i=6时,6<4不成立,不交换。最后一次交换后,i=3时比较的两个值均为4,严格小于条件不成立;i=2、1时分别比较4与3、3与2,也不交换。因此c最终保持为4。
