有以下程序 #include <stdio.h> int m1(int x,int y) { return x<=y , x :y; } int m2(int x,int y) { return x<=y , y

admin2021-07-09  15

问题 有以下程序
    #include <stdio.h>
    int m1(int x,int y)
    { return x<=y , x :y; }
    int m2(int x,int y)
    { return x<=y , y :x; }
    int fun(int a,int b)
    { return a+b; }
    main()
    {  int x=2,y=3,z=1;
       printf("%d\n", fun(m1(x,y),m2(y,z)));  
    }  
程序的运行结果是

选项 A、6
B、5
C、4
D、3

答案B

解析 条件运算符"?"是C语言中唯一的一个三目运算符,语法形式为:exp1:exp2:exp3。执行规则为:计算表达式exp1的值,测试其是否为0;如果exp1的值非0,则对exp2求值,并把这个值作为条件表达式的结果输出,不计算exp3;如果exp1的值为0,则对exp3求值,并把这个值作为条件表达式的结果输出,不计算exp2。函数m1实现返回传入两个参数中的最小值。函数m2实现返回传入两个参数中的最大值。函数fun实现返回传入两个参数之和。程序执行过程为:调用m1(2,3)返回2,调用m2(3,1)返回3,调用fun(2,3)返回5,输出结果5,B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/setp777K
0

最新回复(0)