发布于 2014-09-24 10:15:41 | 13406 次阅读 | 评论: 9 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

腾讯

腾讯控股有限公司(腾迅)是一家民营IT企业,成立于1998年11月29日,总部位于中国广东深圳,是中国最大的互联网综合服务提供商之一,也是中国服务用户最多,最广的互联网企业之一。


本文是一份2014年的腾讯开发工程师面试题,并附有网友的解答,感兴趣的同学参考下

一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)

1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)

A.CFHGEBDA   B.CDFEGHBA   C.FGHCDEBA   D.CFHGEDBA

根据先序遍历和中序遍历能唯一确定二叉树:

注意:要想唯一确定一颗二叉树,必须已知两种遍历,并且其中必须有中序,因为先序和后序不能确定左右子树,如下图所示:

从上图中我们可以看出,没有中序是不能确定一颗树的!

2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)

A.有序数组     B.有序链表      C.AVL树        D.Hash表

数组的删除性能比较差,而链表的查找性能比较差!

3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)

A.快速排序     B.堆排序        C.归并排序      D.冒泡排序

快排和冒泡排序在最坏情况下的时间复杂度是O(n^2);

4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)

A.8 3 2 5 1 6 4 7

B.3 2 8 5 1 4 6 7

C.3 8 2 5 1 6 7 4

D.8 2 3 5 1 4 7 6

建立小根堆的过程如下图所示:

5 当n=5时,下列函数的返回值是:(A)

int foo(int n){
    if(n<2){
        return n;
    }
    else
        return foo(n-1)+foo(n-2);
}

A.5           B.7               C.8             D.10

6  S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)

A.37.5%       B.32.5%          C.28.6%          D.26.1%

3*0.01% /( 3*0.01%+5*0.015%)=28.6%

7  Unix系统中,哪些可以用于进程间的通信?(ABCD)

进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET.

A.Socket       B.共享内存       C.消息队列       D.信号量

8 静态变量通常存储在进程哪个区?(C)

A.栈区        B.堆区           C.全局区         D.代码区

栈区一般用于存储比较小的临时变量;

堆区一般用于存储比较大的临时变量;

代码区用于存储代码;

全局区用于存储全局变量,静态变量等。

9 查询性能(B)

A. 在Name字段上添加主键

B. 在Name字段上添加索引

C. 在Age字段上添加主键

D. 在Age字段上添加索引

如果经常依据特定的字段搜索表或对表的记录进行排序,则可以通过创建该字段的索引来加快执行这些操作的

10  IP地址131.153.12.71是一个(B)类IP地址。

A.A           B.B             C.C               D.D

A类:0打头

B类:10打头

C类:110打头

D类:1110打头

11 下推自动识别机的语言是:(C)

A. 0型语言    B.1型语言       C.2型语言         D.3型语言

参考:维基百科

http://zh.wikipedia.org/wiki/%E4%B8%8B%E6%8E%A8%E8%87%AA%E5%8A%A8%E6%9C%BA

12 下列程序的输出是:(D)

#define add(a+b) a+b
int main()
{
    printf("%d\n",5*add(3+4));
    return 0;
}

5*3+4=19

A.23           B.35            C.16              D.19

13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)

A 找不到该页面

B 禁止访问

C 内部服务器访问

D 服务器繁忙

14 如果某系统15*4=112成立,则系统采用的是(A)进制。

A.6            B.7             C.8               D.9

逐个带入即可:

对于6进制而言:15的十进制就是11;112的十进制就是44,11*4=44。

15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)

A  a(000)  b(001)  h(01)  i(10)  o(11)

B  a(0000)  b(0001)  h(001)  o(01)  i(1)

C  a(000)  b(001)  h(01)  i(10)  o(00)

D  a(0000)  b(0001)  h(001)  o(000)  i(1)

16  TCP和IP分别对应了OSI中的哪几层?(CD)

A  Application layer

B  Presentation layer

C  Transport layer

D  Network layer

TCP是传输层协议

IP是网络层协议

17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)

A.EDCBA          B.DECBA          C.DCEAB       D.ABCDE

A:全部入栈后出战

B:ABC入栈,D入栈然后出栈,E入栈然后出栈

C:不可能,

D:A入栈然后出栈,B入栈然后出栈,...

18 同一进程下的线程可以共享以下?(BD)

A. stack           B.data section        C.register set     D.file fd

每个线程包括:

线程状态: 线程当前的状态。

一个执行栈

私有的数据区: 用于每个线程局部变量的静态存储空间

