niusouti.com

下列给定程序中,函数fun()的功能是;求S的值。设 S=(22/1*30))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2k-1)*(2k+1))例如,当k为10时,函数的值应为1.533852。请改正程序中的错误,使它能得出正确的结果。注童;不要改动main 函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio. h>include <stdio. h>include <math.h >/**************found************

题目

下列给定程序中,函数fun()的功能是;求S的值。设 S=(22/1*30))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2k-1)*(2k+1))

例如,当k为10时,函数的值应为1.533852。

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

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

试题程序:

include <conio. h>

include <stdio. h>

include <math.h >

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

fun (int k)

{ iht n; float s, w, p, q;

n=1;

s=1.0;

while (n<=k)

{ w=2. 0*n;

p=w-1.0;

q=w+1.0;

s=s*w*w/p/q;

n++;

}

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

return s

}

main()

{ clrscr ();

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

}


相似考题
更多“下列给定程序中,函数fun()的功能是;求S的值。设 S=(22/1*30))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2 ”相关问题
  • 第1题:

    下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为

    a= 0 1 2 7 9

    1 9 7 4 5

    2 3 8 3 1

    4 5 6 8 2

    5 9 1 4 1

    则返回土程序后s的值应为3.375。

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

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

    试题程序:

    include <stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 5

    double fun (int w[] [N])

    {

    }

    main()

    {

    int a[N] [N]={0,1,2,7,9,1,9,7,4,5,2,

    3,8,3,1,4,5,6,8,2,5,9,1,4,1};

    int i, j;

    double s;

    clrscr();

    printf("*****The array*****\n ");

    for (i=0; i<N; i++)

    { for (j=0;j<N;i++)

    {printf("%4d ",a[i] [j]);}

    printf("\n ");

    }

    s=fun(a);

    printf("*****THE RESULT*****\n ");

    printf("The sum is : %lf\n ",s);

    }


    正确答案:double fun (int w[][N]) { int ijk=0; double av=0.0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1则它一定是周边元素*/ {av=av+w[i][j]; /*将周边元素求和*/ k++; } return av/k; /*求周边元素的平均值*/ }
    double fun (int w[][N]) { int i,j,k=0; double av=0.0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ {av=av+w[i][j]; /*将周边元素求和*/ k++; } return av/k; /*求周边元素的平均值*/ } 解析:该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。计算周边元素个数的方式是当给av加一个值时,则k加1。k也可用2*N+2*N-4求得。

  • 第2题:

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

    }


    正确答案:(1)错误:while(t>=num) 正确:while (fabs(t)>=num) (2)错误;t=s %n; 正确:t=s/n;
    (1)错误:while(t>=num) 正确:while (fabs(t)>=num) (2)错误;t=s %n; 正确:t=s/n; 解析:函数fun()中while 语句的含义是,当新的一项大于给定参数时,循环累计,计算s的值。而题目要求是最后一项的绝对值小于给定参数,因此循环条件应当为while (fabs(t)>=num),而非while (t>=num)。

  • 第3题:

    【程序说明】 程序功能是用两种循环步长值来求1+2+3+…+50的值。

    【程序一】

    S=0

    FOR (5)

    (6)

    ENDFOR

    ? S

    RETURN

    【程序二】

    S=0

    FOR (7)

    S=S+N

    ENDFOR

    (8)

    RETURN

    (5)

    A.N=50 TO 1

    B.N=1 TO 50 STEP-1

    C.N=1 TO 50

    D.S=1 TO 50


    正确答案:C
    解析:FOR… ENDFOR格式1:
    FOR循环变量=初值TO终值[STEP 步长]
      语句序列>
      [EXIT]
      [LOOP]
    ENDFOR/NEXT
    功能:当循环变量的值不大于终值时,执行循环操作。每循环一次,循环变量的值自动递增一个步长值。
    循环变量为任意一个内存变量,不需要事先定义。
    初值、终值、步长均为一个数值表达式,其值可为正或负或小数。
    若不选[STEP步长]选项,递增步长为1。
    [LOOP]选项实现循环短路操作,[EXIT]选项实现结束当前循环操作。
    格式2:
    FOREACH变量>IN数组变量>/集合>
      语句系列>
      [EXIT]
      [LOOP]
    ENDFOR/NEXT[变量>]
    功能:对数组变量>或集合>中的每个元素执行循环操作。

  • 第4题:

    下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的S。例如:若a数组中的值为

    a=0 1 2 7 9

    1 11 21 5 5

    2 21 6 11 1

    9 7 9 10 2

    5 4 1 4 1

    则返回主程序后s的值应为310。

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

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

    试题程序:

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 5

    int fun (int w[][N])

    {

    }

    main()

    {

    int a[N)[N]={0,1,2,7,9,1,1l,2l,5,5,2, 21,6,11,1,9,7,9,10,2,5,4,1,4,1};

    int i,j;

    int S;

    clrscr( );

    printf("*****The array***+*\n");

    for (i=0; i<N; i++)

    {for(j=0;j<N;i++)

    {printf(“%4d”,a[i][j]);}

    printf("\n");

    }

    s=fun(a);

    printf(“*****THE RESULT*****\n”);

    printf("The sum is:%d\n",s);

    }


    正确答案:int fun(int w[])[N]) { int ijk=0; int s=0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1则它一定是周边元素*/ {s=s+w[i][j]*w[i][j]; /*将周边元素求平方和*/ } return s; /+返回周边元素的平方和*/ }
    int fun(int w[])[N]) { int i,j,k=0; int s=0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ {s=s+w[i][j]*w[i][j]; /*将周边元素求平方和*/ } return s; /+返回周边元素的平方和*/ } 解析:该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。

  • 第5题:

    下列给定程序中,函数fun()的功能是:根据以下公式求n的值,并作为函数值返回。例如,给指定精度的变量eps输入 0.0005时,应当输出Pi=3.140578。

    n/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <math.h>

    double fun(double eps)

    {double s,t; int n=t;

    s=0.0;

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

    t=1;

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

    while(t>eps)

    { s+=t;

    t=t*n/(2*n+1);

    n++;

    }

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

    return (s);

    }

    main()

    { double x;

    printf("\nPlease enter a precision: ");

    scanf("%1f",&x);

    printf("\nPi=%1f\n ",fun(x));

    }


    正确答案:(1)错误:t=0; 正确:t=1.0; (2) 错误:while(t>eps) 正确:while(t>=eps) (3) 错误:return(s); 正确:return(s*2);
    (1)错误:t=0; 正确:t=1.0; (2) 错误:while(t>eps) 正确:while(t>=eps) (3) 错误:return(s); 正确:return(s*2); 解析:该题中,我们首先看函数fun()中while语句的含义,当新的一项大于给定参数时,循环累加。根据题意我们可以看出,最后一项应该小于给定参数,因此,循环条件应当为while(t>=eps)。至于return(s);错误,是一个数学常识,应该是 return(s*2);。