http://blog.sina.com.cn/s/blog_48c9576b0100me1y.html
9月26号深信服校园招聘笔试
都说深信服的题又偏又难,果然不假。不过还有有很多值得多思考的题。
这套题共有10页,涵盖了操作系统,网络,汇编程序,算法和数据结构,题还是很有难度的。但是操作系统,网络,汇编程序都不是很多,都是1-2道题的样子,但是都很偏,不好做。
以下是个人感觉比较不错的题:
程序填空:
快排的实现
不限精度的整数(大数)加法,链表实现(比较不错的题)
算法题:
二分查找实现
链表逆置
链表排序
问答:
在X86平台下,strcpy易出错原因
对于一个未初始化的对象,为什么调用其虚函数会出错,但调用其非虚函数不会有错
strcat的效率问题,更好的解决方案?
小数点的第60位是多少
输出结果填空:
第一题
struct S{
void * operator new(unsigned int size, void* p, int i)
{
((S*)p)->i = i;
return p;
}
int i;
};
S ss;
S* pss = new(&ss, 10)S();
int main()
{
cout<<ss.i<<"
S* pss2 = new(&ss,20)S;
cout<<ss.i<<"
return 0;
}
输出:0
第二题
class A
{
public:
void f(int)
{
cout<<"A::f(int)"<<endl;
}
void f(double)
{
cout<<"A::f(double)"<<endl;
}
virtual void g()
{
cout<<"A::g(void)"<<endl;
}
};
class B:public A
{
public:
void f(double)
{
cout<<"B::f(double)"<<endl;
}
void g()
{
cout<<"B::g()"<<endl;
}
};
int main()
{
A* pa = new B;
pa->f(1);
pa->g();
B* pb = (B*)pa;
pb->f(2);
pb->g();
}
输出:
A::f(int)
B::g()
B::f(double)
B::g()
找错题:
const int b=0;
int * const p4 = &b;
*p4=10;
cout<<*p4<<endl;
一面:
总结问到的题包括(有几个忘记了,不太全):
Dijkstra算法
平衡树
C++中类的静态成员函数的理解
printf函数中,可以有多个参数,是怎么实现的
STL,vector容器空间不足的时候的处理方式
STL中sort函数
快排算法的实现
socket编程中,(自己不太熟,如实相告,没有什么问题)
TCP协议用什么机制保证数据的可靠性
linux异步机制
linux同步机制,linux自带的同步机制
linux进程间通信的方式都有什么
fork函数的用法
wait函数的作用
如何防止僵尸进程出现
做过的项目介绍
从深信服的笔试就能看出来,这个公司很注重基础和底层。笔试题很难,也很全,不过没关系,只要有一方面答得好就行,我的笔试中,感觉就编程和算法还不错,其他基本没写什么。
二面:
9月30日二面:
后来问我有问题吗?我直接问他对我今天面试的评价,得到的答复是这关过去了,下午HR会联系我。
三面:
9月30号下午,就是发offer,以前还没接触过呢。原来就是在一个会议室,这次在这边有12个人拿到offer,共有三个我们系的,包括我。然后一顿的讲解offer事宜,一顿猛夸深信服的发展前景,明年要上市等等。。。