深耕专业教研,探索前沿技术
信息技术来源:2026年5月浙江省普通高中适应性考试(义乌柯桥)

第 7 题

答案与解析

本题解析

参考答案

A

程序分析

i←0,j←0 → i<n;否→输出a;是→a[i]是奇数?;是→交换a[i]和a[j]的值→j←j+1→i←i+1;否→i←i+1;i←i+1后返回i<n。

i、j的初值均为0。流程用i从左到右访问数组中的元素:遇到奇数时,将a[i]与a[j]交换,再令j加1;遇到偶数时不交换,j也不变。两条分支最后都令i加1,继续访问下一个元素。

每遇到一个奇数,就把它放入下标j的位置,并把j移到下一位置,因此j表示已经归入数组前部的奇数个数。所有奇数会按原来的先后次序集中到数组前部,偶数则可能因交换而改变相对次序。

只记录遇到奇数时的交换,表中的j为交换前的值:

i j 交换后的a
0 0 [3, 6, 8, 5, 2, 9, 4, 7]
3 1 [3, 5, 8, 6, 2, 9, 4, 7]
5 2 [3, 5, 9, 6, 2, 8, 4, 7]
7 3 [3, 5, 9, 7, 2, 8, 4, 6]

最后i增加到8,i<n不成立,输出[3, 5, 9, 7, 2, 8, 4, 6]。