有以下程序: #include int fun(int a,int b) {if(b==0) return a; else return(fun(--a,--b)); } main() {pri

admin2017-10-26  7

问题 有以下程序:
  #include
  int  fun(int a,int b)
  {if(b==0)
    return a;
    else
    return(fun(--a,--b));
    }
    main()
    {printf("%d\n",fun(4,2));
    }
    程序的运行结果是    【    】

选项 A、1
B、2
C、3
D、4

答案B

解析 因为题中实参为4和2,所以在函数fun中,形参a=4,形参b=2,不满足if语句的判定条件,所以执行else子句,继续调用函数fun,在此过程中a、b的值总是每调用一次函数则都减1,直至a=2,b=0为止,所以程序最后的结果为2。
转载请注明原文地址:https://kaotiyun.com/show/B9kx777K
0

最新回复(0)