C语言中,下列不合法的字符常量是

A '\xff' B '\65' C '&' D'\028'
求解释啊,谢谢大家啦

C语言中,不合法的字符常量是“A、'\xff'”,因为这虽然属于ASCII码字符,但是“ff”超出了ASCII码最大的“7f”,所以不合法。

“B、'\65'”属于ASCII码字符,“C、'&'”属于普通字符,“D'\028'”属于ASCII码字符。字符常量主要以下三类:

1、普通字符

即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。

2、转义字符

即特殊字符常量,转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。

3、ASCII码字符

还可以用字符的ASCII码表示,即用反斜符(\)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法是:

(1)用字符的八进制ASCII码,表示为:\0dd.这里,0dd是八进制值(0可以省略)。

(2)使用字符的十六进制ASCII码值,表示为 \xhh或Xhh 这里hh是两位十六进制值。

扩展资料:

C语言中合法标识符的规则:

1、标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。

2、不能把C语言关键字作为用户标识符,例如if ,for, while等。

3、标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。

参考资料来源:百度百科-字符常量

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。

A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。

B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。

D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。本回答被提问者采纳
第2个回答  2014-08-23
首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。

A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。

B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。

D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。
第3个回答  2014-08-23
(6) 0x3.6 0x开头 这是个16进制数,16进制数没有小数形式,后面不能是3.6这种
(10)E-10 要用小写 e
(11)0x2e-6 同第一条,e是个小数
(12)4.2e 这个没有原因,格式不对,正常应该是 Ae-B ,A,B 都是整数
第4个回答  2019-12-21
D.'\028'是不合法的字符常量。
因为以这种表示字符常量的方法,应该是三位八进制数字,而八进制中,最大的数是7。