[腾讯笔试] 2014腾讯校园招聘实习技术类笔试题目

时间:2014-4-20
职位:开发、后台、客户端、前端等
城市:上海、合肥、沈阳、长沙、深圳

(一)不定项选择题(25*4)
1.  使用深度优先算法遍历下图,遍历的顺序为()

A ABCDEFG        B ABDCFEG

C ABDECFG        D  ABCDFEG

2.  输入序列ABCABC经过栈操作变成ABCCBA,下面哪些是可能的栈操作( )
A.     push pop push pop push pop pushpush push pop pop pop
B.     push push push push push push poppop pop pop pop pop
C.     push push push pop pop pop pushpush pop pop push pop
D.     push push push push pop pushpop push pop pop pop pop

3.  下列关键码序列哪些是一个堆( )
A. 90 31 53 23 16 48                B 90 48 31 53 16 23
C 16 53 23 90 3148                  D.1631 23 90 53 48


4. 稀疏矩阵压缩的存储方法是:()
A 三元组 B 二维数组 C 散列 D 十字链表

5.  二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()

A  BC        B  AC        C  DF         D CF


6. 线性结构的是()
A 串  B 链式存储栈  C顺序存储栈 D 顺序存储二叉树

7.  Linux命令是哪些()

A ls   B mkdir     Cmagnify     D man


8. Unix系统中,适合任意两个进程通信的是()

A FIFO  B  PIPE  C Message Queue  D  sharememory


9. Windows系统中,不适合进程通讯的是()
A 临界区 B 互斥量 C 信号量 D 事件

10.  
下面的内存管理模式中,会产生外零头的是()
A 页式 B段式C 请求页式 D 请求段式

11.  Linux执行ls,会引起哪些系统调用()
A nmap B read C execve D fork

12.  a 是二维数组,a[j]的指针访问方式为:()

A *(a+i+j)   B *(*(a+i)+j)   C *(a+i)+j     D *a+i+j


13 输出以下结果:
  #define add(a,b) a+b;
  Intmain()
{
   Printf(“”,3*add(4,7));
}
A 33 B 19  C  25  D   49

14 对于以下代码,char * p= newchar[100]
A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上

15 进程A读取B进程中的某个变量(非共享内存),可行的方式()
A 进程向消息队列写入一个包含变量内容的消息,B进程从队列中读出
B 通过本地环路通信
C 如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程
D 如果 B是A 进程,那么B直接读取变量内容即可

16 使用 send发送大量小的数据包,说法正确的是()
A 带宽利用率低 B 网卡吞吐很高 C 网卡中断频繁 D 进程上下文切换频繁

17 TCP的握手与分手 可能出现的情形是()
A 握手需要3次通信 
B 分手需要进行4次通信 
C Fin和ACK 在同一包里 
D ACK 和SYN 在同一包里

18. 和16题 一样。。。。。。

19. 新窗口打开网页,以下哪个()
A _self B _blank C _top D _parent

20.二进制数01011011转化为十进制为()
A 103 B 91 C 171 D 71

21 版本控制软件是哪些()
A bugzilla B subversion C Git D loadrunner

22 Select A,B from Table1 where A between60 and 100 order by B,下面哪些优化sql性能()
A 字段A 建立hash索引,字段B btree索引
B 字段A 建立hash索引,字段B不建立索引
C字段A 建立btree索引,字段B不建立索引
D 字段A 不建立 索引,字段B建立btree索引

23 数据索引的正确是()
A 1个表只能有一个聚族索引,多个非聚族索引
B 字符串模糊查询不适合索引
C 哈希索引有利于查询字段用于大小范围的比较查询
D 多余的索引字段会降低性能

24 CPU与外设的传输数据的方式是()
A 程序方式 B中断 C DMA D 通道方式 

25 式子7*15=133成立,则用的是几进制()
A  6      B 7      C 8         D 9

(二)填空题
26. MySQL中表test选择10条到20条记录的语句是()

27. 若信号S为9,则S经过15次P和14次V,S为()

28. 页面走向:4 3 2 1 4 3 5 43 2 1 5 4,当分配的内存物理快数4(开始为装入),采用LRU淘汰算法,产生多少次缺页()

29. 评估算法优势,通常从()和()两个方面考察

30. G是一个邻接表,以V1为起点,深度优先遍历序列V1V2V3V6V5V4,从V1开始的广度优先遍历序列是()

