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

admin2009-04-15  22

问题 有以下程序    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=&s;          for(i=0;i<4;i++)          for(j=i+1;j<5;j++)          if(p->Score>p[j]->Score)           {t=p;p=p[j];p=t;}            printf("%d%d\n",s[1].Score,p[1]->Score);    }    执行后输出结果是

选项 A、550550
B、680680
C、580550
D、580680

答案4

解析 本题中首先定义了结构体类型STU,该结构体由一个长度为10的字符数组、两个整型变量num和Score组成。在主函数中,定义了一个长度为5的结构体数组s并赋初值,一个指针数组p和一个指针变量t,接着将数组s中各元素的地址依次赋给指针数组p中的各成员。然后通过两个for循环将数组p按Score的值从小到大的顺序排列。因此最后输出的p[1]->Score的值为550,而数组s[1].Score的值为580。
转载请注明原文地址:https://kaotiyun.com/show/HoWp777K
0

最新回复(0)