2013年计算机二级C语言上机题库四十六_第3页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年6月7日
 第三题:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  #include <stdio.h>
  #define N 16
  typedef struct
  {
  char num[10];
  int s;
  } STREC;
  void fun ( STREC a[ ] )
  {
  }
  main ()
  {
  STREC s[N]= {{"GA005",85}, {"GA003",76}, {"GA002",69}, {"GA004",85},
  {"GA001",91}, {"GA007",72}, {"GA008",64}, {"GA006", 87},
  {"GA015",85}, {"GA013",91}, {"GA012",64}, {"GA014",91},
  {"GA011",66}, {"GA017",64}, {"GA018",64}, {"GA016",72}};
  int i; FILE *out;
  fun ( s );
  printf ("The data after sorted :\n");
  for (i=0; i<N; i++)
  {  www.Examzz.com
  if ( (i)%4==0 )
  printf ("\n");
  printf ("%s %4d ", s[i].num, s[i].s);
  }
  printf ("\n");
  out=fopen ("out.dat", "w");
  for (i=0; i<N; i++)
  {
  if ( (i)%4==0 && i )
  fprintf (out, "\n" );
  fprintf (out, "%4d", s[i].s);
  }
  fprintf ( out, "\n" );
  fclose (out );
  }
  参考答案第三题:
  void fun ( STREC a[ ] )
  { int i,j;
  STREC t;
  for(i=0; i<N-1; i++)
  for(j=i; j<N; j++)
  if(a[i].s<a[j].s)
  { t=a[i];
  a[i]=a[j];
  a[j]=t;
  }
  }

 


首页 1 2 3 尾页

相关文章