31.20*20*20的魔法,8000个小正方体,如果剥取最外一层,还剩下多少个方块()

32. 
(1)如果A投硬币是正面的,B给A  1美金
(2)如果A投的是反面,就再投,为正面,B给A 2美金
(3)如果还是反面,就再投,为为正面,B给A 4 美金
(4)假设A投的是反面,就投到正面为止,B就给A 的2的(n-1)次方
如果A、B玩这样的硬币游戏,A至少要给B多少钱B才不会亏钱()



33.左轮手枪,左轮手枪,有6个弹巢,两颗子弹放进相邻的弹巢,拨动转轮,然后拿着这把枪朝我自己扣动,但我还活着,现在轮到你了,你有两种选择
(1)在扣动一次转轮,把枪对准自己,扣动扳机
(2)不拨动转轮,直接对准自己,扣动扳机
假设你还不想死,你选择哪种()原因()



附加题:
34.描述mapreduce的执行过程,最好用画图的方式表示。



35.数据库A的ID从20120120300001到20120120399999,更新ID从00001到99999,递增加1,不重复,不间断(并保持高并发的性能)



答案都是自己解答和小伙伴探讨以及网上查的资料进行分析的,如有错误请留言拍砖! 

(一)不定项选择题(25*4)

1.  使用深度优先算法遍历下图,遍历的顺序为()

A ABCDEFG        B ABDCFEG

C ABDECFG        D  ABCDFEG

2.  输入序列ABCABC经过栈操作变成ABCCBA,下面哪些是可能的栈操作( )

A.      push pop push pop push pop pushpush push pop pop pop        //ABCCBA

B.     push push push push push push poppop pop pop pop pop        //CBACBA

C.     push push push pop pop pop pushpush pop pop push pop       //CBABAC

D.      push push push push pop pushpop push pop pop pop pop       //ABCCBA

3.  下列关键码序列哪些是一个堆( )

A. 90 31 53 23 16 48                B . 90 48 31 53 16 23 

C.  16 53 23 90 314                  D. 1631 23 90 53 48  

//48的左子节点为53,而该堆为大堆,违反其父节点都必须大于或等于其对应的子节点性质

//对于答案C:53右子节点为31,而该堆为小堆,违反其父节点都必须小于或等于其对应的子节点性质

//堆的性质,符合最大堆或者最小堆都行,如果大堆的话所有父节点都必须大于或等于其对应的子节点,

如果小堆的话,所有父节点都必须小于或等于其对应的子节点。  

堆是一棵完全二叉树,从上到下画好,进行对比就可以得到答案。

4. 稀疏矩阵压缩的存储方法是:()

A 三元组 B 二维数组 C 散列 D 十字链表

//自己也忘记了少选了一个十字链表~晕,具体详细讲解可以查看下篇博文(网上搜的)

矩阵(稀疏矩阵)的压缩存储(一) 

5.  二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()

A  BC        B  AC        C  DF          D CF

建立线索二叉树,或者说对二叉树线索化,实质上就是遍历一颗二叉树。(网搜)

 //刚开始不明白什么是线索二叉树,凭感觉应该就是遍历二叉树吧,就是知道后序和中序还原一棵二叉树然后找到E的左右子节点。(自认为)

6. 线性结构的是()

A 串   B 链式存储栈   C 顺序存储栈 D 顺序存储二叉树 

常用的线性结构有:线性表,栈,队列,双队列,数组,串。

关于广义表,是一种非线性的数据结构。

常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图(网等)。(网搜)

//意思差不多就是只能是一维的结构,查找的时候只能从前或后两个方向查找(自认)


7.  Linux命令是哪些()

A ls    B mkdir      C magnify      D man

//做错咯,对linux的magnify(放大镜实用程序)不敢肯定。但是敲击进去却不可用,不知道是不是老版本可用,新版本不可用,真不知道是不是命令。

8. Unix系统中,适合任意两个进程通信的是()

A FIFO   B   PIPE   C Message Queue   D   sharememory

 //可以进行进程通信的有:管道、信号、信号量、消息队列、共享内存、套接字(套接字上次的腾讯面试中有提,但是别人答案未选,存在争议,待解答:))

9. Windows系统中,不适合进程通讯的是()

A 临界区 B 互斥量 C 信号量 D 事件
//这四个选项都是线程同步的实现方法,但互斥量、信号量、事件都可以被跨越进程使用来进行同步数据操作,而临界区只能在进程内部各线程间使用。(网搜) 

