历年腾讯招聘考试面试试题汇总
1、请定义一个宏,比较两个数 a、b 的大小,不能使用大于、小于、if 语句
#define BIG_THAN(a, b)
(((b) – (a)&(0x1<<31))>>31)
2、如何输出源文件的标题和目前执行行的行数
int line = __LINE__;
char *file = __FILE__;
cout < <"file name is " < <(file) < <",line is " <
程序填空(40)
1.(20) 4 空 x5
不使用额外空间,将 A,B 两链表的元素交叉归并
typedef int dataType;
typedef struct node
{
dataType data;
struct node *next;
}Node;
typedef Node *List;
List connect(List aList, List bList)
{
Node *p, *pNext;
Node *q, *qNext;
p = aList;
q = bList;
pNext = p->next;
qNext = q->next;
if(aList==null) return bList;
if(bList==null) return aList;
while(q->next != null&&p->next!=null)
{
p->next= q->next;
p=pNext;
pNext=pNext->next;
q=qNext;
qNext=qNext->next;
q->next=p;
}
If(qNext==null) qNext->next=pNext;
If(pNext==null) pNext->next=qNext;
return aList;
}
2.(20) 4 空 x5
MFC 将树序列化 转存在数组或 链表中!
////////////////////////////////////////////////////
基本都是基础题目,看来腾讯不准备放弃那些有思想但是
还没有开始苦练基本功的人,只涉及到语言问题和简单的
数据结构,其他的操作系统,编译原理,离散数学,软件
工程,计算机原理,体系结构等等无一涉及,题目很多,
有 1 个选择题想不来起来是什么了,题号不与原试题相符
希望师弟师妹可以探讨探讨答案,从中学到笔试的经验
声明:以下问题仅供本校园网校内师弟师妹为了考察自己学习的参考,不要传播
1 计算 a^b << 2 (运算符优先级问题)
2 根据先序中序求后序
3 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4)
4 for(int i...)
for(int j...)
printf(i,j);
printf(j)
会出现什么问题
5 for(i=0;i<10;++i,sum+=i);的运行结果 55
6 10 个数顺序插入查找二叉树,元素 62 的比较次数
7 10 个数放入模 10hash 链表,最大长度是多少
8 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参
9 希尔 冒泡 快速 插入 哪个平均速度最快
10 二分查找是 顺序存储 链存储 按 value 有序中的哪些
11 顺序查找的平均时间
12 *p=NULL *p=new char[100] sizeof(p)各为多少
13 频繁的插入删除操作使用什么结构比较合适,链表还是数组
14 enum 的声明方式
其他 1 个选择暂时想不起来了
大题:
1 把字符串转换为小写,不成功返回 NULL,成功返回新串
char* toLower(char* sSrcStr)
{
char* sDest= NULL;
if( __1___)
{
int j;
sLen = strlen(sSrcStr);
sDest = new [_______2_____];
if(*sDest == NULL)
return NULL;
sDest[sLen] = '\0';
while(_____3____)
sDest[sLen] = toLowerChar(sSrcStr[sLen]);
}
return sDest;
}
2 把字符串转换为整数 例如:"-123" -> -123
main()
{
.....
if( *string == '-' )
n = ____1______;
else
n = num(string);
.....
}
int num(char* string)
{
for(;!(*string==0);string++)
{
int k;
k = __2_____;
j = --sLen;
while( __3__)
k = k * 10;
num = num + k;
}
return num;
}
附加题:
1 linux 下调试 core 的命令,察看堆栈状态命令
2 写出 socks 套接字 服务端 客户端 通讯程序
3 填空补全程序,按照我的理解是添入:win32 调入 dll 的函数名 查找函数入口的函数名 找
到函数的调用形式 把 formView 加到 singledoc 的声明 将 singledoc 加到 app 的声明
4 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)
1 问上课程 "db"的学生 no
2 成绩最高的学生号
3 每科大于 90 分的人数
////////////////////////////////////////////////////////////////////
试一共 60 分钟,分发试卷和收回试卷费时 5 分钟,实际考试时间 55 分钟。
选择题 36 道(都是 5 个选项的),计算题 14 道(一道题会有好几个问),题量比较大,
我还有最后两个空没填写,实在是没时间了~~
题目考查的范围比较全面,但是有所侧重,例如:如果外汇相对于本国货币升值,一般
来说,本国的通货膨胀率将会怎样?下面就是 5 个选项。
总体来说,试题本身难度不大,但是很费时间,阅读的速度非常重要,逻辑判断的能力
要求很高,要求快速阅读、快速判断、快速计算,而且还不能粗心导致计算失误(我一般出
现的情况就是计算失误~~,希望这次不会出现~~)
腾讯这次的试卷可能字体印刷的比较小了,我的视力是 5.3 的,看上去不会有任何问题,
但是坐在我后面的老兄就不好了,完全是模糊的一片,不断的缩减和纸张之间的距离才能看
到,可能腾讯公司在这方面的成本应该适当放宽(也许也是一种测试吧,身体素质的测试~~)
HR 说今天就会有面试通知出现,等待中……
今天下午 3 点还有一个招商银行的面试,应聘的核心业务软件开发工程师,应该没有什
么问题的~~
11 月 5 日还有 KPMG 的笔试,按照我做的以前的笔试题目来说,很 Easy,全对~~但愿这
次也是这样~~
如果幸运的话,如果和腾讯能够很好的契合的话,应该在一个周的时间里面就签约了,
大家保佑我吧。
有朋友问我,为什么不去 Google 或者微软这样的公司,却要去腾讯?
我的回答是:我个人的能力在 Google 或者微软这样的地方是没有太大竞争优势的,而
且我想做的事情并不是 Code Machine,我希望能够在我的市场洞察力下,依据市场数据做
出我的策略和 idea,然后利用我的技术背景将其实现为一个原型系统,经过 Team 和部门的
验证,最终与工程师们一起将其实现为公司的产品或者服务,这是一个从 idea 到 product
的过程,充满了创造的乐趣,充满了挑战,我就喜欢这样的感觉,而腾讯能够给我这样的环
境,我希望我能够在腾讯 5 个多亿的用户群上为公司做出一点贡献,也是一次次自身价值的
提升。
////////////////////////////////////////////////////////////////////////////
由于近来有些人都问我腾讯笔试和面试到底是考什么,问什么,所以就灌下这篇水文,也算
是我自己复习一遍以及给有兴趣或者后来者嗤鼻一笑的机会:)
其实应聘内容也真的很难说清楚,而且我也不知道我所经历的是不是有代表性,何况我
还是找工作的新手(本科也没找过工作,之前也只是应聘过华为),所以如果下文有什么疏
漏之处,尽管踩我好了:)
1。笔试我想腾讯的笔试还是比较适中的,虽然广度与深度都不够,但是毕竟因为它只
是笔试,只是用来筛选面试者的,而不是象学术竞赛一样一战决胜负,何况它是笔试,所以
也就有笔试的局限性。(啊哦,是不是离题?)笔试主要是 C++的内容,然后还有一部分数
据结构、系统平台(WIN32 和 LINUX 都有)的编程知识(线程模型、共享内存、编译或对象
模型等)、JAVA(这次笔试 JAVA 有一题,是填写同步的关键字的,当然题目没有明明白白
告诉你写 synchronized 这个关键字啦,否则就要被人 BS 了,哈哈。好在 JAVA 下的同步基
本实现机制相当简洁,只要刚才那个关键字申明一下就可以了,学过 java 多线程模型的人
都应该知道填什么,可惜我那时我也拼写错误了,漏了一个字母。。。,好象是 5 分一题的,
损失不小哦)等。可以说还是比较有代表性的。
这里罗嗦几句, 有的人总是问为什么都考 C/C++,我想因为 C/C++才能比较好的表现出
你的编程的水平(包括风格、惯用法、技巧性、严谨性等),就象堆积木,给你不同形状的
积木越多,那你就越能堆出更多的造型。还有就是是 OOP(这里废话几句~~
OOP 思想很重要,记得当年初次接触 C++真的是只知其所然,而不知其所以然。特别是
“虚拟—virtual”这个词,可以说是最最核心的了,理解了它,你会觉得这个词实在太优
美了,哈哈~~你可以这样测试你自己的 OOP 能力,针对 OOP 的三个特点用程序写出对应的例
程,如果能够写得正确且健壮,那么应该也就什么问题了)做比较大的项目现在一般都采用
OOP 来实现的了(当然对于特殊的需求、环境和人除)。VB 和 DELPHI 虽然也很流行,一方
面是他们没有国际标准,其次是由于它太高级了,一些传统的编程技术被隐藏了,姑且不论
VB(6。0 以前)不支持 OOP,那就更难用它来考 OOP 了,DELPHI 支持 OOP,但是我想很多同
学都只是用它进行 OBP,而不是 OOP,所以。。。
至于 JAVA,我本人也很喜欢,而且怎么说,JAVA 也很接近 C++,何况其 API 也比 C/C++
Library 更规范、全面,所以使用起来很方便。但是正如考数学分析比考高等数学往往会加
深对数学的理解的道理一样,除此以外也有另一层寓意,假如你能徒手打败你的敌人,那么
再给你一把利剑,我想你会在更短的时间内结束战斗,呵呵。所以考 C/C++还是比较合适的,
公平是相对的。。。
2。一面面试其实也挺难说的,因为这个环节很灵活,也许在面试之前连面试官自己都
不知道他自己将要问什么,呵呵。这里也只是给出一个 case(归纳法不适用,呵呵)。一
面时,我只带了两页纸简历,到了面试地点,才发现很多人都是一叠资料的,有的人还不断
在复习资料。。。别提当时我有多狼狈了。。。
根据外貌和谈吐可以推断出一面面试官是一个前线的技术专家。面试时首先自我介绍,
我一向没刻意去背自我介绍,但是也事先想好了的。然后就是问你哪种编程技术比较拿手啊,
项目经验啊,我想关键是深度一定要够,一定要体现你的参与价值和收获,不管是开发过程
还是开发技术。面试时我分别从开发过程与开发技术两个方面说了两个项目,感觉面试官还
是接受了的,然后小部分技术细节,比如说在一个项目里面为了解决一个问题,你采取了什
么策略,采用了什么技术,这个可千万不能说错哦,不然你就是在自打嘴巴了。。。也许我
的笔试成绩还可以,所以语言层面的问题基本没有了。总结,这个面试官很实在,也相当和
蔼可亲。。。