应该选B
因为赋值语句两个标志:赋值(就是“=”)和语句(加上“;”)
而A和C都是表达式
表达式是类似于赋值语句的,比如“a=1”是表达式
而“a=1;”是赋值语句
而D,上面那位仁兄说的也有道理。但毕竟是选择题,选择最符合出题人
意思的选项,仅仅是个“--i;”,没有等号,所以不选D。
至于C,在谭浩强的书上有讲:用(int)(a+b)和int(a+b)是一致
不信你可以编译一下,本人已经验证过。
PS:
本人1月份刚参加研究生考试,专业课里有C,所以对这些定义比众位
仁兄记得更清晰一些,惭愧惭愧!
A、C、D是合法的赋值语句
B是错误的,因为类型转换不是这么写,应该是这样:
k=(int)(a+b);
D 相当于i=i-1;所以也可以算作赋值操作。
上面有人说了一大段,但是不正确
精要的分析下
------------------------------
应该选B
------------------------------
A,a=b=58 //不正确,没分号
b,k=int(a+b); //正确
c,a=58,b=58 //不正确,没分号
d,--i; //不正确,没啥说的
应该是D。
A.a,b对象不明确,如果都是int,float,double,char,short int当然可以,如果不同则不能赋值。
B.虽然强制转换表达正确,但k对象不明。
C.当b是一个bool型当然也会出现错误!
答案选D因为合法的赋值语句要有分号A C都没有 所以肯定错误