下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前1

admin2010-05-05  46

问题 下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
   请改正函数fun()中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include <stdio.h>
   #define SIZE 20
   fun (double *s, double *w)
   {  int k, i; double sum;
      for(k=2, i=0; i<SIZE; i++)
        {s =k; k+=2;}
      sum=0.0;
      for(k=0, i=0; i<SIZE;i++)
        {sum+=s;
   /*************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);
        }
      printf{"\n\nThe result:\n");
      for(i=0; i<k; i++) printf("%6.2f",b);
      printf("\n\n");
   }

选项

答案错误:if(i+1%5==0) 正确:if((i+1)%5==0)

解析 本题除了考查循环语句以外,其实就是一道简单的数学题,循环条件if(i+1%5==0)是一个标准的语法错误,这跟题目考查的知识点毫无关系,也就是说,做这样的题,只要读懂了题干意思,问题便可迎刃而解。
转载请注明原文地址:https://jikaoti.com/ti/1KkiFFFM
0

最新回复(0)