首页 > 试题广场 >

设x、y、t均为int型变量,则执行语句:t=3; x=y=

[单选题]

xyt均为int型变量,则执行语句:

t = 3;x = y = 2;t = x++ || ++y; 
后,变量ty的值分别为____

  • t=1 y=2
  • t=1 y=3
  • t=2 y=2
  • t=2 y=3
  • t=3 y=2
  • t=3 y=3
推荐
A
此题考点为运算符的优先级,自增运算符、短路运算、赋值运算符的优先级。
按照优先级原则来说:
 t=x++||++y;  先执行 x++ 然后执行||,最后执行=。由于x=2 根据逻辑运算符可知x++ 理解为true,根据短路运算符可知++y不会执行了。根据逻辑运算可知x++||++y 返回1,则可知t=1;y没有执行,y=2
由于
运算符的优先级如下图所示:
编辑于 2016-01-03 18:56:14 回复(7)
A
发表于 2015-06-22 09:24:15 回复(0)
JR头像 JR
||前面的为真时其后的就不会再执行了,直接返回1.
发表于 2015-08-11 20:50:27 回复(2)
t=x++||++y ,||这个符号意味着只要有一边不是零,那么t就一定是1,所以算完x++之后,发现其已经不是0,则t就一定是1,++y就无需运算了。
发表于 2018-01-06 13:56:48 回复(3)
码 或语句判断第一个为真就不用在执行了
发表于 2022-08-15 17:41:17 回复(0)
布尔值表达式只能是01
发表于 2017-04-07 16:24:58 回复(1)
首先t=3,x=2,y=2;
然后计算 x++||++y,由于x++为2,也就是说为true,对于逻辑运算或来说,不会继续运算++y,因此y=2;
最后将逻辑或后的值赋给t,由于逻辑或后的结果只有true(1)和false(0),由上面得知应为true,所以t=1.
发表于 2016-09-02 15:24:41 回复(0)
||指的是逻辑或,逻辑或会导致短路。
发表于 2015-09-08 13:17:02 回复(0)
c语言的惰性运算
发表于 2021-09-26 10:15:45 回复(0)
短路性
发表于 2018-05-22 14:09:05 回复(0)
’||'只要左面是真就不走右面了
发表于 2017-03-05 15:38:52 回复(0)
// 1为真,||后面的++y不执行
if (1 || ++y) {
}

发表于 2016-01-03 13:28:28 回复(0)
卧槽,原来那个是个判断的表达式.所以t应该为1...打两个字在这里加深点印象. 
发表于 2015-07-22 21:13:41 回复(0)
x++后非零,或运算直接返回1
发表于 2015-06-22 13:13:41 回复(0)
||具有短路效应,当左边为1,短路右边,所以++y并没有执行。
发表于 2022-09-25 22:09:52 回复(0)
首先t=3,x=2,y=2; 然后计算 x++||++y,由于x++为2,也就是说为true,对于逻辑运算或来说,不会继续运算++y,因此y=2; 最后将逻辑或后的值赋给t,由于逻辑或后的结果只有true(1)和false(0),由上面得知应为true,所以t=1.
发表于 2022-08-27 14:47:59 回复(0)
有个问题:前置自增的优先高于逻辑或,那不应该是先执行++y,再执行||,那y应该在自增的时候执行了啊
编辑于 2023-12-07 19:37:06 回复(0)
依次从左到右执行
发表于 2023-10-06 23:21:27 回复(0)
||  &&这两个运算符都是只要有一个满足条件就不执行判断另一个条件了,所以当她判断x++是true时,不会执行y++,直接返回1
发表于 2023-06-07 22:08:00 回复(0)
t获得的是bool值,所以只能是1或者0,此题t=1 对于或运算符的计算,当第一个表达式为真是就不在计算后面的表达式 所以y=2
发表于 2023-03-08 12:12:50 回复(0)
c语言惰性运算
发表于 2022-07-31 18:38:29 回复(0)