首页 > 试题广场 >

若所用变量都已正确定义,以下选项中,非法的表达式是()

[单选题]

若所用变量都已正确定义,以下选项中,非法的表达式是()

  • a!= 4||b==1
  • ’a’ % 3
  • ’a’ = 1/3
  • ’A’ + 32
'a'是个常数,不能赋值
发表于 2017-05-08 00:07:43 回复(17)
C中的‘a’是char类型,1/3是int类型。将int赋值给char属于从高向低赋值,所以错误
发表于 2017-07-25 09:44:59 回复(8)
当字符型与整型运算时会自动转换成整型。a的ASCII码为97,所以
发表于 2017-05-12 17:35:52 回复(0)
'a'%3=97%3
发表于 2018-05-18 15:19:45 回复(2)

C中‘a’=1/3;长类型不能自动转换为短类型,会发生类型转换错误

发表于 2017-05-04 17:29:01 回复(1)
B选项 'a'%3 会把a自动转换成对应的ASCII码值进行运算;C选项 'a'=1/3,这是将1/3的值赋值给a。注意类型关系:a是char型的而1/3默认是整数(int)型的,不能将int的数据直接转换成char,需要强转。
发表于 2018-12-05 09:38:22 回复(2)
优先级:单目计算比大小,与或之后在赋值
发表于 2017-06-27 16:07:52 回复(0)
这题的坑就是把‘a’还当做变量看,题意是在所用变量都已正确定义,所以加‘ ’的a是char型的值
发表于 2020-12-02 17:07:21 回复(1)
说下B、D,都是char向上转型之后才可以进行的,尤其是%,这个运算符只能被整形使用,如果改成2.3%3,编译器直接报错。
发表于 2018-06-26 20:36:49 回复(2)
'a'是个值,1/3也是个值,值不能等于值,得用一个变量去接收值。
发表于 2021-11-24 19:42:48 回复(1)

‘a’是个char型的字符,不是变量,不能被赋值;b和d是因为字符型在和int型做运算时会自动转换为其对应的ascii码,就比如‘a’参与运算时是97

编辑于 2021-03-15 23:06:02 回复(0)
常数不可以赋值给常数,编译报错。
发表于 2019-02-22 21:54:43 回复(0)
字符会根据相应的ASCII编码被是识别成数字,所以字符不能被赋值,因为常熟不能被赋值。
发表于 2017-06-06 00:16:53 回复(0)
求解释B选项
发表于 2017-05-07 11:57:59 回复(3)
'a'是一个常数,不可以赋值
B选项的如果改为于'a'%=3 也是'a'='a'%3这种写法,这样子也是错的,也容易误会
编辑于 2018-11-29 15:54:19 回复(2)
A: 运算符的优先级:关系运算符>逻辑运算符
B:'a'为字符型,而字符型本质是数值,只不过针对char显示时,根据ascii表解释成对应字符.其值范围为0~2^16-1
C:赋值运算符的左边是常量值,值赋予值~就如同1=2一样
D:与B相同
发表于 2018-05-25 10:30:36 回复(1)
‘a’是个char类型对他进行运算时会转换为int类型所以b,d正确。但是c是个赋值,你不能对一个常量赋值啊。
发表于 2023-09-01 11:50:56 回复(0)
'a'是一个字符,在ascii码有其对应的数字,在计算机中输出时,根据用户希望的输出格式不同而显示不同,要不%d显示它所对应的数字,要不%c显示小写字母。而在赋值运算中,=左边需要的是一个空间,一个容器,来装=右边的值,而'a'是已经规定的显示字母a的一个符号,更像是一个实体东西,不能充当容器。
发表于 2023-06-02 12:49:26 回复(0)
char的本质还是数字,占2个字节,但是取值范围是0~65535,如char a=65535,但是char b=(char)65536,在范围内直接赋值不需要强制转换
发表于 2023-01-15 23:41:17 回复(0)
‘a‘常量,‘a‘=1/3,会先将a转换成相对应的ASCLL码,然后常量不能被赋值
编辑于 2020-09-22 21:04:54 回复(0)