ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

奇安信——C++代码安全服务器开发一、二面

2022-04-08 23:00:22  阅读:287  来源: 互联网

标签:... 面试官 二面 试纸 检测 代码 C++ 服务器


一面 (45min)

  1. 自我介绍
  2. ACM取得最好的成绩
  3. 简单讲一下你的STL项目
  4. C++形成exe的过程
  5. 把可执行文件运行起来的过程

    这个我不知道诶...我觉得是类似操作系统进程之类的概念

  6. C++ static关键字的作用
  7. 把全局变量定义在头文件中会有什么问题

    面试官给了点提示,#include的作用

    可能会出现重复定义的问题,因为#include就是文本替换而已

  8. 头文件里的定义了static全局变量会怎么样

    这个我不知道诶...

  9. C++new和malloc的区别
  10. 常见的STL容器是怎么实现的
  11. vector和deque哪个访问更快一点,为什么
  12. 红黑树插入节点会导致迭代器失效吗
  13. C++11的特性有用过哪些
  14. 移动语义与右值引用
  15. 智能指针share_ptr内部实现是怎么样的
  16. share_ptr与weak_ptr的底层实现

    源码层面怎么实现?

  17. C++多态的理解
  18. 写一个线程安全的等待队列
  19. C++11的线程库有了解过吗
  20. 已经程序全部代码,已知有地方会崩溃,要怎么知道哪里会崩溃

    这个不知道诶...他说直接用调试器就行了,会自动跳到那里,可以用GDB

  21. 给定有序数组如何找到一个数出现的次数

    两次二分


反问环节

  1. 我有什么不足的地方

    增加一点调试方面的知识,其他都挺好的

  2. 工作时间是怎么样的

    9.30打卡上班,一般7-8点就没什么人了。除了加班的时候。

    周末双休

  3. 食堂,餐补,下午茶?

    没有食堂,有餐补,有下午茶

  4. 我现在面得部门在哪?

    北京

  5. 部门主要是做什么的?

    代码安全事业部。主要负责代码静态检测,负责开发和维护一个C++的一个静态检测引擎。是更偏编译的一点,不是人工智能类似的。

  6. 部门平均年龄

    最大的是85年的差不多,最小的就是校招的

  7. 部门的结构是怎么样的

    拆分成一个个组。静态检测的组分为两个,C++和JAVA。现在C++组是4个人。


二面 (30min)

  1. 虚函数的实现
  2. strcpy调用的时候会复制中间的'\0'吗
  3. 释放空指针这种编码风格会有什么危险吗?

    这我还真不知道...我只知道释放空指针是安全的。百度到了一个不知道是不是答案的回答: 可能存在*(nullptr) 会导致崩溃。

​ 但是如果不置null的话,不是可能会访问非法地址么...

  1. 我们现在有一个大型项目,已知有一行代码运行一定次数会崩溃。要怎么知道运行多少次会崩溃

    输出1到文件,看文件里面有多少个1

  2. 有一个开源程序,生成了可执行文件。让你判断这个可执行代码里面有没有出现内存泄漏,你会怎么做

    没答出来。百度了一下,大概是重载new和delete,之后全局维护一个字典一样的东西。程序退出的时候看看是否有残留的。

  3. 内存泄漏的危害
  4. 编译的基本过程

    我还以为是要我将之前的那个四个过程。但是他想细细的问代码转成汇编代码的过程,我不知道。百度了一下是语法分析和语义分析这几个过程。

  5. 解释一下什么是回调函数

    当时答得不大好。百度了一下就是:有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)。

  6. 如何实现一个回调函数功能

    传入函数指针?

  7. 死锁发生的条件
  8. 进程间通信的方法
  9. 缓冲区溢出产生的注入攻击的原理
  10. 一个数组,1-n顺序存入,但是存入的时候少存了一个,导致数组偏移,怎么快速找到是哪个数缺少了
  11. 给定一个无序的数组,数组的元素数据范围在1e5以内,最快的排序方法是什么?
  12. N份药品,有一份被污染了,有一台机器可以检测。问怎么最快检测出来?
  13. N份药品,有一份被污染了,有一份试纸可以检测。问怎么最快,用最少的试纸检测出来?

    这个没答好。我感觉和上面一题没区别。之后发现,试纸是可以同一时间使用多张的。也就是说最佳的方案应该是 logN张试纸,O(1)的时间内检测出来。

    具体的话就是二进制拆分。6的二进制表示为110,那么我们就往第2和第3张试纸上滴一滴药品。之后所有的数都这么操作。最后,所有试纸变色的位数加在一起就是第几份药品。


反问环节
  1. 你跟上一个面试官是在同一个组的吗?

    是这样的

  2. 我们做的是叫代码卫士的一个软件吗?

    对的

  3. 过去具体是干什么?会有mentor么?

    有的。主要技术栈是C++。大概就是开发这个代码安全引擎。

  4. 我投的是C++服务端开发,这个算是服务器开发吗?

    代码安全引擎是跑在服务器上的。

  5. 是不是要对编译原理了解要更为深入一点?

    也不是这样的。主要更看重的是个人能力,代码能力以及思维能力。编译原理看看书也就差不多了,掌握基本概念还是要的。

  6. 上一面的面试官说的工作制度是真的吗?

    是这样的。

  7. 有房补吗?

    不知道。如果有下一面的话,可以问问hr。一般公司有的都会有的。

  8. 是在北京,那么那里都是北方人吗?

    北方人挺多的。

  9. 部门的平均年龄多大?

    我是86的,上次面试官是95的。大部分是90左右的。JAVA组的人可能更年轻点。

  10. 我这一面有什么不足的地方?

    都挺好的。

标签:...,面试官,二面,试纸,检测,代码,C++,服务器
来源: https://www.cnblogs.com/Vikyanite/p/16120245.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有