首页 > 试题广场 > 执行完下列语句段后,i值为()
[单选题]
执行完下列语句段后,i值为()
int f(int x){ 
    return ((x>0)?x*f(x-1):2) 
} 
int i; 
i=f(f(2));
  • 4
  • 48
  • 8
  • 无限递归
f(x) 当x大于0时,返回x*f(x-1),否则返回2

f(0) = 2
f(1) = 1 * f(0) = 2
f(2) = 2 * f(1) = 4
f(3) = 3 * f(2) = 12
f(4) = 4 * f(3) = 48
f(4) = f(f(2))   = 48

选B

编辑于 2015-03-19 10:46:18 回复(5)
f(n) = n! * 2
发表于 2015-09-05 18:00:45 回复(0)
这道题会不会出现 f(-1) = 2  这样的负数一直递归下去

发表于 2016-08-10 20:56:45 回复(2)

f(0)=2为终结。


f(1)=1*2=2。


f(2)=2*2=4。所以求的是f(4)。


f(3)=3*4=12。


f(4)=4*12=48。


发表于 2019-04-28 18:20:12 回复(0)
b
发表于 2019-04-30 19:32:54 回复(0)