c++面试技巧-基础篇
1.面试官:简述C++语言的优缺点。
应聘者:C++语言的优缺点如下。
• C++语言的优点:C++语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;用C++编写的程序可读性好,生成的代码质量高,编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。
• C++语言的缺点:首先C++比C增加很多功能,也注定它比C更消耗内存;C++的可移植性一般;C++的动态对象必须及时销毁,否则可能会造成内存泄漏。
2.面试官:程序调试输出过程中一般会有几种错误,分别是什么?
应聘者:程序调试输出过程一般有语法错误和警告信息两种。
• 语法错误:常见的很多语法错误是输入的格式不对造成的,一般情况进行简单的修改就可以执行,一个语法错误可以引发多条Error信息,因此修改一个错误后,最好重新编译一次,以便提高工作效率。
• 警告信息:一般是违反了C/C++的规则,因而系统给出警告信息,警告信息不会影响程序的执行。
3.面试官:#include的作用是什么?
应聘者:这是一个预处理器编译指令,总是以字符#打头。预处理器在调用编译器时,该指令使得预处理器将include后面的<>中的文件读入程序。就是事先把后面需要使用的文件在开头处就定义了。
4.面试官:简述C++语言程序的组成。
应聘者:C++程序结构由编译预处理、注释和程序等组成。也有人称程序为函数,因为程序是由一个主函数和若干个函数组成的。
5.面试官:单行注释和多行注释之间有何不同?
应聘者:单行注释到行尾就结束;而多行注释到“/”才结束。即使是函数的结尾也不能作为多行注释的结尾,必须要加上注释结尾标记“/”,否则将出现编译错误。
6.面试官:字符串常量"A"与字符常量'A'有什么不同?
应聘者:C++规定在每一个字符串的结尾加一个字符串结束标记,以便系统能据此判断字符串是否结束。字符串结束标记就是'\0'。所以在计算机内存中"A"其实占了两个字符存储位置,一个是字符'A',一个是字符'\0'。
(1)书写格式不同:字符常量用' '(单引号),而字符串常量用" "(双引号)。
(2)表现形式不同:字符常量是单个字符,字符串常量是一个或多个字符序列。
(3)存储方式不同:字符常量占用1字节,字符串常量占用1个以上字节(比字符串的长度多一个)。
7.面试官:变量的存储类型有哪些?
应聘者:存储类别指的是数据在内存中存储的方法。存储方法分为静态存储和动态存储两大类。具体包含4种:自动的(auto)、静态的(static)、寄存器的(register)和外部的(extern)。根据变量的存储类别,可以知道变量的作用域和存储期。
8.面试官:实型数据的有效位数各是多少?
应聘者:有效数字是表示精度,一般是说一个近似数四舍五入到哪一位,就说明这个数字精确到那一位,float型的有效数字是小数点后6位,多于6位以后的数就不太可靠了。double型的有效数字是小数点后15位,15位以后的数也就不可靠了。取值范围是能表示的最小值和最大值之间的一个数域,超出这个数域的值就根本不能表示了。
9.面试官:字符变量在内存中如何存储?
应聘者:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。取值范围为-128~127。ASCII码是一些整型的数据,这也造成了字符型变量在一定程度上可以和整型进行换算。因为数字1~9的ASCII码是连续的,而且是整型,所以对于输入的数字字符,可以在程序内部,换算成真正的整型数据来处理(必要的时候)。字母的ASCII码从A~Z和a~z都是分别连续的,这也使得我们可以方便地进行大小写的转换。字符型变量可以让我们方便地处理一些输入问题。