首页 > 试题广场 >

执行函数后. i的值为()

[单选题]
int f(int x){
    return ((x>2) ? x*f(x-1) : 3);
}
int i;
i=f(f(2));
执行如上函数后. i的值为()
  • 30
  • 无限递归
  • 9
  • 2160
答案应该为 9
首先 2 传进去后, 2 > 2 为假,故函数返回 3 ,这时 f(f(2)) 就相当于f(3), 再将 3 传进去应该返回 3 * f(3 - 1) 即 3 * f(2), 又因为 f(2) 为 3,所以 f(3) = 9,因此答案就为 9.
intf(intx)
{
    return((x>2) ? x*f(x-1) : 3);
}
inti;
i = f(f(2));
发表于 2016-04-08 23:03:14 回复(1)
第一行少了个左`{`
第五行末尾应该是`;`
发表于 2019-02-13 16:58:08 回复(0)
...这题好容易看错
发表于 2017-09-14 10:08:12 回复(0)
    一楼说的很完整 最后主要是计算3*3 = 9
发表于 2019-12-27 09:39:00 回复(0)
做的时候***了。选C
发表于 2017-09-12 16:12:28 回复(0)
若为真则执行第一个,若为假则执行第二个
发表于 2016-10-19 11:50:51 回复(0)
C
发表于 2016-08-28 09:17:32 回复(0)
9
发表于 2016-07-14 22:07:17 回复(0)