面经详情

简述了五面的详细过程,
8点20到的东方广场,地方还是比较好找的,我们SD的最后一波,5个,全是北邮的哥儿们。填了表格,hr像开宣讲会一样讲了一番,还是很理解学生的心情的,不愧是大公司的风范(个人觉得MS和Cisco的面试最规范)。先做了大概45分钟的一道程序题:写两个优先权队列的接口:enqueue(value, priority):插入队列dequeue():返回权最大的。 一面: 是上海过来的工程师,男的,比较和蔼666,英语从TCP和UDP的差别开始,然后问ethernet帧的结构及各个字段的作用,在黑板上画出来,ping的原理,switch和router的差别,分别工作在那一层, 用switch连接的局域网是否能够capture发给其他host的速据,router对广播的处理方式,D类地址的范围,接着算了一个子网的广播地址,IP包头的结构,各个字段的含义和作用,特别问了HLEN,offset,如何计算分片的大小。那些路由协议,RIP和OSPF的原理、差别,以上都是网络知识,一一作了回答,感觉还不错,除了问VLAN我回答说没有什么研究。还是不放过我, 开始问我的一个项目cnSIP 的软件架构,各个层的功能,搞定。 总结:对网络的专业词汇要立即能用英语说出,基础知识要扎实。 二面: 是个北京人,以上去我还唧唧歪歪说了堆英语,发现对方只说中文,未有丝毫亲切感,隧改口。熟悉操作系统是吧,先问了IPC的五种方式,接着让说实模式和保护模式的区别,小case。精通C ++是吧, 写个string类的接口,实现其中一个;给你一颗2叉树,不准建新的树,直接把原树改成一个堆;一个递增链表合并一个递减的链表。f(n)=f(n-1)+f(n-2),非递规实现。基本搞定,这个面试官从不显示一点笑容。 三面: tracy,hr ***, 来个自我介绍,然后说一件自己很尴尬的往事,英语的,完毕 四面:我的噩梦, 一个极其tough又英语烂的要命的manager,我怀疑他的童年是否在印度接受教育。 他开始看我写的那个优先权队列的程序,我告诉他我是用heap来做的,我在纸上画了一个堆的逻辑图,郁闷的是,他不知道什么是heap,我就开始解释堆的定义,他又问我的堆双亲的两个儿子之间难道没有大小关系吗,我回答没有。MMD,他还是一头雾水,开始问,你这样又什么好 处,我回答enqueue和dequeue的时间复杂度是log2n.他让我证明,我回答相当于一颗完全二叉树的高度,当时觉得不应该不知道什么叫堆啊,郁闷死了,不会是玩我吧,说了句不该说的话:you can find heap in any data structure book. 他不问这个了,说要是想要enqueue比较慢 dequeue比较快怎么吧,回答: 用sorted list, enqueue复杂度为O(n),dequeue为O(1)。上面花了好长时间,估计超过20分钟,开始写程序:一个int, 第一个bit需要为0,然后有几个连续的bit 1。我开始写了个最傻的,一位一位移动去判断。他说这样太慢,我开始冥思苦想,终于有了idea,开始重新写程序,才一半,他说时间到了,我明白你的意思了,结束。 五面: alice,很nice的一个。就聊聊为甚么选择思科,聊聊socket,C++cjava给自己打分,完毕。
Q:从TCP和UDP的差别开始,然后问ethernet帧的结构及各个字段的作用

相关推荐

