2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言编程题作弊技巧 全国计算机二级C语言上机编程题详细分析(1)

c语言编程题作弊技巧 全国计算机二级C语言上机编程题详细分析(1)

时间:2023-11-14 05:19:38

相关推荐

c语言编程题作弊技巧 全国计算机二级C语言上机编程题详细分析(1)

请编一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即,某项小于0.0005时停止迭代):

程序运行后,如果输入精度0.0005,则程序输出多少。

注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。

试题源程序如下:

#include <stdio.h>

#include <math.h>

double fun(double eps)

{

}

main()

{ double x;

printf("Input eps:");

scanf("%lf",&x); printf("\neps=%lf, PI=%lf\n",x,fun(x));

}

分析:

(1)本题所用基本算法应为累加。假设累加值放在变量s中,累加项放在变量t中,累加操作由语句s=s+t;来实现。

(2)若称 为第1累加项,则其前的1为第0累加项,其后的一项为第2累加项,按给定的公式可知,从第1累加项开始,后一项的累加项是前一项的值乘以 。所以当前的累加项应当是:t=t*n/(2.0*n+1.0)。表达式右边的t中是前一项的值,表达式左边的t为当前的每累加累加项。请注意,不要写成:t*n/(2*n+1)而进行整除。

(3)若第0累加项的1作为s的初值,语句:s=s+t;执行n次,就把第1到第n项累加到了s中。每进行一次累加,n值增1。

(4)把以上操作放在循环中。按本题规定,当某项小于eps(0.0005)时停止迭代,因此若用while循环,可用t>=eps作为控制循环进行的条件:

while( t>=eps ){ s+=t; n++; t=t*n/(2.0*n+1); }

(5)注意应给所用变量赋适当的初值。

(6)退出循环后,函数的返回值应是:2*s。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。