C++知识点(应聘笔试常考)

2024-09-01

C++知识点(应聘笔试常考)

C++知识点(应聘笔试常考) 篇1

找工作找了也有一段时间了,期间参加的笔试也不少,由此借最近比

较得闲之际,将整理出有关C++在笔试中常考到的知识点,这些都是我遇到的一些笔试题目或者是我自己以前搜集整理的资料,现在拿出来希望可以给大家一些帮助。如果有什么错误之处,请各位指出,谢谢!

1.C++跟C语言的异同之处?

答:C++语言来源于C语言。

同:规则简单,具有数据表示运算功能,可以直接对内存操作,运行效率高,异:C语言缺乏数据类型检查机制,代码重用性差;C++强化了数据的类型检查和语句的结构性,增加了面向对象的程序设计的支持。

2.请问C++的类和C里面的struct有什么区别?

答:struct的成员的默认访问说明符为Public,而class的成员的默认访问说明符为Private。其他没有区别

3.列举关键字static在C++中的作用。

a)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其

值不变。

b)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内

所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

c)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调

用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

4.编程题: 用最有效率的方法算出2乘以8等於几? ————2 << 3,2向

左移3位。

5.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。

答:区别主要在两点:

a)条件操作只能操作布尔型的,而逻辑操作可以操作布尔型和数值型。b)逻辑操作不会产生短路。

6.&的意义:包括取址和引用。两者的区别如下所示:

int a;

int &pa;

int &ra=a;//ra 是a的别名,只能在定义时初始化

pa=&a;//pa指向a,这里的&是取址。

7.关于指针变量

答:

变量的地址是一个十六进制整数。

能够存放地址的变量称为“指针类型变量”,简称“指针变量”。计算机的CPU决定了内存寻址方式,所以不管指针所指的对象是什么

类型,指针值本身的规格都是一样,例如,16位或者32位的整数。关

联类型的作用是控制对象的访问。如果关联类型为int,通过指针变量访问对象时,读取从指针值指示的位置开始的连续4个字节,并按整型数据解释。

Void *vp,void指针变量能够存放任意内存地址。因为没有关联类型,编译器无法解释所指对象,程序中必须对其进行强制类型转换,才可以按指定类型数据使用。

8.关于内存方面

答:

a)关于内存的分配

内存单元由操作系统按字节编号,称为地址。一个变量的地址值是系统分配的,不能由高级程序设计语言决定,但C++可以知道分配后的地址值。

b)关于内存对齐的问题以及sizof()的输出

编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。

c)关于内存的访问

在内存建立一个对象之后,可以用名方式访问 和地址方式访问。名方式访问:操作对象的内容,也叫直接访问。访问形式分为

“读”和“写”。

地址方式访问:一个对象的地址用于指示对象的存储位置,称

为对象的“指针”。指针所指的物理存储空间称为“指针所指

对象”。通过地址访问对象又称为“指针访问”。指针访问运

算符“*”,取址运算符是“&”。

9.请讲一讲析构函数和虚函数的用法和作用。

答:析构函数是在对象生存期结束时自动调用的函数,用来释放在构造函数分配的内存。虚函数是指被关键字virtual说明的函数,作用是使用C++语言的多态特性

10.关于关键字extern和Static的说明:

答:

a)关键字extern和static声明静态存储变量和函数标识符。全局声明的标识符默认为extern。

b)当这两个关键字用于说明变量时,程序开始执行时就分配和初始化

存储空间,用于说明函数,表示从程序执行开始就存在这个函数名。c)用static声明的局部变量只能在定义该变量的函数体中使用。

d)与自动变量不同的是,static在第一次使用时进行初始化(默认初始

化值为0)。函数退出时,系统保持其存储空间和数值,下次调用时,static变量还是上次退出函数时的值。

e)程序的其他文件也能够访问全局变量,但必须在使用该全局变量的每个文件中用关键字extern予以声明。

11.关于变量与常量:

答:变量的赋值运算是在程序运行时才执行的操作。常量定义在编译阶段就被确定下来。

12.关于数组元素:

a)只有定义静态数组,C++才会自动把各元素值初始化为0。(static)b)数组由CONST约束为常量的,必须在定义的时候初始化,不能在程序代码中对它的元素重新赋值。

13.关于全局变量和局部变量:

答:具有文件作用域的变量称为全局变量。具有函数作用域或块作用域的变量称为局部变量。全局变量声明默认初始值为0。当局部变量和全局变量同名,在块内屏蔽全局变量。在块内访问全局变量,可以用域运算符“::”。

14.关于函数参数传递问题。

答:

a)参数的定义:参数是调用函数与被调用函数之间交换数据的通道。

函数定义首部的参数称为形式参数(形参),调用函数时使用的参数称为实际参数(实参)。实参必须与形参在类型,个数,位置上对应。b)函数调用前,形参没有存储空间。函数被调用时,系统建立与实参

对应的形参的存储空间,函数通过形参与实参通信,进行操作。函数执行完毕,系统收回作为形参的临时存储空间。这个过程称为参数传递或参数的虚实结合。

c)C++有3种参数传递机制:值传递(值通用),指针传递(地址调用)

和引用传递(引用调用)。实参和形参按照不同传递机制进行通信。d)三种传参方式的比较:

上一篇:南宁市43中支部民主生活会征求意见汇报下一篇:餐饮管理奖罚制度