首页 > 试题广场 >

【单选】考虑如下C语言函数:int fun (int n)

[单选题]
考虑如下C语言函数:
int fun (int n) {
int x = 1, k;
if (n == 1) return x;
for(k = 1;  k < n;  ++k)
x = x + fun(k) * fun(n – k);
return x;
}
fun(5)的结果为多少?
  • 0
  • 26
  • 51
  • 71
从n=1开始算起。
n=1,fun(1)=1;
n=2,在for循环中,x的初始值为1,当k=1时,x=x+fun(1)*fun(1)=1+1*1=2,然后k自加1为2,不满足k<n的循环条件,退出循环,返回x=2,故fun(2)=2;
n=3for循环中,当k=1时,x=x+fun(1)*fun(2)=1+1*2=3,
k自加1为2即k=2时,x=x+fun(2)*fun(1)=3+2*1=5,k自加1为3不满足k<n的循环条件,退出循环,返回x=5,故fun(3)=5;
n=4for循环中,当k=1时,x=x+fun(1)*fun(3)=1+1*5=6,
k自加1为2即k=2时,x=x+fun(2)*fun(2)=6+2*2=10,
k自加1为3即k=3x=x+fun(3)*fun(1)=10+5*1=15,k自加1为4,不满足k<n的循环条件,退出循环,返回x=15,故fun(4)=15;
n=5for循环中,当k=1时,x=x+fun(1)*fun(4)=1+1*15=16,
k自加1为2即k=2时,x=x+fun(2)*fun(3)=16+2*5=26,
k自加1为3即k=3x=x+fun(3)*fun(2)=26+5*2=36,
k自加1为4即k=4时,x=x+fun(4)*fun(1)=36+15*1=51,k加1为5,不满足k<n的循环条件,退出循环,返回x=51,故fun(5)=51。

发表于 2020-05-26 17:49:20 回复(0)
求解答
发表于 2020-04-03 08:45:03 回复(0)
这为什么是常识题
发表于 2023-08-04 23:48:45 回复(0)