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

admin2011-06-13  33

问题 有以下程序:    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。
转载请注明原文地址:https://jikaoti.com/ti/zdB0FFFM
0

最新回复(0)