C/C++海格2016笔试题

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.youkuaiyun.com/zhaoshuzhaoshu/article/details/37600857/

OK。。。我要去面试了

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值