niusouti.com

编写函数,求出“1/(1×2)-1/(2×3)+1/(3×4)-1/(4×5)+……”前n项的和,函数以n为参数,由用户输入。

题目

编写函数,求出“1/(1×2)-1/(2×3)+1/(3×4)-1/(4×5)+……”前n项的和,函数以n为参数,由用户输入。


相似考题
参考答案和解析

答案:代码

测试结果:

更多“编写函数,求出“1/(1×2)-1/(2×3)+1/(3×4)-1/(4×5)+……”前n项的和,函数以n为参数,由用户输入。 ”相关问题
  • 第1题:

    下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n项和。

    2/1,3/2,5/3,8/5,13/8,21/13,…

    其值通过函数值返回main()函数。例如,若输入n=5,则应输出8.391667。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    [试题源程序]

    include<stdio.h>

    include<conio.h>

    double fun(int n)

    {

    int a=2, b=1, c, k;

    double (1) ;

    for(k=1; k<=n; k++)

    {

    s=s+1.0 *a/b;

    c=a; a+= (2) ; b=c;

    }

    return(d);

    }

    main()

    {

    int n=5;

    printf("\nThe value of function is: %1f\n", (3) );

    }


    正确答案:[1] s=0.0 [2] b [3] fun(n)
    [1] s=0.0 [2] b [3] fun(n) 解析:填空1:根据题目的意思,这里应该是对变量s的声明,注意到后面有对s的累加操作,所以声明之后一定要进行初始化,把s赋值为0。
    填空2:根据题目的意思,此处是循环求和,由数列很容易看出后一项的分子是前一项分母与分子之和,即a=a+b或者a+=b。
    填空3:由算法可以看出,此处是进行子函数调用。

  • 第2题:

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

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

    例如,着主函数从键盘给n输入50后,则输出为 S=1.960784。

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

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

    试题程序:

    include <stdio.h>

    double fun(int n)

    {

    }

    main ()

    {

    int n;

    double s;

    printf ("\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+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; }
    double fun (int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; } 解析:该程序的数学思路是:在程序中输入n后,以前n项的和作为分母递加,由于s1是浮点类数据所以s=s+1.0/s1; for 循环的作用是每一次循环给总结果s加上一项1.0/s1。

  • 第3题:

    下列程序定义了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,则它一定是周边元素。

  • 第4题:

    有如下VBA程序段:

    sum=0

    n=0

    For i = 1 To 5

    x = n / i

    n = n + 1

    Sum=Sum+x

    Next i

    以上For循环计算sum,最终结果是

    A.1+1/1+2/3+3/4+4/5

    B.1/2+1/3+1/4+1/5

    C.1/2+2/3+3/4+4/5

    D.1/2+1/3+1/4+1/5


    正确答案:C
    解析:本题考察for循环语句:n=0,i=1时,sum=0;执行循环n=n+1,i=2,sum=1/2,依次i加1直到i=5。
    当i=1时,x=0,n=1,Sum=0;
    当i=2时,x=1/2,n=2,Sum=1/2;
    当i=3时,x=2/3,n=3,Sum=1/2+2/3;
    依次类推
    当i=5时,x=4/5,n=5,Sum=1/2+2/3+3/4+4/5。

  • 第5题:

    请教计算机二级c语言考试题

    请补全main函数,该函数的功能是:

    求1+2!+3!+…+N!的和。

    1) main()

    2) {int i,n;

    3) long s=0,t=1;

    4) //clrscr();

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

    6) scanf("%d",___1___);

    7) for(i=1;i<=n;i++)

    8) {

    9) t=___2___;

    10) s=___3___;

    11) }

    12) printf("1!+2!+3!...+%d!=%ld\n",n,s);

    13) }


    你好
    答案为:
          第一处:&n
      第二处:t*i
      第三处:s+t
    1   n
    2   t*n
    3   s+t
    #include <stdio.h>

    int main()
    {
      int i = 0;
      int sum = 0;
      while(i<=100)
      {
        sum+=i;
        i++;
      }
      printf("1+2+...+100=%d\n",sum);
    }

  • 第6题:

    设有如下程序: Private Sub Command1_Click() Dim sum As Double,x As Double sum=0 n=0 For i=1 To 5 x=n/i n=n+1 sum=sum+x Next End Sub 该程序通过For循环计算一个表达式的值,这个表达式是 ______。

    A.1+1/2+2/3/4+4/5

    B.1+1/2+2/3+3/4

    C.1/2+2/3+3/4+4/5

    D.1+1/2+1/3+1/4+1/5


    正确答案:C
    解析:本题考查循环语句,其过程如下:
      i=1时,x=0/1=0,n=0+1=1,sum=0+0;
      i=2时,x=1/2,n=1+1=2,sum=0+1/2;
      i=3时,x=2/3,n=2+1=3,sum=0+1/2+2/3;
      i=4时,x=3/4,n=3+1=4,sum=0+1/2+2/3+3/4;
      i=5时,x=4/5,n=4+1=5,sum=0+1/2+2/3+3/4+4/5。

  • 第7题:

    计算斐波那契数列第n项的函数定义如下: intfib(intn){ if.(n==0)return1; elseif(n==1)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:C
    C。【解析】根据递归调用的含义,当n为2时有fib(o),fib(1),fib(2)被调用,且fib(0),fib(1)时调用结束,共3次。

  • 第8题:

    【程序说明】程序功能是若输入的N值为5,则输出结果如下:

    1

    1 1

    1 2 1

    1 3 3 1

    1 4 6 4 1

    【程序】

    SET TALK OFF

    CLEAR

    INPUT“N=”TO N

    DIME A(N,N)

    P=N

    DO WHILE N>0

    A(N,N)=1

    (5)

    N=N-1

    ENDDO

    FOR I=3 TO (6)

    FOR J=2 TO I-1

    A(I,J)= (7)

    ENDFOR

    ENDFOR

    FOR I=1 TO P

    ? SPACE(3*(P-I+1))

    FOR J=1 TO I

    ?? STR(A(I,J),3)

    (8)

    ?

    ENDFOR

    SET TALK ON

    (5)

    A.A(1,N)=1

    B.A(1,N-1)=1

    C.A(N,1)=1

    D.A(N-1,1)=1


    正确答案:C
    解析:从输出结果可以看出,每行的第一个数字都为1,第(5)空的作用是给每行的第一个内容赋初值1,通过N进行循环,即A(N,1)=1。

  • 第9题:

    在窗体上画1个命令按钮,并编写如下事件过程: Private Sub Command1 Click( ) Dim a(3,3) For m=1 To 3 For n=1 To 3 If n=m or n=4—m Then a(m.n)=m+n Else a(m,n)=0 End If Print a(m,n); Next n Print Next m End Sub 运行程序,单击命令按钮,窗体上显示的内容为( )。

    A.2 0 0 0 4 0 0 0 6

    B.2 0 4 0 4 0 4 0 6

    C.2 3 0 3 4 0 0 0 6

    D.2 0 0 0 4 5 0 5 6


    正确答案:B
    B。【解析】本题考查了嵌套的For循环,答案为B选项。

  • 第10题:

    计算s=1+1/3+1/7+1/15+……的流程图如图10所示,若要计算前5项的和,①处应该输入的判断条件是()。



    A.n<6

    B.n<=5

    C.n<4

    D.n<=4

    答案:D
    解析:
    题干当中求的是前5项的和,那么n的取值是0,1,2,3,4。

  • 第11题:

    已知三角形平面的顺序三个顶点为:(3,2,1),(1,3,2),(2,1,3),由矢量的叉积法求出平面的法矢量为()

    • A、n{1,1,1}
    • B、n{2,2,2}
    • C、n{3,3,3}
    • D、n{4,4,4}

    正确答案:C

  • 第12题:

    单选题
    有六组量子数:(1)n=3,l=1,m=1(2)n=3,l=0,m=0(3)n=2,l=2,m=-1(4)n=2,l=1,m=0(5)n=2,l=0,m=-1(6)n=2,l=3,m=2。其中正确的是(  )。
    A

    (1),(3),(5)

    B

    (2),(4),(6)

    C

    (1),(2),(4)

    D

    (1),(2),(3)


    正确答案: B
    解析:
    主量子数n确定后,角量子数l的取值为0,1,2,…,(n-1);磁量子数m的取值为-1~+1;自旋量子数的取值为+1/2、-1/2。

  • 第13题:

    请编写一个函数fun(),它的功能是:根据以下公式求π的值(要求满足精度0.005,即某项小于0.005时停止迭代)。

    π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…

    +1*2*3*…*n/(3*5*7*…*(2n+1))

    程序运行后,如果输入精度0.0005,则程序输出3.14…。

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

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

    试题程序:

    include<conio.h>

    include<math.h>

    double fun(double eps)

    {

    }

    main()

    {

    double x;

    printf("Input eps: ");

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

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

    }


    正确答案:double fun(double eps) { double s=1.0s1=1.0; int n=1; while(s1>=eps) /*当某项大于精度要求时继续求下—项*/ {s1=s1*n/(2*n+1); /*求多项式的每—项*/ s=s+s1; /*求和*/ n++; } return 2*s; }
    double fun(double eps) { double s=1.0,s1=1.0; int n=1; while(s1>=eps) /*当某项大于精度要求时,继续求下—项*/ {s1=s1*n/(2*n+1); /*求多项式的每—项*/ s=s+s1; /*求和*/ n++; } return 2*s; } 解析:从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s来表示总和后的结果。要注意s1,s的初值都为1.0,返回时要乘以2即return 2*s,这跟数学思想有关系,学习者理解后就很简单了。

  • 第14题:

    下列程序定义了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求得。

  • 第15题:

    阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    [说明]

    编写一个函数,输入为偶数时,调用函数求1/2+?/+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n (利用指针函数)。

    [函数]

    include "stdio. h",

    main()

    {

    float peven (),podd (),dcall ();

    float sum;

    int n;

    while (1)

    {

    scanf("%d",&n);

    if (n>1)

    break;

    }

    if(n%2==0)

    {

    printf("Even="):

    (1);

    }

    else

    {

    pfinff("Odd=");

    (2);

    }

    printf("%f",sum);

    }

    float peven (int n)

    {

    float s;

    int i

    s=1;

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

    (3);

    return (s);

    }

    float podd (n)

    int n;

    {

    float s;

    int i;

    s=0;

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

    (4);

    return (s);

    }

    float dcall(fp,n)

    float (*fp) ();

    int n;

    {

    float s;

    (5);

    returu (s);

    }


    正确答案:(1)array+10 (2)array+1 (3)*p>*max (4)k=*max (5)*p=array[0]
    (1)array+10 (2)array+1 (3)*p>*max (4)k=*max (5)*p=array[0]

  • 第16题:

    在图示四个轴力N1、N2、N3和N4中,( )。

    :(A)N1和N2为正,N3和N4为负。

    (B)N1和N4为正,N2和N3为负。

    (C)N2和N3为正,N1和N4为负。

    (D)N3和N4为正,N1和N2为负


    正确答案:A

  • 第17题:

    当发生窗体的单击事件时,输出的第二行为( )。 Private Sub Form_click() Dim N1 As Integer,N2 As Integer,N3 As Integer N1=1:N2=1 Print N1;N2 Do N3=N1+N2 Print N3; N1=N2:N2=N3 Loop Until N3>=5 End Sub

    A.1 1 1

    B.2 3 5

    C.2 5 7

    D.2 3 4


    正确答案:B
    解析:此处需注意的是,DO…LoopUntil循环的结束条件是Until后面的表达式值是True。当发生窗体的单击事件时,首先给变量N1和N2赋值为1,然后输出为12并换行。执行循环,N3的值为2,输出2不换行,进行赋值后N1的值为1,N2的值为2,判断条件“2>=5”为False,重新执行循环:第二次执行循环输出N3的值为3,循环结束条件依旧为False;第三次执行循环输出N3的值为5,循环结束条件为True,循环退出。所以输出的第二行为“235”。

  • 第18题:

    设m>n,用“<"或“>"填空:(1)m-5____n-5;(2) m+4____n+4;(3)6m

    设m>n,用“<"或“>"填空:

    (1)m-5____n-5;(2) m+4____n+4;

    (3)6m____6n; (4)-1/3m____-1/3n


    (1)m-5n-5; (2) m+4n+4;

    (3)6m6n;  (4)-1/3m-1/3n


  • 第19题:

    在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:

    Private Sub Command1_Click()

    Dim a(5,5)

    For i=1 To 3

    For j=1 To 4

    a(i,j)=i*j

    Next

    Next

    For n=1 To 2

    For m=1 To 3

    Print a(m,n);

    Next

    Next

    End Sub

    程序运行后,单击命令按钮,输出结果是

    A.2 4 6 1 2 3

    B.1 2 3 2 4 6

    C.1 2 3 4 5 6

    D.6 5 4 3 2 1


    正确答案:B
    解析:输出值为下标的乘积,即1×1,1×2,1×3,2×1,2×2,2×3。

  • 第20题:

    请编写函数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程序去表达题目中的每一项,这是关键,其他问题不难理解。

  • 第21题:

    请编写函数proc(),它的功能是计算: s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5 在C语言中可调用log(n)函数求1n(n)。 例如,若n1的值为30,则proc()函数值为8.640500。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:


    正确答案:

    【解析】由题目中所给表达式可知,表达式的值为m项表达式的和然后开平方。可以首先通过m次循环求得m项表达式的和,然后将其和开平方并返回到主函数当中。

  • 第22题:

    发动机N1转子和N2转子分别为哪几号轴承支撑在框架上()

    • A、N1转子由1、2、3号轴承支撑,N2由4、5号轴承支撑
    • B、N1转子由1、2号轴承支撑,N2由3、4、5号轴承支撑
    • C、N1转子由1、2、4号轴承支撑,N2由3、5号轴承支撑
    • D、N1转子由1、2、5号轴承支撑,N2由3、4号轴承支撑

    正确答案:D

  • 第23题:

    在直线趋势法中,X是代表时间序列的时间,对时间的编号的方法可以是()。

    • A、从0开始顺序编写
    • B、从1开始顺序编写
    • C、以公元年号编写
    • D、当数列为奇数项时,编写成-n,-(n-1),-(n-2),…-2,-1,0,1,2,…n-1,n
    • E、当数列为偶数项时,如10项编写成-5,-4,-3,-2,-1,1,2,3,4,5

    正确答案:A,B,C,D