有以下程序 #include <stdio.h> struct S{int n; int a[20]; }; void f(struct S *p) { int i,j, t; for (i

admin2020-01-10  23

问题 有以下程序
     #include <stdio.h>
     struct S{int  n;  int  a[20];  };
     void f(struct 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

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

最新回复(0)