C语言中这两个题怎么做,分析的详细一点。谢谢

如图,第十五题和第十六题

第1个回答  2019-01-15
15.
as是一个字符串常量,应用双引号,单引号内只能是一个字符或转义字符(序列)

-0fff是8进制,f不是有效8进制字符

'\0xa',\后可出现3个8进制字符(范围是'\000'~'\377',表示char的范围)或\x(小x)后可出现2个16进制字符(范围是'\x00'~'\xff',表示char的范围),\后不能出现0x

16.
8.9e,e后必须跟一个整数常量

3.9E-2.5,E后只能跟整数

0a,a不是有效8进制数字
第2个回答  2019-01-14
15)选择答案A
单引号内只能有一个字符。

as是两个字符;以0开始的常数表示是八进制,而f则不是八进制字符;'\0'是一个字符,xa是另外两个字符。
16)答案A和D都是正确的。
0.0是实常数,+001是整常数
第3个回答  2019-01-14
15题:选A
A中的-0fff不是合法的常量。
另外两个'as'和'\0xa'虽然不规范,但作为字符型它们分别等价于's'和'a',作为数字它们分别等于由字符的十六进制asc码组成的十六进制数字的值。其实这种结果也不是想要的样子,应该把他们也放到非法行列中去。
其他BCD选项中都是合法常量。
16题:选D
先说D,D中+001是整型数字常量,0xabcd是十六进制数字常量,2e2和50.都是浮点型数字常量。这一组都是合法的数字或字符型常量。
A中的8.9e不是一个合法的数字常量;
B中“a"不是一个合法的字符常量,而是一个合法的字符串常量;3.9E-2.5也不是合法的字符型常量,因为E后面的数字只能出现整数;
C中0a不是合法的八进制常量,也不是其它任何数字型常量;
所以,ABC三个选项中都含有非法的字符常量或数字常量,不符合题意要求。
18题:选B
因为A和C中均含有字母e后面出现小数的数字(5e-9.4和1.2e-.4)
而D中的-e3和e-0,e前面都缺少数字。
B中的几个合法的数字是:
-.60=-0.60
12e-4=12×10^(-4)
-8e5=-8×10^5
所以,只能B选项是全部合法的数字。
第4个回答  2019-01-14
第一个网友是对的
相似回答