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

admin2009-01-15  17

问题 以下程序中函数f的功能是: 当flag 为1时,进行由小到大排序;当flag 为0时,进行由大到小排序。void f(int b[], int n, int flag){int i, j, t;    for (i=0; i<n-1; i++)        for (j=i+1; j<n; j++)            if(flag ? b[!]>[j]: b<b[j])            { 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、1,2,3,4,5,6,7,8,9,10,
B、3,4,5,6,7,2,1,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,

答案2

解析 题目中先后两次调用了函数f()。第1次,使用参数“&a[2],5,0”表示从数组a下标为2的元素开始,对其后的5个元素进行由大到小排序。所以排序结果是{5,4,7,6,3,2,1,8,9,10)。第2次,使用参数“a,5,1”表示从数组a的首元素开始,对其后5个元素进行由小到大排序。所以排序结果是{3,4,5,6,7,2,1,8,9,10)。故本题应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/BhXp777K
0

最新回复(0)