1. 有函数int func(int i)的实现为   请问函数调用func(5)的返回值是多少()

int func(int i)
{
    if (i > 1)
        return i * func(i - 1);
    else
        return 1;
}

解析:func(5) = 5 * func(4)

                       = 5 * 4 * func(3) 

                       = 5 * 4 * 3 * func(2) 

                       = 5 * 4 * 3 * 2 * func(1)

                       =    5 * 4 * 3 * 2 *  1

                       = 120 

2 .

 

解析:栈的特点是“先进后处,后进先出”,在程序执行过程中,主程序先进栈,被调用的程序后进栈;当被调用程序结束后,先出栈,最后主程序运行结束了,主程序才出栈。

3. 

4. 

5.

6.

解析: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

7.