面试官很和蔼,握手,笑容,虐了你也笑
自我介绍。
int cal(unsigned int); //给定一个无符号整型,求十进制上出每一位数字的和。水题。
给定1~100整数,确定的1~100,即1、2、3、。。。100。
有1个缺了怎么办? //扫一遍求和减去sum,水题
继续问,缺2个呢,想了一下,说,其实这题我看过,不过实在是忘记了…没办法,排序吧。
特地去找了这题答案,我回复在了5楼。
给一叠52张牌,其中10张向上,42张向下,现在你在一个黑麻麻的屋子里,让你把这一堆牌分成两堆(没要求数量一样),要求两堆牌中向上的牌的数量一样。
一看就是无解题,想了很久说不会,面试官说没事,这个需要跳跃性思维,回来我在群里和acm的小伙伴讨论了一下,一个仲恺的朋友发出了解法。
这里我先不说,这是个IQ题,有兴趣可以回复答案,我点评来回答。除了开灯这种违反规则的,其他的你都可以做,字眼你慢慢抠。
一下位运算的操作:
一个数字,化成二进制,交换奇偶位置。
我写了个o(log),问我怎么优化。
我说log那个量可以写成常量。
最后写成了o(1)的。
x=( x & 0x55555555 ) | ( ( x<<1) & 0x55555555);
一个数字*7,怎么写比较快。
一开始傻了,后来改正了。
x=(x<<3)-x;
进程和线程的区别。//烂大街了吧
问了一下多态。//秒了,我暑假把c++primer看了一遍的。呵呵。
问我多态怎么实现,不是代码怎么实现,是编译器怎么实现。
我说虚表。
然后问虚表是什么时候做的。
我说我猜是编译的时候就做好了。
(然后再继续虚表的细节,我都猜了)
问了一下课程有哪些,喜欢哪些,我说除了算法数据结构之外,操作系统还可以。
问我分数,自豪答我数据结构100,屌丝地说操作系统什么的80+,幸好他不是广工的。
那你喜欢操作系统,哪一块?调度还是存储还是。。?
进程什么的吧。
优先级翻转是什么?有了解吗?
硬着头皮答了一下,回来查了一下,丢脸了。
然后聊了一下人生,聊了一下其他。好像没了,可能有漏了题目,我记起来的话会编辑这篇文章。
—–
握手,言谢。让我出去等,说要给组织人员反馈。