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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年5月13日
  改错题
  下列给定程序中,函数fun的功能是:s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均埴,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数下是5的倍数,多余部分忽略下计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
  请改正程序中的错误,使其能得出正确结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题 程序:
  #include <stdio.h>
  #define SIZE 20
  int fun(double *s, double *w)
  {
  int k, i;
  double sum;
  for (k=2, i=0; i<SIZE; i++)
  {
  s[i] = k;
  k += 2;
  }
  sum = 0.0;
  for (k=0, i=0; i<SIZE; i++)
  {
  sum += s[i];
  /********found********/
  if (i+1%5 == 0)
  {
  w[k] = sum/5;
  sum = 0;
  k++;
  }
  }
  return k;
  }
  main()
  {
  double a[SIZE], b[SIZE/5];
  int i, k;
  k = fun(a, b);
  printf("The original data:\n");
  for (i=0; i<SIZE; i++)
  {
  if (i%5 == 0)
  printf("\n");
  printf("%4.0f", a[i]);
  }
  printf("\n\nThe result :\n");
  for (i=0; i<k; i++)
  printf("%6.2f ", b[i]);
  printf("\n\n");
  }
  第1处:if (i+1%5 ==0)应改为if ((i+1)%5==0)

相关文章