面试常考题-程序员宅基地

技术标签: 面试经验  

基础篇:操作系统、计算机网络、设计模式

一:操作系统

1. 进程的有哪几种状态,状态转换图,及导致转换的事件。

2. 进程与线程的区别。

3. 进程通信的几种方式。

4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)

5. 线程的实现方式. (也就是用户线程与内核线程的区别)

6. 用户态和核心态的区别。

7. 用户栈和内核栈的区别。

8. 内存池、进程池、线程池。(c++程序员必须掌握)

9. 死锁的概念,导致死锁的原因.

10. 导致死锁的四个必要条件。

11. 处理死锁的四个方式。

12. 预防死锁的方法、避免死锁的方法。

13. 进程调度算法。(周转时间 =  程序结束时间 -- 开始服务时间、带权周转时间=  周转时间 /  要求服务时间)

14. Windows内存管理的方式(块式、页式、段式、段页式).

15. 内存连续分配方式采用的几种算法及各自优劣。

16. 动态链接及静态链接.

17. 基本分页、请求分页储存管理方式。

18. 基本分段、请求分段储存管理方式。

19. 分段分页方式的比较各自优缺点。

20. 几种页面置换算法,会算所需换页数。(LRU用程序如何实现?)

21. 虚拟内存的定义及实现方式。

22. 操作系统的四个特性。

23. DMA。

24. Spooling。

25. 外存分配的几种方式,及各种优劣。

二:计算机网络
1. 电路交换与分组交换的区别?优劣对比。
2. OSI有哪几层,会画出来,知道主要几层的各自作用。
3. TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。
4. 硬件(MAC)地址的概念及作用。
5. ARP协议的用途 及算法、在哪一层上会使用arp ?
6. CRC冗余校验算法,反码和检验算法。
7. 如何实现透明传输。
8. 知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
9. 路由表的内容。
10. 分组转发算法。
11. IP报文的格式,格式的各个字段的含义要理解。
12.MTU的概念,啥叫路径MTU? MTU发现机制,TraceRoute(了解)。
13.RIP协议的概念及算法。
14.ICMP协议的主要功能。
15.组播和广播的概念,IGMP的用途。(环回地址、广播地址)
16.Ping协议的实现原理,ping 命令格式。
17. 子网划分的概念,子网掩码。
18. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。
19.DNS的概念,用途,DNS查询的实现算法。
20. TCP与UDP的概念,相互的区别及优劣。
21.UDP报文的格式,字段的意义。
22. TCP 报文的格式,字段的意义。
23.TCP通过哪些措施,保证传输可靠?
24. 三次握手,四次断开过程。
25. TIME_WAIT状态的概念及意义。
26.滑动窗口协议 与停止等待协议的区别。
27. TCP的流量控制和拥塞控制实现原理(会画拥塞控制的典型图)。
28.TCP的快速重传与快速恢复算法。
29.TFTP 与 FTP的区别。
30.阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。(比较难,有兴趣可以了解)
31. HTTP基本格式。(java程序员必须掌握)
三:设计模式
1. 各种常用模式的用途,使用方法(类图)。
2. 单例模式的双重检查实现。
3. MVC模式


提高篇:WIN32、MFC与Linux

