问题 问答题

下列给定程序中,函数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));

答案

参考答案:

错误;f(double x) 正确:double f (double x)

(2)错误;return s 正确:return s;

解析:

该程序的流程是,fun()程序对f (n)项循环累加,fun()程序采用条件选择语句计算函数f(x)的值。本题错误在于未定义函数f(double x)的返回值类型。C语言规定,在未显式声明的情况下,函数返回值默认为int 型。

选择题
单项选择题