有以下程序 #include struct S{int n; int a[20]; }; void f(struct S *p) { int i,j, t; for (i=0; in-1; i++) for (j=i+1; jn; j++) if (p-

admin2015-07-28  27

问题 有以下程序
#include
struct S{int n; int a[20]; };
void f(struct S *p)
{ int i,j, t;
for (i=0; in-1; i++)
for (j=i+1; jn; j++)
if (p->a > p->a[j]) { t= p->a; p->a = p->a[j]; p->a[j] = t; }
}
main()
{ int i; struct S s={10, {2,3,1,6,8,7,5,4,10,9}};
f(&s);
for (i=0; i);
}
程序运行后的输出结果是( )。

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

答案A

解析 函数f()将结构体成员的数组a中的前n个数据按照从小到大的顺序排列,所以调用f(&s)结束后,输出数组a的数据为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/Q7Jp777K
0

最新回复(0)