一: WIN32
1. Win32应用程序的基本类型.
2. 创建win32窗口程序的几个步骤,及使用到的函数。
3. nmake 与 makefile。
4. 有哪些字符集? Win32对于各种字符集如何进行兼容及转换? (wchar_t、TCHAR、TEXT() )。
5. 怎么创建一个子窗口?在哪进行设置?
6. 窗口类的分类,如何创建一个应用程序全局窗口类。
7. Win32窗口程序运行机制与控制台程序的运行机制有何区别?
8. Getmessage函数的作用,与Peekmessage函数的区别。
9. 发送WM_QUIT消息使程序终止的内部过程。
11. TranslateMessage及 DispatchMessage的作用。
12. SendMessage与PostMessage的区别。
13. Win32消息机制获取消息的过程(先查看什么消息?再查看什么消息?)
14. 知道有哪几类主要的消息。(WM_CREATE, WM_DESTROY, WM_SIZE, WM_SYSCOMMAND,  WM_COMMAND,  WM_PAINT,  鼠标消息, 键盘消息)。
15. 定时器如何使用。
16. 用户自定义消息如何定义。
17. 创建菜单、设置菜单的函数,在哪处理菜单命令的消息。
18. 加速键如何使用?
19. GDI绘图对象,使用的步骤,及函数。
20. 使用位图的步骤及用到的主要函数。
21. 可用于文字绘制的API函数。
22. 有模式对话框与无模式对话框的区别,创建步骤。收到的创建消息是什么?
23. 子控件和父窗口通过什么进行通信? 父窗口在哪里处理子窗口发送的消息?
24. 有哪些常见的子控件?(静态框、编辑框、按钮、listbox、comboBox、滚动条)25. 什么样的控件支持自绘制?
26. 动态库与静态库的区别。
27. Win32里面怎样用静态库? C++程序在引用c的静态库时,需要注意什么?
28. Win32里面动态库有哪几种导出方式,有哪几种导入方式?(注意c++的导出方式)
29. Win32里面文件打开和关闭的API。
30. Windows地址空间的划分。
31. Windows 内存使用的几种方式及相应的函数(虚拟内存、堆内存、栈内存)。
32. Malloc内部调用A函数,A函数调用B函数。A和B分别是什么?
33. 内存映射文件的作用。主要函数。
34. 创建进程和打开进程用什么函数? 有什么区别?
35. 创建线程用什么函数?
36. Waitforsingleobject与Waitformultiobjects的区别。Waitforsingleobject的第二个参数为0表示什么意思?37. 关闭线程和关闭进程的函数分别是什么?
38. 线程局部存储(TLS)的意义,如何指定一个变量的TLS属性。
39. Win32线程同步提供的方式,及主要函数为什么?
40. 提供的同步措施中哪些是内核对象? 试比较互斥量和临界区。

二:MFC
1. MFC包含哪几类程序? 其中MFC应用程序又包含哪几类?
2. MFC的中的大多数类都继承自哪个类?
3. MFC主要要用到哪几个类?及其各个类的作用。
4. MFC中有哪6类核心机制?Cobject中封装了哪些机制?
5. 在哪个类的什么函数中进行MFC程序初始化? 相当于main功能的函数。
6. MFC应用程序的启动机制的实现。(几个步骤及相关函数)
7. 窗口的创建及窗口处理函数机制的实现。(几个步骤及相关用到函数)
8. 消息映射机制的原理及实现。宏。(查找消息处理函数的几个步骤及其函数)
9. MFC的消息分类。自注册消息用什么函数进行注册?消息映射宏是什么?
10. MFC菜单、工具栏、状态栏所用的类是什么?
11. 怎么定义一个视图窗口?
12. 划分窗口使用什么类? 划分窗口有哪两类,有什么区别?
13. 运行时类信息 机制的宏,及原理。CRuntimeClass的内容,isKindOf实现方法。
14. 动态创建 机制的宏,及实现。与运行时类信息在内容添加上的区别?
15. 消息的派发会经过哪几个类?一般在哪个类里进行处理?SetActiveView的作用。
16. 单文档、多文档模板类是什么? 保存模板类用什么函数?新建模板用什么函数?
17. 单文档视图的创建过程及所用到的相关函数。
18. MFC绘图有哪几类DC?各自的类名,及区别。
19. MFC有哪几类绘图对象?各自的类名。
20. MFC有哪几类数据集合类?CMAP的底层实现?
21. MFC的文件类是什么?文件查找类是什么?
22. 序列化机制 的宏,怎么使用? 执行>>和<<时进行的内部操作及其相应函数。
23. MFC的对话框的种类,各自怎么使用?及相关函数。
24. 定义对话框数据交换的步骤,及使用方法,实现原理。
25. 通用对话框有哪些,试举例。
26. MFC常用的通用控件有哪些?举出类名。
27. MFC的动态库有哪几种类型?扩展库一般用来做什么?
28. MFC的线程有哪几类? 相互有什么区别?各自的创建方法是什么?
29. VC环境下可以使用哪几类socket? 其中MFC的socket类 有哪几种,各自区别?类名是什么?用什么函数初始化MFC的socket库。




