C++
- 说说C++的类型转换和使用场景。
- 什么是抽象类。怎么定义。
- 说说C++的新特性。
- C 和 C++ struct区别?
- volatile作用, 是否具有原子性?
- 如何禁止一个类被实例化?
- 说说编译过程又源代码到可执行文件经过了哪些步骤?
Qt
- 创建对象传递的parent指针是什么作用?
- QWidget 和Qt Quick (qml)区别,底层是否一样?
- Qt moc的作用?
- Qt 是否支持反射,是如何实现的?
- Qt 中一般不用阻塞IO模型, 因为长时间阻塞会导致界面失去响应。例如,使用阻塞模型不能兼顾网络操作和UI界面响应。你知道在Qt里面是如何解决多路IO需要同时处理问题的吗?
- Qt 框架本身如何实现跨平台. (qpa
- 正在运行的QThread中如何发送数据给Qt主线程. 如果使用信号和槽如何保证槽函数在主线程中执行? (postEvent
数据结构
- 你知道哪些数据结构?什么数据结构适合什么场景?你用过哪些?
- 单链表和双链表有什么区别,头节点是什么作用?如果想要快速从结尾添加删除元素,使用什么链表?
- 排序大量数据,可以选择什么排序算法?
- 外排序是怎样做的?
- 有大量数据,求最大的10%如何实现?
- 如果要实现一个矢量画图程序, 能够画很多形状和线段绘制文字, 设置边框颜色填充颜色等. 支持选中画布上的图形修改属性比如颜色等, 同时要有层级, 每个图形可以放在其他图形上面, 支持向上移动一层, 向下移动一层. 从软件架构和数据结构上考虑如何实现? 如果你带一个团队, 考虑怎么分配工作? 如何实现撤销功能? 如何实现序列号和反序列化?
操作系统编程接口
- 进程间通信方式有哪几种
- 说说线程同步的方式
- 信号和信号量有什么区别
- 条件变量是干什么用的
- 介绍下常见的io模型
- 当接触比较大的项目, 比如有几十万行, 你打算如何读懂项目代码?
- gdb如何调试多线程, 你用什么调试工具?
linux
- 文件权限有哪些?除了读写可执行,还有其他权限吗?
- 读写执行权限对于目录的意义是什么?
- 你知道哪些文件系统?每个文件系统特点是什么?
- 统计目录大小, 统计磁盘使用/剩余空间?
- 如何查询系统开了哪些端口? 查询指定端口被哪个进程占用?
- 说说系统启动过程,从机器上电开始。
- 你最常用的是什么系统,如果安装三方软件之后报错缺少动态库 xxx.so, 你是怎么解决的。
- 服务器上的某个服务异常,考虑怎么排查?(网络,系统资源占用,查看进程,日志,gdb
网络
- ping命令所使用的协议是什么?
- 路由跟踪工作原理是什么?
- 交换机和路由器区别是什么, 工作原理分别是什么?
- 什么是ARP协议,DHCP协议,DNS协议?
- DNS递归查询和迭代查询分别是什么?除了A记录还见过哪些记录? CNAME是干什么的?
- 使用UDP传输数据时候,为了更好的传输性能,一般UDP包最大发送多少字节合适,为什么?
编程题
- 给一个字符串,统计单词个数。
- 求斐波那契数列第N项。
- 单链表逆序。
- 格式化json
- 求1千万的阶乘能被18整除多少次 (简单一点的题目是, 1千万的阶乘能被9整除多少次, 或者能被7整除多少次)
- 给定一个正整数n作为边长,请按照下图画出正方形,正方形的边按照
A-Za-z0-9
排列。
n=1
A
----------
n=2
A B
D C
---------
n=3
A B C
H D
G F E
--------
n=4
A B C D
L E
K F
J I H G
--------