有以下程序: #include<stdio.h> stmct S{int n;int a[20];}; void f(stmct S*p) {int i,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n;j++) if

admin2020-01-10  34

问题 有以下程序:
#include<stdio.h>
stmct S{int n;int a[20];};
void f(stmct S*p)
{int i,j,t;
for(i=0;i<p->n-1;i++)
for(j=i+1;j<p->n;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<s.n;i++)printf("%d,",s.a);
}
程序运行后的输出结果是(    )。

选项 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

解析 结构体。中n代表数组的实际长度。a是个定长数组。函数f()对结构体s内的a数组元素使用冒泡法进行递增排序。因此量终数组的元素是一个递增序列。故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/AxG0FFFM
0

最新回复(0)