有以下程序 fun(int a,int b) { if(a>b) return(a) ; else return(b) ; } main() { int x=3,y=8,z=6,r; r=fun(fu

admin2009-04-15  24

问题 有以下程序    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

答案8

解析 主函数中首先定义了4个整型变量x、y、z和r,并分别给x、y、z赋初值为3、8、6,接着调用一个fun()函数,并将返回值赋给变量r。其中将fun(x,y)函数的返回值和2*z作为fun()函数的两个参数。在内层fun(x,y)函数中,将x的值和y的值传给形参a和b,此时a和b的值分别为3和8,执行if语句,由于if后面判断条件表达式“a>b”为假,所以执行else后面的语句,返回值为8。此时,外层fun(x,y)函数两个参数为8和2*z=12,所以,的赋值语句相当于r=fun(8,12),同上分析可知fun(8,12)返回值为 12,因此最后r的值为12。
转载请注明原文地址:https://kaotiyun.com/show/b7Xp777K
0

最新回复(0)