参考答案和解析
正确答案:

10

更多“以下程序的输出结果是______ ntfun(int*x,intn){if(n==0)returnx[0];elsereturnx[0]+fun ”相关问题
  • 第1题:

    下列程序的输出结果是()。includeusing namespace std;voidfun(int &r){r*=2;}int

    下列程序的输出结果是( )。 #include<iostream> using namespace std; voidfun(int &r) { r*=2; } int main() { int n=50; fun(n); cout<<n<<end1; return 0; }

    A.0

    B.20

    C.50

    D.100


    正确答案:D
    解析:题中主程序中首先定义整型变量n=50,然后调用函数fun,实际参数为n。函数fun中参数为引用,为地址。即函数中形参的改变会影响实参的值,函数的功能是参数乘以2。

  • 第2题:

    以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",

    以下程序的输出结果是( )。

    include<stdio.h>

    main()

    fint x=0;

    sub(&x,16,2);

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

    }

    sub(int*a,int n,int k)

    {if(k<=n) sub(a,n/2,2*k);

    *a+=k;

    }


    正确答案:14
    14 解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k=n不成立,因此,最后得x=2+4+8=14。

  • 第3题:

    【单选题】下列程序的运行结果是:() fun(int); int main() { int x; x=fun(5); printf("%dn",x); return 0; } fun(int n) { if(n>0) return (n*fun(n-2)); else return 1; }

    A.1

    B.15

    C.120

    D.不能确定


    0 10 1 11 2 12 010111212

  • 第4题:

    有以下程序 include include int fun(int n) {int *

    有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第5题:

    以下程序的输出结果是()。includeint fun(int n,int *s){ int f1,f2;if(n==0||n==1)*s=

    以下程序的输出结果是( )。 #include<stdio.h> int fun(int n,int *s) { int f1,f2; if(n==0||n==1) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main() { int x; fun(6,&x); printf("\n%d" ,x);}

    A.7

    B.13

    C.9

    D.10


    正确答案:B
    解析:n=0或n=1是递归的终止条件。然后利用已知值逐步递推求出未知值。注意:通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。