问题 单项选择题

有以下程序A: int f1(int x,int y) { return x>yx:y; } int f2(int x,int y) { return x>yy:x; ) main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); } 程序运行后的输出结果是______。

A.4,3,7

B.3,4,7

C.5,2,7

D.2,5,7

答案

参考答案:A

解析: 本题的函数f1是求两个数中的最大数,而函数f2是求两个数中的最小数。因此,“e=f2(f1(a,b),f1(c,d));”是先调用函数f1分别求出a、b中的最大数4,c、d中的最大数5,再调用函数f2求出4和5中的最小数4,e的值为4。而“f=f1(f2(a,b),f2(c,d));”是先调用函数f2,分别求出a、b中的最小数3,c、d中的最小数2,再调用函数f1求出3和2中的最大数3,f的值为3。g=a+b+c+d-e-f结果是4+3+5+2-4-3=7。输出结果应该是:4,3,7。

单项选择题
问答题 简答题