有以下程序 #include int fun(int a, int b) { if(b==0) return a; else return(fun(--a,--b)); } main() { printf("%d\n", fun(4,2)); } 程序的

admin2015-07-28  23

问题 有以下程序
#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、2
B、1
C、3
D、4

答案A

解析 考查函数的递归调用。在函数fun()中,如果b值不为0则继续调用a、b自减后继续作为函数fun()参数,直到b值为0时方返回a值,而当前的a值等于第一次调用时的a-b,所以函数fun()的功能是返回a-b的值,故而输出的结果为2,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/GYn0FFFM
0

最新回复(0)