有以下程序(函数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,l,
D) 1,7,3,5,6,2,1,
参考答案:A
解析: 由函数fun(int *a,int n)中语句if(a[j]>a[k])k=j;可知当前k是记录数组中较大数据值所在位置的下标变量,所以该函数的作用是对数组a中的下标为偶数位置的数据进行从大到小的排序,即对a[0],a[2],a[4],a[6]中的数据1,3,5,7进行从大到小的排序,其他位置的数据不变,所以答案为A)。