下列给定程序中,函数fun()的功能是:传入一个整数m,计算如下公式的值。t=1/2-1/3-…-1/m例如,若输入5,则应输出-0.283333。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>double fun(int m){double t=l.0;int i;for (i=2; i<=m; i++)/*************found************

题目

下列给定程序中,函数fun()的功能是:传入一个整数m,计算如下公式的值。

t=1/2-1/3-…-1/m

例如,若输入5,则应输出-0.283333。

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

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

试题程序:

include <conio.h>

include <stdio.h>

double fun(int m)

{

double t=l.0;

int i;

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

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

t=l.0-1/i;

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

}

main ( )

{int m;

clrscr ();

printf ("\nPlease enter 1 integer numbers

: In");

scanf ("%d", &m);

printf("\n\nThe result is %lfln",

fun (m));

}


相似考题
更多“下列给定程序中,函数fun()的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-…-1/m 例如,若输 ”相关问题
  • 第1题:

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

  • 第2题:

    给定程序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函数,计算公式的值。

  • 第3题:

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

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

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

    注意:部分源程序在文件MODll.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:
    【参考答案】(1)for(i=2;i<=m;i++)(2)Y一=1.0/(i*i);【解题思路】(1)使用for循环计算公式,必须计算到m,所以应改为foKi=2;i<=m;i++)。(2)在除法运算中,如果除数和被除数都是整数,那么所除结果也是整数,因此应改为Y一=1.0/(i*i)。

  • 第4题:

    给定程序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,实现公式的计算结果。

  • 第5题:

    下列给定程序中,函数proc()的功能是:传人一个整数n,计算如下公式的值。 t=1/2-1/3-…-1/n 例如,若输入3,则应输出0.166667。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:
    (1)错误:t=1.0-1/i;
    正确:t-=1.O/i;
    (2)错误:;
    正确:returnt;
    【解析】从题目中的公式可知,整数rl每增加1,其结果为上一次的结果减1/i,因此,“t=1.0-1/i;”应改为“t-=1.0/i;”;由函数的定义可知,函数proc()要把最后所得到的结果返回给主函数,因此要在函数proc()最后加上“returnt;”。