问题 单项选择题

有以下程序: #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%d\n",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。

单项选择题 A1/A2型题
填空题