首页 > 试题广场 >

执行完下列语句段后,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(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
发表于 2022-11-16 10:20:59 回复(0)

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)
a?b:c是条件表达式,表示如果a为真,则表达式值为b,如果a为假,则表达式值为c 条件表达式具体说明如下 条件语句: if(a>b) max=a; else max=b; 可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max.
发表于 2023-04-18 17:53:15 回复(0)
忘了还有一层f
发表于 2023-03-17 17:21:59 回复(1)
b
发表于 2019-04-30 19:32:54 回复(0)