以下合法的C语言赋值语句是?A.a=b=58 B.k=int(a+b) C.a=58,b=58 D.--i;3

我想问D选项,为什么后面可以加一个3?这是什么意思呢?
D.--i;3
请不要怀疑我的题目TT

合法的C语言赋值语句是 A.
int a,b;
a=b=58;
printf("%d %d\n",a,b); //打印出 58 58
----------
B.k=int(a+b) 改为 k=(int) (a+b); 才对
-----------
C. a=58,b=58 改为 int a=58,b=58; 声明加初始化才对
-----------
D. --i;3 不是 赋值语句
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-02
程序运行的时候若是非要保留那个3,后面应该加上一个分号。 写成,--i;3; 这样程序运行才能通过。否则,提示有错误,丢失分号。 而3;在程序运行中不起任何作用。

本回答被网友采纳
第2个回答  2013-02-25
D也不对啊。追问

D是合法的,答案就选D

追答

书上印错了吧,孩子,自己动手上机去试试就好了。

追问

差了很多资料都说D是对的,我就是想知道原因

第3个回答  2013-02-25
--i;
--是自减运算符。--i;实际上就是i=i-1;
所以是合法的赋值语句。

A项语法错误:不能连续赋值。
B项:强制类型转换运算符必须用小括号括起来,另题目要求是合法的赋值语句,语句要以分号结束。正确的应该是k=(int)(a+b);
C项:缺少分号。不是语句,只是表达式。
D项:正确。追问

请问一下,D选项后面有个3是什么意思?

追答

实际上,程序运行的时候若是非要保留那个3,后面应该加上一个分号。
写成,--i;3;
这样程序运行才能通过。否则,提示有错误,丢失分号。

而3;在程序运行中不起任何作用。

A项的错误原因说错了。
实际上A项错误,是因为丢失分号。不是语句。

本回答被提问者采纳
第4个回答  2013-02-27
BCD选项不对