问题 填空题

下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。
  A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))
例如,若n=l0,则应输出0.192582。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
float fun(int n)

/***********found*************/
int A=1;
int i;
/*************found*************/
for(i=1;i<=n;i++)
A=1.0/(5+A);
return A;

main()

int n;
clrscr();
printf("\nPlease enter n:");
scanf("%d",&n);
printf("A%d=%lf\n”,n,fun(n));

答案

参考答案:(1)错误:int A=1; 正确:float A=1
(2) 错误:for(i=l;i<=n;i++) 正确:for(i=2;i<=n;i++)

解析: 错误1:A为实型数,应定义为float类型。错误2:由题意,A1=1,从A2开始,An=l/(5+A(n-1)),所以循环应从 2开始。

判断题