匿名用户
软件工程师
未通过未通过
今天下午突然接到了思科打来的面试电话,毫无预兆,自己也没有心理准备。对方开始先问我现在方不方便做一个简短的面试(整个电面过程不超过15分钟,真的够简短了……),其实当时我完全可以跟对方说不方便,再约个时间的,但是既然都打来了,也想测试一下自己的在无准备情况下的应急能力,就跟对方说可以面试了。问题都不难,都是一些基础的问题,可能看我简历上写的都是C++和C#的,然后面试官可能也没怎么用过C#吧,就多数都是问我C++,不过真的都不难。过程中没有问过算法题,这点我比较郁闷,因为思科做路由器交换机这些的,而他问到我这些的时候,我基本都不懂,如果问我一些算法题说不定还能加些分呢。过程中的题目都不难,但是答得不太好,感觉都没说到重点上,也因为是电话面试,看不到面试官在听了我的答案后的反映,不知道是不是满意了。不过面了这么短时间,估计机会不大。下面回忆下今天问到的一些问题吧,也当作是积累。 1、说说C++和C#的区别 语言性质: C#是一种完全面向对象的语言,而C++不是,C#是基于IL中间语言和.Net Framework CLR的,在可移植性、可维护性和强壮性方面都比C++有很大的改进(这点我觉得在目前来说没有什么实际意义,因为目前为止,微软都好像没有推出基于除Windows以外的.net framework,C#也一直只能在Windows平台上使用) 开发效率: C#的设计目标是用来开发快速稳定可扩展的应用程序,当然也可以通过Interop和Pinvoke来完成一些底层操作,但是对于一些和底层系统相关很密切的程序(比如驱动程序),还是C++有优势。 委派构造函数: C++不允许在一个构造函数中调用另外一个构造函数(称为委派构造函数),而C#则允许。委派构造函数调用语法上非常自然易懂,事实上,C++不提供这一特性并不是出于语法上的考虑,而是出于资源管理的考虑。C++的构造函数用于分配资源,而析构函数用于释放资源,构造函数和析构函数调用必须匹配,否则就打破了C++的基本规则。如果允许委派构造函数调用,则会打破这一规则——构造函数被执行两次,而析构函数只执行一次。 虚函数的调用规则: C++在构造函数中,虚函数的调用会被编译器自动转为普通函数调用,而在C#构造函数中允许进行虚函数的调用。C++这样处理自然有它的原因,在C++中,构造函数执行完成后对象才初始化,对于多态来说,也就意味着构造函数在背后执行了很重要的一件事情——初始化对象的虚函数表。如果我们在基类的构造函数中调用虚函数,则因为此时对象的虚函数表仍旧是基类的虚函数表,所以无法进行正确的虚函数调用。而在C#中,在对象的构造函数执行之前对象的类型信息已经初始化好了,所以可以进行正常的虚函数调用。 2、你觉得C#中有什么功能或者特性可以移植到C++中 这个问题是开放性的,我当时也没答好,平常没思考过的话,在面试这么紧张的环境下要能自圆其说也是很难的,大家自己思考下吧,这个应该是要考察你的思维的。 3、C++虚函数的实现机制,为什么构造函数不能是虚函数?析构函数可以吗,如果可以,虚析构函数有什么作用? 这个问题也不是很难,可能考虑的比较少的就是为什么构造函数不能为虚函数,当时我就没回答出这个。 其实看了第一题的答案,多多少少也能说出点了,构造函数就是用来初始化虚函数表的,既然是用与初始化虚函数表,自己又怎么可能是虚函数呢。 接着我们从虚函数的调用规则方面分析,虚函数的调用是“向前”和“向外”进行的,它能调用在派生类中的函数,而派生类中的函数有可能会访问基类的成员。加入构造函数可以为虚函数,那么我们调用的函数就可能操作还没有被初始化的成员(调用了派生类的构造函数,操作基类成员,但是基类的构造函数并没运行,成员没被初始化!),这将是异常灾难! 后面的问题都不是很难,真的都是很基础很基础的东西,期间有些linux的问题,但是本人确实缺乏这方面的经验,一直以来都是在Windows平台上做开发的(.Net),所以可能给扣了不少分 4、什么是深拷贝和浅拷贝 5、TCP和UDP的区别 最后,面试官让我讲讲自己的项目经历,讲完以后也没就我的项目问相关的问题,估计是觉得我做的没什么亮点,没什么可问的吧。整个面试过程就这样结束了,大约15至20分钟。总结起来,面试还是有准备的好,以后收到那种突击型的电话面试,还是精明点说当时不方便,要求再约时间。这样可以让自己做下针对性的准备。...查看更多
包含1个问题,0个回答
Q:你觉得C#中有什么功能或者特性可以移植到C++中 C++虚函数的实现机制,为什么构造函数不能是虚函数?析构函数可以吗,如果可以,虚析构函数有什么作用?
2 年前 发布
匿名用户
Software Engineer
未通过感觉没戏
面试过程:之前通过了思科的笔试,挺难的,错了还要扣分,但最后还是幸运的拿到了面试通知,面试通知是说11月8日在漕河泾新思大楼里面试,我还将时间改成了早上,结果等了还挺久的,才被叫到第一轮,第一轮是个30岁的女主管,很甜,一直带着笑容,问了一些简历上得项目,看我表达很好,说为什么不尝试做些consulting的职位,于是我就陷入了圈套,说这是我的规划,可是我投得是软件工程师,因为思科比较重技术,管理层都是技术转的,所以显然这不是一个好答案,中间会有英文问题,因为我本硕均在英国,所以英语面试我还是挺喜欢的。 第二轮是部门老大,也是问了我的简历,然后问了我 如果给你一个task你觉得很难怎么办?我回答的是按照 电影里的桥段来说的: I am the type of person who is determinate. If you give me an assignment and I don't know the answer, I will answer you I don't know, but I know how to find it and will definitely find it out. 他说了一句:恩,这点很重要,于是顺理的进入了最后一轮。 最后一轮是个技术老大,也是我败在的一轮,简历问之后,问我TCP/IP的问题,我均顺利回答了,包括路由器和交换机的区别,WLAN 和VPN。C++的栈和堆, 虚函数的意义。我回答的都还可以,然后让我手写一个算法,因为我之前没用过C++ ,算法导论这块也没看过,他让我写的是找中位数的算法, 我只能用最基本的比较排序来写了,还是用matlab写的。。显然这不是一个好答案。。。最让我失败的是他说的我职业规划 consulting 和他们不太一样。。。我是陷入了第一轮的提问陷阱里了。。。这也是我面试没通过的最大失误...查看更多
包含1个问题,1个回答
Q:中位数的算法
2 年前 发布

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网思科(Cisco)思科(Cisco)面试经验思科(Cisco)面试经验:简述了五面的详细过程,