应聘c++软件工程师各公司面试题

应聘c++软件工程师各公司面试题

ID:43454155

大小:73.51 KB

页数:12页

时间:2019-10-02

应聘c++软件工程师各公司面试题_第1页
应聘c++软件工程师各公司面试题_第2页
应聘c++软件工程师各公司面试题_第3页
应聘c++软件工程师各公司面试题_第4页
应聘c++软件工程师各公司面试题_第5页
资源描述:

《应聘c++软件工程师各公司面试题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.static有什么用途?(请至少说明两种)(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;  (2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;  (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;  (4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成

2、员变量。2.引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。3.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias)12,对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本

3、身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。4.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效

4、率和所占空间都好。(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。5.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。126.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。具体:分配的数组过大,函数递归的层次过深。等。7.分别写出BOOL,int,float,指针类型的变量a与“零”的比较语句。答案:

5、BOOL:   if(!a)orif(a)int:    if(a==0)float:   constEXP=0.000001         if(a-EXP)pointer:if(a!=NULL)orif(a==NULL)(.写出floatx与“零值”比较的if语句。)if(x>0.000001&&x<-0.000001)8.什么时候需要“引用”?流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数都推荐使用引用。129.结构与联合有和区别?1.结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个

6、被选中的成员(所有成员共用一块地址空间),而结构的所有成员都存在(不同成员的存放地址不同)。  2.对于联合的不同成员赋值,将会对其它成员重写, 原来成员的值就不存在了,而对于结构的不同成员赋值是互不影响的。.不能做switch()的参数类型是:switch的参数不能为实型。10头文件中的ifndef/define/endif的作用?答:防止该头文件被重复引用。11.#include与#include"file.h"的区别?答:前者是从系统标准目录的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。12在C++程序中调用被C编译器编

7、译后的函数,为什么要加extern“C”?首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数12extern"C"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。