您的位置:首页 > 编程语言 > C语言/C++

C/C++海格2016笔试题

2015-09-09 11:13 363 查看
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。。。我要去面试了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: