有以下程序: int fun(int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf("%if",&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("%if",&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;else return(n+fun(n-1));}main(){int x;scanf("%i ”相关问题
  • 第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);printf("%d\n",x); ) 执行程序时,给变量x输入10,程序的输出结果是( )。

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    本题在函数intfun(intn)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量x时,递归调用的过程为fun(10)=10…fun(9)=104-94-fun(8)=104-9+84-fun(7)=10+9++8++7++fun(6)=10+9++8+7+6+fun(6)=10+9++8+7+6+5+fun(4)=10+9++8+7+6+5+4+fun(3)=10+9++8+7+6+5+4+3+fun(2)=10+9++8+7+6+5+4+3+2+fun(1)=10+9++8+7+6+5+4+3+2=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
    第一次进入: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.

  • 第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);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。

  • 第5题:

    有以下程序

    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。