第一轮 – 笔试 30 道客观题和 3 道编码题。
分配的时间 90 分钟。它由 3 个部分组成:
1.第一部分有逻辑和数学能力问题。一共10道题。
2.这是语言相关部分。你可以选择C/C++/ Java语言中的任何一种,这部分有30个问题。难度适中。
3.第三部分由3个编码问题组成,如下所示:
Q-1 检查给定的字符串是否互为变位词。空间必须被忽略。
Q-2 给出三角形的三个顶点和一个点。我们必须检查给定的点是否在三角形内。
Q-3 给定三个字符串A、B 和 C。编写一个函数,检查 C 是否是 A 和 B 的交织。如果 C 包含 A 和 B 的所有字符以及 A 和 B 的顺序,则称 C 是 A 和 B 的交织保留单个字符串的所有字符。
问题并不难,但必须在 90 分钟内尝试。
入围第二轮的 8/61 学生。
第二轮 – 技术问题,编码问题和人力资源轮一起
自我介绍。
分享一些在大学的美好经历。
技术问题
1. 给定一个基地址为 4000 的数组,数组的大小为 arr[20][20]。确定索引arr[3][4]的地址。
2. printf 的函数原型。
3. malloc 是怎么用的,用在什么地方。还要告诉malloc的返回类型,以及为什么需要type cast malloc的返回类型。用例子解释一下?
4. 如果我们取一个 void*p 和 int*q,我们写 q=p。那么 C 和 C++ 中的输出将是什么。
5. 在哪些条件下调用您的复制构造函数。提及所有可能的条件。
6. 早绑定和晚绑定有什么区别。
7.问了一个关于对象切片概念的问题。
8. 问一个关于后期绑定概念的问题。
9.什么是VPTR和V-Table。 V-Table 实际存在的位置,以及它是否对每个类不同或在所有类之间共享。 VPTR 位于何处?
10.类的大小会随着使用虚拟指针而增加。如果是,请解释其背后的原因。
11. 纯虚函数及其在示例的帮助下的实现。
现在切换到一些编码问题
Q-1 你有一个包含数据、下一个指针和随机指针的链表。数据可能包含重复值。现在将整个信息存储在除链表之外的任何新数据结构中并返回该结构,以便其他用户可以借助使用的新数据结构中的数据制作相同的链表。
假设链表是
2 –> 3 –> -3 –> 4 –> 5 –> -3
现在 2 的随机指针指向第一个 -3,而 3 的随机指针指向第二个 -3 等等……
Q-2 在 O(n) 中分离 R、G、B 标志并使用一个变量。
例如:- RRGBRRBGGR
输出应为:RRRRRGGGBB
Q-3 借助哪种数据结构,您可以为不同类别的轮车(2 轮车、4 轮车、6 轮车)实现停车系统。
最后
为什么要加入摩根士丹利?
一轮面试的总持续时间约为1个半小时。