设有如下函数定义: #include int fun(int k) { if(k

admin2017-11-06  42

问题 设有如下函数定义:
    #include
    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、2
B、3
C、4
D、5

答案B

解析 首先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次。
转载请注明原文地址:https://jikaoti.com/ti/iXa0FFFM
0

最新回复(0)