腾讯程序员笔试题目

2015-11-02 16:08 作者 : 围观 : TAG标签: 笔经

  职位类型:程序员

  面试问题

  面试地点:北京

qzm4

  面试网

  招聘公司:

面试问题


礼仪

  腾讯永远无法被超越,腾讯公司在网络行业无论是什么项目都已经做的非常好了,最早凭借着QQ聊天软件打遍天下无敌手,随后出现了各种软件,不论是视频、购物、游戏、音乐...和很多其他软件,都已经被很多网民在使用,还有现在的微信,相信微信我就不用多介绍了,还有谁没用过呀!

礼仪

腾讯程序员笔试题目 求职信息

  所以很多有能力的人也都纷纷想去腾讯成为里面的一名职员,不管是为了高新,还是学习技术,腾讯都是人们向往的一个地方。今天小编就给大家介绍一下腾讯程序员面试是,可能会遇到的题目吧。

求职信息


求职信息

  1、腾讯笔试题:const的含义及实现机制

面试问题


qzm4

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

面试网


求职面试

  const用来说明所定义的变量是只读的。

求职信息


面试问题

  这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。 求职面试


求职面试

  2、腾讯笔试题:买200返100优惠券,实际上折扣是多少?

求职面试


求职面试

  到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少? 面试问题


求职面试

  由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。 qzm4


求职信息

  假设开始时花了x元,那么可以买到x x/2 x/4 ...的东西。所以实际上折扣是50%.(当然,大部分时候很难一直兑换下去,所以50%是折扣的上限) 面试网


qzm4

  如果使用优惠券买东西不能获得新的优惠券,那么总过花去了200元,可以买到200 100元的商品,所以实际折扣为200/300=67%. 面试网


面试问题

  3、腾讯笔试题:tcp三次握手的过程,accept发生在三次握手哪个阶段?

qzm4


求职信息

  accept发生在三次握手之后。 qzm4


求职信息

  第一次握手:客户端发送syn包(syn=j)到服务器。 求职信息


礼仪

  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j 1),同时自己也发送一个ASK包(ask=k)。 qzm4


求职面试

  第三次握手:客户端收到服务器的SYN ACK包,向服务器发送确认包ACK(ack=k 1)。 礼仪


求职面试

  三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。 礼仪


礼仪

  4、腾讯笔试题:用UDP协议通讯时怎样得知目标机是否获得了数据包

qzm4


礼仪

  用UDP协议通讯时怎样得知目标机是否获得了数据包? 求职面试


面试网

  可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。

求职面试


面试网

  发送方在发送数据时将此ID和发送时间记录在本地。

求职信息


礼仪

  接收方在收到数据后将ID再发给发送方作为回应。 求职信息


面试网

  发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。 面试问题


面试网

  5、腾讯笔试题:统计论坛在线人数分布

求职信息


qzm4

  求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。

面试问题


面试问题

  一天总共有3600*24=86400秒。

面试网


求职面试

  定义一个长度为86400的整数数组intdelta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。 面试问题


qzm4

  然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。

求职面试


求职信息

  这样处理一遍后数组中存储了每秒中的人数变化情况。 求职面试


礼仪

  定义另外一个长度为86400的整数数组intonline_num[86400],每个整数对应这一秒的论坛在线人数。 面试网


求职信息

  假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0]=delta[0]。第n 1秒的人数online_num[n]=online_num[n-1] delta[n]。 礼仪


面试问题

  这样我们就获得了一天中任意时间的在线人数。 求职信息


礼仪

  6、腾讯笔试题:从10G个数中找到中数在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G。 面试问题


求职信息

  不妨假设10G个整数是64bit的。

面试问题


面试问题

  2G内存可以存放256M个64bit整数。

礼仪


求职面试

  我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数。

面试问题


面试问题

  如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数。如果这个范围内出现的整数比较多,我们还可以采用同样的方法将此范围再次分成多个更小的范围(256M=2^28,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)。

面试问题


求职面试

  7、腾讯笔试题:两个整数集合A和B,求其交集 求职信息


面试网

  两个整数集合A和B,求其交集。 qzm4


求职面试

  1.读取整数集合A中的整数,将读到的整数插入到map中,并将对应的值设为1。

礼仪


礼仪

  2.读取整数集合B中的整数,如果该整数在map中并且值为1,则将此数加入到交集当中,并将在map中的对应值改为2。 求职信息


qzm4

  通过更改map中的值,避免了将同样的值输出两次。 面试网


礼仪

  8、腾讯笔试题:找出1到10w中没有出现的两个数字有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?

qzm4


礼仪

  申请10w个bit的空间,每个bit代表一个数字是否出现过。 面试网


礼仪

  开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。 礼仪


求职面试

  然后依次读入已经打乱循序的数字,并将对应的bit设为1。 礼仪


求职面试

  当处理完所有数字后,根据为0的bit得出没有出现的数字。

qzm4


面试问题

  首先计算1到10w的和,平方和。

求职面试


面试问题

  然后计算给定数字的和,平方和。 求职面试


面试问题

  两次的到的数字相减,可以得到这两个数字的和,平方和。

求职面试


求职面试

  所以我们有 面试网


求职信息

  x y=n 礼仪


面试问题

  x^2 y^2=m

求职信息


求职面试

  解方程可以得到x和y的值。

礼仪


礼仪

  9、腾讯笔试题:需要多少只小白鼠才能在24小时内找到毒药 面试问题


面试问题

  有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒? 面试问题


qzm4

  最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。

面试问题


qzm4

  既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?

求职信息


qzm4

  首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?

求职面试


求职面试

  由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?

面试网


qzm4

  第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1) 1到第2^(x-1) 2^(x-2)瓶....以此类推。

求职面试


求职面试

  回到此题,总过1000瓶水,所以需要最少10只小白鼠。

求职面试


面试网

  10、腾讯笔试题:根据上排的数填写下排的数,并满足要求。

面试问题


qzm4

  根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。

面试网


面试网

  11、腾讯笔试题:判断数字是否出现在40亿个数中?

qzm4


求职面试

  给40亿个不重复的unsignedint的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

礼仪


qzm4

  答案: qzm4


求职面试

  unsignedint的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsignedint数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。 求职面试


求职面试

  这些都是在腾讯笔试时可能会出现的,对于一个好的程序员来说,也不算太难的题目,只是大家在答题时要注意细节,最后希望能给各位看官一些帮助。

求职面试


面试问题

求职面试

声明:腾讯程序员笔试题目来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!

相关文章