10.   下面的内存管理模式中,会产生外零头的是()

A 页式 B段式 C 请求页式 D 请求段式

 //网搜资料     http://cc.sjtu.edu.cn/os/res/res6-5.asp    http://blog.sina.com.cn/s/blog_4c6403ed01000bbb.html(内容介绍) 

//根据网搜的资料感觉答案为CD,又少选了一个请求段式额,悲催~(这个网搜资料有点乱,也不确定,待大家解答!) 

11.  Linux执行ls,会引起哪些系统调用()

A nmap B read C execve D fork 

12.  a 是二维数组,a[j]的指针访问方式为:()

A *(a+i+j)    B *(*(a+i)+j)   C *(a+i)+j     D *a+i+j

13 输出以下结果: 
  #define add(a,b) a+b; 
  Intmain() 

   Printf(“”,3*add(4,7)); 

A 33 B 19  C  25  D   49     //腾讯笔试好像是去年的原题吧  3*4+7=19 

14 对于以下代码,char * p= newchar[100] 
A p 和 new出来的内存都在栈上 
B p 和 new出来的内存都在堆上 
C p在栈上 new出来的在堆上              
D p在堆上 new出来的在栈上 

15 进程A读取B进程中的某个变量(非共享内存),可行的方式() 
A 进程向消息队列写入一个包含变量内容的消息,B进程从队列中读出 
B 通过本地环路通信 
C 如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程 
D 如果 B是A 进程,那么B直接读取变量内容即可       
//不太确定,待解释 
16 使用 send发送大量小的数据包,说法正确的是() 
A 带宽利用率低 B 网卡吞吐很高 C 网卡中断频繁 D 进程上下文切换频繁 
//自己选的ABCD,也不知道对不对,求解释 
17 TCP的握手与分手 可能出现的情形是() 
A 握手需要3次通信  
B 分手需要进行4次通信  
C Fin和ACK 在同一包里  
D ACK 和SYN 在同一包里 

18. 和16题 一样。。。。。。 

19. 新窗口打开网页,以下哪个() 
A _self B _blank C _top D _parent

参考博文:  http://blog.sina.com.cn/s/blog_8d94fa6a01016q5b.html


20.二进制数01011011转化为十进制为() 
A 103 B 91 C 171 D 71                       

21 版本控制软件是哪些() 
A bugzilla B subversion C Git D loadrunner 
Loadrunner: 压力测试工具  

bugzilla :追踪系统的软件,专门为Unix而定制 

22 Select A,B from Table1 where A between60 and 100 order by B,下面哪些优化sql性能() 
A 字段A 建立hash索引,字段B btree索引 
B 字段A 建立hash索引,字段B不建立索引 
C 字段A 建立btree索引,字段B不建立索引    
D 字段A 不建立 索引,字段B建立btree索引 
//数据库内部采用的是B-Tree结构方便查询一个区间段的值,适合进行区间索引(自认)

23 数据索引的正确是() 
A 1个表只能有一个聚族索引,多个非聚族索引 
B 字符串模糊查询不适合索引     //自认为B是对的,但是不确定,待解答 
C 哈希索引有利于查询字段用于大小范围的比较查询 
D 多余的索引字段会降低性能 

24 CPU与外设的传输数据的方式是() 
A 程序方式 B 中断 C DMA D 通道方式 

//参考文章:http://cs.xiyou.edu.cn:84/wjyl/OnlineClass/7.2.html

http://wenku.baidu.com/view/e2f8690ebb68a98271fefa0c.html 

25 式子7*15=133成立,则用的是几进制() 
A  6      B 7       C 8         D 9   //7*15(转十进制为13)=133(转十进制64+24+3=91) 

(二)填空题 
26. MySQL中表test选择10条到20条记录的语句是()

select * from test limit 10,20;     //不会MySQL,忘记关键字limit写错了。 

27. 若信号S为9,则S经过15次P和14次V,S为() 
8     每P一次减一,没V一次加一。相当于一个容器(S),进去一个(P)容量就少一个,出来一个(V)容量就多一个。 
28. 页面走向:4 3 2 1 4 3 5 4 3 2 1 5 4,当分配的内存物理快数4(开始为装入),采用LRU淘汰算法,产生多少次缺页()

9     
LRU:最近最少使用淘汰算法:

就像排队,被叫到但是队中没有就缺了,被叫到的队中有则不缺,再把其放在队尾,继续叫号。(被叫到的也可以进行加权,按权值来淘汰)

