计算机二级c语言机试填空题,我填的空有一个与参考答案不一样但是运...

计算机二级c语言机试填空题,我填的空有一个与参考答案不一样但是运行结果正确
给定程序中,函数fun的功能是计算下式
s=3/2^2-5/4^2+7/6^2+...
直到|(2*n+1)/(2*n)^2|<=10^-3。
例如:若形参e的值为1e-3,函数的返回值为0.551690。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double fun(double e)
{ int i, k; double s, t, x;
s=0; k=1; i=2;
/**********found**********/
x=__1__/4;
/**********found**********/
while(x __2__ e)
{ s=s+k*x;
k=k* (-1);
t=2*i;
/**********found**********/
x=__3__/(t*t);
i++;
}
return s;
}
main()
{ double e=1e-3;
printf("\nThe result is: %f\n",fun(e));
}

第三个空我填的是(t+1),但答案给个是(2*i+1),请问我填的对吗,能给满分吗
这样效率也应该一样吧?

其实这是个纯数学问题,奇数和偶数的问题,i是正整数,t为偶数t=2*i,x为这个多项式一个单项,x的分子为奇数2*i+1,你写为t+1也没错,绝对没有错;但是如果给你是计算机改题,答案库里只有一个答案是(2*i+1),那没办法,当然如果出题的人考虑全面点里边有两个答案,那恭喜你了。当然,可能改题的程序判断结果正确,就不去判断填空,那同样恭喜你了!不过有一点要告诉你,你并没有错,你的效率绝对比答案的高,如果错了,是出题人的错误。GOOD LUCK!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-25
按情况应该是对的,但程序注重的是一致性。对应到上面那个表达式,应该是i。我建议还是写2*i+1吧
第2个回答  2019-03-02
我只能说
第三个空,这样填是正确的,因为前面一句t=2*i;
所以,这两个答案是一致的。
如果,其他空都正确的话,应该可以给满分的。
第3个回答  2012-03-25
应该不行,因为t没给初值。
相似回答