使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。 程序运行后,

admin2023-02-27  11

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

    程序运行后,若输入精度0.0005,则程序应输出3.140578。
    注意:部分源程序给出如下。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
    试题程序:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<math.h>
4 double fun(double eps)
5 {
6
7 }
8 void main()
9 {
10    double x;
11    printf("Input eps:");
12    scanf("%1f",&x);
13    printf("\neps=%1f,PI=%1f\n",x,fun(x));
14 }

选项

答案 1 double fun(double eps) 2 { 3 double s=0.0,s1=1.0; 4 int n=1; 5 whlie(s1>=eps) /*当某项大于精度要求时,继续求下一项*/ 6 s=s+s1; /*求和*/ 7 ( s1=s1*n/(2*n+1); /*求多项式的每一项*/ 8 n++; 9 } 10 return 2*s; 11 }

解析 本题考查:通过迭代法求给定多项式的值。迭代法是让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。需要注意变量的数据类型和赋初值操作。
    定义double型变量s,并为其赋初值,用来存放多项式的某一项和最后的总和。从第2项开始,以后的每一项都是其前面一项乘以n/(2*n+1)。程序用s1来表示每一项,用s表示求和后的结果。需注意变量s1和s的初值都为1.0,因为循环变量从第
2项开始累加。
转载请注明原文地址:https://jikaoti.com/ti/aioiFFFM
0

相关试题推荐
随机试题
最新回复(0)