REVE Systems 面试经历 |设置 1(校园内)
该过程包括三轮:
第一轮:笔试(90 分钟)
第二轮:技术面试
第三轮:人力资源面试
第 1 轮:笔试(90 分钟)
有一组 15 个问题。问题如下:
Qn-1:编写一个程序来检查给定的树是否是对称结构。例子:
5
/ \
6 7
\ /
8 9
Symmetric
5
/ \
6 7
\ \
8 9
Not Symmetric
Qn-2:编写一个函数从链表中删除一个节点。
Qn-3:找到代码的输出并解释。
#include
int main()
{
char c = 125;
c = c+ 10;
printf("%d", c);
return 0;
}
Qn-4:编写一个 C函数将 IPv4 地址(字符串格式)转换为无符号整数。还要写问题测试用例。
Qn-5:编写一个有效的代码片段(仅限函数),以从给定的输入数组中实现以下输出数组。即用其右侧的最大元素替换每个数组元素。复杂度的顺序不应超过 O(n) 。
例子:
Input: 34 13 45 7 9
Output: 45 45 9 9 -1
Qn-6:解释小端和大端机器。如果给定代码在两台不同的机器上运行(一台是小端,另一台是大端),给定代码的输出将是什么
#include
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6};
char *ptr = (char *)arr;
printf("fifth element of array = %d", ptr[4]);
return 0;
}
Qn-7:考虑以下数据库模式:
mysql> create table Personinfo
(
personid bigint(20) primary key,
name varchar(100),
mobilenumber bigint(20)
);
mysql> create table Studentinfo
(
studentid bigint(20) primary key,
personid bigint(20),
address varchar(200)
);
mysql> alter table Studentinfo add foreign key(personid) references Personinfo(personid) ;
现在,运行以下查询。输出是什么?
1. insert into Personinfo(1, 'Sachin', 8894421234);
2. insert into Studentinfo(1, 2, 'Mumbai');
Qn-8:给定程序的输出是什么?如有错误,请指出并解释。
#include
#include
#include
struct person
{
char name[64];
int age;
};
int allocate_person(struct person *me, int age)
{
me = malloc(sizeof(struct person));
if(me == NULL)
return 0;
me->age = age;
strcpy(me->name, "Dennis_Ritchi");
return 1;
}
int main()
{
struct person *me = NULL;
if(allocate_person(me, 25))
printf("Myage is = %d\n", me->age);
else
printf("Not able to find Age !!!\n");
return 0;
}
Qn-9:以下程序的输出是什么?
#include
using namespace std;
void main()
{
char *s[] = {"Reve", "Systems", "India", "Pvt", "Ltd"};
char **p[] = {s+3, s+4, s+1, s+2};
char ***ptr;
ptr = p;
cout << *(*p);
}
Qn-10:以下代码片段的输出是什么?
#include
using namespace std;
class Point
{
private:
int x, y;
public:
Point(int i = 0, int j = 0);
Point(const Point &t);
};
Point::Point(int i, int j)
{
x = i;
y = j;
cout << "Normal Constructor called\n";
}
Point::Point(const Point &t)
{
y = t.y;
cout << "Copy Constructor called\n";
}
int main()
{
Point *t1, *t2;
t1 = new Point(10, 15);
t2 = new Point(*t1);
Point t3 = *t1;
Point t4;
t4 = t3;
return 0;
}
Qn-11:给你一个 n-1 个整数的列表,这些整数在 1 到 n 的范围内。列表中没有重复项。列表中缺少其中一个整数。编写一个有效的代码来查找丢失的整数。
Qn-12:以下代码片段的输出是什么?解释其背后的逻辑。
class Test1
{
int x = 10;
public static void main(String[] args)
{
System.out.println(x);
}
static
{
int y = 20;
System.out.print(x + " " + y);
}
}
Qn-13:以下代码的输出是什么并解释原因?
#include
#include
using namespace std;
class Base
{
public:
int num1, num2;
Base(int a, int b): num1(a), num2(b)()
virtual int sum()
{
return (num1 + num2);
}
};
class Derived:public Base
{
public:
int num3;
Derived(int a, int b, int c):Base(a, b), num3(c)()
virtual int sum(int num1, int num2)
{
return (num1 + num2 + num3);
}
};
int add_mem(Base p)
{
return p.sum();
}
int main()
{
Baseb(2, 3);
Derived d(4, 5, 6);
cout << "2 + 3 = " << add_mem(b) << endl;
cout << "4 + 5 + 6 = " << add_mem(d) << endl;
return 0;
}
Qn-14:如果一个网络有 85.13.210.64/28 子网。查找此子网中的 IP 地址数量,并查找可用的 IP 地址范围。
Qn-15:给你一个包含 n 个单词的段落,给你 m 个线程。你需要做的是,每个线程应该打印一个单词并将控制权交给下一个线程,这样每个线程都会保留一个单词,如果最后一个线程来了,它应该调用第一个线程。打印将重复,直到所有单词都打印在段落中。最后,所有线程都应该优雅地退出。用一个简单的伪代码演示你将如何解决这个问题。
到了晚上,结果出来了,共有 6 名学生被选为下一轮。幸运的是,我是其中之一🙂
第二轮:技术面试
约30分钟面试
Qn-1:说说你自己
Qn-2:实习说明
Qn-3:什么是虚函数,构造函数可以变成虚函数吗?
Qn-4:在运行时或编译时使用构造函数?
Qn-5:可以将构造函数设为私有。我们什么时候将构造函数设为私有。
Qn-6:编写代码来实现单例类。
Qn-7:如果给定指向该节点的指针并且没有指向该列表的其他指针(或开始指针)可用,如何删除单链表中的节点。
Qn-8:给定一个有序数组和一个变量(sum),求和时如何找出数组中哪一对元素等于变量(sum)。如果将元素列表而不是数组存储在 BST 中,您将如何解决该问题。
Qn-9:你用了多少种树遍历,中序遍历有什么好处。
Qn-10:如何检查二叉树是否为 BST。
Qn-11:你有什么问题要问我们吗?
技术面试结束后,他们在一个小时后公布了结果,最终选出了4名学生进入HR最后一轮。幸运的是,我是其中之一🙂
第三轮:人力资源面试
约45分钟面试
Qn:简单介绍一下你的生活,出生地,学校等等。
其他与搬迁、适应变化、工作生活平衡等有关的一般人力资源问题。这是一次非常友好的谈话。
最终结果在 5 天后出来,在 4 人中,只有 2 名学生被选中,我是其中之一 🙂 。
这次采访是我的朋友POOJA DASHOTTAR (IIEST, Shibpur) 的。这是 Pooja 建议所有学生和大三学生关注 GeeksForGeeks,因为这对她顺利通过面试有很大帮助。