问题 单项选择题

有以下程序  fun(int a, int b)  { if(a>b) return(a);   else return(b);  }  main( )  { int x=3, y=8, z=6, r;   r=fun(fun(x,y), 2*z);   printf("%d\n", r);  }  程序运行后的输出结果是()

A、3

B、6

C、8

D、12

答案

参考答案:D

解析:

此题考查了带返回值的函数的调用。fun()函数的功能是求出两个数的最大数并返回主函数r=fun(fun(x,y),2*z)处。执行过程为先调用函数fun(x,y)求得两数中的较大者,再进行自身的递归调用,此时函数中的两个参数为刚求得的数和2*z(即12)传递给子函数,找出两数中的大数。

单项选择题
单项选择题