网易的2009校园招聘今天在我们学校举行笔试,没有接到笔试通知,继上次霸王笔之后,第二次靠软磨硬泡得到了一次笔试机会。
说题目吧,很杂,先是几个基础题,排序的时间复杂度,哈希表冲突处理的原理,对链表的优化提高其随机访问的性能。什么是NP问题,如何判断是否为NP问题。什么是C++ traits?请举例。C++中的new为对象分配内存,并且调用构造函数初始化,如何只调用构造函数不分配内存?
Linux里面考的是查找,sed字符串替换,用一条命令创建3个子目录,mount,设置ulimit。
用户HOME目录下的.bashrc和bash_profile文件的功能有什么区别,gdb调试的一些问题,设置断点什么的。
pthread里面的函数名字,举出5个,线程同步机制,编译加什么参数。
数据库
查找满足某条件的前5条记录。
首先要定义一个排序规则,有了排序规则才有前5条记录的说法。
SELECT * FROM (SELECT * FROM TB_NAME ORDER BY COL_1 DESC) WHERE ROWNUM < 6
基于哈希的索引和基于树的索引有何区别。
索引对数据库性能的影响。
什么是两阶段提交协议。
数据库的ACID性质,事务隔离的4个级别,并发控制协议。
连接池的作用,对系统性能的影响。
web开发
HTTP Request头字段有哪些?
web服务器如何区分普通用户和搜索引擎spider。
HTTP keep_alive的作用。
暂时就能想起这么多了。
补充一个程序输出:
#include<iostream>
using namespace std;
class A{
public:
A(){p();}
void p(){printf("A");}
virtual ~A(){p();}
};
class B:public A{
public:
B(){p();}
void p(){printf("B");}
~B(){p();}
};
int main()
{
A *a= new B();
delete a;
return 0;
}
输出:ABBA
一个链表的遍历,声明是这样的:
void print(list<int> &l);
void print(list<int> &l)
{
list<int>::iterator it;
for(it=l.begin(); it!=l.end(); it++)
{
cout<<*it<<endl;
}
}
还有一个是树的按层次输出,也是程序写结果的。
另外一个是比较类A,B,C的大小,如下:
class A{
A(){}
~A(){}
int m1;
int m2;
};
class B{
B(){}
~B(){}
int m;
char a;
static char c;
};
class C{
C(){}
virtual ~C(){}
int m1;
short s1;
};
sizeof(A)=8;
sizeof(B)=8;
sizeof(C)=12.
一个工程有两个C文件分别为a.c, b.c,在a.c里面声明了一个全局变量foo,在b.c里面如何使用。
假设在a.c中这样声明:int foo;
在b.c中这样使用:extern int foo;