首页 > 试题广场 >

请问经过表达式a = 5 ? 0 : 1的运算,变量a的最终

[单选题]
请问经过表达式a = 5 ? 0 : 1的运算,变量a的最终值是?
  • 5
  • 1
  • 0
  • true
推荐
【正确答案】C
【解析】5 ? 0 : 1 是一个三元运算,由于 5 非 0,所以结果为 0,a 的值也为 0。
三目运算符(三元运算符)的格式:
表达式 1 ? 表达式 2 : 表达式 3;
执行流程:如果表达式 1 的值为真,则以表达式 2 的值作为整个条件表达式的值,否则以表达式 3 的值作为整个条件表达式的值。

运算符知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp46
编辑于 2021-11-17 15:59:59 回复(0)
条件运算符的优先级高于赋值运算符的优先级

发表于 2016-08-24 11:24:27 回复(4)
第一个解析什么5>0肯定是不对的
首先三元运算符的优先级是高于赋值运算符的,所以看做a =( (5) ? 0 : 1),但三元运算符问号前面的应该是一个判断表达式,这里只给了一个数字5,不知道如何判断。
但三元运算符是可以换成if else语句的
即:if(5) a=0;else a=1;
5!=0,所以执行第一个语句,所以a=0.

发表于 2017-05-14 16:56:10 回复(1)
C
a =( (5) ? 0 : 1)  这样看,5 != 0,所以是true,所以就是0
发表于 2016-08-23 23:26:21 回复(3)
正确答案 C

三元运算符,问号前面是表达式,如果表达式为true就返回问号后面的,否则就返回冒号后面的。
这题a=5?0:1,条件表达式为是数字5,这个数是大于0的数,为真,所以返回问号后的表达式0

编辑于 2016-08-19 09:41:10 回复(4)
c语言中,非零均为true
发表于 2020-07-22 10:41:16 回复(0)
三目运算符 对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。
发表于 2017-01-11 00:22:58 回复(0)
实际为a=(5?0:1)
编辑于 2017-03-23 10:54:47 回复(0)
三元运算符优先级高于赋值运算符
发表于 2021-03-22 18:00:48 回复(0)
<p>考的是运算符优先级</p>
发表于 2020-09-09 13:07:39 回复(0)
该题目中的表达式应该看为a =( (5) ? 0 : 1),虽然5不是一个判断表达式,但是也符合非0,构成判断为真,所以a=0
发表于 2020-05-24 10:21:45 回复(0)
5非零,即为真,真就取前一个即0,可以这样说吗
发表于 2019-06-01 15:49:12 回复(0)
注意,没有小括号的情况下,根据优先级,先执行三目运算符,赋值运算符优先级低。
三目运算符 <表达式0> ?<表达式1> :<表达式2> 
若表达式0为真,执行表达式1;若为假,执行表达式2。
发表于 2023-09-24 23:07:16 回复(0)
三目运算符的优先级要高 即先执行5?0:1 再执行a =0
发表于 2022-03-03 18:25:13 回复(0)
先判断5是否为真 真则执行0 否则1
发表于 2022-01-25 14:06:15 回复(0)
在bool判断中,非0为true,0值为false
发表于 2021-12-04 15:38:46 回复(0)
看错题目了😂
发表于 2021-07-09 15:51:03 回复(0)
a=(5&gt;0)?0:1
发表于 2021-03-12 20:13:06 回复(0)
三目运算符的优先级比赋值运算符高,先5?0:1,5为true,整个表达式为1,1赋值给a,所以a=1
发表于 2019-03-28 21:08:26 回复(0)
三目运算符的优先级高于赋值运算符,所以先考虑5?0:1,这个三目运算符的值为0,然后再执行赋值运算符,结果为a=0
发表于 2019-03-25 10:24:44 回复(0)

条件运算符的优先级高于赋值运算符的优先级

也就是:a=(5?0:1)
发表于 2017-09-05 09:06:35 回复(0)