若有以下程序:
#include< stdio.h >
void fun(int a[],int n)
{
int i,j,t;
for(i=1;i< n;i+ =2)
for(j=i+2;j< n;j+ =2)
if(a[i] >a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
main( )
{
int c[10]={10,9,8,7,6,5,4,3,2,1},i;
fun(c,10);
for(i=0;i< 10;i+ +)
printf(″%d,″,c[i]);
printf(″\n″);
}
则程序的输出结果是( )。
【正确答案】
D
【答案解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1。fun(c,10);语句调用fun函数,fun函数的功能是将一维数组偶数位元素的数值由小到大排序,最后将排好序的新的一维数组进行输出、故D选项正确。