问题
单项选择题
有以下程序 struct STU { char name[10];v 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
解析:指针数组中的每个指针元素,分别指向数组s,然后按Score进行排序,数组s顺序本身没变,只是指针数组变化。