📜  Reve系统面试经验 |设置 2

📅  最后修改于: 2022-05-13 01:58:39.081000             🧑  作者: Mango

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分钟)

  1. 说说你自己。
  2. 求空间复杂度-O(1) 和时间复杂度-O(n) 中数组所有元素的频率。
  3. 他让我解释书面回合的Q.6和Q.8。
  4. 什么是模板以及如何创建模板。
  5. 差异黑白模板和方法重载。
  6. 什么是指针,什么是 const 指针及其类型。
  7. 如何更改 const 变量的值
  8. 问我关于项目(学术+暑期)。

然后他们问了一些人力资源问题-

1) 告诉我你的家庭背景。

2)我们为什么要雇用你。

最终结果是在 5 天后出来的,在 6 人中,只有 2 名学生被选中,我是其中之一。