设有定义: 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的原因'
时间: 2023-09-18 09:09:25 浏览: 230
C语言程序设计模拟试题A附答案.docx
表达式 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。
阅读全文