6. 以下合法C语言赋值语句是( )。

6. 以下合法C语言赋值语句是( )。
A.a=b+7=c+8; B.a=int(a+1.2); C.a=12,b=56 D.i++;
PS:我用了wintc运行过了,B选项显示错误................

显然是D
纠正网友117556187的错误:
i++;的执行效果会使得i的值自加1,相当于i=i+1;是有效的赋值语句!
B显然是错的:强制类型转换必须是a=(int)(a+1.2);才行
C是表达式,缺少分号,故不是语句
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-21
(原二楼)
正确答案 :B

A项,明显不符,不解释(不懂,就看书本了);
C项,作为c语句,其格式是: 表达式 + ; 该项缺少了 分号;故错误;
D项,i++,是循环控制,是语句,但没有赋值 = 。故错误。

B项,正确,首先,执行a+1.2 再强制转换整形int。 重新赋给a 一个新值。

补充:

同意三楼( shensljx ) 其解释很正确,我记忆错误了。
忘了 i++ ; 是等价的 i =i+1;
还有强制类型转换,范式中类型,要加括号的

抱歉楼主,我的错误让你纠结了。。。: shensljx 的解释是正确的。
第2个回答  2010-12-20
A.=赋值运算符的结合方向是从右到左,且等号左边不允许出现常量
B。a+1.2会强制转化成浮点型,强制装换成Int型应该是这样写的(int)(a+1.2)
C使用了逗号运算符,但却少分号,不是语句
D为自增运算符
以上是个人理解,我觉得你的C是不是少抄了一个分号
第3个回答  推荐于2017-12-19
B是正确的,A是错误的。
赋值表达式的左边必须是变量而不能是表达式。本回答被网友采纳
第4个回答  2010-12-20
b选项是对的,但WINTC编译器无法编译它;用DEVC或VC都可以的。其他选项都是错的。
相似回答