单选题
有以下程序#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,10,0);fun(c,5,1);for(i=0;i<10;i++)printf("%d,",C[i]);}程序运行结果正确的是( )。
【正确答案】
B
【答案解析】解析:题意中,fun()函数的作用是:将数组a中,前n个元素,按照nag来排序,当nag为true(非0)时,降序排列;当nag为false(0)时,升序排列;main()函数中,两次调用fun()函数,第一次传入数组元素个数为10,flag为0,所以第一次fun()函数的调用,将数组c中的前10个元素升序排列;第二次传入数组元素个数为5,flag为1,所以第二次fun()函数的调用,将数组c中的前5个元素降序排列,两次调用后,数组c的元素顺序如下:5,4,3,2,1,6,7,8,9,10,本题答案为B。