下列赋值语句中符合C语言语法的是

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:26:05
下列赋值语句中符合C语言语法的是
A. a=7+b+c=a+7;
B. a=7+b++= a+7;
C. a=7+b,b++,a+7
D. a=7+b,c=a+7;

拜托高手能把ABCD全面分析分析.对的原因和错的原因都讲讲 谢谢啦

我晕啊!我怎么感觉一楼和二楼的说的都不对啊?!
首先说一楼的:
说C对,先不说C项没有分号。
说a=(7+b,b++,a+7 );
这是什么表达形式啊?我是没见过,而且这根本不可能通过编译嘛。
比如说a=(1,2,3);那您告诉我,a的值是多少?根本就是这种表达形式!!!

再说二楼的:
"对于选项D,应该把中间的 逗号 改为 分号。 因为在C语言中 ,语句必须以分号结尾。"
在C语言里,完全可以在一条语句中对多个变量进行定义和初始化。例:int a=2,b=3,c=4; 这是完全可以通过编译而且可以正常执行的。事实上,我们经常这样写,因为在一条语句里把相关变量一起进行定义和初始化很方便而且易读!!!

我的分析:
A项和B项是错的,这不用说了。
C项是不对的,一是因为C项最后没有分号,这样会不能通过编译的;二是因为C项里的变量b没有被定义就使用了,这样也会不能通过编译的。
D项也不对,但不是因为二楼说的,而是因为变量b没有定义。
而且ABCD有一个共同的错误,那就是没有指定变量是什么类型,这在C语言中也会不能通过编译的。
但根据题意,可知他省略了变量类型。
而且相对来讲,D项可以认为是对的,因为可以认为变量b在前面已经被定义过了。
而C项不可以认为是对的,因为少";"号是常犯的错误,也是考点之一。

正确的问题是:
下列赋值语句中符合C语言语法的是
A. a=7+b+c=a+7;
B. a=7+b++= a+7;
C. a=(7+b,b++,a+7 );
D. a=7+b,c=a+7;
正确答案为:C
1.其中A,B为非法形式.因为a+7不能给表达式7+b+c和7+b++赋值。
2.a=7+b,c=a+7为合法的逗号表达式,不是赋值表达式,所以D也不正确.
3.a=(7+b,b++,a+7 )才是正确的赋值表达式,所以C是正确的.

首先,我做的答案是D.
分析如下:
对于选项A和选项B,由