下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))例如,若p=10,则应输出0.617977。请改正程序中的错误,使它能得出正确的结果。注意:不要改动mah函数,不得增行或删行,也不得更改程序的蛄构.试题程序:include <conio.h>include <stdio.h>/**************found********************/iht fun(iht n){

题目

下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))

例如,若p=10,则应输出0.617977。

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

注意:不要改动mah函数,不得增行或删行,也不得更改程序的蛄构.

试题程序:

include <conio.h>

include <stdio.h>

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

iht fun(iht n)

{ float A=l;inti;

/**************foudn********************/

for(i=2;i<n;i++)

A=1.0/(i+A);

return A;

}

main ()

{ int n;

clrscr ();

printf("\nPlease enter n: ");

$canf ("%d", &n);

printf ("A%d=%lf\n", n, fun (n));

}


相似考题
更多“下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。 A1=1,A2=1/(1+A1),A3=1/(1+ ”相关问题
  • 第1题:

    下列给定程序中,函数proc的功能是根据整型形参n,计算如下公式的值: Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn) 例如,n中的值为l0,则应输出0.817962。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdiO h> double proc(int n) { double y=1.0; //****found**** int J=1; . int i; for(i=2;i<=n;i++) { j=-l*j;//****found**** y+=1/(i*i); } return(y); } void main { int n=10: system("CLS"): printf("\nThe result is%1f\n",proc(n)); }


    正确答案:
    (1)错误:int j=1;正确:double j=1.0;
    (2)错误:y+=1/(i*i);正确:y+=j/(i*i);
    【解析】由函数proc可知,变量j的作用是控制每一项符号的变化,并且作为运算的分子,应改为double型变量。因此,“int j=1;”应改为“double j=1.0;”。变量y中存放多项式的值,多项式中的每一项符号由变量j决定。因此,“y+=1/(i*i);”应改为“y+=j/(i*i);”。

  • 第2题:

    给定程序MODll.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。

    例如,若m中的值为:5,则应输出:0.536389。

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

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


    正确答案:(1)for(i=2; i=m; i++)(2)y-=1.0/(i*i);
    (1)for(i=2; i=m; i++)(2)y-=1.0/(i*i); 解析:该程序功能是根据题目要求计算公式。从已给定源程序的main主函数开始入手,“printf("\nThe result is%lfin",fun(n));”语句中的fun(n)将参数n传给函数double fun(int m)中的m,实现公式的计算结果。

  • 第3题:

    下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值。

    例如,若n=12,则应输出0.618026。

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

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

    试题程序:


    正确答案:

    (1)错误:intproc(intn)
    正确:floatproc(intn)
    (2)错误:for(i=2;i<n;i++)
    正确:for(i=2;i<=n;i++)
    【解析】由主函数中的调用以及函数proc()的返回值可知,函数proc()的返回值类型应为float型数据。因此,“intproc(intn)”应改为“floatproc(intn)”;由题目中所给公式可知,循环中应该包含n的值,因此,“for(i=2;i<n;i++)”应改为“for(i=2;i<=n;i++)”。

  • 第4题:

    下列给定程序中,函数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));

    }


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

  • 第5题:

    给定程序MODll.C中函数fun的功能是:根据整型形参m,计算如下公式的值。

    例如,若m中的值为:5,则应输出:1.463611。

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

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


    正确答案:(1)for(i=2; i=m; i++)(2)y+=1.O/(i*i);
    (1)for(i=2; i=m; i++)(2)y+=1.O/(i*i); 解析:该题中函数功能是计算公式的值。其中,公式中涉及在循环中对各项的计算及累加求和。从已给定源程序的main主函数开始入手,“printf(〝\nThe result is%1f\n〞,fun(n));”语句中调用fun函数,计算公式的值。