C/C++海格2016笔试题

来源:互联网 发布:防火墙禁止软件联网 编辑:程序博客网 时间:2024/06/06 04:36

8:30爬起来去笔试,感觉灰常酸爽。

考的时候很淡定,回来查阅知识点哭晕在厕所。

这会儿缓过来,总结几个错题吧,只能记录一下题目的大致意思咯:

1 问a的值是多少?(选D)

<span style="font-family:KaiTi_GB2312;font-size:18px;">        unsigned long int a = 0xAABBCCDD;unsigned char b = -1;a = a >> 24 ^b;</span>
四个选项:A:0xAA       B:0xBB      C:0x44      D:0x55
很显然,这题考查重点在于-1的二进制表达和异或的运算法则。

关于进算计中数据的二进制表达:

在计算机中,数值都是以补码的形式保存。

补码:正数的补码和原码一样。

      负数的补码,就是在原码基础上,保持符号位不变,其他位取反,然后再加1。(即反码加1)

      其中符号位:0表示正,1表示负。

按位异或 ^:相同为0,相异为1。

(PS:同或是相同为1,相异为0。)


2 问a的值是多少?(选D)

<span style="font-family:KaiTi_GB2312;font-size:18px;">int a, b = 7;a = b+2 = a+b;</span>
四个选项:A:9       B:不能确定      C:16      D:不能通过编译

这里还是比较微妙的,如果第二句只有a = a+b; 那么就要选B了。

b+2是不能被赋值的。


3 win32系统下,输出结果是什么?(选D)

<span style="font-family:KaiTi_GB2312;font-size:18px;">union s{char a[4]; unsigned long l;}ss = {'a','b','c','d'};cout << ss.l << endl;</span>

四个选项:A:'a'       B:'b'      C:'c'      D:'d'

这里s是个共用体,但牵扯到大端小端存储问题。

可以参考这个:
http://blog.csdn.net/zhaoshuzhaoshu/article/details/37600857/

OK。。。我要去面试了

0 0
原创粉丝点击