问题 单项选择题

有以下程序  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顺序本身没变,只是指针数组变化。

单项选择题
单项选择题