问题 单项选择题

有以下程序:
#include<stdio.h>
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(),每个函数都只有一条语句,在f1()中是“如果x>y则返回x否则返回y”,即返回两个参数中较大的那一个,f2()则正好相反,返回较小的。主函数的语句e=f2(f1(a, b), f1(c, d)); 是使用两次调用f1()函数的返回值作为f2()函数的参数,并将f2()的返回值赋给变量e。a、b中较大的数是a,为4;c、d中较大的数是,c为5。4和5中较小的数是4,所以结果e=4。同理可以推出f=3,那么g=a+b+c+d-e-f=4+3+5+2-4-3=7。故本题应该选择A)。

单项选择题
单项选择题 案例分析题