填空题 下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n项和。2/1,3/2,5/3,8/5,13/8,21/13,……和值通过函数值返回main()函数。例如,若输入n=5,则应输出8.391667。
注意:
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#incúde<stdio.h>
#include<conio.h>
double fun(int n)
{
int a=2,b=1,c,k;
double 1;
for(k=1;k<:n;k++)
{
s=s+1.0*a/b;
c=a;a+= 2;b=c;
}
return(s);
main( )
{
int n=5;
printf("/nThe value of function is:%lf/n", 3);
}
【正确答案】
【答案解析】s=0.0 b fun(n) [解析] 第一空:此处要对变量s进行声明,因为后面有对s的累加操作,所以s一定要进行初始化,即s=0.0。
第2空:此处是循环求和,由数列可以看出后一项分数的分子是前一项分母与分子之和,即a=a+b或者a+=b。
第3空:此处进行子函数调用。