实习生面试(CSDN早期博客)

1.百度-数据分析部门

公司:百度
转正:实习生转正率70%~80%,9月份转正
2013年3月5日14:00
数据分析部门

一面:

  1. 笔写链表判环算法
  2. 10G数求前K个
  3. 给出以p概率生成0,1-p概率生成1的函数,设计以等概率生成0和1的函数。进一步设计随机数生成器。
  4. 想法,如何搜集用户信息

一面通过

二面:

  1. 一个log文件含有大小10G的query,求前K个出现次数最多的query
  2. 给出一个数据库设计,分析不足之处
  3. 随便写一个排序算法
  4. 代码量多少
  5. 想法,如何判断刘德华和郭富城的关系

二面挂了

不足之处:笔写函数的熟练度,对常见排序算法的理解,数据库的常见知识点,索引之类。

2.百度-基础平台部

公司:百度
2013年03月11日 14:00
基础平台部的C/C++实习研发工程师

一面:

面试官:研发工程师

  1. 笔写c++实现一个栈
  2. IPC的几种方式
  3. 笔写链表逆序
  4. 智力题,100小球在管道对碰问题

一面通过

二面:

面试官:资深研发工程师

  1. 给1000万个北京电话号码排序,给出算法,分析时间复杂度
  2. 二叉树遍历时间空间复杂度
  3. KMP算法
  4. c++实现不能被继承的类
  5. auto_ptr如何管理vector,auto_ptr的作用
  6. N个数前M大
  7. iostream和iostream.h的区别
  8. vector排序
  9. 进程和线程区别
  10. 笔写c++实现string类,实现big3,以及赋值操作符

二面通过

三面:

面试官:经理

首先给简历,没有固定题目,随便了解

  1. 问对网络编程的了解,四层协议,分别解释一下
  2. 问数据库范式的作用,分别解释
  3. 数据库容量瓶颈在哪里,为什么不能把数据库设为无限大
  4. 多线程的项目经历
  5. 自身最大优点是什么,怎么证明
  6. 为什么在简历中说善于发现bug,如果一个函数10次中有7次正确,3次错误,问题可能出现在哪里。你怎么解决问题,找到bug
  7. 所用过的互联网产品,人人和微信各有什么特点
  8. 职业规划如何,为什么不去研究所

三面挂了

不足之处:STL底层,算法时间复杂度分析,数据库的常见知识点,操作系统进程线程,及其通信同步。

3.SYMTEC

公司:SYMTEC

转正:完成实习任务即可转正,概率很高

研发环境:linux,unix,shell,perl,jquery

软件:Storge Foundation相关内部工具

户口:每年有名额,由FESCO管理

2013.03...
电话面试
面试官:
技术人员

  1. 数组逆序
  2. 字符拷贝
  3. SQL查找取前100个
  4. 英语自我介绍,
  5. 英文对话

2013.03.15.16.30
面试
面试官:技术员1,技术员2,hr。三人同时

技术员1:

  1. 基类析构函数设置为virtual的作用,在实际工程项目中是否遇到过memory leak
  2. C++多继承出现钻石环,孙子类调用祖父类的函数会有什么情况
  3. 介绍STL,vector的底层实现,sizeof(vector)是多少,map底层实现
  4. MFC中所有窗口都继承的类,MFC中所有类都是从什么类派生的(注:面试官出的题目有错误,有些类不是从CObject继承的,比如CPoint)
  5. CString和string的相互转化
  6. 引用和指针的区别,是否可以有const引用
  7. C语言中的malloc和C++中new的区别

