填空题
编写函数fun(),其功能是计算:
s=ln(1)+ln(2)+ln(3)+…+ln(m)
s的平方根作为函数值返回。
在C语言中,可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。
例如,若m的值为20,则fun函数值为6.506583。
注意:部分源程序给出如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数:fun()的花括号中填入你编写的若干语句。
试题程序
#include
<stdlib.h>
#include <conio.h>
#include
<stdio.h>
#include <math.h>
double fun(int
m)
{
}
void main()
{ printf("% f/n", fun(20));
}
【正确答案】double fun(int m)
{ int i;
double s=0.0;
for(i=1; i<=m; i++)
s=s+log(i);/*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)* /
return sqrt(s); /*对s求平方根并返回* /
}
【答案解析】[解析] 本题考查:计算表达式的值运用for循环语句通过累加操作求和;平方根函数sqrt()的使用。首先计算从1~m的对数的和,因此循环变量的范围是1~m,每次循环都进行一次累加求和。该题需要注意的是,log函数的形式参数应当为double型变量,而用于循环的基数变量为整数,需要进行强制转换。在返回时求出平方根。