问题
填空题
下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n项和。
2/1,3/2,5/3,8/5,13/8,21/13,…
其值通过函数值返回main()函数。例如,若输入n=5,则应输出8.391667。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#include<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(d);
main()
int n=5;
printf("\nThe value of function is: %1f\n", [ (3) ]);
答案
参考答案:[1] s=0.0
[2] b
[3] fun(n)
解析: 填空1:根据题目的意思,这里应该是对变量s的声明,注意到后面有对s的累加操作,所以声明之后一定要进行初始化,把s赋值为0。
填空2:根据题目的意思,此处是循环求和,由数列很容易看出后一项的分子是前一项分母与分子之和,即a=a+b或者a+=b。
填空3:由算法可以看出,此处是进行子函数调用。