在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&gt;0; D. k=i==j;
2024年11月18日 16:50
有5个网友回答
网友(1):

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是右值,所以非法

网友(2):

D 赋值左面只能是变量 ABC正确

补充:A选项从语法上讲是没有错误的,所以如果是单选我倾向选D,但是A的含义并不是x在0和100之间

网友(3):

答案是D
对于C语言来说,D相当于给一个常量赋值

网友(4):

D

网友(5):

我错了~