有以下程序: #include <stdio.h> struct STU { char name[10]; int num; int Score; }; main() { struct S

admin2009-01-15  19

问题 有以下程序:    #include   <stdio.h>    struct STU    {  char name[10];       int num;       int Score;    };    main()    {  struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},                         {"WangYin",20043,680},{"SunDan",20044,550},                         {"Penghua",20045,537}}, *p[5],*t;       int i,j;       for(i=0;i<5;i++) p=&s;       for(i=0;i<4;i++)             for(j=i+1;j<5;j++)               if(p->Score>p[j]->Score)               {  t=p;p=p[j];p[j]=t;}       printf("%d%d\n",s[1].Score,p[1]->Score);    }    执行后的输出结果是(    )。

选项 A、550 550
B、680 680
C、580 550
D、580 680

答案4

解析 本题是按成员变量Score的值进行由小到大的排序,程序执行后p[5]中各元素分别为:{{"Penghua",20045,537},{"SunDan",20044,550},{"LiSiGuo",20042,580},{"WangYin",20043,680}, {"YangSan",20041,703}},所以P[1]->Score=550,s[1].Score=580。
转载请注明原文地址:https://kaotiyun.com/show/XpHp777K
0

相关试题推荐
最新回复(0)