有以下程序: #inelude<stdio.h> int fun(int a,int B) {if(b==0)return a; else return(fun(--a,--b)); } main() {printf("%d\n",fun(4,2));}

admin2020-11-27  23

问题 有以下程序:
#inelude<stdio.h>
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

解析 本题重点考察函数的递归调用;题目中给出的fun()函数直接调用了自身,所以是一个递归函数。其功能是:当参数b为0时,返回参数a的值,否则返回fun(--a,--b)的值。从这里可以看出,当b不断递减时,a也不断递减,直到b为0时返回a的值。那么a递减的总值就是b原来的值。所以整个递归函数的作用就是返回a-b的值。因此B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/Fa3p777K
0

最新回复(0)