ing 发表于 2020-3-6 00:28

C 程序填空题

本帖最后由 ing 于 2020-3-7 17:33 编辑

我不知道这里为什么A、B 是可以的,需要一个详细的解释


我用 sizeof(a) 获取的 a 长度是 16,但选项中没有这个结果,难道这获取的不是字节大小?


我并没有看懂题目的意思


1空,得到字符然后把字符放在for循环自增???

二诗的Adidas 发表于 2020-3-6 02:45

14题应该是让你判断true还是false c语言里0是假,1是真吧

Mr丶张 发表于 2020-3-6 09:23

第七题编译器是从右往左编译A选项 先是&a取a的地址,然后*(&a)就等于3,B选项,*代表取值操作符,p本身存放的是a的地址,然后*p就等于3

深夜雪 发表于 2020-3-6 13:31

13题是因为vc的内存对齐机制变成了(6+2)+8=16,你加上这样一句代码 #pragma pack(1)   ,就能得到真实的大小6+8=14,具体怎么对齐的百度一下你就知道

行星波动 发表于 2020-3-7 12:05

14题选d
b是char类型的,‘0’用ascii码表示,换成int类型是48
A:!a为0,!b为0 两者相等 结果为真也就是1
B:!a和b 0和1取或 结果为1
C:a==b为0 取否为1

行星波动 发表于 2020-3-7 12:22

填空的话
第一个空是*p!='\0'
第二个空是*p>='0'&&*p<=‘9’

ing 发表于 2020-3-7 17:17

本帖最后由 ing 于 2020-3-7 17:35 编辑

深夜雪 发表于 2020-3-6 13:31
13题是因为vc的内存对齐机制变成了(6+2)+8=16,你加上这样一句代码 #pragma pack(1)   ,就能得到真实的 ...
懂了dalao,前面地址不是后面的整数倍就补齐。。。
页: [1]
查看完整版本: C 程序填空题