有下列程序: 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.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; else return(n+fun(n-1)); } main { in ”相关问题
  • 第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
    本题主要考查函数的递归调用。在做递归调用函数类型的题目时,我们首先要找到函数的出口和递归结束的条件。
    在本题中,程序首先定义了一个fun函数,函数的形参是一个整型变量n,从后面的程序可以看出,该函数是一个递归函数。在函数体中,首先执行条件判断语句,如果条件结果为真,说明变量n为1,此时返回1,这是递归函数的出口;否则返回函数的递归调用。
    在主函数中,定义一个变量x,并试图通过键盘输入的方式为变量x赋初值,然后调用fun函数,并用x作为其形参,用x保存最后的运行结果输出。
    变量x的初值为10,从上面的分析我们知道,递归调用的出口是n=1,而每递归一次n的值减1,因此,函数fun递归调用了9次,其运算相当于10+9+8+7+6+5+4+3+2+1=55。因此,程序最终的输出结果是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题:

    有以下程序 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。

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