缺页为:
4      缺1
4 3    缺1 
4 3 2  缺1
4 3 2 1 缺1
3 2 1 4 不缺
2 1 4 3 不缺
1 4 3 5 缺1
1 3 5 4 不缺
1 5 4 3 不缺
5 4 3 2 缺1
4 3 2 1 缺1
3 2 1 5 缺1
2 1 5 4 缺1

29. 评估算法优势,通常从()和()两个方面考察

时间复杂度   空间复杂度 

30. G是一个邻接表,以V1为起点,深度优先遍历序列V1V2V3V6V5V4,从V1开始的广度优先遍历序列是() 

V1 V2 V5 V4 V3 V6

//以前记得的,现在忘记了,自己做错了,很自然的就写成了V1 2  5 4  6 3

参考文章: 图的邻接表和邻接矩阵

31.20*20*20的魔法,8000个小正方体,如果剥取最外一层,还剩下多少个方块()

5832

//个人见解: 先忽略上下两个面,前后左右四个面的话就是上下全部占用就是20个,左右的话占用一边就是19个,然后前后左右是4个就是:19*20*4

现在来考虑上下两面,此时四边都被占用了,前后两边减二,左右两边减二就是18*18 ,然后上下两个面就是:18*18*2

结果为20*20*20-(19*20*4+18*18*2)=8000-2168=5832

大神给的解答就是18*18*18=5832 ,不明觉厉! 

32.  
(1)如果A投硬币是正面的,B给A  1美金 
(2)如果A投的是反面,就再投,为正面,B给A 2美金 
(3)如果还是反面,就再投,为为正面,B给A 4 美金 
(4)假设A投的是反面,就投到正面为止,B就给A 的2的(n-1)次方 
如果A、B玩这样的硬币游戏,A至少要给B多少钱B才不会亏钱() 
此题还真不会做,有待大家解答。只明了不管是哪一次停止,按概率算的话,给出的钱都是1/2: 第n次结束的概率为1/2的n方,而给的钱为2的n-1方

两者相乘就等于1/2 


33.左轮枪,左轮枪,有6个弹巢,两颗子弹放进相邻的弹巢,拨动转轮,然后拿着这把枪朝我自己扣动,但我还活着,现在轮到你了,你有两种选择 
(1)在扣动一次转轮,把枪对准自己,扣动扳机 
(2)不拨动转轮,直接对准自己,扣动扳机 
假设你还不想死,你选择哪种()原因()

选第二种     概率1/2>1/4 或者1/3>1/4

经过我和同门小伙伴讨论得出第二种爆头的概率为1/4,文字不好解释额,假设第一个子弹的位置为1,第二个子弹的位置为2则第一个人没有爆头的 弹巢 就为3、4、5、6 ,

现在如果为3,则下一 弹巢为4不爆头

现在如果为4,则下一 弹巢为5不爆头

现在如果为5,则下一弹巢为6不爆头

现在如果为6,则下一弹巢为1爆头

可知爆头概率为1/4

第一种的话有两种争论,拨动转轮到底是拨动一格还是拨动一下转n圈,就像电视上面的一样。这两种情况有待商榷,没有抓住出题者的意图。

假设为第一种转动一格。那么还是按照上面的来分析:

现在如果为3,再拨动一格则下一弹巢为5不爆头

现在如果为4,再拨动一格则下一弹巢为6不爆头

现在如果为5,再拨动一格则下一弹巢为1爆头

现在如果为6,再拨动一格则下一弹巢为2爆头

所以这种情况下面爆头概率非常高为1/2

假设为第二种转动n圈,回到随机位置,这种就比较好考虑了,就是6个里面有两个爆头,概率为1/3



提交的时候遇到这个问题,是不是有点坑爹啊,呵呵,看来网络环境还是要大家来维系。 
附加题: 
34.描述mapreduce的执行过程,最好用画图的方式表示。 
参考解答:http://liouwei20051000285.blog.163.com/blog/static/252367420116125223809/


35.数据库A的ID从20120120300001到20120120399999,更新ID从00001到99999,递增加1,不重复,不间断(并保持高并发的性能)

也不是很清楚当时就写了设置ID为主键,保证其唯一约束。还有就是以日期找到当天是否数据库中已有当天的ID,没有设为00001,

有的话就找到当天最大的那一个然后加1为对应的主键。保持高并发性,不知道怎么做。还是必须得加锁一条一条插入吧。待大家解答。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值