更多“有以下程序,执行后的输出结果是()。fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));} ”相关问题
  • 第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( ) { 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。

  • 第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(){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。

  • 第5题:

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