C语言 下列合法的赋值语句是()

C语言
下列合法的赋值语句是()A)a=b=58
B)k=int(a+b)
C)a=58,b=58
D)--i
求解答,谢谢!

A) a=b=58
B) k=int(a+b)
C) a=58,b=58
D) --i
A选项,正确。
B选项,错误。int需要加括号代表强制转换,直接写是不可以的。
C选项,错误。每条赋值语句后应该有分号,而不能用逗号,除非是定义变量时才可以用逗号。
C选项,错误。不是赋值语句,是执行语句,其功能是令i值自减1。追问

答案给的是D

追答

那是做题吧,做题跟实际开发工作是不同的。
A选项和D选项都没有语法错误。
但是教科书上并没有介绍可以使用A选项的方法,因此题目认为A选项错误。
现在的编译器对A选项的写法,一点问题都没有。

追问

就是习题,大一要考试啦

追答

那就选择D咯,A选项在开发中没有语法问题,D选项是一个执行语句,也算是赋值语句,毕竟改变了i的值。

追问

前面一题选项是a=b=c=100;是正确的,后面遇到这题a=b=58就是不合法的,就差个分号,但要这么看都没有分号

追答

就是呀,所以说,做题嘛,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-30
a、c、d是合法的赋值语句
b是错误的,因为类型转换不是这么写,应该是这样:
k=(int)(a+b);
d
相当于i=i-1;所以也可以算作赋值操作。
第2个回答  2017-12-31
A选项没有分号,不是个语句。
第3个回答  2016-12-23
选项c是正确的追问

答案是D,求详解