第三套试题
一、程序修改考试题(8分)
给定程序中的函数fun的功能是:计算
S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。例如,当n为5时,函数值应为:10.407143。
(x+1)/(x-2) x>0
f(x)= 0 x=0 或 x=2
(x-1)/(x-2) x<0
请改正函数f和fun中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
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;}
return s
}
main ( )
{ clrscr( );
printf("%f\n", fun(5) );
}
二、程序设计考试题(12分)
编写函数fun,它的功能是计算: s = [ln(1)+ln(2)+ln(3)+…+ln(m)]0.5
在C语言中可调用log(n)函数求ln(n)。Log函数的引用说明是:double log(double x);
例如,若m = 20,fun函数值为6.506583。
注意:请刎改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#include
double fun( int m )
{
}
main()
{ printf("%f\n", fun(20));
}