腾讯2016校招面试经验分享(一面)
今天去参加腾讯公司的面试,我投的后台C++的岗位,今天就一面,总共80分钟。(面试官问了50分钟左右 + 30分钟做个一道编程题)。
面试如下:
M (面试官)
W(我自己)
。。。。。。(代表我当时的回答,这些细节就不再写出来了。)
进去之后把简历递过去。
M:先做一下自我介绍。
W:。。。。。。。。。。(ps:自我介绍了大约2分钟,刚开始感觉有点紧张)。
M:看你简历,你C++应该还不错,先问你点C++方面的问题,C++的public继承和private继承有什么区别?
W:。。。。。(ps:第一个这个简单的问题,我感觉都没答好)
M:你知道C++中可变参数怎么实现的呢?
W:我没有理解,可以再说下一下吗
M:比如sprintf函数,是可变参数的,底层怎么实现的呢?
W:(ps:这个真不知道,就说了不知道,心里默想,前两个问题答得都不好,这怎么办呢)
M:你说一下,C++的虚继承吧
W:。。。。。,说完虚继承,我又顺便提了一个多态。
M:那你说一下,多态你怎么理解的吧?
W:多态就是,真正运行的时候,才实现函数的动态绑定,。。。。。。。
M:什么时候要把函数定义为虚函数呢?
W:有时候,析构函数需要定义为虚函数,。。。。。。。。(ps:当时应该把虚函数的底层实现再说一下的)
M:还有什么情况下要用虚函数呢?
W:(ps:想了一下,真的没有想出来,就说了不知道。)
M:你说一下,C++的const使用吧。
W:那我先说了一下,C语言中和C++中的const的区别,C语言中定义了一个变量,属性只读不可写。C++是定义个一个常量。 Const还可以定义类的成员函数。。。。。。。。。
M:那你说一下,const定义类的成员函数,有几种写法呢?
W:我写了一下,const voidfun() const; 和void fun() const;(ps:我也不知道这样写对不对)
M:这两种写法有什么区别呢?
W:(ps:这个我真不知道,就给他说了指针常量和常量指针的区别)。
M:你说一下,数据结构中常用的几种排序算法?
W:常用有。。。。。。。。。。,我顺便着把它们的复杂度说了一下。
M:那你说一下,快速排序的实现原理
W:。。。。。。
M:那你再说一下,堆排序的实现原理。
W:。。。。。。。。。
M:假如现在有10000个数据,要把10个最小的数据找出来,你说一下你的思路。
W:(ps:窃喜,因为在剑指offer上看过这道题目的解题方法)
M:那你计算一下时间复杂度
W:。。。。。。
M:现在有两个单链表,是无序的,你把两个链表中相同的元素找出来。
W:(ps:当时没有理解题意,又问了一下他,会不会有重复的数据)
M:可以有重复的数据。
W:先把最笨的暴力匹配的算法给他说了一下,时间复杂度为O(m*n)(ps:知道这样肯定不行)
M:还有其他的思路吗
W:(ps:想了一下,我也不知道最优解,就给他说了想法)。先把两个链表排下序,然后定义两个指针,再分别遍历一下链表(ps:具体的细节,就不再说了)
M:Linux你熟悉吗
W:还可以
M:就问,要想查看系统网络的命令是什么
W:我说ping,nestat,可以查看系统开放的端口。。。。。。。。,经常用到。。。。
M:nestat命令,可以查看到什么信息,比如端口有什么状态
W:(ps:这个我没有注意过,就给他说不知道)
M:那你说一下,如何查看Linux I/O的使用情况,有什么命令
W:df,du命令(ps:又给他扯了下,文件系统方面的东西,说了两个命令的区别)
M:这个是查看磁盘使用情况,不是查看I/O的使用情况
W:(ps:这个真不知道了,就说了不知道。)
M:你说下进程和线程的区别吧
W:扯了一番(ps:感觉这里,应该分点来说的)
M:线程怎么实现同步?
W:。。。。。。。
M:进程的通信方式有哪些?
W:。。。。。。。
M:那你写一个管道的用法吧
W:是写有名管道还是匿名管道呢
M:匿名管道。
W:就写了父子进程通信,(ps:这些东西,有点遗忘了,真写的时候,一些细节就忘记了,写的不全)
M:进程间会出现死锁,怎么可以避免?
W.。。。。。。。。
M:进程锁有哪些?
W:pthread_mutex
M:还有其他的吗?
W:(ps:我就知道这一个,就说只知道这一个)
M:那你写一下与锁有关的函数吧
W:pthread_mutex_initpthread_mutex_lock pthread_mutex_unlock pthread_mutex_trylock,接下来给他介绍了一下,这些函数的用法。。。。。。。。(ps:我也不知道有没有写错,等会再看一下笔记吧)
M:mysql数据库有没有用过呢
W:使用过。。。。。。。
M:那你知道它有什么搜索引擎吗
W:MyISAM InnoDB,接着说了两者的区别。。。。。。。(ps:本想装装逼的说了两者的区别,以及在什么情况下使用哪个比较合适,但是,面试官一深问,就露馅了,逼也没有装成)
M:你说MyISAM支持索引,InnoDB不支持吗
W:也支持,但是在查询的时候,MyISAM效率比较高的。。。。。
M:你说MyISAM支持的索引,是怎么实现的
W:(ps:虽然说看过书,但是也没有看这么细,这些东西还是不懂,就停顿了下)
M:没事,你知道多少,就说多少
W:。。。。。。(ps:这些东西,看书不能只看个皮毛,面试官一问,就露馅了)
最后让我写了一个编程题目,是函数接口如下
int str_tok(char* strLine, char* strPep,char *ret[], int* num)
实际上就是实现C语言的strtok库函数。
今天面试地点在浙大玉泉校区旁边的黄龙饭店,技术面是单人面,非技术面是群面,看到那些非技术面的,一下进去14个人面试,感觉技术面还是挺幸运的。
总体来说,感觉面试问的挺基础的,也没有问项目方面的问题。
Ps:我在一旁写编程题目的时候,另外一个同学进来面试,他的自我介绍是这样的。
(我叫***,本科是上海交大的,现在在浙江大学计算机学院读研究生,研二,研究方向是**,前段时间在阿里巴巴实习,现在已经拿到阿里offer了,不过我更愿意去腾讯公司,更喜欢深圳那里,接下来就和面试官在聊现在做的项目。。。。。。。。。。)
听到这些,心里一万只草泥马奔腾而过,真牛逼呀,他和面试官在聊项目的时候,那些名词,一个也听不懂。自己还是默默的复习,准备下一场面试。
静静的等待一面的结果吧。。。。。。
还没有评论,来说两句吧...