成都精灵云-C++开发工程师-技术面经(30min左右)

以下是我的技术面试中遇到的问题,因为当时自己还在实习中,所以面试时没有做太多的准备,通过了笔试,但是技术面没有通过。我写下这个希望能够帮助想要去的同学去到这个公司。

我现在已经完成了面试复盘,反思了一下,确实我在面试的过程回答的问题,存在着许多问题。

同时我也感谢贵公司帮助我在后面的面试中积累经验。

以下是我面试过程中,hr问到的问题,回答可能不够充分,如果自己想深入深入的话,也可以去百度了解了解一下。

C方向:

Q:在C中哪个地方比较难?

A:指针。

Q:难在哪里?指针又是什么呐?举个例子说明指针。

A:指针可能会指向错误的地方。地址指向数据的那个箭头。难在会把指针指向错误的地方,造成一些错误。

百度学习了解及补充:在新建过程中可能会产生野指针,造成空间浪费。

Q:发生栈溢出,堆溢出是什么情况?

A:调用递归的时候。

Q:为什么呐?

A:递归层层调用,会开辟新的空间,当它超过了程序开辟的空间,也就是栈,就会导致栈溢出。

Q:为什么是栈溢出,不是堆溢出?

A:因为这是简单的空间溢出,堆溢出是指针的溢出。

百度学习了解及补充:

堆:堆是在程序进行动态分配时的内存。在使用new,malloc的时候可能会产生堆溢出。

栈:栈是在保存函数列表,函数参数和函数返回地址的内存。在函数递归的空间太多的时候会产生栈溢出。

C++方向:

Q:抽象,继承,多态,封装,你最熟悉的地方是哪一个?

A:多态。

Q:多态是什么?

A:我是举的例子:父子类使用虚函数实现。当时说了很多废话。

Q:使用多态的好吃是什么?

A:实现了多样性。

上面的回答确实是不及格的。

百度学习了解及补充:多态是一种基于继承的、使用虚函数产生的父子类。

好处:结构清晰,便于理解;增加了程序的可扩充性,利于后期代码扩展、维护.实现了对修改屏蔽、对扩展开放。

计算机方面:

Q:计算机最重要的四个东西是什么,请按重要顺序排列?

A:计算机组成原理,操作系统,数据结构,计算机网络。

我也不知道是不是这样的,自我理解,网上也没有查到。

计算机组成原理:

Q:CPU,显卡那些是用什么链接的?

A:总线。

他当时给我的答案是主板,我当时没有反应过来,现在想说主板上也有布线呀,这个没什么好说的。

操作系统:

Q:进程和线程的区别?

A:进程是一个资源调度的最小的单位,一个进程可以包含多个线程 线程是一个程序最小的调度单位。

Q:用什么创建一个进程;用什么创建一个线程?

A:fork(),pthread()。

Q:线程之间通过什么通信?

A:信号量。

百度学习了解及补充:

进程和线程的区别:

一个进程可以包含多个线程,线程在进程的内部。

进程之间的资源是独立的,线程之间的资源则是共享的。

每个进程都有独立的虚拟地址空间,也有之间独立的文件描述符表,同一进程的多个线程之间则共用这一份虚拟地址空间和文件描述符表。

进程是操作系统中资源分配的基本单位,线程是操作系统中调度执行的基本单位。

多个进程同时执行时,如果一个进程崩溃,一般不会影响其他进程,而同一进程内的多个线程之间,如果一个线程崩溃,很可能使得整个进程崩溃。

进程的上下文切换速度比较慢,而线程的上下文切换速度比较快。

进程的创建/销毁/调度开销大,线程的创建/销毁/调度开销相对少很多。

进程创建:vfork(),fork();线程创建:pthread_create()。

线程之间的通信:可以通过共享的数据进行通信,也可以通过信号量通信。

进程之间的通信:通过管道通信。

Q:编译四个步骤的是什么?

A:当时我把四个顺序忘记了,预处理,编译,汇编,链接。

Q:预编译是怎样的一个操作?

A:生成.i的文件,这里当时紧张忘记了,应该是对一些文件进行提前处理。

Q:在程序中预处理的代码有哪些?

A:include,define,typedef

百度学习了解及补充:

预处理:gcc -E 生成.i文件;处理宏定义和include的命令;预编译#if,#else等;添加行号,删除注释等。

编译:gcc -S 生成.s文件;代码优化,汇总,语法分析等。

汇编:gcc -c 生成.o文件;根据汇编工具和特殊平台生成二进制形式。

链接:gcc -c 生成可执行文件;

Q:动态库和静态库的区别是什么?

A:静态库是提前加载到程序中,动态库是在程序运行的过程中,当要用到的时候才会被调用。

Q:在哪调用动态链接库?

