问题 单项选择题

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

判断题
问答题 简答题