微软面试经历 | Set 74(适用于 IT 团队的软件工程师)
已为他们的 IT 团队在海得拉巴的 Microsoft India 接受了软件工程师职位的面试。
第一轮电话面试问了以下问题
1. C++ 比 C 好在哪里?
2.什么时候使用重载函数,什么时候使用覆盖函数?
3. 我有一个客户对象列表,该列表又可以包含一个 Order 对象列表,该列表又可以包含一个 Item 对象列表。需要一个报告模块,该模块将是每个客户完成的购买总额和所有客户完成的购买总额。在类中必须进行哪些修改?
Ans: 给了一些方法,但他并不满意。
4. 共有三种不同类型的用户——员工、管理员和经理。每个用户应该有不同的权限。您将如何实现这一目标?
答:用户将是基类。 Employee、admin 和 manager 将是派生类。我不确定如何在面试中做到这一点。但是,现在想想。我们可以在每个 admin/employee/manager 类中覆盖函数,这样如果用户没有权限,该特定类中的函数可以在不执行任何操作的情况下返回错误。如果用户有权限,则可以在该函数中定义操作。
5. 给定一个链表,从第 (nx) 个节点反转节点。仅给定 x。
答:有两个指针。一个指针将位于头节点,增加第二个指针直到它到达第 x 个节点。现在增加两个指针,直到第二个指针到达链表的末尾。现在从第一个指针位置开始反转链表
6. car 类中,accelerate() 是每次调用该方法时都会增加速度变量的方法。要求是在速度达到最大限制时提醒用户。
回答:我告诉过我们可以更改Accelerate() 方法,使其在达到限制时返回True 的bool var。他要求其他方式。我告诉用户每次是否达到最大限制都可以继续轮询。他不满意。