简答题
👁️ 浏览量:

试题题干

 #include <stdio. h>
long fun(int n)
{  long s;
   if(n<=2)s=2;
   else s=n+fun(n-1);
   printf(″%d\t″, s);
   return s;
}
main( )
{
  fun(5);
  printf(″\n″);

参考答案

试题解析

在主函数中的f(5)需要调用函数f(),因为n=5,所以执行s=n+fun(n-1),即s=5+fun(4);fun(4)需要递归调用函数f(),因为n=4,所以执行s=n+fun(n-1),即s=4+fun(3);fun(3)需要递归调用函数f(),因为n=3,所以执行s=n+fun(n-1),即s=3+fun(2);fun(2)需要递归调用函数f(),因为n=2,所以执行s=2,即最后s=5+4+3+2,因为函数中出现printf(″%d\t″, s); return s; 即输出的是f(2),f(3),f(4),f(5),故值为2,5,9,14。