参考答案和解析
正确答案:C
在函数fun(intx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的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==l) return(3);p=x-fun(x-2);return p;}main{printf(& ”相关问题
  • 第1题:

    有以下程序 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)是一个递归函数,所以主函数中fun(7)经过三次递归调用,其过程可以描述为"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2”,所以最后的输出结果为2。

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

    有以下程序:

    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。

  • 第4题:

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

  • 第5题:

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

    A.7

    B.3

    C.2

    D.0


    正确答案:C
    在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的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。