简答题
👁️ 浏览量:

试题题干

int fm(int a,int b)
{ if(b==1) return a;
  else return a+fm(a,b-1);
}
main()
{
  printf("%d\n",fm(4,3));

参考答案

试题解析

主函数中输出fm(4,3)的值需要调用函数fm(),因为a=4,b=3即执行else语句,返回值为a+fm(a,b-1)=4+fm(4,3);

在fm()函数中返回值a+fm(a,b-1)是递归调用函数,即fm(4,3)的返回值为a+fm(a,b-1)=4+fm(4,2);

fm(4,2)的返回值为a+fm(a,b-1)=4+fm(4,1);

fm(4,1)中b=1执行if语句,即返回a的值4,故最后输出的结果为4+4+4=12。