一个小屁孩 发表于 2013-9-27 17:23:59

大家好,我新手来的,想请教大家第二章几道题,希望大家给予帮助,谢谢!

12. 下列数字不合法的是
A. 0123
B. 0x1ad
C. 3.2543e5
D. 8E5.2
B为什么是对的?D我知道了
13. 下列字符常量不合法的是
A. ‘\123‘
B. ‘\"‘
C. ‘\\‘
D. ‘aa‘
这个完全不懂orz...............
18. 以下程序程序运行输出的结果是
[*]#include <stdio.h>
[*]main()
[*]{
[*]      int a = 011;
[*]      printf("%d", a ++);
[*]}

复制代码

A. 9
B. 10
C. 11
D. 12
希望大家帮忙解答,谢啦

福禄娃娃 发表于 2013-9-27 17:24:00

补充下LS的
12. 0123八进制数0x1ad十六进制数3.2543e5科学计数法8E5.2没有这种表示方式
13. 字符常量是用单引号括起来的单个字符构成。
有两种表示方法:
一种是用该字符的图形符号,如'b' ,'y','*'。
另外还可以用字符的ASCII码表示,即用反斜符(\)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法是:有两种形式:
一种是用字符的八进制ASCII码,表示为:\odd.这里,odd是八进制值(o可以省略)。
另一种使用字符的十六进制ASCII码值,表示为 \0xhh或0Xhh 这里hh是两位十六进制值。
18. 楼上正解

牡丹花下死做鬼 发表于 2013-9-27 17:37:20

12: 0x 表示这个数是十六进制
13 我一直没搞懂过 估计除了考试没多少用处至少我暂时写程序没被这个卡住过
18 011是8进制的写法,换成10进制是9 a++ 是先输出在自增所以 输出是9

苹果沃珂 发表于 2013-9-27 18:08:32

牡丹花下死做鬼 发表于 2013-9-27 17:37 static/image/common/back.gif
12: 0x 表示这个数是十六进制
13 我一直没搞懂过 估计除了考试没多少用处至少我暂时写程序没被这个卡住过 ...

13中,题目是字符常量,即char ch;是一个字节的的数据。 所以
'\123'是一个转义字符。此时是对的
\"‘ 也是一个转义字符,是对的
\\‘ 也是一个转义字符,是对的
'aa'不是转义字符,就是两个字符,是错的

残II 发表于 2013-9-27 20:36:30

13中,
‘aa’是一个字符串而不是字符
应该是“aa”

平平常常丶 发表于 2013-9-28 09:46:16

12:0x表示16进制数,明白?
13:暂时没搞懂,不过D选项肯定不合法,因为字符串应该用双引号。
18:011表示八进制数,化成十进制就是9,主要跟你说一下前自增(++i)和后自增(i++),
               前自增:整体表达式的值是i加1之后的值;
               后自增:整体表达式的值是i加1之前的值。
       这边是后自增,所以输出应该是a自增之前的值。

玉宁417 发表于 2013-9-28 11:01:13

恩,我也学习了:lol:

小号4 发表于 2013-9-28 21:28:29

我也学习了,

jiuchen 发表于 2013-9-29 00:20:36

哇 顿悟了的感觉

rhwcl 发表于 2013-9-29 14:53:20

最开始做的时候我也不懂,不及格啊,没脸见人了

一个小屁孩 发表于 2013-10-8 22:12:02

谢谢你们,各位前辈!
页: [1]
查看完整版本: 大家好,我新手来的,想请教大家第二章几道题,希望大家给予帮助,谢谢!