A-A+
有以下程序: #include <stdio.h> struct STU { char na
问题详情
有以下程序: #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[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf("%d%dn",s[1].Score,p[1]->Score); } 执行后的输出结果是()。
A.550 550
B.680 680
C.580 550
D.580 680请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
解析:本题是按成员变量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。