三:Linux基本命令
1. 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
2. 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
3. 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户id?查看指定帮助用什么命令?
4. Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
5. 建立软链接(快捷方式),以及硬链接的命令。
6. 目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
7. 文件权限修改用什么命令?格式是怎么样的?
8. 查看文件内容有哪些命令可以使用?
9. 随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello  world”?
10. 终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
11. 移动文件用哪个命令?改名用哪个命令?
12. 复制文件用哪个命令?如果需要连同文件夹一块复制呢?如何需要有提示功能呢?
13. 删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
14. Linux下命令有哪几种可使用的通配符?分别代表什么含义?
15. 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
16. Grep命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
17. Linux中进程有哪几种状态?在ps显示出来的信息中,分别用什么符号表示的?
18. 怎么使一个命令在后台运行?
19. 利用ps怎么显示所有的进程? 怎么利用ps查看指定进程的信息?
20. 哪个命令专门用来查看后台任务?
21. 把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
22. 终止进程用什么命令? 带什么参数?
23. 怎么查看系统支持的所有信号?
24. 搜索文件用什么命令? 格式是怎么样的?
25. 查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
26. 使用什么命令查看用过的命令列表?
27. 使用什么命令查看磁盘使用空间? 空闲空间呢?
28. 使用什么命令查看网络是否连通?
29. 使用什么命令查看ip地址及接口信息?
30. 查看各类环境变量用什么命令?
31. 通过什么命令指定命令提示符?
32. 查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
33. 通过什么命令查找执行命令?34. 怎么对命令进行取别名?

四:Linux编程
1. 列举Linux内存管理相关的几个函数,各自有什么功能?
2. GCC只编译的选项是什么?只进行预处理的选项是什么?在命令行定义宏的选项是什么?
3. Linux静态库的使用,怎么创建一个静态库? 怎么使用一个静态库?静态库文件的后缀名是什么?静态库的命名规范。
4. nm 工具的作用,ldd工具的作用。
5. Linux动态库的使用,怎么创建一个动态库? 动态库文件的后缀名是什么?怎么使用一个动态库?动态库的命名规范? 系统默认的动态库的查找路径?动态库显示连接所使用的系统库是什么?
6. Linux下make 与makefile。用什么参数指定makefile文件? 什么是默认的makefile文件。
7. 在哪个文件夹下存有进程运行时的所有信息?
8. 每个程序默认打开哪三个文件设备?
9. 操作文件描述符的读写函数是什么?打开文件描述符以及关闭文件描述符的函数?
10. Fcntl函数主要的几个作用。
11. 创建进程的几个函数,及各自区别。
12. 父进程先结束,子进程会变为? 子进程先结束,子进程会变为?
13. 怎么使父进程回收子进程? 相关的几个函数。
14. 子进程在创建时与父进程的内存资源的复制问题。
15. 中断信号、终止信号、定时器信号的宏是什么?
16. 在程序中注册信号和发送信号用什么函数?
17. 信号的可靠与不可靠的含义。哪些信号是可靠的?哪些信号是不可靠的?
18. 信号屏蔽用什么函数? SigSuspend的作用? Sigpending的作用?
19. 信号处理函数处理信号时是否会被信号中断?
20. 最新版本的信号发送与处理函数?与老版本的发送与数据函数有什么区别?
21. Linux下进程有哪些通信方式(IPC)?
22. TCP服务器编程模型。
23. UDP服务器编程模型。
24. TCP编程特征,由于每次不定长数据到达,则一般使用什么选项?
25. Selected模型是什么? 相比而言多进程实现方式有什么区别?Selected、epoll模型、poll模型的区别。
26. 常用的socket选项有哪些?利用哪个函数来设置socket选项?
27. 怎么发送和设置带外(OOB)数据?
28. Linux 下多线程的库是什么? 利用哪个函数创建线程?利用哪个函数强制结束线程?主线程等待子线程结束时使用的函数?
29. 线程怎样在被迫退出时能做一些善后处理?以及怎么用linux特有的方式处理?