A:应该就是我们使用的资源库中。

百度学习了解及补充:在lib里面,使用gcc -l链接库

静态库:ar crs 库文件名 依赖文件 生成.a文件。浪费资源空间;在运行程序时,不需要静态库存在,方便移植;优化升级不方便,需要重新编译和链接库;运行速度快。

动态库:gcc -fPIC -c hello.c -o hello.o;gcc -shared -o libhello.so hello.o 生成.so文件。占用资源空间小;在运行程序时,动态库必须要存在;运行速度相对较慢;优化升级比较方便,不需要重新链接动态库。

计算机网络:

Q:tcp/ip协议簇,有那些那些协议?

A:http,dns,smtp,ftp等

Q:用户端和客户端通信使用的协议,tcp协议中用什么的协议?

A:我不知道,被问蒙了

百度学习了解及补充:

其他:

Q:主要通过那些网站获取学习知识?

A:主要是b站和csdn网站,刷题主要靠牛客。

#成都精灵云科技有限公司#
全部评论
不可惜的,这家公司薪资不高还996,会有更好的
点赞 回复 分享
发布于 2022-12-12 23:39 重庆
我靠,校友,很好奇,你是谁
点赞 回复 分享
发布于 2022-12-16 12:16 四川
我靠挺简单的感觉
点赞 回复 分享
发布于 2022-12-27 14:50 广东

相关推荐

发明单线投递流程的人真是个天才他曾是某家电器厂的一位HR,发明了一种高效招聘方式:只要让候选人在进行一个岗位的流程时不能报其他岗位,就能够无限吊着求职者,还能吸引更多人来投他们单位。他为此发明沾沾自喜,甚至成了圈子里的风云人物。“反正品牌的声量在这里,不愁没人投。”他总是这么想的。他常常向朋友们夸耀:“这发明真的太伟大了!你们都不知道怎么考一个人对于我们单位的忠诚度,我开发了这么一个系统,上一个流程不终止我就不让这帮小孩投别的岗位,搞得他们进也不是退也不是!这帮90/00后还说整顿职场,整顿个p!就应该多磨磨,这样才能让他们听话,真真正正为我所用!”然而,世事难料。在发明出这个模式后不久,他被一辆飞奔而来的前四后八夺去了生命,而卡车司机无责任。和许多魂儿一样,他穿过冗长的奈何桥,喝完了一碗又一碗孟婆汤,最终在层层遴选后来到了地府工作。和在世时一样,他在这里不甘落后,展现出一如既往的工作狂精神,为地府招来了许多有趣的灵魂。经过不知道多少年努力,他终于获得了地府的一纸批文,准许投胎转世,只要经历阎王本王的多轮考验,他就能按之前投递的那样,转世到某发达国家,做个金发碧眼的小公主。“终于熬出头了!”他兴奋地对身旁的魂儿们说道,眼中闪烁着兴奋的光芒。小鬼找到他:你真是表现得不错,阎王说你在阳间就这么能干,下来了居然比在阳间更能干。但在你根据你的志愿重新做人之前,你还有得等。“为……为什么?不是说好了面试完就能重新做人嘛?”“是能重新做人,但是是这样:你这次转生只有三次机会,而且根据阴间的规定,只有你被第一个国家的阴间移民局挂了,你才能开始第二个国家的投胎历程。我看你投的都是发达国家,众所周知我们跟他们那边有点小僵,所以……”“所以什么?”“而且据我所知,这次重生窗口关闭以后,下一次开放就不知道是什么时候了”“所以这到底意味着什么?”“你的转生遥遥无期。哦对了,阎王看你的发明不错,把你的发明推广到全阴间了。如果推行的好,可能会推行到全世界的阴间。”“你看看你的同事,哪个不是千年万年的妖精,他们都被口头承诺过能重新做人,结果还是没轮上转生。听说他们管自己叫泡池子的人,把自己泡烂了泡发了也许都没法转生,听说发明这个制度的人也跟你似的是个工作狂,他生前是在什么迪还是什么为上班来着,生生累死的。”“之后大家都不干了,集体跟阎王爷告状,阎王爷最后好像是把他从阳间和阴间都给抹消了,没这个人了。”“你这样还算好的,拿着资料上路吧。我这还有点黄纸金元宝你拿去,别拿天地银行发行的那破玩意,那破玩意擤鼻涕都没人用的。”他的双腿猛的一软,扑通跪在地上。他从来没想到自己在阳间发明的引以为傲的制度,到了阴间却结结实实的打了自己一巴掌。或许,永远呆在阴间,对他来说是最好的结果吧。#牛客创作赏金赛#
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 14:17
广东格林精密 机械工程师 10k×12 硕士其他
点赞 评论 收藏
分享
评论
21
112
分享
牛客网
牛客企业服务