niusouti.com

请编写函数fun,其功能是:计算并输出下列多项式的值:例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

题目

请编写函数fun,其功能是:计算并输出下列多项式的值:

例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。

注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


相似考题
参考答案和解析
正确答案:
解析:该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。
更多“ 请编写函数fun,其功能是:计算并输出下列多项式的值:例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。请勿改动主函数ma”相关问题
  • 第1题:

    请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。

    例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    long fun(int n)

    {

    }

    main()

    {

    int n;

    long sum;

    printf("Input n:");

    scanf("%d",&n);

    sum=fun(n);

    printf("sum=%ld\n",sum);

    }


    正确答案:long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ }
    long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ } 解析:本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。

  • 第2题:

    请编写函数fun(),该函数的功能是:计算并输出

    S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)

    例如,若主函数从键盘给n输入20后,则输出为

    s=534.188884。

    注意;部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。

    试题程序:

    include <math. h>

    include <stdio. h>

    double fun(int n)

    {

    }

    main()

    {

    int n;

    double s;

    printf("\n\nInput n: ");

    scanf ("%d", &n);

    s=fun (n)

    printf ("\n\ns=%f\n\n", s);

    }


    正确答案:double fun(int n) { int i; double s=0.0s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; }
    double fun(int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i,0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; } 解析:我们先用数学的思路读懂该程序,并用1个字符表示“()”内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5次方(它还是1),第2项相当于第1项的值加上200.5次方,第3项相当于第2项的值加上30.5次方,…,依次类推。函数pow (x,y)的功能是求出x的y次方,该函数已在库函数math. h>中定义(即可直接使用)。要程序中用s来表示总的结果,每1次循环加1次s1即加1项。

  • 第3题:

    请编写函数fun,其功能是:计算并输出

    例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。

    注意:要求n的值大于1但不大于100。

    部分源程序在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是对题干中给出的多项式的求解。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。

  • 第4题:

    请编写函数fun(),其功能是:计算并输出下列多项式值。

    S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+l/2n)

    例如,若主函数从键盘给n输入12后,则输出为 S=3.775958。

    n的值要求大于1但不大于100。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    double fun(int n)

    {

    }

    main()

    {

    int n;

    double s;

    printf("\nlnput n:");

    scanf("%d",&n);

    s=fun(n);

    printf("\ns=%f\n",s);

    }


    正确答案:double fun(int n) { int i; double s=0.0; for(i=1;i=n;i++) /*计算S=(1+l/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)*/ s=s+(1.0/(2*i-1)+1.0/(2*i)); return s; }
    double fun(int n) { int i; double s=0.0; for(i=1;i=n;i++) /*计算S=(1+l/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)*/ s=s+(1.0/(2*i-1)+1.0/(2*i)); return s; } 解析:本题中s=s+(1.0/(2*i-1)+1.0/(2*i));语句是用C程序去表达题目中的每一项,这是关键,其他问题不难理解。

  • 第5题:

    请编写函数fun(),其功能是计算并输出下列多项式的值: F=1+1/1!+1/21+1/31+1/41+…+1/m! 例如,若主函数从键盘给m输入5,则输出为F=2.716667。 注意:m的值要求大于1但不大于100。部分源程序给出如下。 请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。 试题程序:


    正确答案:

    【解析】该程序的功能是计算并输出多项式的值。该题的解题思路是根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。
    根据题干中给出的数列,推出每一项是阶乘的倒数,所以首先在循环中求得每一项的阶乘。其中阶乘的计算公式
    定义为:
    m!=m*(m=1)*(m=2)*…*1(m>1)
    m!=1(m=1)
    公式分为参数m是1和大于1的两种情况,例如.1的阶乘1!=1;5的阶乘5!=5*4*3*2*1。
    然后求得阶乘分之一的累加和。