2011年计算机二级C语言第七十三套上机题库及答案

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  三、程序题:m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

  例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,

  函数返回的人数应该是4, below中的数据应为: 10、20、30、40。

  注意: 部分源程序在文件PROG1.C文件中。

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  #include

  int fun(int score[], int m, int below[])

  {

  }

  main()

  {int i, n, below[9] ;void NONO ();

  int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;

  n = fun(score, 9, below);

  printf("/nBelow the average score are: ");

  for (i = 0 ; i < n ; i++) printf("%d ", below[i]);

  NONO();

  }

  void NONO ()

  {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

  int i, j, n, below[10], score[10] ;

  FILE *rf, *wf ;

  rf = fopen("in.dat","r");

  wf = fopen("out.dat","w");

  for(i = 0 ; i < 10 ; i++) {

  for(j = 0 ; j < 10 ; j++) fscanf(rf, "%d", &score[j]);

  n = fun(score, 10, below);

  for(j = 0 ; j < n ; j++) fprintf(wf, "%d ", below[j]);

  fprintf(wf, "/n");

  }

  fclose(rf);

  fclose(wf);

  }

  参考答案:

  int fun(int score[], int m, int below[])

  {

  float av=0.0 ;

  int i, j=0 ;

  for(i=0; i

  av /= m;

  for(i=0; i

  if(av>score[i]) below[j++]=score[i];

  return j;

  }

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答