选择题
有以下程序:
#include<stdio.h>
void fun(int a[],int n,int flag)
{ int i=0,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag)
{ if(a[i]<a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
}
else
{ if(a[i]>a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
}
}
main()
{ int c[10]={7,9,10,8,3,5,1,6,2,4},i;
fun(c,4,1);
fun(c+4,6,0);
for(i=0;i<10;i++)printf('%d,',c[i]);
printf('\n');
}
程序运行后的输出结果是______。
【正确答案】
C
【答案解析】fun()函数的作用是定义了冒泡法排序,flag控制升序(0)或者降序(1),n为参与排序的元素个数,a为数组的起始地址。因此,fun(a,4,1)函数即将数组的前4个数据降序排序,fun(a+4,6,0)函数是对数组的第4项后的6个元素进行升序排序。故结果为10,9,8,7,1,2,3,4,5,6。答案为C选项。