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

admin2013-06-11  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的赋值语句相当于r=fun(8,12),同上分析可知fun(8,12)返回值为12,因此最后r的值为12。所以,4个选项中选项D符合题意。
转载请注明原文地址:https://jikaoti.com/ti/vhn0FFFM
0

最新回复(0)