Reve系统面试经验 |设置 2
第 1 轮:笔试 – 90 分钟
它包括 15 个问题,主要来自主题 OOP 概念、编码问题(链表、二叉树、数组操作)和指针。
Q.1)给定一个二叉搜索树和一个给定的关键节点。打印从根到最近的包含关键节点的叶节点的所有节点。
4
/ \
2 6
\ / \
3 5 7
\
8
key node = 6
Output = 4 6 5
Q.2) 编写一个程序来反转单链表
例子:
最初 – 1->2->3->4->5
最后——5->4->3->2->1
Q.3) 找到以下代码的输出:
int main()
{
int i=(4==4,5,6);
int j= 8>>3&9;
int d=i+j++*2;
cout<
Q.4) 找到以下代码的输出:
int fib(int n)
{
if (n<=1)
return 1;
return 3*fib(n-1)+2*fib(n-2)+1*fib(n-3);
}
int main()
{
cout<
Q.5) 编写一个程序来查找给定数字的阶乘的尾随零。
例子:
n = 12
输出 = 2
Q.6) 找到以下输出:
class Base
{
Public:
Base(){cout<<"Base Constructor"<
Q.7) 找到以下输出:
struct struct
{
double a;
int b;
int c;
};
union union
{
double a;
int b;
int c;
}
int main
{
struct s;
union u;
cout<
假设成员变量 a,b,c 的大小分别为 6,4,4。
Q.8) 找到以下输出:
int main()
{
char *ptr[] = {"india", "is", "a",
"good", "country"};
char **ptr1[] = {s+3, s+4, s+1};
char ***ptr2;
ptr2 = ptr;
cout << *(*ptr1)<<" "
<<***ptr2;
return 0;
}
Q.9) 编写一个程序来找到一个数组的连续子数组的最大和。
例子:
7
3 4 -5 9 4 -12 2
输出 - 15
Q.10) 找到以下代码的输出:
class Animal()
{
public:
virtual void eat()=0;
virtual void sleep()=0;
}
class Cat : Public Animal
{
public:
void eat()
{
cout<<"cat eat food"<
输出 - 编译时错误
Q.11) 编写一个程序,从字符流中找出第一个不重复的字符。
Q.12) 编写一个程序,将给定数组中的所有零元素放在非零元素之前
例子:
2 0 3 4 0 0 1 0
输出 – 0 0 0 0 2 3 4 1
来自 Multi-threading 的 1 个问题和其他 2 个问题是 code-snippet ,我忘记了。
注意 – 尝试以最小的时间和空间复杂度解决所有编码问题。
同一天晚上,结果出来了,54名学生中共有6名被选中进入下一轮。幸运的是,我是其中之一
第二轮:技术+HR面试(约45分钟)
- 说说你自己。
- 求空间复杂度-O(1) 和时间复杂度-O(n) 中数组所有元素的频率。
- 他让我解释书面回合的Q.6和Q.8。
- 什么是模板以及如何创建模板。
- 差异黑白模板和方法重载。
- 什么是指针,什么是 const 指针及其类型。
- 如何更改 const 变量的值
- 问我关于项目(学术+暑期)。
然后他们问了一些人力资源问题-
1) 告诉我你的家庭背景。
2)我们为什么要雇用你。
最终结果是在 5 天后出来的,在 6 人中,只有 2 名学生被选中,我是其中之一。