有以下程序int fun(int n){ if(n==1)return 1;elsereturn(n+fun(n-1));}main(){ int x;scanf(" % d",&x); x=fun(x);printf(" % d\n",x);}执行程序时,给变量 X 输入 10 ,程序的输出结果是A)55B)54C)65D)45

题目

有以下程序

int fun(int n)

{ if(n==1)return 1;

else

return(n+fun(n-1));

}

main()

{ int x;

scanf(" % d",&x); x=fun(x);printf(" % d\n",x);

}

执行程序时,给变量 X 输入 10 ,程序的输出结果是

A)55

B)54

C)65

D)45


相似考题
更多“有以下程序int fun(int n){ if(n==1)return 1;elsereturn(n+fun(n-1));}main(){ int x;scan ”相关问题
  • 第1题:

    有以下程序 int fun(int n) { if(n=1) return 1; else return(n+fun(n-1)); } main() { int x; scanf("%d",&x);x=fun(x);pfintf("%d\n",x); } 执行程序时,给变量x输入10,程序的输出结果是______。

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    解析:此题考核的知识点是函数的递归调用,即在调用一个函数的过程中又出现直接或间接地调用该函数本身。函数调用中因为实参x=1O不符合条件语句n=1,所以执行else语句,调用fun函数。fun函数共被调用8次,即fun(9)、fun(8)、 fyn(7)、fun(6)、fun(5)、fun(4)、fan(3)、fun(2),n=10+9+8+7+6+5+4+3+2+1=55,所以x=55。

  • 第2题:

    有以下程序

    int fun(int n)

    {if(n==1)return 1;

    else

    return(n+fun(n-1));

    }

    main()

    {int x;

    scanf("%d",&x); x=fun(x);printf("%d\n",x)

    }

    执行程序时,给变量x输入10,程序的输出结果是

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    解析:本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。

  • 第3题:

    执行以下程序时,给变量x输入10,程序的输出结果是() #include <stdio.h> int fun(int n) { if(n==1) return 1; else return(n+fun(n-1)); } main() { int x; scanf("%d",&x); x=fun(x); printf("%dn",x); }

    A.55

    B.45

    C.25

    D.10


    A 函数intfun(intn)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,x的值将变为1到10中10个整数的累加和,即55。

  • 第4题:

    有下列程序:

    int fun(int n)

    { if(n==1) return 1;

    else return(n+fun(n-1)); }

    main

    { int x;

    scanf("%d",&x);

    x=fun(x);

    printf("%d\n",x);}

    执行程序时,给变量x输入10,程序的输出结果是( )。

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    第一次进入:x==10,因为x!=1,执行elsereturn(n+fun(n-1));语句,返回10+fun(10-1)即10+fun(9)第二次进入:x==9,因为x!=1,执行elsereturn(n+fun(n-1));语句,返回10+9+fun(9-1)即10+9+fun(8).........第九次进入:x==2,因为x!=1,执行elsereturn(n+fun(n-1));语句,返回10+9+8+7+6+5+4+3+2+fun(2-1)即10+9+8+7+6+5+4+3+2+fun(1)第十次进入:x==1,因为x==1,执行return1;语句,返回10+9+8+7+6+5+4+3+2+1。事实上是求1+...+10的和。结果应该是55.

  • 第5题:

    有以下程序 int fun(int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; seanf("%d",&x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量x输入10,程序的输出结果是

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    解析:本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。