忘记密码   免费注册 查看新帖 | 论坛精华区
ChinaUnix.net
  平台论坛 博客 微博 读书 人才 精华 文库 自测 | 频道操作系统 开发 数据库 存储 服务器 网络 IT新闻 Linux 下载 Power用户组
最近访问板块 发新帖
查看: 58410 | 回复: 167

新鲜出炉的腾讯后台开发三面面试题! [复制链接]
更多

帖子
11
主题
4
精华
0
可用积分
17
专家积分
0
在线时间
4 小时
注册时间
2009-09-04
最后登录
2010-03-25
论坛徽章:
0
发表于 2010-03-18 08:58:21 |显示全部楼层
本帖最后由 西西弗西 于 2010-03-18 11:15 编辑

三面是总监面,本人不幸被拒了,这次面试没有问项目相关的问题,项目的问题是放在二面问的。三面给人的感觉要求很严,有些问题看似基础,但问得很细,稍有闪失就被pass,绝不能有模棱两可那种回答,以下是面试题:


1)tcp三次握手的过程,accept发生在三次握手哪个阶段?


2)Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?


3)const的含义及实现机制,比如:const int i,是怎么做到i只可读的?


4) valitale的含义。


5)OFFSETOF(s, m)的宏定义,s是结构类型,m是s的成员,求m在s中的偏移量。


6)100亿个数,求最大的1万个数,并说出算法的时间复杂度。


7)设计一个洗牌的算法,并说出算法的时间复杂度。


socket在什么情况下可读?


9)流量控制与拥塞控制的区别,节点计算机怎样感知网络拥塞了?

Rank: 5Rank: 5

帖子
3597
主题
334
精华
0
可用积分
5672
专家积分
35
在线时间
1360 小时
注册时间
2006-08-16
最后登录
2012-02-08
论坛徽章:
0
发表于 2010-03-18 09:32:13 |显示全部楼层
4)volitale的含义吧?
请用你知道的去帮助别人,就像别人当初帮助你一样!
中大帝

Rank: 1

帖子
159
主题
15
精华
0
可用积分
444
专家积分
0
在线时间
555 小时
注册时间
2009-03-26
最后登录
2011-12-17
论坛徽章:
0
发表于 2010-03-18 09:32:51 |显示全部楼层
板凳
脑子有问题的人通常只有两类人:神经病;科学家。

Rank: 8Rank: 8

帖子
10036
主题
400
精华
3
可用积分
21822
专家积分
65
在线时间
6360 小时
注册时间
2005-05-26
最后登录
2012-02-09
论坛徽章:
0
发表于 2010-03-18 09:38:09 |显示全部楼层
本帖最后由 cjaizss 于 2010-03-18 09:40 编辑

1)三次握手之后
2)流无边界,数据报有边界.TCP是先进先出的,并且可靠.
3)编译器相关,优化可能让其直接转为一常量代入.
4)volatile吧,告诉编译器此处必须得从地址去取,不得作相关优化。千万注意,这里与硬件cache可不是一回事。
5)#define OFFSETOF(s, m) ({s s1;(void*)(&s1)-(void*)(&s1->m);}) /*gcc*/
6)建一个堆,先把最开始的1万个数放进去。以后每进一个,都把最小的赶出来。
7)产生2*54+rand()%2次交换,所有序列已经很接近平均分布(只要rand()满足均分),并且比较快。否则会是复杂度比较高的算法。我统计过。
不知道想问什么。
9)拥塞控制是把整体看成一个处理对象的,流量控制是对单个的。感知的手段应该不少,比如在TCP协议里,TCP报文的重传本身就可以作为拥塞的依据。依据这样的原理,应该可以设计出很多手段。
echo '++++++++++[>++++++++++[>+<-]<-]>>-.+++++++.---------.++++++++.>>++++[<++++[<+>-]>-]<<+.-------..' | sed '
s/\([-+]\)/\1\1*p;/g
s/</p--;/g
s/>/p++;/g
s/\./putchar(*p);/g
s/\[/while(*p){/g
s/\]/}/g
1s/^/main(){char*p=calloc(1,6);/
$s/$/}/
/./!d'|gcc -xc - 2>/dev/null&&./a.out

帖子
11
主题
4
精华
0
可用积分
17
专家积分
0
在线时间
4 小时
注册时间
2009-09-04
最后登录
2010-03-25
论坛徽章:
0
发表于 2010-03-18 09:42:39 |显示全部楼层
多谢楼上的,第8个问题就是在议协层来说,比如当缓冲区数据达到一定数量socket就可读了,除此之外还有什么情况下可读?

Rank: 8Rank: 8

帖子
11867
主题
234
精华
6
可用积分
25153
专家积分
439
在线时间
13492 小时
注册时间
2005-11-27
最后登录
2012-02-08
论坛徽章:
0
发表于 2010-03-18 09:46:16 |显示全部楼层
回复 5# 西西弗西
还有对方把链接关闭了也可读。
欢迎访问学习虫社区--学习知识,分享知识!
www.xuexichong.com

帖子
94
主题
14
精华
0
可用积分
164
专家积分
0
在线时间
536 小时
注册时间
2007-08-16
最后登录
2011-07-06
论坛徽章:
0
发表于 2010-03-18 09:48:48 |显示全部楼层
学习

Rank: 8Rank: 8

帖子
10036
主题
400
精华
3
可用积分
21822
专家积分
65
在线时间
6360 小时
注册时间
2005-05-26
最后登录
2012-02-09
论坛徽章:
0
发表于 2010-03-18 09:49:21 |显示全部楼层
回复  西西弗西
还有对方把链接关闭了也可读。
cugb_cat 发表于 2010-03-18 09:46



    我觉得题目出的不好,单一个socket,其范围太大了,所以不知道回答什么。如果只说基于socket编写的TCP接口,那倒也没什么问题了。
echo '++++++++++[>++++++++++[>+<-]<-]>>-.+++++++.---------.++++++++.>>++++[<++++[<+>-]>-]<<+.-------..' | sed '
s/\([-+]\)/\1\1*p;/g
s/</p--;/g
s/>/p++;/g
s/\./putchar(*p);/g
s/\[/while(*p){/g
s/\]/}/g
1s/^/main(){char*p=calloc(1,6);/
$s/$/}/
/./!d'|gcc -xc - 2>/dev/null&&./a.out

Rank: 2

帖子
1122
主题
108
精华
0
可用积分
1701
专家积分
0
在线时间
1497 小时
注册时间
2006-12-21
最后登录
2012-02-02
论坛徽章:
0
发表于 2010-03-18 09:52:26 |显示全部楼层
cjaizss老大学识广博,受教受教
其实我是个演员
费尔马定理证明人

Rank: 6Rank: 6

帖子
3203
主题
252
精华
0
可用积分
9821
专家积分
30
在线时间
1736 小时
注册时间
2009-08-14
最后登录
2012-01-12
论坛徽章:
0
发表于 2010-03-18 10:06:46 |显示全部楼层
占位学习
您需要登录后才可以回帖 登录 | 注册

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP