面灵AI→

中钞科信软件开发笔试:C++、Qt、OpenCV 与 SQL 共 23 题

轮次
笔试
时间
2026-10
来源
牛客网

《面试题目》

  1. 请说明进程与线程的区别?
  2. 什么是死锁?死锁的必要条件有哪些?
  3. 请说明内存分页的概念及其优点?
  4. 如何原地反转一个整型数组的元素顺序?
  5. 简述 TCP 和 UDP 的区别?
  6. HTTP 中 GET 和 POST 请求的区别?
  7. 简述 TCP 三次握手的过程?
  8. 虚函数和纯虚函数的区别?
  9. 智能指针使用场景分析:a) 函数需要获取并处理图像数据,调用者不再需要该数据;b) 缓存中存储最近使用的图像,多线程可访问;c) 观察者模式中避免循环引用。各应使用哪种智能指针?为什么?
  10. 用 lambda 表达式重写把 vector 中每个元素平方的 for 循环。
  11. 用 std::vector 和 std::sort 对一组 Point 按 x 坐标排序。
  12. 什么是 RAII(资源获取即初始化)?简述其原理、优点并举例说明。
  13. 解释什么是移动语义,std::move 的作用是什么,如何让一个类支持 std::move,使用移动语义有什么好处?
  14. 设计一个简单的图形类层次:Shape 为基类、有计算面积的纯虚函数,Circle 有半径,Rectangle 有长宽;要求使用虚函数和多态,并实现这两个类。
  15. 以下代码输出什么?为什么?(int a = 5; int& b = a; b = 10; 之后输出 a)
  16. 判断 const 在以下场景的作用,p 所指向的值能否修改:a) const int* p; b) int* const p; c) const int* const p。
  17. 实现一个自定义绘图控件:继承 QWidget,绘制 XY 坐标轴,并在鼠标点击处画一个半径为 4 的圆。
  18. 什么是图像直方图?它在图像处理中有哪些应用?
  19. 解释均值滤波、高斯滤波、中值滤波的作用、特点,以及各自适合处理的噪声。
  20. 编写函数读取彩色图像、转换为灰度图并保存结果。
  21. 编写函数将图像旋转 90 度并缩放到指定大小。
  22. 使用大津法(Otsu)自动确定阈值进行二值化。
  23. 给定一组比赛记录(2005-05-09 胜、胜、负、负;2005-05-10 胜、负),设计表结构并建表,再写一条 SQL 查出每天胜、负的场次(2005-05-09 为 2 胜 2 负,2005-05-10 为 1 胜 1 负)。

《参考解析》

智能指针选型:三个场景考的是所有权。a) 调用者不再需要数据,用 unique_ptr 把所有权移进函数;b) 多线程共享的缓存用 shared_ptr,引用计数本身原子,但对象访问要自己加锁,缓存里还能配合 weak_ptr 做「存在就升级、过期就重算」;c) 观察者模式里被观察者持有观察者的 weak_ptr,回调前 lock() 检查对象是否还活着。

RAII、移动语义与 const:RAII 是把资源生命周期绑在对象上,构造时获取、析构时释放。移动语义解决临时对象也要深拷贝的浪费:std::move 本身不移动,只是把左值转成右值引用,真正的移动发生在移动构造和移动赋值里,类要支持移动就得实现这两个函数并标 noexcept,同时把源对象指针置空防止二次释放。三种 const 写法分别限制指向的值、指针本身、以及两者都不许改。引用那题输出 10,b 是 a 的别名。

Qt 自绘控件:paintEvent 里用 QPainter 画坐标轴,注意原点默认在左上、y 轴向下,要自己翻转;mousePressEvent 里把点击位置存进容器再调 update() 触发重绘,圆用 drawEllipse 以点击点为中心、半径 4 绘制。

图像滤波三兄弟:均值滤波取邻域平均,实现简单、速度快,但把边缘一起糊掉,针对高斯噪声;高斯滤波按距离加权、中心权重高,平滑更自然、边缘保留稍好,同样针对高斯噪声,是预处理里最常用的;中值滤波取邻域中位数,对椒盐噪声几乎是最优解,还能较好保留边缘。Otsu 遍历所有阈值把像素分成两类,取类间方差最大的那个,前提是图像近似双峰分布。

虚函数与 SQL:纯虚函数写成 = 0,基类不能实例化、子类必须实现;基类析构必须声明 virtual,否则通过基类指针 delete 派生对象时析构不完整。SQL 用条件聚合:select date, sum(case when result = ‘胜’ then 1 else 0 end) as win, sum(case when result = ‘负’ then 1 else 0 end) as lose from t group by date。