水硕的深信服一面,C++云计算岗

个人的第一次电话面试,很慌,有点语无伦次,不过面试官人还挺不错的,没答出来的让我下来自己查一下,如果有二面,可能会问到(如果有,如果有,如果有)。下面直入主题,就当回馈下前面发面经的老铁。

首先深信服一面是技术面,问的是一些比较基础的问题,据说二面是项目面,小弱鸡担心怕是没有第二面了。。。

1、自我介绍,了解一下学校、学科和课程情况,以及平时编程中主要使用的环境。

2、第一个问题,怎样统计一篇英文文章中出现频率最高的10个单词,用什么数据结构和算法实现,因为是第一个问题,很紧张,答得有点语无伦次,面试小哥倒是忍了,跟我说不用说这么细,说个主要思路就可以了。

3、为找出一个字符串中第一次出现的指定字符,怎么优化算法。一脸懵逼,甚至想出了两端遍历的方式,然后小哥提醒我是第一次出现的。。。然后我就随口胡诌了一个。

4、结构体的比较问题,之前也有老哥说过。

5、根据主要用的编译环境,我是windows,他问了debug和release的区别,我就说一个会忽视ass断言一个不会(太激动还把断言说成了警告。。。)。然后又追问另一个问题,我都忘记是啥了。。。

6、main函数有没有返回值,分别针对什么情况。这个比较简单没啥好说的,然后他直接追问,那么如果出现异常,怎么捕获,然后我就懵逼了。。。

7、下一个问题更懵逼,问C++写的动态链接库能不能直接给C用,为什么。。。我就说,您既然这么问了,那肯定不能,但我也不知道为什么,因为平时使用的时候C++可以支持90%的C操作,然后就没有然后了。

8、问我有没有学过计算机网络,我说学院没开,做项目的时候用过,所以自学了一部分,然后面试官很贴心的问了个基础的问题,TCP的三次握手。这个应该都有准备过,然后又问了一下几次握手中,两端的状态转换,以及为什么两次握手不行。

9、最后问了一个关于C中宏定义的问题,前面老哥们有说过。

然后半个小时就过了,老哥让我两天之内等消息。。。感觉凉了啊,第一次面试,自己都不知道自己在说什么,一半问题没完全答上来。。。祝各位老铁好运!

#面经##C/C++##深信服#
全部评论
动态链接库直接用是不行的,因为C++的函数名会有扩展,你用VS写个没有定义只有声明的函数去调用,然后看出错信息就明白了。而且C++有类成员函数,和普通函数是不一样的。当然,强行C调用C++动态库是有方法的,要用到某种奇技淫巧。debug模式assert只是其中一方面,另外还保留了调试信息,你用release模式打断点调试的话,会有各种奇妙的问题,然后还单独定义了一些宏吧,我没具体研究过。楼主还是依赖于IDE了吧,所以对编译链接的过程不是很理解。统计单词应该就用hash表记录一遍,然后变成了topk问题了吧。找第一次出现的指定字符难道不是顺序查找就行了吗……是查找出现的字符串吧😓
点赞 回复 分享
发布于 2018-07-02 17:42
楼主是C++后台么? 面试的多了就好了,楼主加油,感谢分享!
点赞 回复 分享
发布于 2018-07-02 16:42
一面最后过了吗
1 回复 分享
发布于 2018-07-18 15:54
不知道你面试官怎么问的,main函数返回值就是进程正常退出时的退出码,因此main函数里return 1和exit(1)是一样的。在linux上可以用wait/waitpid等函数捕获子进程的退出码,windows上是用GetExitCodeProcess来捕获。如果使用标准库函数system()执行程序的话,该程序的退出码就是system()的返回值。如果没有考虑到进程的创建,而是程序直接退出了,想要知道它的退出码,linux下可以用shell特殊变量$?来获取。windows也有类似命令吧。如果是想报告错误码,在退出的时候打印出来就行了。怕麻烦的话就定义个全局变量g_error,然后用C标准库函数atexit注册一个函数,打印g_error的值,退出时用return g_error = 1或者exit(g_error = 1)这样的。或者利用析构函数也是一样的,声明个全局对象,退出时把退出码赋值给成员变量,析构函数里打印成员变量。
点赞 回复 分享
发布于 2018-07-02 21:27
笔试都挂的路过。。。
点赞 回复 分享
发布于 2018-07-03 11:26
没问笔试的题吗?
点赞 回复 分享
发布于 2018-07-03 16:56
第3个问题,我觉得你是不是理错了,应该是第一次出现的字符,且这个字符只出现一次,不然按照你说的那个不需要优化
点赞 回复 分享
发布于 2018-07-03 20:37

相关推荐

点赞 109 评论
分享
牛客网
牛客企业服务