在C语言中,以下非法的表达式是( ) A. 0<=x<=100; B. i=j==0; C. (char)(65+3); D. x+1=x+1;

在C语言中,以下非法的赋值语句是( )
A. j++; B. ++(i+1); C. x=j>0; D. k=i==j;

A的意思是(0<=x)<=100;(比较运算符从左到右计算)
//先返回0<=x的值,正确为1错误为0,再把它的值与100进行比较,因为0和1都比100小
B的意思是i=(j==0);(比较运算符级别比赋值运算符高)
//先返回j==0的值,正确为1错误为0,再把它的值赋值给i
C的意思是把整型数65+3的值强制转换为字符类型char,返回ASCII为68的'D'
D的意思是将x+1赋值给x+1,因为x+1是个右值,只能放在赋值运算符的右边,所以非法

答案为D

第二题是B
++(i+1)等价于i+1=i+1+1,因为i+1是右值,所以非法
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-08
D 赋值左面只能是变量 ABC正确

补充:A选项从语法上讲是没有错误的,所以如果是单选我倾向选D,但是A的含义并不是x在0和100之间
第2个回答  2011-08-08
答案是D
对于C语言来说,D相当于给一个常量赋值
第3个回答  2011-08-08
D
第4个回答  2011-08-08
我错了~
相似回答