选择题
设有如下函数定义
#include<stdio.h>
int fun(int k)
{if(k<1)return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是______。
A、
3
B、
2
C、
4
D、
5
【正确答案】
A
【答案解析】
首先n=fun(3),3被当作参数传递进去,进行了第一次调用,3被当作参数传进去后,程序会执行语句else return fun(k-1)+1;进行第二次调用,而参数是3-1也就是2。2被当作参数传进去后,程序会执行语句else return fun(k-1)+1;进行第三次调用,而参数是2-1也就是1。1被当作参数传进去后,程序会执行语句else if(k==1)return 1;不再递归调用,因此最终结果为3次,选项A正确。
提交答案
关闭