问题
单项选择题
以下程序(函数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。