[简答题]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));


正确答案:

12

题目解析

主函数中输出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。

扫描二维码
免费搜题、免费刷题、免费查看解析