以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。 #include void f(int b[], int n, int flag) { int i,j,t; for (i=0; i

admin2015-07-28  26

问题 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。
#include
void f(int b[], int n, int flag)
{
int i,j,t;
for (i=0; ifor (j=i+1; jif (flag ? b>b[j] : b{ t=b; b=b[j]; b[j]=t; }
}
main()
{
int a[10]={5,4,3,2,1,6,7,8,9,10}, i;
f(&a[2], 5, 0);
f(a, 5, 1);
for (i=0; i<10; i++)
printf("%d,", a);
}
程序运行后的输出结果是( )。

选项 A、3,4,5,6,7,2,1,8,9,10,
B、1,2,3,4,5,6,7,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,

答案A

解析 根据题意说明,被调函数"f(&a[2], 5, 0);"将数组a的第3个元素到第7个元素进行从大到小排序,执行完毕后a[10]={5,4,7,6,3,2,1,8,9,10};被调函数"f(a,5,1);"将数组a的第1个元素到第5个元素进行从小到大排序,执行完毕之后a[10]= {3,4,5,6,7,2,1,8,9,10},所以输出结果为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/MOJp777K
0

最新回复(0)