itgle.com
参考答案和解析
正确答案:C
解析:因为在函数fun(int x)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:fun(7)=7-fun(5)=7-(5-fun(3))-7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2,所以最后的输出结果为2。
更多“有下列程序:fun(int x){int p;if(x==0 ||x==1) return(3);p=x-fun(x-2);return p;}main(){printf ”相关问题
  • 第1题:

    有以下程序: int fun(int x) { int p; if(x==0||x==1)return(3); p=x-fun(x-2); return p; } main { printf("%d\n",fun(7));} 执行后的结果是( )。

    A.7

    B.3

    C.2

    D.0


    正确答案:C
    调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。

  • 第2题:

    有以下程序: fun(int x) {int p; if(x==0||x==1)return(3); p=x-fun(x-2); return p; } main() {printf("%d\n",fun(7));} 执行后的输出结果是( )。

    A.7

    B.3

    C.2

    D.0


    正确答案:C
    解析:函数fun是一个递归调用函数,首先主函数将实参7传递给fun函数中的形参x,由于x=7不满足if语句的条件,则执行下面的“p=x-fun(x-2);”语句,此语句继续调用本身,直到当x=1时,返回函数值3代入到调用它的表达式中,以此类推,最终p的值为2。

  • 第3题:

    有下列程序:

    fun(int x)

    {int p;

    if(x==0‖x==1) return(3) ;

    p=x-fun(x-2) ;

    return p;

    }

    main()

    {printf("%d\n",fun(7) );}

    执行后的输出结果是( )。

    A.7

    B.3

    C.2

    D.0


    正确答案:C
    解析:因为在函数fun(int x)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:  “fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1))=7-(5- (3-3))=7-5=2”,所以最后的输出结果为2。

  • 第4题:

    有下列程序: fun(int x) {int p; if(x= =0 ‖ x= =1) return(3); p=x-fun(x-2); return p; } main( ) { print f("%d\n",fun(7 ));} 执行后输出的结果是( )。

    A.7

    B.3

    C.2

    D.0


    正确答案:C
    解析:因为在函数fun(int x)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2",所以最后的输出结果为2。

  • 第5题:

    有以下程序:

    int fun(int x)

    { int p;

    if(x==0||x==1)return(3);

    p=x-fun(x-2);

    return p;

    }

    main

    { printf("%d\n",fun(7));}

    执行后的结果是( )。

    A.A.7

    B.3

    C.2

    D.0


    正确答案:C
    调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。