设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是( )。 A. (!a==1)&&(!b==0) B. (a<b)&&!c||1 C. a&&b D. a||(b+b)&&(c*a)
时间: 2024-06-18 22:04:56 浏览: 339
选项B中的表达式值为0。该表达式可以拆分为三部分:(a<b)、(!c)和1。其中(a<b)的值为1,(!c)的值为0,1的值为1。因为逻辑运算符的优先级为非(!)> 与(&&)> 或(||),所以先计算(!c)的值为0,然后计算(a<b)&&!c的值为0,最后计算0||1的值为1,整个表达式的值为1。因此,选项B错误。
相关问题
设有定义: int x=2;, 以下表达式中值不为6的是__ A. x=x+1, 2*xB. x=(x+1, 2*x)C. x*=(1+x) D. x*=x+1 并解释a,b,c,d的原因'
表达式 A、C、D 的值都为 6,而表达式 B 的值为 4。
A:x=x+1,表示将 x 的值加 1,变成 3,然后将结果赋值给 x,所以 x 的值变成了 3。接着 2*x 的值是 6,所以整个表达式的值是 6。
B:x=(x+1, 2*x),逗号表达式会依次计算每个子表达式,并返回最后一个子表达式的值。所以,先计算 x+1,得到 3,但这个值并没有用到。接着计算 2*x,得到 4,这个值被赋值给了 x,所以 x 的值变成了 4。整个表达式的值是 4。
C:x*=(1+x),相当于 x = x * (1+x),即 x = 2 * (1+2) = 6,所以表达式的值是 6。
D:x*=x+1,相当于 x = x * (x+1),即 x = 2 * (2+1) = 6,所以表达式的值是 6。
因此,选项 B 的值不为 6,而其他选项的值都为 6。
阅读全文