寄存器集: 存储处理器的一些状态

19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)

1:成员对象的构造函数

2:基类的构造函数

3:派生类本身的构造函数

A.123             B.231               C.321           D.213

20 如何减少换页错误?(BC)

A  进程倾向于占用CPU

B  访问局部性(locality of reference)满足进程要求

C  进程倾向于占用I/O

D  使用基于最短剩余时间(shortest remaining time)的调度机制

SRT算法(SPN算法的抢占式版本):总是选择剩余时间最短的进程运行。

因为时间短的结束运行快,不需要频繁切换进程(导致刷新内存),所以换页错误发生的概率就减少了

21 递归函数最终会结束,那么这个函数一定?(B)

A 使用了局部变量

B 有一个分支不调用自身

C 使用了全局变量或者使用了一个或多个参数

D 没有循环调用

22 编译过程中,语法分析器的任务是(B)

A分析单词是怎样构成的

B 分析单词串是如何构成语言和说明的

C 分析语句和说明是如何构成程序的

D 分析程序的结构

23 同步机制应该遵循哪些基本准则?(ABCD)

A.空闲让进        B.忙则等待        C.有限等待        D.让权等待

24 进程进入等待状态有哪几种方式?(ABCD)

A CPU调度给优先级更高的线程(运行态转为就绪态)

B 阻塞的线程获得资源或者信号(阻塞态转为就绪态)

C 在时间片轮转的情况下,如果时间片到了(运行态转为就绪态)

D 获得spinlock未果(运行态转为就绪态)

25 设计模式中,属于结构型模式的有哪些?(BC)

A  状态模式        B  装饰模式        C 代理模式       D 观察者模式

二、填空题(共4题10个空,每空2分,共20 分)

1 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。

将字母分成两两(二路)一组,然后组内有序。

2 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。

希尔排序就是分组插入排序。

快排的思想:

设置两个指针,分别执行序列头(i)和序列尾(j)。

以第一元素(key)为分界,从最后一个元素开始判断,若该元素大于key,指针j向前移动;若小于,则使用该元素覆盖

指针i所指向的元素,然后i向后移动,并判断i指向的元素是否小于key,若小于,i向后移动,若大于,用i指向的元素覆盖j,同时j向前移动,直到i==j,然后在该位置上放入key,则序列以key为界分为两个子序列,然后递归,直到序列长度为1.

3 二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为:011011110100,011100000000。

伙伴块必须满足的条件是:(1)两个块具有相同的大小,记作b。(2)它们的物理地址是连续的。(3)第一块的第一个页的物理地址是2*(2^b)的倍数。

4 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。

typedef struct node
{
    int data;
    struct node *lchild,*rchild;
}node;
int N2,NL,NR,N0;
void count(node *t)
{
    if (t->lchild!=NULL)
        if (t->rchild!=NULL) N2++;
        else NL++;
    else if (t->rchild!=NULL) NR++;
    else N0++;
    if(t->lchild!=NULL) count(t->lchild);
    if(t->rchild!=NULL) count(t->rchild);
}/* call form :if(t!=NULL) count(t);*/


最新网友评论  共有(9)条评论 发布评论 返回顶部
PHPERZ网友 发布于2015-07-26 15:14:04
我也感觉选错了。
支持(0)  反对(0)  回复
PHPERZ网友 发布于2015-06-21 11:17:13
错误是正常的了,这毕竟只是小编自己的答案嘛。
支持(0)  反对(0)  回复
PHPERZ网友 发布于2015-04-17 07:11:25
20好像选错了! 是D
支持(0)  反对(1)  回复
PHPERZ网友 发布于2015-03-20 02:54:19
25题正确答案是ab,状态模式是行为型的
支持(0)  反对(2)  回复
PHPERZ网友 发布于2015-02-05 08:02:28
腾讯这个垃圾。
支持(1)  反对(0)  回复
PHPERZ网友 发布于2014-11-26 03:05:41
腾讯的工资待遇怎么样。
  • 2楼  PHPERZ网友 回复于2014-12-07 02:53:30
    腾讯的工资还不错,不过据说现在不如阿里高。
  • 支持(0)  反对(0)  回复
    PHPERZ网友 发布于2014-11-11 01:03:35
    整理的不错,赞一个。
    支持(1)  反对(0)  回复
    PHPERZ网友 发布于2014-11-05 13:33:04
    这是c++ 面试题还是java的啊,
    支持(0)  反对(0)  回复

    Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务