问题 单项选择题

以下程序(函数fun只对下标为偶数的元素进行操作)运行后的输出结果是
#include<stdio.h>
void fun(int *a, int n)
 int i, j, k, t;
 for(i=0; i<n-1; i+=2)
  k=i;
  for(j=i; j<n; j+=2) if(a[j]>a[k]) k=j;
 t=a[i]; a[i]=a[k]; a[k]=t;
 

main()
int aa[10]=1, 2, 3, 4, 5, 6, 7, i;
fun(aa, 7);
for(i=0; i<7; i++) printf("%d, ", aa[i]);
printf("\n");

A) 7,2,5,4,3,6,1
B) 1,6,3,4,5,2,7
C) 7,6,5,4,3,2,1
D) 1,7,3,5,6,2,1

答案

参考答案:A

解析: 本题考查的是选择排序法。函数fun中,变量i从0开始,每次增加2,变量j从i开始,每次也是增加2,所有循环中只对偶数下标的元素进行了处理。函数fun是一个典型的选择排序法,只不过只对偶数下标的元素进行降序排列,奇数下标的元素不变。发现这一特点后,可以直接写出最后的结果7,2,5,4,3,6,1。

单项选择题
单项选择题