技术员2:

  1. SQL查找取前100个
  2. 黑板上手写一个二分查找(注:写下了严书中的算法,技术员1指出了严书上二分查找的不足之处)
  3. 能不能耐住寂寞,面对50%的重复性劳动会怎样
  4. 英语问答环节
  5. Self Introduction
  6. Why don`t you go abroad
  7. Short term and long term goals
  8. Why do you choose automation as you major
  9. Are you a popular person,how can you prove it
  10. I think you are too confident , how do you think so
  11. Who is always disappointed on you?
    Hr:
    一直在观察面试者,基本上没问问题
    不足之处:STL底层,数据库查询语句。

4.酷我音乐

公司:KUWO
转正:概率很高

2013.03.19

一面:

  1. 多线程同步
  2. 快速排序时间复杂度,最好时间复杂度,以排序的数组,再进行快速排序,时间复杂度是多少
  3. 设计模式,写个单例模式,说说了解的设计模式
  4. 为什么控制跑来做软件开发

二面:

  1. 虚函数的作用,静态成员函数的作用
  2. 类对象的内存布局
  3. 在dll里面干掉一个线程会出现什么情况

三面:

  1. 如何快速从文件中读取数据,比如数据记录是姓名,年龄,性别,数据记录是顺序排列。查询的输入是第x条记录。(只回答对了建立文件映射,关键是不理解题目)
  2. 如何设计一个通用的单例模式
  3. 简历中为什么说善于发现bug,最近一次发现bug是什么时候,怎么解决的。有没有发现运行时期的bug

四面:

1
2
3
4
5
6
7
8
9
10
11
12
13
int a[] = {1,2,3,4,5};  *(&a+1)和*(&a[0] + 1)分别是多少
struct Test
{
static int a;
int m;
}
Test test;
&test的值和 &(test.m) 和 &(test.a)的值的关系
解释一下堆栈 和 堆的特点
解释一下static_castdynamic_cast的区别
vector<int> a;如何获得a内部数组地址
主线程等到子线程干完才能干事,主线程怎么知道子线程干完了?不能用内核同步方式。
多维数组存储模型

五面:
一个服务号码比如123456 对应的是下载音乐服务。有很多服务号码,分别对应不同的服务。这些号码不会超过13位。设计一个数据结构根据输入的码找到相应服务。
开始回答用map,查找的复杂度是O(nlogn);
后来说如果输入的服务码多了会怎样,怎么容错?比如一个服务码是22221对应听故事服务,用户输入了222211111,如何任然定位到听故事服务。内存不限。
想到了基数排序,最后设计了一个算法,面试官说我设计的叫做字典树,我表示瞎猫碰死耗子

六面:
基本聊天,没问技术问题。

七面:
HR
不足之处:算法的分析,数据结构的了解。

5.搜狗

职位:Windows客户端浏览器开发

时间:2013.03.27

一面:

  1. 虚析构函数的作用
  2. void memcpy (void* dest, const void* src, size_t len);实现函数;有什么需要注意的?
  3. list<int> iList;删除所用等于某个特定值的元素
  4. 多进程通信用过哪些?
  5. 多线程同步方式?用过哪些?
  6. WTL和COM的了解
  7. 是否用过模版?解释模版特化和偏特化
  8. dll中new的对象在exe中删除是否合适?
  9. exeA和exeB都载入dllC,问dllC是否在A和B中各有一份?
  10. 你是如何在不同工程中实现同种子功能的?
  11. DC,客户区和非客户区,贴图图形闪烁的原因
  12. 1000万个人的身高,找出前20
  13. txtA和txtB每行都是文本,求A和B内容相同的行

不足之处:Win32中dll的了解。

时间:2013.04.03

二面:

  1. 如何获得当前exe运行的目录
  2. vetor容器不停push_back导致容器的capacity增长,描述一下capacity增长的过程
  3. 双线程(一个读线程、一个写线程)同时对一块内存操作,比如int g_iNum;是否需要加锁?如果把整数换成list呢?
  4. SendMessage 和 PostMessage的区别,如果窗口A和窗口B相互SendMessage会出现什么情况?
  5. 多线程同步,列举你用过的方式。Event 和 Mutex有什么区别?
  6. 自动重置的Event和获得Event后立即手动重置有什么区别?
  7. dll载入后,怎么调用函数?
  8. 最近看了什么书?
  9. 为什么看了那么多书?不去实践一下?
  10. 如果老板交给你一个活,你怎么处理?
  11. 有没有女朋友?工作还是上学?如果她不能在北京找到工作怎么办?
  12. 找工作中是否户口很重要?如果一个国企有户口,和一个你喜欢干的工作没有户口,怎么选择?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A
{
public :
void func() {cout<<"Hello World"<<endl;}
};
int main()
{
A* p = NULL;
p->func();//会出问题吗?
return 0;
}

class A
{
public :
void func() { cout<<m_iTest<<endl;cout<<"Hello World"<<endl;}
int m_iTest;
};
这样呢?调用p->func()会出问题吗?

如果把 func函数设置为virtual呢? 问题出在哪一步?
1
2
3
4
5
6
7
8
9
10
A tmpA,tmpB;
tmpA.func();
tmpB.func();
编译器怎知道是tmpA还是tmpB调用func呢?

类的成员函数可以作为线程函数吗?

为什么static成员函数可以作为线程函数?

static成员函数和普通的成员函数的区别在哪里?针对这个问题。。。

不足之处:Win32中dll的了解。

6.豌豆荚

一面:

实现大整数乘法

二面:

实现字符串匹配算法

7.腾讯

职位:Windows客户端浏览器开发

时间:2013.04.24

一面:

  1. MFC怎么实现消息映射
  2. Windows程序的基本流程,创建的窗口怎么跟窗口过程绑定起来
  3. C++看过什么书
  4. 说一下《Effective C++》中印象最深的一个条款
  5. 编译器为类默认实现的函数有哪些
  6. C++怎么实现虚函数机制
  7. A、B、C三个类,A是C的基类,同时C中包含有B的对象,A、B、C构造函数执行顺序
  8. Vptr在哪里初始化的
  9. Windows中多线程同步机制
  10. Windows中有没有共享内存? 文件映射的作用
  11. 用两个队列模拟一个堆栈
  12. 设计一个不能被继承的类
  13. Heap和Stack的区别

二面:

  1. C++看过什么书
  2. Windows看过什么书
  3. 说一下Windows内存模型
  4. Windows哪块比较熟悉?IO、内存管理、多线程?
  5. 怎么把单线程函数拆为多线程函数?比如用单线程对一张位图进行灰度化。怎么把这种单线程任务拆分为多线程
  6. 1G内存,两个exe。说一下内存占用情况

三面:
HR

8.阿里巴巴

时间:2013.05.21

一面:

  1. 解释重载和多态
  2. 堆和栈的区别?应用场景分别是什么?
  3. 用过的类库?vector和list的区别。是否多线程安全的?
  4. 设计模式了解哪些?写一个单例模式
  5. 适配器模式是否了解?
  6. 是否做过多进程通讯?跨机器的进程通讯的方式有哪些?
  7. 说一下OSI七层模型
  8. 网络拥塞发生在哪一层?
  9. tcp和udp区别
  10. 数据库了解多少?
  11. 有没有看过常用算法的工业级源码实现?如快速排序等
  12. 聊项目,做的东西
  13. 引申我做的项目,同一反射内存地址 怎么在多机器环境下保持读写不冲突?

二面:(后记)

  1. 感觉写过最好的代码
  2. 一道算法题
  3. 聊了一下dota喜欢什么英雄

三面:
HR