以下是我的技术面试中遇到的问题,因为当时自己还在实习中,所以面试时没有做太多的准备,通过了笔试,但是技术面没有通过。我写下这个希望能够帮助想要去的同学去到这个公司。

我现在已经完成了面试复盘,反思了一下,确实我在面试的过程回答的问题,存在着许多问题。

同时我也感谢贵公司帮助我在后面的面试中积累经验。

以下是我面试过程中,hr问到的问题,回答可能不够充分,如果自己想深入深入的话,也可以去百度了解了解一下。
C方向:
Q:在C中哪个地方比较难?
A:指针。
Q:难在哪里?指针又是什么呐?举个例子说明指针。
A:指针可能会指向错误的地方。地址指向数据的那个箭头。难在会把指针指向错误的地方,造成一些错误。
百度学习了解及补充:在新建过程中可能会产生野指针,造成空间浪费。

Q:发生栈溢出,堆溢出是什么情况?
A:调用递归的时候。
Q:为什么呐?
A:递归层层调用,会开辟新的空间,当它超过了程序开辟的空间,也就是栈,就会导致栈溢出。
Q:为什么是栈溢出,不是堆溢出?
A:因为这是简单的空间溢出,堆溢出是指针的溢出。
百度学习了解及补充:
堆:堆是在程序进行动态分配时的内存。在使用new,malloc的时候可能会产生堆溢出。
栈:栈是在保存函数列表,函数参数和函数返回地址的内存。在函数递归的空间太多的时候会产生栈溢出。

C++方向:
Q:抽象,继承,多态,封装,你最熟悉的地方是哪一个?
A:多态。
Q:多态是什么?
A:我是举的例子:父子类使用虚函数实现。当时说了很多废话。
Q:使用多态的好吃是什么?
A:实现了多样性。
上面的回答确实是不及格的。
百度学习了解及补充:多态是一种基于继承的、使用虚函数产生的父子类。
好处:结构清晰,便于理解;增加了程序的可扩充性,利于后期代码扩展、维护.实现了对修改屏蔽、对扩展开放。

计算机方面:
Q:计算机最重要的四个东西是什么,请按重要顺序排列?
A:计算机组成原理,操作系统,数据结构,计算机网络。
我也不知道是不是这样的,自我理解,网上也没有查到。

计算机组成原理:
Q:CPU,显卡那些是用什么链接的?
A:总线。
他当时给我的答案是主板,我当时没有反应过来,现在想说主板上也有布线呀,这个没什么好说的。

操作系统:
Q:进程和线程的区别?
A:进程是一个资源调度的最小的单位,一个进程可以包含多个线程 线程是一个程序最小的调度单位。
Q:用什么创建一个进程;用什么创建一个线程?
A:fork(),pthread()。
Q:线程之间通过什么通信?
A:信号量。
百度学习了解及补充:
进程和线程的区别:
一个进程可以包含多个线程,线程在进程的内部。
进程之间的资源是独立的,线程之间的资源则是共享的。
每个进程都有独立的虚拟地址空间,也有之间独立的文件描述符表,同一进程的多个线程之间则共用这一份虚拟地址空间和文件描述符表。
进程是操作系统中资源分配的基本单位,线程是操作系统中调度执行的基本单位。
多个进程同时执行时,如果一个进程崩溃,一般不会影响其他进程,而同一进程内的多个线程之间,如果一个线程崩溃,很可能使得整个进程崩溃。
进程的上下文切换速度比较慢,而线程的上下文切换速度比较快。
进程的创建/销毁/调度开销大,线程的创建/销毁/调度开销相对少很多。
进程创建:vfork(),fork();线程创建:pthread_create()。
线程之间的通信:可以通过共享的数据进行通信,也可以通过信号量通信。
进程之间的通信:通过管道通信。

Q:编译四个步骤的是什么?
A:当时我把四个顺序忘记了,预处理,编译,汇编,链接。
Q:预编译是怎样的一个操作?
A:生成.i的文件,这里当时紧张忘记了,应该是对一些文件进行提前处理。
Q:在程序中预处理的代码有哪些?
A:include,define,typedef
百度学习了解及补充:
预处理:gcc -E 生成.i文件;处理宏定义和include的命令;预编译#if,#else等;添加行号,删除注释等。
编译:gcc -S 生成.s文件;代码优化,汇总,语法分析等。
汇编:gcc -c 生成.o文件;根据汇编工具和特殊平台生成二进制形式。
链接:gcc -o 生成可执行文件;

Q:动态库和静态库的区别是什么?
A:静态库是提前加载到程序中,动态库是在程序运行的过程中,当要用到的时候才会被调用。
Q:在哪调用动态链接库?
A:应该就是我们使用的资源库中。
百度学习了解及补充:在lib里面,使用gcc -l链接库
静态库:ar crs 库文件名 依赖文件 生成.a文件。浪费资源空间;在运行程序时,不需要静态库存在,方便移植;优化升级不方便,需要重新编译和链接库;运行速度快。
动态库:gcc -fPIC -c hello.c -o hello.o;gcc -shared -o libhello.so hello.o 生成.so文件。占用资源空间小;在运行程序时,动态库必须要存在;运行速度相对较慢;优化升级比较方便,不需要重新链接动态库。

