niusouti.com

下列给定程序中,函数 fun() 的功能是:计算并输出下列级数的的N项之和SN,直到SN+1大于q为止,q的值通过形参传入。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值为50.0,则函数值为49.394948。请改正程序中的错误,使它能得出正确的结果。注意;不要改动main 函数,不得增行或删行,也不得更改程序的结构.试题程序:include <conio.h>include <stdio. h>/**************found***************/double fun(d

题目

下列给定程序中,函数 fun() 的功能是:计算并输出下列级数的的N项之和SN,直到SN+1大于q为止,q的值通过形参传入。

SN=2/1+3/2+4/3+(N+1)/N

例如,若q的值为50.0,则函数值为49.394948。

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

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

试题程序:

include <conio.h>

include <stdio. h>

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

double fun(double q)

{ int n; double s,t;

n=2;

s=2.0;

while (s<=q)

{

t=s

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

s=s+ (n+1)/n;

n++;

}

printf ("n=%d\n ", n);

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

return s;

}

main ()

{ clrscr();

printf ("%f\n ",fun (50));

}


相似考题
参考答案和解析
正确答案:(1)错误:double fun (double q) 正确:double fun (int q) (2)错误:s=s+(n+1)/n; 正确:s=s+(double)(n+1)/n; (3)错误:return s; 正确:return t;
(1)错误:double fun (double q) 正确:double fun (int q) (2)错误:s=s+(n+1)/n; 正确:s=s+(double)(n+1)/n; (3)错误:return s; 正确:return t; 解析:该程序中多次出现了函数调用过程中定义混乱的错误,关于类似问题,我们在前面的试题中已经做过比较详细的解释,主要是对基础知识的把握。在这里我们再对函数调用规则做一简单说明。
C语言规定,在以下几种情况下可以不在调用函数前对被调用函数做类型说明。
(1)如果函数的值(函数的返回值)是整型或字符型,可以不必进行说明,系统对它们自动按整型说明。但为清晰起见,建议都加以说明为好。
(2)如果被调用函数的定义出现在主调函数之前,可以不必加以说明。因为编译系统已经先知道了已定义的函数类型,会自动处理的。也就是说,将被调用的函数的定义放在主调函数之前,就可以不必另加类型说明。
(3)如果已在所有函数定义之前,在文件的开头,在函数的外部已说明了函数类型,则在各个主调函数中不必对所调用的函数再做类型说明。
除了以上3种情况外,都应该按上述介绍的方法对所调用函数的返回值做类型说明,否则编译时就会出现错误。
更多“下列给定程序中,函数 fun() 的功能是:计算并输出下列级数的的N项之和SN,直到SN+1大于q为止,q的值 ”相关问题
  • 第1题:

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

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

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

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


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

  • 第2题:

    请教:2016年计算机二级考试C++模拟试题简答题1答案

    请编写函数fun,其功能时:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。

    Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n)


      .double fun(double x)

      {double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;

      int n=1;

      do

      {s0=s1;

      sum+=s0;

      t*=n;

      p*=(0.5-n+1)*x;

      s1=p/t;

      n++;}while(fabs(s1-s0)>1e-6);

      return sum;}

  • 第3题:

    给定程序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; 解析:本题中函数的功能是利用公式计算π的近似值,直到最后一项的绝对值小于指定的数。本题解题过程参照一般公式题型的求解过程。

  • 第4题:

    请编写一个函数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中去。

  • 第5题:

    给定程序MODll.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。

    例如,若n=5,则应输出:8.391667。

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

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


    正确答案:(1)double fun(int n) (2)s=s+(double)a/b;
    (1)double fun(int n) (2)s=s+(double)a/b; 解析:本题中函数的功能是求出分数序列的前n项之和。首先根据题干中给出的公式推出每一项之间的关系,求出每一项的表达式,然后求得数列的和。每一项的分母是前一项的分子,分子是前一项分子和分母的和。