单选题
以下程序的输出结果是______。
#include <stdio.h>
long fun(int n)
{ long s;
if(n==1||n==2)
s=2;
else
s=n+fun(n-1);
return s;
}
main()
{ printf("/n% ld", fun(4));
}
A.7
B.8
C.9
D.10
A
B
C
D
【正确答案】
C
【答案解析】
[解析] 此题考查基本的函数递归调用方法。程序在n=1或n=2时是出口条件,不再递归,否则一直执行s=ns+fun(n-1)的操作。展开此求和公式,有s=4+fun(3)=4+3+fun(2)=4+3+2=9。如果调用函数fun()的实参大于等于2,出口n==1的判断就不需要了。
提交答案
关闭