2013年计算机二级C语言上机题库九_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年4月7日
 改错题
  下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8名学生的成绩:
  80.5 60 72 90.5 98 51.5 88 64
  则低于平均分的学生人数为4(平均分为:75.5625).
  请改正程序中的错误,使程序能统计出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:#include <conio.h>
  #include <stdio.h>
  #define N 20
  int fun(float *s, int n, float *aver)
  {
  float ave, t = 0.0;
  int count = 0, k, i;
  /********found********/
  for (k=0; k<n; k++)
  t = s[k];
  ave = t/n;
  for (i=0; i<n; i++)
  if (s[i] < ave)
  count++;
  /********found********/
  *aver = &ave;
  return count;
  }
  main()
  {
  float s[30], aver;
  int m, i;
  printf("\nPlease enter m: ");
  scanf("%d", &m);
  printf("\nPlease enter %d mark :\n ", m);
  for (i=0; i<m; i++)
  scanf("%f", s+i);
  printf("\nThe number of students : %d\n", fun(s, m, &aver));
  printf("Ave=%f\n", aver);
  }
  第1处:t=s[k];应改为t+=s[k];
  第2处:*aver=&ave;应改为*aver=ave;

相关文章