• C语言条件运算符——三元表达式例题(素材来自C技能树)


    文章目录

    📑三目运算符

    📑题目要求

    📑题目分析

    A选项:

    B选项:

    C选项:

    D选项:


    📑三目运算符

    • 三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。
    • 语法:
      表达式1?表达式2:表达式3;
    
    • 语义:
    • 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。
    1. int a,b,c;
    2. a=7;
    3. b=6;
    4. c=(a>b)?a:b;
    • 等同于
    1. if (a>b) c=a;
    2. else c=b;
    • 三目运算符可以嵌套使用,我不建议使用三目运算符,过于复杂的三目运算难以理解。

    📑题目要求

    三数最大值

    输入三个整数,求出最大值并输出。以下选项中的条件表达式,哪一项放在(1)处无法求出最大值。

    1. #include
    2. int main(int argc, char** argv)
    3. {
    4. int a, b, c, max;
    5. printf("请输入3个整数:");
    6. scanf("%d,%d,%d", &a, &b, &c);
    7. (_____1_____)
    8. printf("3个整数中的最大的是:%d", max);
    9. return 0;
    10. }

    条件表达式的基本逻辑:

    • A、max = a > b ? a > c ? a : c : b > c ? b : c;
    • B、max = (c > ((a > b) ? a : b)) ? c : ((a > b) ? a : b);
    • C、max = c > (a > b) ? a : (b ? c : (a > b)) ? a : b;
    • D、max = a > b ? (a > c ? a : c) : (b > c ? b : c);

    📑题目分析

    A选项:

    A选项包括了三个三元表达式,一个嵌套两个,还是很好理解的,假设a比b大,a则继续与c比较,反之b比a大则b继续与c比较,进而可以判断出最大值,因此A选项对。


    B选项:

    B选项也是包括了三个三元表达式,一个嵌套两个,只不过多了些括号的使用,要注意优先级的处理。首先从左往右看,先看第一部分可以得出,在第一个三元表达式中判断a和b谁大,可以得出c>a>b或c>b>a的条件,如果条件为true,c为最大值,反之进入第二部分,对a和b的大小进行判断,最后得出a或b其中一个为最大值,因此B选项正确。


    C选项:

    C选项也是包括了三个三元表达式,一个接着一个嵌套,先对c > (a > b)进行分析,先判断a和b的大小,可以得出c>a>b或c>b>a的条件,假设条件为true,直接输出表达式2为a,假设条件为false,走表达式3的嵌套三元表达式,输出结果还是a,因此C选项不正确,无法求出最大值。


    D选项:

    D选项跟B选项很像也是包括了三个三元表达式,一个嵌套两个。从左到右看,首先a大于b,a与c比较大小,a大输出a,反之输出c。然后a小于b,b与c比较大小,b大输出b,反之输出c,因此B选项正确。


    注意题目选项在技能树中会打乱

     📚C语言——习题、知识点案例,持续更新🔥  

    🎯点赞收藏,防止迷路🔥 

  • 相关阅读:
    猿创征文|瑞吉外卖——管理端_后台登录与退出
    关于Redis的事件回调解析
    JAVA五子棋手机网络对战游戏的设计与实现(源代码+论文)
    Android性能优化(一)—— 启动优化
    数图互通高校房产管理——校园电子地图
    数据可视化素材分享 | 数十图表、无数模板
    C++冒号的作用域
    [附源码]计算机毕业设计springboot小型银行管理系统
    旅行商问题(TSP)的相关论文总结
    MySQL线程池
  • 原文地址:https://blog.csdn.net/weixin_53231455/article/details/128001118