秋季招聘正在进行中,我们收集了一些面试题,看看你能胜任吗?
1.基础知识和基础语言
1.先说一下关键词的作用
2.谈谈C++和C的区别
3.我们来谈谈C++中的四种类型的强制转换
4.
5.给定三角形ABC和点P(x,y,z),判断点P是否在ABC内,给出思路,手写代码
6. 如何判断一个数是否是2的倍数,以及如何找出一个数中有多少个1? 告诉我们您的想法并手工编写代码。
7.请告诉我你对C++中四个智能指针的理解:
8、
9. 你能回答一下什么是野指针吗?
10.您能介绍一下C++中的智能指针吗?
11.请问智能指针是否存在内存泄漏?
12.请告诉我如何解决智能指针的内存泄漏问题。
13. 你能回答为什么析构函数必须是虚函数吗?为什么C++默认的析构函数不是虚函数?
14.
15.
16.请介绍一下C++中析构函数的作用
17.请告诉我静态函数和虚函数的区别。
18. 请告诉我有关重载和覆盖的信息。
19.请告诉我关于
20.请告诉我你对虚函数和多态性的理解。
21,
22,
23. 请编写一个在main函数执行之前运行的函数。
34. 你能告诉我C++中常量是如何定义的吗? 常量存储在内存的什么位置?
25.
26.请告诉我有关隐式类型转换的信息
27. 告诉我你知道的类型转换
28.请告诉我C++函数堆栈空间的最大值。
29.
30.请问new/和/free有什么区别?
31、请问虚函数表是如何实现运行时多态的?
32. 你能告诉我如何用C语言进行函数调用吗?
33.
34. 你能告诉我C++如何处理返回值吗?
35. 请回答一下问题:C++中复制赋值函数的形参可以按值传递吗?
43.请回答new和new的区别。
36.请告诉我
37. 请告诉我有关 fork、wait 和 exec 函数的信息
38. 你能回答一下静态函数和虚函数的区别吗?
容器和算法
1. 你能告诉我map和set的区别以及它们是如何实现的吗?
2.您能介绍一下STL吗?
3.请告诉我有关STL迭代器删除元素的信息。
4.能否请您介绍一下STL中MAP数据的存储形式?
5.请告诉我地图和
6.请谈谈list和list的区别和应用。 越详细越好。
7.请介绍一下STL中迭代器的作用。 既然有指针,为什么还需要迭代器?
8.请介绍一下epoll原理。
9、能否请您介绍一下STL中MAP数据的存储形式?
10. 对于一个由 n 个整数组成的无序数组,找到每个大于它的元素后面的第一个数字。 所需时间复杂度为O(N)
11.请回答STL和STL的区别
类和数据抽象
1.请介绍一下C++中类成员的访问权限
2、
3. 您能回答一下这个问题吗:引用数据成员可以在C++类中定义吗?
面向对象和泛型编程
1. 请回答什么是右值引用,它与左值有什么区别?
2. 析构函数可以是类型,但构造函数不能。 为什么?
3. C++空类中默认生成哪些类成员函数?
4.什么是面向对象?
编译与底层
1、
2.能否请您解答一下头文件的顺序以及双引号“”和尖括号的区别?
3、请回答brk系统调用和mmap系统调用的原理以及分别有什么作用?
4.能否请您介绍一下C++的内存管理?
5. 请介绍一下C++/C的内存分配
6.请回答**如何判断内存泄漏?
7. 请告诉我何时会发生段错误。
8.请回答什么是内存泄漏?
9.请回答new和new的区别
10. 请介绍一下共享内存相关的API。
11. 请介绍一下模型的构成。
12.请设计如何使用单线程处理高并发。
13. 你能告诉我C++如何处理内存泄漏吗?
14、请告诉我epoll的区别、原理、性能和局限性。
15.请介绍一下C++ STL的内存优化
C++11
1.C++11有哪些新特性?
2. 请详细介绍C++11中可变参数模板和右值引用的新特性。
2、操作系统
1、
2.请介绍一下Linux虚拟地址空间
3. 请介绍一下操作系统中程序的内存结构。
4. 请告诉我操作系统中的页错误中断。
5.请回答fork和vfork的区别
6、如何修改最大文件句柄数?
7.请谈谈()和()
8. MySQL的端口号是多少,如何修改?
9. 请告诉我有关操作系统中页表寻址的信息。
10.请告诉我为什么有进程的时候还有线程?
11、在单核机器上编写多线程程序时,需要考虑加锁吗? 为什么?
12. 线程需要保存什么上下文? 寄存器 SP、PC 和 EAX 有何用途?
13、请介绍一下线程之间的同步方法,最好是具体的系统调用。
14.游戏服务器应该为每个用户打开一个线程还是进程? 为什么?
15.请告诉我有关操作系统页面错误替换算法的信息。
16、请介绍一下多进程、多线程的使用场景。
17、请告诉我死锁发生的条件以及如何解决。
18. 虚拟内存和物理内存如何对应?
19.能否请您谈谈操作系统中的结构对齐和字节对齐?
20.
23. 您能告诉我如何更换虚拟内存吗?
24、请介绍一下多线程以及线程同步的几种方法。
25、请介绍一下互斥锁机制以及互斥锁和读写锁的区别。
26.请讲一下进程状态转换图,动态就绪,静态就绪,动态阻塞,静态阻塞
27. A a = 新A; a->i = 10; 内核中的内存分配会发生什么情况?
28.给你一个类,里面包含,,等等。 我们来说说这个类的内存分配。
29.请回答软链接和硬链接的区别。
30.
31.
32.请告诉我用户模式和内核模式的区别。
33.如何设计使其能够接收多个客户端的请求?
34、无限循环连接时创建新线程的方法效率有点低。 如何改进?
35.如何唤醒阻塞的线程?
36、如何判断当前线程是忙还是阻塞?
37、唤醒时会误判空闲进程和阻塞进程的状态吗?
38. 处于就绪状态的进程在等待什么?
39.请谈谈多线程同步和锁机制。
40、当两个进程访问临界区资源时,是否都会获得自旋锁?
41、假设临界区资源被释放,如何保证只有一个线程而不是全部获得临界区资源?
42. C++中你知道多少种锁?
43.告诉我你用的锁
44. 请告诉我死锁发生的必要条件吗?
45.请告诉我有关协程的信息。
46.
47、请告诉我用户态到内核态的转换原理。
48. 您能告诉我源代码转换为可执行文件的过程吗?
49.请告诉我有关微内核和宏内核的信息。
50.请告诉我们有关僵尸进程的信息
51.
52.请介绍一下5种IO模型
53.请谈谈异步编程的事件循环
54.请回答为什么操作系统分为内核态和用户态。
55.请回答为什么有页面缓存以及操作系统如何设计页面缓存。
56.
57. 如何设计使其能够接收多个客户端的请求?
58、连接无限循环时创建新线程的方法效率有点低。 如何改进?
59、当两个进程访问临界区资源时,是否都会获得自旋锁?
60、假设临界区资源被释放,如何保证只有一个线程而不是全部获得临界区资源?
61.线程池如何实现?
62.
63.请告诉我awk的使用
64、请介绍一下Linux内核中的Timer定时器机制。
3.计算机网络
1、如何保证节点传输和存储的可靠性?
2、请告诉我TCP是如何保证可靠性的,并简单描述一下建立和断开TCP连接的过程。
3.请谈谈TCP模型和状态转移。