腾讯校园招聘笔试题一
腾讯的流程是一笔和四面。前三次面试都是技术面,hr 面基本不刷人。笔试成绩决定面试
顺序。技术面可能要写代码,做智力题目。
主要是 c/c++、数据结构、操作系统等方面的基础知识。好像有 sizeof、树等选择题。填空
题是补充完整程序。附加题有写算法的、编程的、数据库 sql 语句查询的。还有一张开放性
问题。
1.请定义一个宏,比较两个数 a、b 的大小,不能使用大于、小于、if 语句。
int
const
shift
=
sizeof(int)*8-1;
unsigned
mask
=
(0x1<
3, 计算 c=a*b;
(要么用 java 的 BigInterger 搞, 要么自己用 C++写高精度数乘法,超过百万位,用 FFT,
我就不细说,这都预先写过就别做了
)
4, 输出 c
(注意在输出倒数第 l 个数时,输出一个小数点。若是输出的数少于 l 个,就补 0)
4.写一个病毒
while (1)
{
}
int *p = new int[10000000];
上面这个不对,没有传染性,寄生性……
5.不使用额外空间,将 A,B 两链表的元素交叉归并将树序列化转存在数组或 链表中
struct st{
int i;
short s;
char c;
};
sizeof(struct st);
8
char * p1;
void * p2;
int p3;
char p4[10];
sizeof(p1...p4) =?
4,4,4,10
5.让你在 100000000 个浮点数中找出最大的 10000 个,要求时间复杂度优。
最小堆
二分查找
快速排序
双向链表的删除结点
6、有 A、B、C、D 四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时 1、2、5、10
分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在 17 分
钟内这四个人都过桥?
基础题有 15 道选择和 2 道读程序填空。选择题的确是很基础,主要考数据结构,还有一些
体系结构、数据库的题目;读程序题跟我们平时考试的差不多,一道是两个升序链合并成一
个升序链+递归,一道是四色着色方案附加题有几道没有看清楚。有一道是 unix 防僵死算法,
最后一道是 sql 查询,还有几道忘了,其中一个是很长的程序题。
发信人: charly (查理一世), 板面: Work
标 题: 腾讯笔试题
发信站: 飘渺水云间 (Sat Nov 11 10:55:33 2006), 转信
15 个选择题,60 分
一个程序填空,40 分
三道附加题 60 分
附加题考的是
1、不用第三个变量实现两个整形变量的交换 linux 的子进程操作系统资源抢占管理,两个
进程要对文件进行独占访问,采用共享变量,判断可行否
2、书写 strcpy()
时间两个小时,选择题 15*4
然后是程序填空题
10 (2*5), 30 (10*3)
附加题
用 c++ 实现一个链地址 hash。
程序填空题我就不说了,比较 easy 的说,值得一提的是选择题。
绝大部分考的是 C++,我大致说下主要部分吧:
涉及程序执行压栈的:
涉及容器和迭代器的:
1 道
4 道
涉及虚拟函数以及 dynamic_cast 的 3 道
涉及参数传递的
简单的程序段落判断
涉及类的静态成员赋值的
1 道
2 道
1 道
剩下的是杂七杂八的。不管怎么说,假如你把 c++ primer 仔细阅读了一遍,基本上没问题。
考的有些细,没有涉及算法和编译等知识,所以我同屋一个兄弟很郁闷,因为他 linux 底层
比较好,本来报的是后台开发,哪知道结果考这种类型的题目。程序填空的考了文件操作,
以及数组移动等。附加题比较简单的说,只要把数据结构的 hash 部分好好看,然后用 class
组装一下就 ok 了。
最后祝大家好运,今年腾讯计划 50%的是校园招聘,感觉很不多