C语言 字符常量问题

1、以下数据中不正确的数值或字符常量是(C),答案为什么是C?
A、0 B、5L C、 o13 D、9861
2、下列不合法的十二进制数是(C)答案为什么是C?
A、 0xff B、 OXcde C、 ox11 D、 Ox23
打错了,第二题是不合法的十六进制数

第1个回答  2014-05-26
答案选B

A选项为字符串常量:字符串常量是由一对双引号括起的字符序列。

B选项为字符常量:字符常量是用单引号括起来的一个字符。
例如:'a'、'b'、'='、'+'、'?'都是合法字符常量。C还允许一种特殊形式的字符常量,就是以一个‘\’开头的字符序列。
在C语言中,字符常量有以下特点:
字符常量只能用引号括起来,不能用双引号或其它括号。
字符常量只能是单个字符,不能是字符串。
字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5是不同的。’5’是字符常量,不能参与运算。

C选项为整型常量

D选项可以为一个标识符,被定义为变量

请采纳答案,支持我一下。
第2个回答  2014-05-26
第一题:字符常量貌似不能是字母开头的
第二题:1——o的跨度33,不可能是12进制追问

不好意思,第二题是问不合法的十六进制数,打错了

追答

不好意思,我也说错了,ox在代码里代表的是十六进制的意思,并不是跨度的问题,你把11化到二进制就会发现应为10001,再转化到十进制就是9,而九在十六进制中就表示为九,或者11直接表示为A

追问

11是分开的还是就是11,D选项23也是分开的吗?
对于这个问题我很糊涂啊,怎么看啊?

追答

23就也可以表示成二进制,应为100011,再转化成十进制为35>16,因此是成立的

相似回答