在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++语言基础 → C++面试题集锦.docx(共152页)

C++面试题集锦.docx(共152页)

C/C++语言基础

下载此实例
  • 开发语言:C/C++
  • 实例大小:2.05M
  • 下载次数:40
  • 浏览次数:118
  • 发布时间:2021-04-12
  • 实例类别:C/C++语言基础
  • 发 布 人:asdasq
  • 文件格式:.docx
  • 所需积分:2
 相关标签: c++ 面试

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

目录
I.	C  	8
1.	引用和指针的区别?	8
2.	从汇编层去解释一下引用	8
3.	C  中的指针参数传递和引用参数传递	9
4.	形参与实参的区别?	10
5.	static的用法和作用?	10
6.	静态变量什么时候初始化	11
7.	const?	12
8.	const成员函数的理解和应用?	13
9.	指针和const的用法	13
10.	mutable	13
11.	extern用法?	13
12.	int转字符串字符串转int?strcat,strcpy,strncpy,memset,memcpy的内部实现?	14
13.	深拷贝与浅拷贝?	14
14.	C  模板是什么,底层怎么实现的?	15
15.	C语言struct和C  struct区别	15
16.	虚函数可以声明为inline吗?	15
17.	类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一些?	15
18.	成员列表初始化?	16
19.	构造函数为什么不能为虚函数?析构函数为什么要虚函数?	17
20.	析构函数的作用,如何起作用?	18	
21.	构造函数和析构函数可以调用虚函数吗,为什么	18
22.	构造函数的执行顺序?析构函数的执行顺序?构造函数内部干了啥?拷贝构造干了啥?	18
23.	虚析构函数的作用,父类的析构函数是否要设置为虚函数?	19
24.	构造函数析构函数可以调用虚函数吗?	19
25.	构造函数析构函数可否抛出异常	19
26.	类如何实现只能静态分配和只能动态分配	19
27.	如果想将某个类用作基类,为什么该类必须定义而非声明?	20
28.	什么情况会自动生成默认构造函数?	20
29.	什么是类的继承?	20
30.	什么是组合?	21
31.	抽象基类为什么不能创建对象?	21
32.	类什么时候会析构?	22
33.	为什么友元函数必须在类内部声明?	22
34.	介绍一下C  里面的多态?	22
35.	用C语言实现C  的继承	23
36.	继承机制中对象之间如何转换?指针和引用之间如何转换?	25
37.	组合与继承优缺点?	25
38.	左值右值	26
39.	移动构造函数	26
40.	C语言的编译链接过程?	27
41.	vector与list的区别与应用?怎么找某vector或者list的倒数第二个元素	27
42.	STL vector的实现,删除其中的元素,迭代器如何变化?为什么是两倍扩容?释放空间?	28
43.	容器内部删除一个元素	29
44.	STL迭代器如何实现	30
45.	set与hash_set的区别	30
46.	hashmap与map的区别	30
47.	map、set是怎么实现的,红黑树是怎么能够同时实现这两种容器? 为什么使用红黑树?	30
48.	如何在共享内存上使用stl标准库?	30
49.	map插入方式有几种?	31
50.	STL中unordered_map(hash_map)和map的区别,hash_map如何解决冲突以及扩容	31
51.	vector越界访问下标,map越界访问下标?vector删除元素时会不会释放空间?	32
52.	map[]与find的区别?	32
53.	STL中list与queue之间的区别	32
54.	STL中的allocator,deallocator	33
55.	STL中hash_map扩容发生什么?	33
56.	map如何创建?	33
57.	vector的增加删除都是怎么做的?为什么是1.5倍?	34
58.	函数指针?	35
59.	说说你对c和c  的看法,c和c  的区别?	36
60.	c/c  的内存分配,详细说一下栈、堆、静态存储区?	36
61.	堆与栈的区别?	37
62.	野指针是什么?如何检测内存泄漏?	37
63.	悬空指针和野指针有什么区别?	38
64.	内存泄漏	39
65.	new和malloc的区别?	39
66.	delete p;与delete[]p,allocator	40
67.	new和delete的实现原理, delete是如何知道释放内存的大小的额?	40
68.	malloc申请的存储空间能用delete释放吗	41
69.	malloc与free的实现原理?	41
70.	malloc、realloc、calloc的区别	41
71.	__stdcall和__cdecl的区别?	42
72.	使用智能指针管理内存资源,RAII	42
73.	手写实现智能指针类	42
74.	内存对齐?位域?	42
75.	结构体变量比较是否相等	43
76.	位运算	43
77.	为什么内存对齐	43
78.	函数调用过程栈的变化,返回值和参数变量哪个先入栈?	44
79.	怎样判断两个浮点数是否相等?	44
80.	宏定义一个取两个数中较大值的功能	44
81.	define、const、typedef、inline使用方法?	44
82.	printf实现原理?	45
83.	#include 的顺序以及尖叫括号和双引号的区别	45
84.	lambda函数	45
85.	hello world 程序开始到打印到屏幕上的全过程?	46
86.	模板类和模板函数的区别是什么?	46
87.	为什么模板类一般都是放在一个h文件中	46
88.	C  中类成员的访问权限和继承权限问题。	47
89.	cout和printf有什么区别?	48
90.	重载运算符?	48
91.	函数重载函数匹配原则	48
92.	定义和声明的区别	48
93.	C  类型转换有四种	49
94.	全局变量和static变量的区别	49
95.	静态成员与普通成员的区别	50
96.	说一下理解 ifdef  endif	50
97.	隐式转换,如何消除隐式转换?	51
98.	虚函数的内存结构,那菱形继承的虚函数内存结构呢	51
99.	多继承的优缺点,作为一个开发者怎么看待多继承	51
100.	迭代器  it,it  哪个好,为什么	52
101.	C  如何处理多个异常的?	52
102.	模板和实现可不可以不写在一个文件里面?为什么?	53
103.	在成员函数中调用delete this会出现什么问题?对象还可以使用吗?	53
104.	智能指针的作用;	54
105.	auto_ptr作用	55
106.	class、union、struct的区别	55
107.	动态联编与静态联编	56
108.	动态编译与静态编译	56
109.	动态链接和静态链接区别	56
110.	在不使用额外空间的情况下,交换两个数?	57
111.	strcpy和memcpy的区别	57
112.	执行int main(int argc, char *argv[])时的内存结构	57
113.	volatile关键字的作用?	57
114.	讲讲大端小端,如何检测(三种方法)	58
115.	查看内存的方法	58
116.	空类会默认添加哪些东西?怎么写?	59
117.	标准库是什么?	59
118.	const char* 与string之间的关系,传递参数问题?	59
119.	new、delete、operator new、operator delete、placement new、placement  delete	60
120.	为什么拷贝构造函数必须传引用不能传值?	60】
121.	空类的大小是多少?为什么?	61
122.	你什么情况用指针当参数,什么时候用引用,为什么?	61
123.	大内存申请时候选用哪种?C  变量存在哪?变量的大小存在哪?符号表存在哪?	62
124.	为什么会有大端小端,htol这一类函数的作用	62
125.	静态函数能定义为虚函数吗?常函数?	62
126.	this指针调用成员变量时,堆栈会发生什么变化?	63
127.	静态绑定和动态绑定的介绍	63
128.	设计一个类计算子类的个数	63
129.	怎么快速定位错误出现的地方	63
130.	虚函数的代价?	63
131.	类对象的大小	64
132.	移动构造函数	64
133.	何时需要合成构造函数	65
134.	何时需要合成复制构造函数	65
135.	何时需要成员初始化列表?过程是什么?	65
136.	程序员定义的析构函数被扩展的过程?	66
137.	构造函数的执行算法?	66
138.	构造函数的扩展过程?	66
139.	哪些函数不能是虚函数	66
140.	sizeof 和strlen 的区别	67
141.	简述strcpy、sprintf与memcpy的区别	67
142.	编码实现某一变量某位清0或置1	67
143.	将“引用”作为函数参数有哪些特点?	68
144.	分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。	68
145.	局部变量全局变量的问题?	68
146.	数组和指针的区别?	69
147.	C  如何阻止一个类被实例化?一般在什么时候将构造函数声明为private?	69
148.	如何禁止自动生成拷贝构造函数?	69
149.	assert与NDEBUGE	70
150.	Debug和release的区别	70
151.	main函数有没有返回值	70
152.	写一个比较大小的模板函数	70
153.	c  怎么实现一个函数先于main函数运行	71
154.	虚函数与纯虚函数的区别在于	72
155.	智能指针怎么用?智能指针出现循环引用怎么解决?	72
156.	strcpy函数和strncpy函数的区别?哪个函数更安全?	72
157.	为什么要用static_cast转换而不用c语言中的转换?	73
158.	成员函数里memset(this,0,sizeof(*this))会发生什么	73
159.	方法调用的原理(栈,汇编)	73
160.	MFC消息处理如何封装的?	74
161.	回调函数的作用	74
162.	随机数的生成	74
II.	操作系统	75
1.	操作系统特点	75
2.	什么是进程	75
3.	进程	75
4.	进程与线程的区别	75
5.	进程状态转换图	76
6.	进程的创建过程?需要哪些函数?需要哪些数据结构?	76
7.	进程创建子进程,fork详解	76
8.	子进程和父进程怎么通信?	77
9.	进程和作业的区别?	77
10.	死锁是什么?必要条件?如何解决?	77
11.	鸵鸟策略	79
12.	银行家算法	79
13.	进程间通信方式有几种,他们之间的区别是什么?	80
14.	线程同步的方式?怎么用?	81
15.	页和段的区别?	81
16.	孤儿进程和僵尸进程的区别?怎么避免这两类进程?守护进程?	82
17.	守护进程是什么?怎么实现?	82
18.	线程和进程的区别?线程共享的资源是什么?	83
19.	线程比进程具有哪些优势?	83
20.	什么时候用多进程?什么时候用多线程?	84
21.	协程是什么?	84
22.	递归锁?	84
23.	用户态到内核态的转化原理?	84
24.	中断的实现与作用,中断的实现过程?	85
25.	系统中断是什么,用户态和内核态的区别	85
26.	CPU中断	86
27.	执行一个系统调用时,OS发生的过程,越详细越好 1.执行用户程序(如:fork)	86
28.	函数调用和系统调用的区别?	86
29.	经典同步问题解法:生产者与消费者问题,哲学家进餐问题,读者写者问题。	87
30.	虚拟内存?使用虚拟内存的优点?什么是虚拟地址空间?	87
31.	线程安全?如何实现?	88
32.	linux文件系统	88
33.	常见的IO模型,五种?异步IO应用场景?有什么缺点?	89
34.	IO复用的原理?零拷贝?三个函数?epoll 的 LT 和 ET 模式的理解。	90
35.	Linux是如何避免内存碎片的	91
36.	递归的原理是啥?递归中遇到栈溢出怎么解决	91
37.	  i是否是原子操作	92
38.	缺页中断,页表寻址	93
39.	LRU的实现	93
40.	内存分区	93
41.	伙伴系统相关	94
42.	I/O控制方式	94
43.	Spooling技术	95
44.	通道技术	96
45.	共享内存的实现	96
46.	计一个线程池,内存池	96
III.	Linux	97
1.	Inode节点	97
2.	Linux软连接、硬链接,删除了软连接的源文件软连接可用?	98
3.	Linux系统应用程序的内存空间是怎么分配的,用户空间多大,内核空间多大?	98
4.	Linux的共享内存如何实现	99
5.	文件处理grep,awk,sed这三个命令必知必会	99
6.	查询进程占用CPU的命令	99
7.	一个程序从开始运行到结束的完整过程	100
8.	一般情况下在Linux/windows平台下栈空间的大小	100
9.	Linux重定向	100
10.	Linux常用命令	101
IV.	网络	101
一、	物理层	102
二、	数据链路层	102
三、	网络层	102
四、	运输层	104
五、	应用层	116
V.	数据结构	127
1.	常用查找算法?具体实现	127
2.	常用排序算法?具体实现,哪些是稳定的,时间复杂度、空间复杂度,快速排序非递归如何实现?快排的优势?	127
3.	图的常用算法?	127
4.	哈夫曼编码?	128
5.	***AVL树、B 树、红黑树、B树B 树区别,B 树应用在哪里?	128
6.	为什么使用红黑树,什么情况使用AVL树。红黑树比AVL树有什么优点。	128
7.	单链表如何判断有环?	129
8.	如何判断一个图是否连同?	129
9.	hash用在什么地方,解决hash冲突的几种方法?负载因子?	129
10.	n个节点的二叉树的所有不同构的个数	130
11.	二叉树的公共祖先,排序二叉树的公共祖先	130
12.	节点的最大距离	130
13.	把一颗二叉树原地变成一个双向链表	131
14.	二叉树的所有路径	131
15.	二叉树中寻找每一层中最大值?	131
16.	最大深度、最小深度、会否是平衡树	132
17.	二叉树中叶子节点的数量	133
18.	交换左右孩子、二叉树镜像	133
19.	两个二叉树是否相等	133
20.	是否为完全二叉树	134
21.	是否为对称二叉树	134
22.	判断B是否为A的子树	134
23.	构建哈夫曼树	135
24.	手写单链表反转?删除指定的单链表的一个节点	135
25.	实现一个循环队列	135
26.	Top K问题	136
27.	求一颗树的最大距离	136
28.	KMP	136
29.	数组和链表的区别?	136
30.	逆序对思路	137
31.	100个有序数组合并	137
32.	使用递归和非递归求二叉树的深度	137
33.	索引、链表的优缺点?	137
34.	找一个点为中心的圆里包含的所有的点。	137
35.	字典树的理解	137
36.	快速排序的优化	137
37.	海量数据的bitmap使用原理	138
VI.	算法	138
VII.	数据库	140
1.	事务是什么	140
2.	分布式事务	140
3.	一二三范式	140
4.	数据库的索引类型,数据库索引的作用	141
5.	聚集索引和非聚集索引的区别	141
6.	唯一性索引和主码索引的区别	142
7.	数据库引擎,innodb和myisam的特点与区别	142
8.	关系型和非关系型数据库的区别	143
9.	数据库的隔离级别	143
10.	数据库连接池的作用	143
11.	数据的锁的种类,加锁的方式	144
12.	数据库union join的区别	144
13.	Inner join,left outter join,right outter join之间的区别	144
VIII.	设计模式	144
1.	单例模式	145
2.	手写线程安全的单例模式?	145
3.	工厂模式	145
4.	装饰器模式	145
5.	订阅/发布模式	145
6.	观察者模式	146
7.	MVC模式	146
IX.	多线程编程	146
1.	146
X.	HR问题	146

标签: c++ 面试

实例下载地址

C++面试题集锦.docx(共152页)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 云来云往 发表于: 2021-06-16 14:40 26
楼主,文档打不开啊,能不能再上传一下呢?

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警