有以下程序struct STU{char name[10];int num;int Score;};main(){ struct STU s[5]={{"YangSan"

题目

有以下程序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 %d\n",s[1].Score,p[1]->Score);}程序运行后的输出结果是A.550 550 B.580 550 C.680 680 D.580 680

参考答案和解析
正确答案:B
本题实际上是按成员变量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。故本题答案为B。
更多“有以下程序struct STU{char name[10];int num;int Score;};main(){ struct STU s[5]={{"YangSan" ”相关问题