微信后台实习生面试(一面) (2016/3/8 3 : pm--5 : pm)
走到 TIT 创意园的时候才两点多一点点,约的时间是三点钟,等了大概半个小时多一点。面试官是一个三十来岁的男人,一上来就对着我的简历问我项目,他貌似没弄过虚拟化相关的东西,更不懂 qemu-kvm 的东西了,然后就问我这个缓存的意义啊,他从头问到尾,叫我解释一下这个虚拟机的体系结构。。 blabla 解释了一大堆他终于听明白了,然后说哎呀你们这个东西还是蛮有意思的,然后就叫我做题了,他直接在草稿纸上写了几道题给我,(写了四十分钟)题目是这样的
1.实现一个字符串拷贝函数,要求可靠稳定,写得七七八八,感觉还 ok 吧。。
2.一个程序分析 ,能分析出是六个出来,还让我画图给他解释一下,他说还挺清晰,不过那个关于缓冲区的 trick 就没答上来叫我自己去做实验验证一下。。答案和题目都在这个链接里面了。。我去。。。: http://blog.csdn.net/chdhust/article/details/10579001
3.考察大端小端模式的转换的 ,有点坑爹,给了他提示之后才想起来大端小端,然后才一步步分析出来=0=
1 #include <stdio.h>
2
3 int main(void) {
4
5 short x[] = {1,2};
6 printf("%x \n",(int)x);
7 return 0;
8 }
4.叫你实现二进制串的反转,比如 32Bit 的二进制数 头尾反转过来,要求尽可能高效。。结果只写了一个暴力的。。问我还有没有优化空间,我就说可以两头同时转换。。。然后他问还有没有优化的空间。。。想了很久都没想出来,然后叫我回去再思考一下。。。
最后问我 TCP IP 怎么样,我说我网络只是上过课,没有太多实践过-。-,然后问我你是更多的偏向于操作系统一类的吧?我说是啊,然后又问我 fwrite 和 pwrite 的区别是什么。。我支支吾吾了几下没答上来。。。
最后他问我还有什么问题问的吗? 我问了他实习生过来的话你们会安排什么任务。。他就说会有导师带。。 blablabla 一堆。。。然后送我走了,走的时候和我说平时要多多注意一些细节的东西。。哎:(
我最后问他我这次面试结果通过了吗?他好像挺不愿意说,就叫我回去等电话通知。
我回去坐地铁的时候,问了一下那个帮我内推的师兄说这个会不会挂了?。。他说面试结果这一类的问题是不能问的。。。
就这样两个小时过去了,写题目用了大概四十分钟吧。。。问项目和题目问了块一个半小时了。。。时间过的很快。。
哎 感觉很没底啊 QAQ 跪的概率应该有 50%吧。。。。求不要给我跪 TAT 。。。。。。
现在的情况是只能慢慢等了咯。。。看命吧。。要是还能收到面试邀请就继续更新这个帖子。。
最后 各位 V 友评估一下本蒟蒻的希望大不大啊 QAQ
1
Lpl 2016-03-08 20:38:41 +08:00
会不会出现:我就是那个三十多岁的男人
|
2
POP 2016-03-08 20:41:52 +08:00
我就是那个三十多岁的男人
|
3
zonghua 2016-03-08 20:44:12 +08:00 via iPhone
有没有 web 方向的?
|
4
27 2016-03-08 21:08:14 +08:00
要你多多注意一些细节的东西,就是委婉地说楼主你的细节问题太多吧。。
|
5
snow4young 2016-03-08 21:08:28 +08:00
感觉你应该过了的节奏
|
6
talentsnail 2016-03-08 21:13:38 +08:00 2
刚满二十岁的面试官:我有那么老吗?
|
7
22too 2016-03-08 21:17:46 +08:00
姐夫痛哭流涕,现在的年轻人,怎么这样啊,看起来有三十多吗?你不用来了。。。
|
8
miyuki 2016-03-08 21:27:36 +08:00 via Android
我就是那个三十多岁的男人。很抱歉你未被录用。
|
9
jusonalien OP @27 没办法呀。。问了我很多 IO 函数的细节。。。其实大部分我以前有留意过。。太久没摸过就忘了。。
|
10
jusonalien OP @zonghua 我是面试 C++后台的。。。。
|
11
jusonalien OP @snow4young 一半机会过 一半机会跪啊 TAT
|
12
wodesuck 2016-03-08 22:00:15 +08:00 1
二进制翻转可以用位运算整段整段地翻嘛
x = (x&0x0000ffff<<16)|(x&0xffff0000>>16); // 前 16 位和后 16 换 x = (x&0x00ff00ff<<8)|(x&0xff00ff00>>8); // 8 位 8 位地换 剩下的你懂的 |
13
jusonalien OP @wodesuck 哇.....好像是的。。。这是你自己想的吗。。?
|
15
ethego 2016-03-08 22:51:11 +08:00
http://blog.csdn.net/chdhust/article/details/10579001 这博客说的真的是对的吗。。我拿 gcc 编译跑了只有 6 个-啊。。
|
16
jusonalien OP @ethego 你 printf 的时候有没有去掉\n
|
17
onlyice 2016-03-09 00:07:48 +08:00 via Android
楼主是华师的吗?好像我们是微博好友
|
18
jusonalien OP @onlyice 啊 是啊。。。。是 scnu 的。。
|
19
snnn 2016-03-09 00:17:00 +08:00 via Android
把你写的字符串复制的函数贴上来看看
|
20
zeusLeeJh 2016-03-09 00:22:11 +08:00
@jusonalien 有意思竟然可以在 V2EX 上遇到 scnu 的
|
21
jusonalien OP @zeusLeeJh 额 请问您是?
|
22
jusonalien OP @snnn 迟点再贴吧,主要还是考察我对错误机制的判定。。
|
23
zeusLeeJh 2016-03-09 00:26:58 +08:00 1
@jusonalien 只是一个喜欢潜水的校友罢了
|
24
oplang 2016-03-09 01:06:35 +08:00 1
@wodesuck 你式子里的“)”放错地方了,运算优先级错误,会先偏移再&。方法是分治法,完整程序如下:
#include <stdio.h> unsigned int ReverseBits (unsigned int x) { x = ((x & 0x0000ffff) << 16) | ((x & 0xffff0000) >> 16); x = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8); x = ((x & 0x0f0f0f0f) << 4) | ((x & 0xf0f0f0f0) >>4); x = ((x & 0x33333333) << 2) | ((x & 0xcccccccc) >>2);// 0011 | 1100 x = ((x & 0x55555555) << 1) | ((x & 0xaaaaaaaa) >>1);// 0101 | 1010 return x; } int main () { unsigned int x = 8; printf("%u\n", ReverseBits ( x )); return 0; } |
25
bk201 2016-03-09 09:01:41 +08:00
基本是挂了,除非限定时间没有更好的
|
26
jusonalien OP @bk201 为啥呀 0 。 0
|
27
kiwi95 2016-03-09 09:44:59 +08:00
打印横杠那个结果是不确定的,虽然按分析确实是可能有 8 个,实际编译运行可能是 2 个, 4 个,或者 6 个,多运行几次结果可能不一样
|
28
zwpaper 2016-03-09 09:46:04 +08:00
@jusonalien 因为如果是第一选择会很积极的
|
29
jusonalien OP @zwpaper 面试官那时候回应说还要回去多面试几个人,然后比较一下才会有结果 00
|
30
snow4young 2016-03-09 10:02:12 +08:00
不过给你发红包,过了给我发红包~
|
31
exoticknight 2016-03-09 10:03:35 +08:00
我报了前端还没有通知……
|
32
zwpaper 2016-03-09 10:11:52 +08:00
@jusonalien 所以你只能等,今天没消息就危险了
|
33
skylancer 2016-03-09 10:20:48 +08:00
人家都说细节问题太多
十有八九就跪了 还有居然问他面试过了没有这种问题 ..GG |
34
shenqi 2016-03-09 10:43:54 +08:00
GG 了的节奏,我就是那个三十多岁的男人系列。
|
35
samueldeng 2016-03-09 10:59:44 +08:00
我倒是觉得蛮大的~
|
36
drush 2016-03-09 11:25:22 +08:00
樓主準備找下一份吧
|
37
napsterwu 2016-03-09 11:27:43 +08:00
不是在公众号可以查状态嘛
|
38
magicdawn 2016-03-09 11:39:11 +08:00
3.考察大端小端模式的转换的 ,有点坑爹,给了他提示之后才想起来大端小端,然后才一步步分析出来=0=
1 #include <stdio.h> 2 3 int main(void) { 4 5 short x[] = {1,2}; 6 printf("%x \n",(int)x); 7 return 0; 8 } 这是考啥啊~这段代码没体现大小端啊 |
39
magicdawn 2016-03-09 11:49:56 +08:00
printf("%x \n", *((int*)x)); // 20001 这样?
|
40
Felldeadbird 2016-03-09 12:08:52 +08:00
我竟然不会……看来我的水平还是很低。
|
41
ichigo 2016-03-09 16:05:51 +08:00
情商堪忧
|
43
acros 2016-03-09 16:31:11 +08:00 via iPhone
大小端是靠 union 吧。上面的代码是自动转精度了,不是内存上读取不同啊。
|
44
yuriko 2016-03-09 17:04:06 +08:00
基本是死了……
二进制翻转不会,只能说是你见得太少……大扣分 TCP IP/ fwrite pwrite 答得不好基本就死了 跪的概率不是 50%……是 90% |
45
vanxining 2016-03-09 17:08:12 +08:00
|
46
yuriko 2016-03-09 17:13:36 +08:00
@vanxining 都是实习生了……当然是应届生咯。二进制翻转作为一道小算法题还是很经典的,没见过的确是见得太少。
TCP IP 其实也是问的很多的,这个也没做好准备,经验不足。 没啥好问的时候,找些经典的来问是很正常的, TCP/IP 和算法题常见的很。后面换了个题也是在给机会,可惜 LZ 没抓住。 一般一道算法题,看看逻辑思路怎么样;一道系统题看看你的基础知识如何;再手写点代码或者看看项目,看看你实践能力如何。一般都是这个套路,两个点不行的确有点…… |
47
jusonalien OP @yuriko 前面的题目我大部分都 OK ,有些他给了一些提示都可以完全分析出来,并且我们前面大部分时间都是在聊项目,后面才是当场出了一些题目做做他也表示对我的项目很有趣==,只能说有些东西没接触过就是不会的了,虽然挂的几率还是很大
|
48
Lihz 2016-03-09 17:45:01 +08:00
感觉你已经半只脚踩进取了
|
49
jusonalien OP @Lihz 啥意思。。。?
|
50
bengol 2016-03-09 18:10:19 +08:00
第一个题目才是重点吧
|
51
jusonalien OP @onlyice 额 你是华师的师兄吧? 我记得你也是小企鹅的员工。。。?
|
52
onlyice 2016-03-09 18:56:57 +08:00 via Android
@jusonalien 是的哈哈,我 09 级的
|
53
jusonalien OP @onlyice 膜拜一下~ 遇到远古神犇了
|
54
recovery0394 2016-03-09 20:04:08 +08:00
@Lpl 90 的小屁孩
|
56
chiu 2016-03-09 21:35:44 +08:00
大小端怎么转换?
只遇到过判断大小端的题目 |
57
livecoding 2016-03-09 21:59:31 +08:00
@wodesuck 讲真这个效率不一定高
|
58
neoblackcap 2016-03-10 00:33:46 +08:00
|
59
jasonliao 2016-03-10 09:46:15 +08:00 via iPhone
@exoticknight 同前端 看来可以认识一下 😃
|
60
matthewz 2016-03-10 10:03:41 +08:00
不知道国内的规矩
在 FLAG 最后问面试官过不过属于作死行为 |