下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。π/4≈1-1/3+1/5-1/7+…例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <math.h>include <stdio.h>float fun(float num){ int s;float n,t, pi;t=1 ;pi=0; n=

题目

下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

π/4≈1-1/3+1/5-1/7+…

例如,程序运行后,输入0.0001,则程序输出3.1414。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <math.h>

include <stdio.h>

float fun(float num)

{ int s;

float n,t, pi;

t=1 ;pi=0; n=1; s=1;

/**************found***************/

while (t>=num)

{

pi=pi+ t;

n=n+2;

s=-s;

/**************found**************/

t=s% n;

}

pi=pi*4;

return pi;

}

main ()

{ float n1, n2;

clrscr ();

printf ("Enter a float number: ");

scanf ("%f", &n1);

n2=fun (n1);

print f (" %6.4 f\n ", n2);

}


相似考题
更多“下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数( ”相关问题
  • 第1题:

    给定程序MODll.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

    例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.141480。

    请改正程序中的错误,使它能得出正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。


    正确答案:(1)t=1; (2)return(2*s);
    (1)t=1; (2)return(2*s); 解析:该题中函数功能是根据公式计算π值。从已给定源程序的main.主函数开始入手,通过键盘输入制定精度,然后通过“printf“\neps=%lf,Pi=%lf\n\n”,x,fun(x));”语句来调用fun函数。

  • 第2题:

    给定程序MODll.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:

    例如,a为2时,平方根值为:1.414214。

    请改正程序中的错误,使它能得出正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。


    正确答案:(1)double fun(double a double x0)(2)if(fabs(x1-x0)>0.0 O001 )
    (1)double fun(double a, double x0)(2)if(fabs(x1-x0)>0.0 O001 ) 解析:(1)主函数中“fun(x,1.0)”,x是double型变量,1.0是浮点数,可知fun有两个double型参数,而第一标识下“dounle”不是C语言关键字,所以应将“double fun(doublea,dounle x0)”改为“double fun(double a,double x0)”。
    (2)第二个标识下的if语句是判断进行递归运算的条件,第二标识下变量x0没有定义,根据题意,这里是判断x1和x0的差值的绝对值是否比0.00001大,所以第二个标识下“ifi[fabs(x1-xo)>0.0

  • 第3题:

    【填空题】下面程序的功能是用公式π2/6≈1/12+1/22+1/32+...+1/n2求π的近似值,直到最后一项的值小于10-6为止,请分析程序填空。 #include<math.h> #include<stdio.h> main() {long i=1; 【1】pi=0; while(i*i>=1e6) {pi=【2】;i++;} pi=sqrt(6.0*pi); printf("pi=%10.6fn",pi); }


    逆序显示26个大写英文字母

  • 第4题:

    下列给定程序中,函数fun的功能是按以下递归公式求函数值。

    例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

    请改正程序中的错误,使它能得到正确结果。

    注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    /*************found****+*******/

    fun(int n);

    {

    int c;

    /*************found********+*****/

    if(n=1)

    c=15;

    else

    c=fun(n-1)*2;

    return(c);

    }

    main()

    {

    int n;

    printf("Enter n:");

    scanf("%d",&n);

    printf("The result:%d\n\n",fun(n));

    }


    正确答案:(1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1)
    (1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1) 解析:错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if垢面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。

  • 第5题:

    给定程序MODll.C中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

    例如,程序运行后,输入0.0001,则程序输出3.1414。

    请改正程序中的错误,使它能输出正确的结果。

    注意:不要改动smain函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)while(fabs(t)>=num) (2)t=s/n;
    (1)while(fabs(t)>=num) (2)t=s/n; 解析:本题中函数的功能是利用公式计算π的近似值,直到最后一项的绝对值小于指定的数。本题解题过程参照一般公式题型的求解过程。