文章目录

📑三目运算符

📑题目要求

📑题目分析

A选项:

B选项:

C选项:

D选项:


📑三目运算符

  • 三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。
  • 语法:

表达式1?表达式2:表达式3;

  • 语义:
  • 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。

int a,b,c; a=7; b=6; c=(a>b)?a:b;

  • 等同于

if (a>b) c=a; else c=b;

  • 三目运算符可以嵌套使用,我不建议使用三目运算符,过于复杂的三目运算难以理解。

📑题目要求

三数最大值



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

#include <stdio.h> int main(int argc, char** argv) { int a, b, c, max; printf("请输入3个整数:"); scanf("%d,%d,%d", &a, &b, &c); (_____1_____) printf("3个整数中的最大的是:%d", max); return 0; }

条件表达式的基本逻辑:


三元运算符表达式 java 三元运算符表达式c_三元运算符表达式 java





  • 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选项:

三元运算符表达式 java 三元运算符表达式c_三元运算符表达式 java_02

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

三元运算符表达式 java 三元运算符表达式c_c语言_03

B选项:

三元运算符表达式 java 三元运算符表达式c_嵌套_04

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

三元运算符表达式 java 三元运算符表达式c_三元运算符表达式 java_05

C选项:

三元运算符表达式 java 三元运算符表达式c_三元运算符表达式 java_06

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

三元运算符表达式 java 三元运算符表达式c_开发语言_07

三元运算符表达式 java 三元运算符表达式c_开发语言_08

D选项:

三元运算符表达式 java 三元运算符表达式c_三元运算符表达式 java_09

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

三元运算符表达式 java 三元运算符表达式c_嵌套_10

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