算法篇:算法与数据结构
一:算法
1. 算法的几个特征是什么。
2. 算法复杂性的定义。大O、θ、、小o分别表示的含义。
3. 递归算法的定义、递归算法的两要素。
4. 分治算法的思想,经典的分治算法(全排列、二分搜索、归并排序、快速排序、线性时间选择、最接近点对问题)。
5. 动态规划算法解题框架,动态规划算法的两个要素是什么?备忘录方法是什么?
6. 经典的动态规划问题(矩阵连乘问题、最长公共子序列问题、0-1背包问题)。
7. 贪心算法的思想,贪心算法的两个要素。
8. 经典的贪心问题(活动安排问题、背包问题、装载问题、哈夫曼编码、单源最短路径、最小生成树问题)。9. 回溯法的思想,回溯法中有哪两种典型的模型。
10. 经典的回溯算法(n后问题、0-1背包问题、旅行售货商问题)。
11. 分支限界法思想,有哪两种分支限界法。
12. 经典的分支限界算法(0-1背包问题、旅行售货商问题)。

二:数据结构
1. 数据结构的定义。
2. 栈的两个应用:括号匹配和表达式的计算。是怎么应用的?表达式计算用的是哪种表达方式?有什么好处?
3. 字符串匹配算法:朴素的匹配算法、KMP算法。
4. 二叉树前序、中序、后序递归遍历算法。二叉树前序非递归遍历算法。
5. 堆,建堆算法,堆的插入和删除算法,堆排序。
6. 哈希。哈希函数的有哪些种?余数的取法? 处理冲突的方法? 闭散列方法有哪些?
7. 二叉搜索树的搜索、插入、删除。时间复杂度。
8. 二叉平衡树的插入结点的原理,有哪几种旋转方式?分别适用于哪种情况。分析二叉平衡树的时间复杂度。
9. 红黑树的定义,红黑树的性能分析和与二叉平衡树的比较。
10. 图有哪些储存表示。
11. 链表插入排序、链表归并排序。
12. 常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形。
13. 常用分配排序有哪几种? 基数排序的定义,分类及原理。
14. 外部排序的过程。
15. B树、B+树、Trie的概念及用途,添加删除结点的原理。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014663362/article/details/38894487

智能推荐

2022-IOS-For-Fun_um-ios 2022-程序员宅基地

文章浏览阅读503次。2022 IOS Developer for funBasic stuffComputer Science fundamentalsMain parts of a computer system - CPU, memory, storageHow Operating System worksWhat is a databaseHow Internet worksGit version controlObject Oriented ProgrammingThe setupMacOSHomeb_um-ios 2022

PHP中的循环描述错误有哪些_PHP关于while循环中修改选取条件出现的错误-程序员宅基地

