sppk.net
当前位置:首页 >> 若变量已正确定义并赋值,下面符合C语言语法的表达... >>

若变量已正确定义并赋值,下面符合C语言语法的表达...

A中的":="不是可识别的运算符,故错; B是对的,相当于:b=c+2; a=b;(赋值运算从右到左算); C:错的,要么定义变量:int a=18.5%3 ; 要么数据类型强制转换:(int)18.5%3; int 18.5%3这就不伦不类了; D"="号左边是不能有表达式的,给表达式是不...

表达式应该是有一个值的。 所以如果if(a=a+7;)这样是不行的。 a=a+7是合法表达式,加了分号应该说是一个合法语句。 没有分号A就对了。 虽然这样能解释的通,但我觉得这样的题目没啥意思。

A a=a+7; //不符合,这不是表达式,是语句 B a=7+b+c,a++ //符合,这是逗号表达式 C int(12.3%4) //不符合,12.3不能做%运算 D a=a+7=c+b //不符合,a+7不能做左值。 结论:C正确

B 正确。等价于 b=c+2; a=b;//=c+2 A 中 a:= 在C中没有这种 :=运算 C 中 int 后面必须是变量而不能是常数或者一个表达式,但变量之后可以跟用常量或者表达式初始化。如 int x=18%3 D 中 a+7不能作为左值。D等价于: a+7=c+b; // Line1 a=a+7; //...

B和D为什么是错误的不用解释吧,=是赋值符,表示将右边表达式的值赋值给左边的变量,之前肯定是不能出现表达式的。%运算符是除法取余数运算,只有整形才能用,18.5不是整形。+=是复合运算符,a += 7 即a = a+7,c编译器从右向左编译,先计算a+7的...

正确答案是 B; 首先 是显而易见的错误选项C跟D: C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。 D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。 下面看看选项B 为什么也符合C语言: B 项为逗号运算符...

A是什么鬼,没见过 c 取模必须是整形 D a+7 不可以作为左值使用!!,左值必须是变量!而不是表达式

不考虑分号的话,1和2是对的。1不用说了,2是可以的,2的执行顺序是将c+2的值赋给b,然后将b赋值给a,这样连续赋值是可以的。4不可以是因为表达式a+7返回的不是左值。

以下详细解析. A:正确 B: a=7+b+c,a++;在编译器看来这句代码是可以通过编译的,但是! 逗号表达式的值是最后一个表达式的值,也就是说,a=a++; a=a++;这句代码存在undefined behavier,C语言标准规定:逗号表达式存在序点,副作用必须在两个序点间完成....

选B。。 A有分号,是一个语句,而不是表达式。。 B是一个合法的逗号表达式。。

网站首页 | 网站地图
All rights reserved Powered by www.sppk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com