有以下程序:
#include <iostream>
using namespace std;
int f1(int x, int y)
return x>y x:y;
int f2(int x, int y)
return x>y y:x;
int main ( )
int a = 4,b = 3,c = 5,d,e,f;
d = f1(a,b) ;
d = f1(d,c) ;
e = f2 (a,b) ;
e = f2(e,c) ;
f = a+b+c-d-e;
cout<<d<<", "<<e<<", "<<f<<end1;
return 0;
执行后的输出结果是 ( )。
A.3,4,5
B.5,3,4
C.5,4,3
D.3,5,4
参考答案:B
解析: 本题考核函数的调用和条件运算符()。解此题前,先来复习一下条件运算符的运算规则。
对于表达式:<表达式1><表达式2>:<表达式3>,它的运算方式为:先计算表达式1的值,如果其值为真(true),则表达式2的值就是整个表达式的最终结果,否则表达式3的值就是整个表达式的值。
在了解条件运算符的运算规则后,来看函数f1()和f2()。根据条件运算符的运算规则,可得到函数f1()的功能是返回两数中的较大值,函数f2()的功能足返回两数中的较小值。再分析主函数,由于a=4,b=3,d经过第1次赋值后得到值为4,即d=4。d的
第2次赋值表达式为“d=f1(d,C) ”,由于此时d=4、c=5,故经过两次赋值后得到d=5。同样e经过两次赋值后可得e=3。再把a=4、b=3、c=5、d=5、e=3代入表达式 f=a+b+c-d-e,最后得到f=4。