首页 > 试题广场 >

为以下表达式选择结果是?( ) int a =

[单选题]
以下表达式选择结果是()
int a = 0;
int b = (a=-1) ? 2:3;
int c = (a=0) ? 2:3;

  • b=2, c=2
  • b=3, c=3
  • b=2, c=3
  • b=3, c=2
a=-1,表达式的值为-1,非零,为真,故b=2;
a=0,表达式的值为,为零,为假,故c=3;
发表于 2017-09-07 12:35:52 回复(3)
死坑死坑,把=看成==不止我一个吧?
发表于 2019-01-07 15:10:58 回复(1)
其中a=-1,a=0均为赋值,-1赋给a,不为零,为真,故b=2.同理,0赋给a,为假,故c=3.
若将23行改为a==-1,a==0;则为比较,此时a为0,不等于-1,为假,则b=3,同理c=2;

第二种如上;

发表于 2017-09-07 11:34:52 回复(3)
赋值语句的返回值为等号右侧的数值,所以a=0返回值为0。
发表于 2019-06-26 21:30:10 回复(0)
hxb头像 hxb
主要考点是注意赋值运算(=)和关系运算符(==)的区别。
即注意(a=-1)是赋值操作和(a==-1)的区别。
发表于 2017-09-08 09:41:31 回复(0)

整型——任何非零值(包括负数)转换为bool的结果是true。
浮点型——0.0转换为false,所有其他值转换为true
指针——(空指针转换为false,所有非空指针值转换为true)也是如此。

编辑于 2021-08-20 19:03:26 回复(0)
括号里面居然是赋值操作...
发表于 2019-09-03 20:51:12 回复(0)
=不是==,下次注意
发表于 2023-04-20 00:24:49 回复(0)

考察三目运算,问好左边非零为真,值等于冒号左边的,零为假,值为冒号右边

发表于 2020-01-01 18:07:23 回复(0)
a=0为赋值表达式,其值为0,为假
发表于 2022-03-14 23:42:30 回复(0)
把=看成==不止我一个吧? a=-1非0为真! a=0为假
发表于 2021-11-11 08:34:45 回复(0)
其中int a=0;中a的值不影响b,c
发表于 2021-05-13 12:36:03 回复(0)
-1也是真 a=-1为真 则b=2
发表于 2020-05-01 20:05:11 回复(0)
题目有误,题目再怎么简略也不能把==和=混淆
发表于 2020-04-19 12:10:35 回复(1)
问的是表达式的值
发表于 2019-11-25 11:40:29 回复(0)
我去哦,原来这么错的,掉坑里嘞
发表于 2019-09-26 19:23:28 回复(0)
原来不为0就是真,不分正负。。。我还以为负数也代表假。
发表于 2019-09-15 10:50:44 回复(0)
啊啊啊啊,赋值啊,不是判断等于,先三目运算,在赋值b,c,好多坑啊

发表于 2019-04-09 17:14:39 回复(0)
a=-1,表达式的值为-1,非零,为真,故b=2; a=0,表达式的值为,为零,为假,故c=3;
发表于 2018-11-28 19:16:51 回复(0)
这个坑不错,哈哈哈!天残眼~~~~~~~
发表于 2018-09-30 19:48:30 回复(0)