2.8 若变量已正确定义并赋值,符合C语言语法的表达式是

2.8若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b为什么B正确啊那个是定义啊... 2.8 若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
为什么B正确啊 那个是定义啊?
展开
 我来答
烟火夜空
推荐于2018-03-20 · TA获得超过6620个赞
知道大有可为答主
回答量:1678
采纳率:93%
帮助的人:540万
展开全部
正确答案是 B;
首先 是显而易见的错误选项C跟D:
C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。
D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。

下面看看选项B 为什么也符合C语言:
B 项为逗号运算符(表达式1,表达式2,...表达式n),其中最后一个表达式(表达式n)最为整个逗号运算的结果(即 B项的最后结果为 a++);而在此之前,逗号运算符会先对前面的所有表达进行编译操作(即先执行a=7+b+c),最后才将表达式n 作为结果返回。

下面再看看 为什么 A 不符合要求:
A 毋庸置疑,A 的写法完全符合C语言要求,编译绝不会出错。但是 题目要求 却是 “表达式”;
C语言中,语句是由 表达式 加 语句结束符(分号;)组成的。A选项中结尾含有分号,也就是说,A选项 实际上是 C语言语句,而不是表达式;B 选项没有语句结束符,所以 B选项是 表达式,符合题目要求。
来自:求助得到的回答
蹒跚踏雪行
2009-06-29 · TA获得超过112个赞
知道答主
回答量:104
采纳率:0%
帮助的人:72.6万
展开全部
B和D为什么是错误的不用解释吧,=是赋值符,表示将右边表达式的值赋值给左边的变量,之前肯定是不能出现表达式的。%运算符是除法取余数运算,只有整形才能用,18.5不是整形。+=是复合运算符,a += 7 即a = a+7,c编译器从右向左编译,先计算a+7的值,然后存入a所在的地址(从新赋值a).因此A正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户66610
2013-02-17 · 超过15用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:50.4万
展开全部
a,既然是变量中途肯定能在赋值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-02-17 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1546万
展开全部
目测A、B、D都符合语法,只是A、D是UB而已……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcd96014
2013-02-18 · TA获得超过3894个赞
知道大有可为答主
回答量:2.5万
采纳率:0%
帮助的人:5042万
展开全部
一种说法是,要注意后面的表达式;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式