这里整理了我的笔试面试题目:
1、实现strstr函数;
2、sizeof与strlen的区别;
3、各排序算法时间复杂度分析;
4、数据库事务的概念及相关知识;
5、检测某一个IP是否可达的命令;
6、哈弗曼编码;
7、服务器吞吐量的计算;
8、Levenshtein距离的计算;
9、假设网络带宽为128MB/s,网络单项延时为100ms,1000个客户端(单线程)同时向服务器传输64KB大小的文件,每个请求大小为64KB,服务器磁盘并发写入速度为30MB/s,在传输过程中,服务器吞吐量为_______,单个请求响应时间为__________。
10、在有N个正整数的集合S中,找出最大元素C,满足C = A + B(A、B均为S中的元素)。请给出算法描述和代码、时间复杂度分析。
11、内存管理淘汰算法;
12、用栈(stack)模拟队列;
13、Makefile文件的编写;
14、UML图;
15、#ifndef,#define,#endif的作用;
16、extern的作用及用法;
17、如何用函数交换两个数;
18、拷贝构造函数;
19、有A、B、C共3个进程共享资源D,且A需要2个D才能完成任务,B需要3个D,C需要4个D,系统最少有几个D才能不死锁?
20、STL相关:static_cast<int>,dynamic_cast<int>,reinterpret<int>,const_cast<int>;
21、sprintf的应用;
22、memcpy的应用及实现;
23、LRU算法;
24、11个点连接成48条线,共有多少个三角形;
25、分页、分段存储管理;
26、如何用先序遍历和中序遍历推出后序遍历;
27、CPU利用率类的问题;
28、union与join的区别;
29、vector与iterator的应用;
30、用sizeof计算类的大小;
31、strncpy与strcpy的比较,加上它们的实现;
32、设计模式相关的知识;
33、大数据的问题:100W个int型数据,找出前100个;
34、各种排序算法的实现;
35、多线程同步的方法;
36、智能指针;
37、回调函数;
38、多个进程竞争资源,造成死锁的问题;
39、数组元素循环右移n位,用代码实现;
40、页面淘汰算法(换页几次);
其实笔试面试的本质还是考察对专业知识的掌握程度,努力学习是王道。尽量多看课本,同时多看看《剑指offer》《程序员面试宝典》上面的题,自己多练练,就不会有问题了。
面试时写代码要切记,写完代码之后自己检查一遍,不要出现幼稚的错误,还有就是要注意对边界条件以及异常值得处理。
至此,差不多完了。