有以下程序: fun (iht 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

admin2009-04-15  26

问题 有以下程序:    fun  (iht 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的赋值语句相当于r=fun(8,12),同上分析可知tim(8,12)返回值为12,因此最后r的值为12。
转载请注明原文地址:https://kaotiyun.com/show/vpXp777K
0

最新回复(0)