首页 > 试题广场 >

以下逗号表达式的值为( )? (x=4*5,

[单选题]
以下逗号表达式的值为()

(x=4*5, x*5), x+25

  • 25
  • 20
  • 100
  • 45
逗号表达式值为逗号右边的值,先算括号里的x=20,括号内的逗号表达式的值为100,但整个表达式的值是20+25=45
发表于 2018-05-20 21:04:28 回复(3)
考查的就是优先级,先计算括号里面的,x=20。然后算出了100,因而并没有什么卵用。因为最后只利用x=20,计算20+25=45。
嘤嘤嘤,拿小拳拳锤出题人的胸口。
发表于 2018-11-01 20:46:29 回复(5)
就我一个人理解的有偏差吗?




发表于 2019-12-19 15:13:21 回复(5)
这题答案错了吧?
(x=4*5, x*5), x+25  这种的是100;
((x=4*5, x*5), x+25) 这样才是45
发表于 2021-09-24 19:46:37 回复(0)
(x=4*5, x*5), x+25//前面x=4*5=20,x*5=20*5=100,100是前面(x=4*5, x*5)表达式的值,并不是x的值,x的值没有改变还是20,所有后面20+25=45
发表于 2021-03-04 15:53:56 回复(0)
搞懂了,就是逗号表达式只有右边的才作数,左边可以得到x=20(x*4并没有改变值),然后右边计算,最后得到整个表达式值(最后x的值还是20)
发表于 2019-03-13 22:07:06 回复(0)

发表于 2019-02-20 15:36:26 回复(0)
逗号表达式,是c语言中的逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值
发表于 2022-11-10 15:56:44 回复(0)
// 逗号表达式分析过程
// 赋值符号“=” 优先级要高于“,”,因此小括号会影响其计算结果
x = 4 * 5, x * 5  // x = 20
y1 = (x = 4 * 5, x * 5)  // y1 = 100
y2 = x = 4 * 5, x * 5  // y2 = x = 20
y3 = (x = 4 * 5, x * 5), x + 25  // y3 = 100
y4 = ((x = 4 * 5, x * 5), x + 25)  // y4 = 20 + 25 = 45
编辑于 2020-02-26 09:07:02 回复(1)
逗号表达式按照从左向右的顺序计算每个子表达式的值。 逗号表达式的值等于最后一个子表达式的值
发表于 2022-01-11 04:06:35 回复(0)
难道不是20吗,后面两个逗号又没有赋值语句
发表于 2022-11-11 09:15:28 回复(1)
又是一个为了考试而考试的题
发表于 2022-01-12 00:38:26 回复(0)
逗号运算符是指在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
发表于 2018-06-21 15:49:42 回复(0)
(x=4*5, x*5), x+25
可以看成 y =((x=4*5,x*5),x+25),  y= x+25=45;
x+25也是一个逗号表达式,并且在(x=4*5,x*5)的右边,所以x+25的值就是最终值.
发表于 2023-09-21 11:43:52 回复(0)
因该是入题的大哥少加一个括号吧。。。。。。。
发表于 2022-08-15 08:36:57 回复(0)
这不是20吗? 逗号表达式,从左往右计算,先算第一个,x=20,再算x*5,但是没有改变x的值,再算x+25,还是没有改变x的值,所以x最终还是20.。
发表于 2021-07-04 00:38:11 回复(0)
这不是20吗?
逗号表达式,从左往右计算,先算第一个,x=20,再算x*5,但是没有改变x的值,再算x+25,还是没有改变x的值,所以x最终还是20.。
发表于 2019-01-24 22:28:51 回复(1)
发表于 2023-11-14 19:45:25 回复(0)
逗号表达式是以最右边的项为返回值的,所以返回的就是x+25,但是在之前,x经过了运算,也就是x = 4*5,x = 20,所以x+25 = 45
发表于 2023-10-13 23:17:43 回复(0)
这个题 不严谨,理解题容易误差。
逗号运算符, 从左往右依次执行,整个表达式的值等于最右边的值,有个前提条件是有小括号。
但是这个题中,逗号表达式指的是小括号里的逗号运算表达式,还是整个的运算符表达式?
发表于 2023-09-06 21:16:33 回复(0)