问题
填空题
有以下程序:
int f1(int x,int y) return x>yx:y;
int f2(int x,int y) returnx>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);
程序运行后的输出结果是______。
答案
参考答案:4,3,7
解析: 在语句f2(f1(a,b),f2(c,d);中,函数f1作为函数f2的参数被调用,f1的返回值是f2实参的值,所以有:
f1(a,b)=f1(4,3)=4;
f1(c,d)=f1(5,2)=5;
e=f2(f1(a,b),f1(c,d))=f2(4,5)=4。
同理有:
f2(a,b)=f2(4,3)=3;
f2(c,d)=f2(5,2)=2;
f=f1(f2(a,b),f2(c,d))=n(3,2)=3;
g=7。