紫光一面+二面面经
一面(40分钟)
1、自我介绍
2、项目(20分钟)3、栈与堆的区别
4、栈存放的内容是内存空间是从高地址到低地址还是从低地址到高地址?堆呢?
(程序内存栈是从高地址往低地址分配内存的,而其它的内存地址是从低到高分配内存。
首先,因为栈设计为后进先出的特性(栈需要存储函数中的局部变量和参数,函数又是最后调用的最先销毁,栈的后进先出正好满足这一点)。
其次,栈是连续分配内存的,如果给一个数组或对象分配内存,栈会选择还没分配的最小的内存地址给数组,在这个内存块中,数组中的元素从低地址到高地址依次分配(不要和栈的从高到低弄混了)。所以数组中第一个元素的其实地址对应于已分配栈的最低地址。
最后,栈只能获取栈顶的内存地址,所以如果栈是从高地址往低地址扩展的话,正好栈顶指向数组的起始地址,即数组的指针。而如果栈还采用从低地址到高地址扩展,那么不会指向数组的指针。)
5、malloc在哪申请内存空间
6、栈和队列的区别?
(栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的。
栈是先进后出,队列是先进先出。
栈只允许在表尾一端进行插入和删除,队列只允许在表尾一端进行插入,在表头一端进行删除。)
7、栈和队列项目中的应用场景
8、对数据结构的了解?以及数据结构的在项目中的应用
9、深拷贝和浅拷贝
10、介绍一下哈希表,为什么哈希表的查询效率以及增删效率为1
11、sizeof关键字的作用,sizeof(void)是多少?sizeof(void *)是多少?
12、指针的定义?以及指针的用法?
13、预处理的过程
14、给你一个字符串,怎么查找他的子串?
15、对KMP算法的了解
16、有没有得过奖学金?
17、参加什么比赛了没有?
18、反问
二面(30分钟)
面试官比较注重学习能力以及论文发表的情况
1、自我介绍
2、项目
3、内存泄漏怎么处理
4、extern 关键字
5、进程通信方式
6、进程调度算法
7、计算机网络的七层模型以及每层的含义以及内容
8、了解哪些算法?快速排序的思想
9、对公司的了解
10、未来规划
11、英语能力
12、论文发表情况
13、反问
#面经##紫光展锐##校招##C++工程师#3、内存泄漏怎么处理
4、extern 关键字
5、进程通信方式
6、进程调度算法
7、计算机网络的七层模型以及每层的含义以及内容
8、了解哪些算法?快速排序的思想
9、对公司的了解
10、未来规划
11、英语能力
12、论文发表情况
13、反问