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) );
}
正确答案: s=0.0 b fun(n) s=0.0 b fun(n) 解析:填空1:根据题目的意思,这里应该是对变量s的声明,注意到后面有对s的累加操作,所以声明之后一定要进行初始化,把s赋值为0。 填空2:根据题目的意思,此处是循环求和,由数列很容易看出后一项的分子是前一项分母与分子之和,即a=a+b或者a+=b。 填空3:由算法可以看出,此处是进行子函数调用。
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) );
}
正确答案: s=0.0 b fun(n) s=0.0 b fun(n) 解析:填空1:根据题目的意思,这里应该是对变量s的声明,注意到后面有对s的累加操作,所以声明之后一定要进行初始化,把s赋值为0。 填空2:根据题目的意思,此处是循环求和,由数列很容易看出后一项的分子是前一项分母与分子之和,即a=a+b或者a+=b。 填空3:由算法可以看出,此处是进行子函数调用。