Cadence 软件面试体验
我是 NSIT 的学生,最后一年(ICE)。这是我的Cadence面试经历。
第1轮:
关于虚函数的问题,用虚函数计算类的大小。
实现重载的方法。不能超载的东西有哪些。
给定具有一个唯一元素的重复整数的递增排序列表。在 lg(n) 中找到该元素。
例如 1 1 3 3 5 5 7 8 8 应该返回 7
new 与 malloc,我们是否像使用 malloc() 一样使用 new[] 检查空指针?如果不是,那为什么?
第 2 轮:
如何动态分配二维矩阵。
具有 int 和整数指针作为其数据成员的类,为该类编写复制构造函数。
浅拷贝和深拷贝
二叉树的高度和直径。
过河与 4 人拼图。
第三轮:
输入输出问题:
int x = 3, y = 4;
if (x++ == 3 || ++y == 4) {
cout << x << y << endl;
}
cout << x << y << endl;
int u = 3, v = 4;
if (u++ == 3 && ++v == 4) {
cout << u << v << endl;
}
cout << u << v << endl;
类填充和结构填充。
空类和虚函数的大小。
计算没有 sizeof()函数的 Class 对象的大小。
AND,OR,来自 NAND 的门。
第四轮:
锁存器和触发器之间的区别。
设计一个 3 位计数器,读取:1 -> 3 -> 5 -> 7 -> 1...
在没有额外空间的情况下找到 BST 中的第 K 个最大元素,甚至不是大小为 k 的堆。
给定两个大小为 m 和 n 且按排序顺序排列的数组,返回一个包含两个数组中公共元素的列表。
反转字符串中的单词。