有以下程序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(){ 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(){int x;scanf("%d ”相关问题
  • 第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题:

    1、以下程序的输出结果是():void fun (int n,int *s) { int f1,f2; if (n==1||n==2) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } int main() { int x; fun(6,&x); pirntf("%d\n",x); return 0; }

    A.4

    B.6

    C.8

    D.12


    C 本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。

  • 第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题:

    执行以下程序时,给变量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。