问题 填空题

下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-…-l/(m×m)
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
double fun(int m)
double y=1.O;
int i;
/*************found**************/
for(i=2;i<m;i++)
/************found**************/
y-=1/ (i*i);
return(y);

main()
int n=5;
clrscr();
printf("\nThe result is %1f\n", fun(n));

答案

参考答案:错误:for(i=2;i<m;i++) 正确:for(i=2;i<=m;i++)
(2) 错误:y-=1/(i*i); 正确:y-=1.0/(i*i);

解析: 该题是一道简单的计算题,循环条件for(i=2;i<m;i++)中忽略了i=m时的一种情况,因为题目中i是从2到m的一个计算公式,y-=1/(i*i);的错误很明显,是语法错误,由定义double y=1.0可知,应该是y-=1.0/(i*i);,而非y-=1/(i*i);。

填空题
单项选择题