寒武纪C++软件研发日常实习生面经,已发offer。

寒武纪C++软件研发日常实习生面经,已发offer

时间:2021223日,形式电话面试,大概30min

个人背景:哈工大通信本硕,半路出家,计算机基础很差

心态:生平第一次应付企业面试,非常紧张

开场是自我介绍,和聊简历,这一块就不多说了。我的简历写得很满,学科竞赛拿了三次省奖一次国奖,但都和计算机无关,所以聊不出所以然。

然后被单方面提问,全程内容以C++八股文为主,没有录音,所以问题的提问顺序没能完全记住,但大致的题目还是***不离十的。

一上来就是经典老题,谈一谈mallocnew

我一顿口胡,说了这么些:

1.newC++的关键字,malloc是头文件stdlib.h里的库函数,newC++新添加的,mallocC语言里就有的

2.new自动计算所需内存大小,malloc要手动输入内存大小作为函数参数,比如4*sizeof(int)

3.newmalloc更高级,他的底层实现本身就包含了malloc

4.newmalloc更方便,除了第2条讲的无需设置内存大小,new配合构造函数和函数重载时用起来很给力,比如申请一个链表节点或者树的节点时,new加构造函数可以很简短的申请节点并赋值,malloc由于返回(void*)还需要强制转换,再加上其它语句对节点各个成员依次赋值,代码看起来就冗长繁琐,没有new美观。

5.newmalloc更安全(这里他突然打断我问我为什么更安全,我直接慌了,我一顿瞎说,但自知说的不对,非常尴尬)

最后,他告诉我,他最想听到的是“new调用了构造函数和析构函数”,我赶紧道歉,“对不起老师,我太紧张了,没讲出来,其实这个点我是知道的”

第二题,类(class)、结构体(struct)和联合(union)的区别

1.我上来先把union和其他两个区分开来,说classstruct共同点挺多的,但是union和另外两个差别太大,除了写起来格式很像,没啥共同点,union最大的特点是它某个成员可以不确定,然后我讲了一下十字链表表示稀疏矩阵时union的运用。

2.classC++里独有的,是C++面向对象特性的重要体现之一。三者都是C/C++共有的(废话)

3.然后我发了一个暴论“结构体是一种特殊的类”,并坦言“我以前好像在某个技术论坛上看过这句话”(当时真怕他继续深入问下去)C++里,class能有的,struct里也都允许拥有,比如说各种类型的成员,构造函数和析构函数。

4.struct默认成员是公有的,class则默认成员是私有的

应该没说全,但他最后还是放我走了

第三题,CC++的区别

1.C是面向过程,C++是面向对象(不愧是我,大一学生都知道的常识,被我严肃的单独列为一点)

2.C++里添加了newdelete,是mallocfree的升级版本。

3.C++string类标识字符串,C里只能用char类型数组表示字符串

4.C++里有强大的STL库,各种封装好的数据结构拿过来直接用就好了,C语言必须自己动手丰衣足食。

5.一入门打印hello world时用的头文件不一样,一个是iostream,一个是stdio.h(我可真不知羞耻)

6.C++里有函数重载

7.C++添加了“引用”,还有关键词autonullptr等等

其实我还能说很多,但是C++的很多新增东西,我只知道名字和概念,不深入了解,真怕他打断并深入问

应该还是没说全,但他还是放了我一马

第四题,浅拷贝和深拷贝的区别

这个我上来就背错八股文了……我给他讲的是
string str=”hello world”;
string str(”hello world”);

的区别,也就是拷贝初始化和直接初始化的区别(前者需要先构造一个字面量字符串”hello world”,在拷贝给s,后者直接赋值)

后来在面试官的引导下发现自己背错地方了TT,然后改口:

浅拷贝只是拷贝一个指针(头指针),并没有新开辟一个地址,拷贝的指针和原来的指针指向同一块地址。其余剩余的内容,自己根据头指针按序寻址;

深拷贝不仅拷贝值,还开辟出一块新的空间用来存放新的值

勉强过关

第五题,谈一谈const类型的引用,这个我直接破防了。

我说我知道两种const类型的指针以及他们的区别,我也知道指针和引用的区别,但congst类型引用俺是真的想不起来了。(在他打断我之前,我还真给他背了背指针和引用的区别)

第六题,简要说明C++的内存分区

这块我没准备,吓坏了,机智的我假装电话信号不好,让他再说一遍问题,然后他接着补充“比如堆区,栈区,静态变量区,全局变量区(global)”

我方寸大乱,开始口胡,堆区就是newmalloc申请内存的区,可以释放和析构。栈区就是我们大多数情况下声明变量的区。静态变量区?是static吗?这个我知道(然后开始给他背诵static的特性:文件独有,对其他文件隐藏;可以记录被函数修改过的值;直接初始化为0或者空指针)。全局变量区?这个我有点忘记了。。。。(后来才发现静态变量和全局变量是一个意思,泥马)

其实总共六个区,我只说了三个。这也是老八股了,我这个答得太差了,具体参考链接

https://chenqx.github.io/2014/09/25/Cpp-Memory-Management/

最后,让我问他两个问题,我随便问了两个,结束面试。

当晚,Hr问我能不能来实习,能来的话就提offer了。

第三天的上午收到录用通知邮件。

#面经##寒武纪##C++工程师##实习#
全部评论
楼主简历还是好看。
2 回复
分享
发布于 2021-03-04 09:12
qsnb
2 回复
分享
发布于 2021-03-04 09:16
秋招专场
校招火热招聘中
官网直投
感觉是群友
2 回复
分享
发布于 2021-03-04 09:27
楼主好幽默,看面经笑死我了 。只有一面?
2 回复
分享
发布于 2021-03-04 10:36
好羡慕奇神只用1面,这就是泥工的魅力吗
2 回复
分享
发布于 2021-03-04 18:21
1 回复
分享
发布于 2021-03-04 07:25
背错了还行😂
1 回复
分享
发布于 2021-03-04 09:23
楼主好逗
1 回复
分享
发布于 2021-03-04 14:20
楼主 ,这个实习在哪里投的,现在还可以投吗 ,是根据简历来问吗
1 回复
分享
发布于 2021-03-04 17:35
哪里投的实习简历啊
1 回复
分享
发布于 2021-03-04 21:13
没有手气代码?
点赞 回复
分享
发布于 2021-03-04 08:01
不错  感谢楼主分享
点赞 回复
分享
发布于 2021-03-04 15:41
楼主八股文有资料推荐嘛?
点赞 回复
分享
发布于 2021-03-04 16:02
能推荐一下八股文吗?
点赞 回复
分享
发布于 2021-03-04 18:15
没有笔试吗
点赞 回复
分享
发布于 2021-03-04 21:13
new int也调用构造函数了?
点赞 回复
分享
发布于 2021-03-05 18:28
接了offer了吗
点赞 回复
分享
发布于 2021-03-15 17:24
楼主要去寒武纪实习了吗,没面其他的吗?
点赞 回复
分享
发布于 2021-04-12 19:42
咋就一面呢。有啥项目吗老哥
点赞 回复
分享
发布于 2021-05-06 14:16
全是八股+一面??太好了吧
点赞 回复
分享
发布于 2022-04-07 00:28

相关推荐

35 136 评论
分享
牛客网
牛客企业服务