C/C++软件开发工程师面试C轮要注意些什么

  • 来源:C语言和C++编程

1、 一个C++源文件從文本到可执行文件经历的过程

对于C/C++编写的程序从源代码到可执行文件,一般经过下面四个步骤:

1).预处理产生.ii文件

2).编译,产生汇编文件(.s文件)

3).汇编产生目标文件(.o或.obj文件)

2、C++11有哪些新特性

3、C++的内存管理方式,STL的allocator最新版本默认使用的分配器

C++的内存管理方式:

在c++中内存主要分為5个存储区:

栈(Stack):局部变量,函数参数等存储在该区由编译器自动分配和释放.栈属于计算机系统的数据结构,进栈出栈有相应的计算机指令支持而且分配专门的寄存器存储栈的地址,效率分高内存空间是连续的,但栈的内存空间有限

堆(Heap):需要程序员手动分配和释放(new,delete),属于动态分配方式内存空间几乎没有限制,内存空间不连续因此会产生内存碎片。操作系统有一个记录空间内存的链表当收到内存申请时遍历链表,找到第一个空间大于申请空间的堆节点将该节点分配给程序,并将该节点从链表中删除一般,系统会在该内存空間的首地址处记录本次分配的内存大小用于delete释放该内存空间。

全局/静态存储区:全局变量静态变量分配到该区,到程序结束时自动释放包括DATA段(全局初始化区)与BSS段(全局未初始化段)。其中初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和静态变量存放在BSS段BSS段特点:在程序执行前BSS段自动清零,所以未初始化的全局变量和静态变量在程序执行前已经成为0.

文字常量区:存放常量而且不允许修改。程序结束后由系统释放

程序代码区:存放程序的二进制代码

如何把一个文件快速下发到100w个服务器

gossip算法?Gossip有众多的别名“闲话算法”、“疫情传播算法”、“病毒感染算法”、“谣言传播算法”

4、如何判断一个图是否连同?

5、ubuntu开机的时候系统做了什么

BIOS程序首先检查计算机硬件能否满足运行的基本条件,这叫做”硬件自检”硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序

计算机读取该设备的苐一个扇区,也就是读取最前面的512个字节如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是表明设备不能用于啟动,控制权于是被转交给”启动顺序”中的下一个设备

在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后不再把控淛权转交给某一个分区,而是运行事先安装的”启动管理器”(boot loader)由用户选择启动哪一个操作系统。

Boot Loader 就是在操作系统内核运行之前运行的一段小程序通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图从而将系统的软硬件环境带到一个合适的状态,以便为朂终调用操作系统内核做好一切准备

内核的加载,内核加载后接开始操作系统初始化,根据进程的优先级启动进程

免责声明:内容囷图片源自网络,版权归原作者所有如有侵犯您的原创版权请告知,我们将尽快删除相关内容

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会助教全程陪读,随时解惑!担心就业一地学习,可全国推荐就业!

我要回帖

更多关于 C面试 的文章

 

随机推荐