计算机网络:
Q:tcp/ip协议簇,有那些那些协议?
A:http,dns,smtp,ftp等
Q:用户端和客户端通信使用的协议,tcp协议中用什么的协议?
A:我不知道,被问蒙了
百度学习了解及补充:

其他:
Q:主要通过那些网站获取学习知识?
A:主要是b站和csdn网站,刷题主要靠牛客。

成都精灵云-C++开发工程师-技术面经(30min左右)相关推荐

  1. 成都精灵云C++ 一面(20min)

    成都精灵云C++ 一面 一.问面试官 了解raft 分布式算法吗,简单介绍一下 重载和多态的区别 构造函数能是虚函数吗 不可以 析构函数能是虚函数吗 可以 一个类里面只有十个虚函数,那么这个类的大小是 ...

  2. [精易软件开发工程师Leo学习笔记]010模块化开发+API

    模块化开发 现在模块化开发分为两种,但是他们也可以说成是一种,都是 1.是模块化设计思维,是把一个产品分为若干个功能(模块),然后若干个子功能拼接起来,就是一个产品 2.减少不必要的重复工作,某个功能 ...

  3. [精易软件开发工程师Leo学习笔记]009组件-窗口

    列举几个组件 按钮.编辑框.标签.组合框.时钟.服务器.客户端.通用对话框等等... 组件分类: 属性(组件的外观或者配置相关):共有属性/私有属性 方法(组件提供的命令):共有方法/私有方法 事件( ...

  4. [精易软件开发工程师Leo学习笔记]005数组

    很多新手都会在数组这里懵逼,数组是存储多个相同类型的数据 易语言的数组是从1开始,不像其他语言是从0开始 数组的索引在其他语言一般叫做下标 如果是多维数组,假设2维数组,4,4:取数组成员数之后就是4 ...

  5. [精易软件开发工程师Leo学习笔记]007流程控制

    如果: 如果:满足条件执行一个分支,不满足则执行另外一个分支 分支线是告诉开发者成立与不成立的执行区域 下面这段代码,如果里面条件成立,所以运行第一条分支,也就是输出成立  判断和如果的区别: 判断规 ...

  6. Kubernetes Meetup深秋成都行 Ghostcloud精灵云获好评如云

    10月28日,一场主题为"新计算,新纪元"的顶级技术分享交流会「KubernetesMeetup2017」在成都隆重举行,各个行业的精英一共近200人参与了这次会议. 这次活动是由 ...

  7. 新里程、新起点——Ghostcloud精灵云正式登陆双创企业板!

    日前,成都精灵云科技有限公司正式在天府股交中心双创企业板成功挂牌,证券简称为"精灵云"(证券代码为81141). 这是精灵云(英文名Ghostcloud)继上月荣膺"20 ...

  8. 一个SAP成都研究院开发工程师 2020 年的所有文章列表

    这个公众号 2018-2019年两年总共发表了179篇原创文章,分别来自SAP成都研究院28位同事.这179篇原创文章的列表,可以从这里获得: SAP成都研究院小伙伴们2018-2019两年间的179 ...

  9. h5日期选择控件_成都h5开发工程师培训_H5入门需要知道的知识

    随着智能手机.平板电脑等移动终端设备越来越普及,用户在移动端花的时间也越来越长.H5开始火热起来,以文字.图片.动画.声音等相结合的自媒体出现,给用户带来了全新体验,技术本身带来的新奇感让人们心生向往 ...

最新文章

  1. [转]JAVA字节数据与JAVA类型的转换
  2. 装配图位置偏转怎么调整_大偏转角液晶偏振光栅的研究
  3. 扔掉 Postman,一个工具全部搞定,真香!
  4. 爬虫总结(三)-- cloud scrapy
  5. spring boot报错:Unable to start embedded Tomcat server 权限不够
  6. linux使用权限模式启动mongodb,Linux安装MongoDB启动及常见问题解决
  7. php cli获取参数,php cli模式下获取参数的方法
  8. c++用一级运算比较大小_Python 学习笔记:Python 中的数字和数字型运算
  9. 机器学习-吴恩达-笔记-15-总结
  10. singft 函数 matlab,(新)信号与系统MATLAB实验全.doc
  11. Oracle索引树的结构
  12. CentOS中用yum安装Nginx
  13. Python中Socket粘包问题的解决
  14. Spring 切面 注解模式-练习Demo
  15. ThreatARMOR添加零日恶意软件防御功能
  16. Fortran:if语句
  17. pulseaudio 播放卡顿的解决方法
  18. Cannot get a STRING value from a NUMERIC cell
  19. 微信支付-支付结果通知接收
  20. full outer join应用场景

热门文章

  1. 详解 gRPC 客户端长连接机制实现
  2. 如何解决‘CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’错误
  3. 输出100以内的偶数c语言程序,C语言基础:输出100以内的奇数和偶数
  4. Python-random.seed()的作用
  5. CCD相机模数转换芯片时序简介
  6. 编程练习:头条校招题
  7. 数字信号处理(FIR滤波器的设计与原理及基础知识)
  8. stopstart按钮怎么用_汽车Start-Stop启停技术简明讲解
  9. mysql 8.0 初识
  10. 基于python的微博热搜爬取及数据分析