文章浏览阅读109次。业务需求是:读取某个表中每一行的的字段A、B、C的值如果C的值是0,就改成1或者2代码大概是这么写的:$query = "SELECT * FROM table WHERE C = 0";$result = mysqli_query($link, $query);if($result){while ($rows = mysqli_fetch_array($result)){if (判断条件为tru..._while循环报错php

ionic介绍-程序员宅基地

文章浏览阅读3.4k次。最近公司在使用ionic做混合APP,虽然是最后端,但是也查一下东西,介绍一下吧这是菜鸟教程的Ionic一.介绍ionic是一种老式的使用H5开发iOS和Android应用的方式,也可以使用新的语言React Native开发,当然对于H5实现复杂的或者交互性没有那么好的,就可以使用iOS和Android的插件实现;二.Ionic特点a.开发方面:1.ionic 基于Angular..._ionic

C/C++ 用什么软件编程_c++编程软件-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏8次。Lightly​ 是一款全平台都通用、轻量且功能强大的在线编辑器,用户不需要配置任何编译运行环境,选择开发语言后即可开始写代码。代码和项目文件可以实时保存在云端的,换台不同系统的电脑或者是用平板,也可以打开项目,继续编码。它还具备项目一键分享功能,对于有团队协作需求的开发者来说,是最合适的选择。_c++编程软件

KEIL文件移动脚本--网关脚本_nrfutil' 不是内部或外部命令,也不是可运行的程序-程序员宅基地

文章浏览阅读650次。上面是效果原因 每次都是编译在大文件里面我希望只有BIN文件在一个干净的地方写一个.BAT在任何地方都是可以执行的 最后挂在KEIL里面内容 mv.batFOR /F %%I IN ('DIR /B /S "D:\TSBrowserDownloads\DA145xx_SDK_for_handover\DA145xx_SDK\old\projects\Izar\src\Node_Dialog_DA14531_SHENNONG\Keil_5\out_DA14531\Ob..._nrfutil' 不是内部或外部命令,也不是可运行的程序

全面解析并解决计算机缺失msvcp80.dll文件的问题-程序员宅基地

文章浏览阅读427次,点赞24次,收藏17次。在使用计算机过程中,有时会遇到“计算机缺失msvcp80.dll文件”的错误提示,这直接影响了部分应用程序的正常运行。msvcp80.dll是Microsoft Visual C++ 2005 redistributable runtime library(即VC++ 2005运行时库)的一部分,对于基于VC++ 2005编译的应用程序至关重要。本文将深入探究此问题产生的原因,并提出切实可行的解决方案。_msvcp80.dll

随便推点

Oracle 常用语句_oracle查询导入目录常用语句-程序员宅基地

文章浏览阅读112次。https://download.csdn.net/download/u014096024/21109113oracle练习1.如何查询一个角色包括的权限 a.一个角色包含的系统权限 select * from dba_sys_privs where grantee='DBA'; b.一个角色包含的对象权限2.oracle究竟有多少种角色 (查询oracle中所有的角色,一般是dba) select * from dba_roles;3.查询o..._oracle查询导入目录常用语句

数据可视化之美:经典案例与实践解析_数据可视化经典-程序员宅基地

文章浏览阅读9.3k次,点赞25次,收藏93次。随着DT时代的到来,传统的统计图表很难对复杂数据进行直观地展示。这几年数据可视化作为一个新研究领域也变得越来越火。成功的可视化,如果做得漂亮,虽表面简单却富含深意,可以让观测者一眼就能洞察事实并产生新的理解。可视化(visualization)和可视效果(visual)两个词是等价的,表示所有结构化的信息表现方式,包括图形、图表、示意图、地图、故事情节图以及不是很正式的结构化插图。基本的可视化展..._数据可视化经典

8086汇编4位bcd码_[走近FPGA]之二进制转BCD码-程序员宅基地

文章浏览阅读1.3k次。注:本文由不愿透露姓名的 @Bulingxx 撰写。以下为正文。在上一篇文章中介绍了数码管如何在FPGA开发板上实现动态显示,其文章链接如下:人生状态机:[走近FPGA]之数码管动态显示​zhuanlan.zhihu.com本文的所有实例都使用硬木课堂Xilinx Aritx 7 FPGA板实现,且附有上板演示视频,该开发板的链接如下:硬木课堂 Xilinx Aritx 7 FPGA板 Arm C..._8086汇编语言 实现二进制数到bcd码的转换

使用nfs之后初始化mysql失败_influxdb数据库 nfs存储初始化失败-程序员宅基地

文章浏览阅读1.7k次。将nfs作为mysql的数据目录输出后,在另一台主机上启动mysql进程时,会出现如下这样的错误,究其原因,其实还是nfs自身设计的缺陷。 初始化就是使用特定的用户,去特定的目录去更新mysql,虽然说添加mysql用户之后,所有的对数据的修改权限都是以mysql用户执行的,而且nfs的数据目录也都设计成了mysql,常理是没有问题的。但是,执行mysql_ins_influxdb数据库 nfs存储初始化失败

ORC事务表与Hyperbase表的区别_星环 hyperbase、orc、text表区别-程序员宅基地

文章浏览阅读2.5k次。今天有客户问了我一下关于ORC事务表与Hyperbase表的区别问题,我回答的不是特别好,所以这里总结一下他们两个的区别,以便能掌握得更加深入些。ORC事务表:轻量级索引,支持CRUD操作,但是不建议大规模的单条增删改查,因为TDH(TDH是星环自研的一套大数据平台,类似于CDH,但是进行了很多的优化)是大数据数仓系统,是需要使用批量进行增删改查,索引单条操作的性能会降低;事务表需要进..._星环 hyperbase、orc、text表区别

Mybatis_"mybatis the content of element type \"choose\" mu-程序员宅基地

文章浏览阅读261次。Mybatis环境:JDK1.8Mysql5.7maven 3.6.1IDEA回顾JDBCMysqlJava基础MavenJunit1. 简介1.1 什么是MybatisMyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java _"mybatis the content of element type \"choose\" must match \"(when*,otherwise?)"

推荐文章

热门文章

相关标签