下列给定程序中,函数fun()的功能是:计算 S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。 例如,当n为5时,函数值应为10.407143。f(x)函数定义如下: 请改正程序中的错误

admin2010-11-26  24

问题 下列给定程序中,函数fun()的功能是:计算
       S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。
   例如,当n为5时,函数值应为10.407143。f(x)函数定义如下:
   
   请改正程序中的错误,使它能得山正确的结果。
   注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include <conio. h>
   #include <stdio. h>
   #include <math. h>
   /**************found***************/
   f (double x)
   {
   if (x==0.0 || x==2.0)
       return 0.0;
   else if (x<0.0)
     return (x-1) / (x-2);
   else
     return (x+1) / (x-2);
   }
   double fun(int n)
   {
     int i;  double s=0.0,y;
     for (i=-n; i<=n; i++)
       { y=f(1.0*i); s+=y;}
   /**************found**************/
     return  s
   }
    main()
   { clrscr();
     printf ("%f\n", fun (5));
   }

选项

答案(1)错误;(1)f(double x) 正确:double f (double x) (2)错误;return s 正确:return s;

解析 该程序的流程是,fun()程序对f (n)项循环累加,fun()程序采用条件选择语句计算函数f(x)的值。本题错误在于未定义函数f(double x)的返回值类型。C语言规定,在未显式声明的情况下,函数返回值默认为int 型。
转载请注明原文地址:https://jikaoti.com/ti/FBkiFFFM
0

随机试题
最新回复(0)