程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存

admin2013-04-02  28

问题 程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include                             
#include  
struct student {
  long sno;
  char name[10];
  float score[3];
};
void fun(struct student a[], int n)
{
/**********found**********/
【1】 t;
  int i, j;
/**********found**********/
  for (i=0; i<【2】; i++)
    for (j=i+1; j/**********found**********/
      if (strcmp(【3】) > 0)
      {t = a; a = a[j]; a[j] = t;}
}
main()
{struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78},{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};
  int i, j;
  printf("\n\nThe original data :\n\n");
  for (j=0; j<4; j++)
  {printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);
     for (i=0; i<3; i++) printf("%6.2f ", s[j].score);
     printf("\n");
  }
  fun(s, 4);
  printf("\n\nThe data after sorting :\n\n");
  for (j=0; j<4; j++)
  {printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);
     for (i=0; i<3; i++) printf("%6.2f ", s[j].score);
     printf("\n");
  }
}

选项

答案 struct student n-1 a[i].name,a[j].name

解析 第一空:由“t=a; a=a[j]; a[j]=t”可知,t是student结构体变量,故第一空的变量定义为“struct student”。
第二空:由“for (j=i+1; j第三空:“if (strcmp(__3__)>0)”是比较两个姓名的大小,由审题分析可知,如果a.name大于a[j].name,那么需要交换,故第三空处为“a.name,a[j].name”。
转载请注明原文地址:https://jikaoti.com/ti/Pnn0FFFM
0

最新回复(0)