Teradata 面试经历 |设置 5(校内)
Teradata 于 2016 年 7 月 18 日访问了我们的校园。
他们聘请了两个配置文件:开发人员和测试人员。我被列入开发者资料的候选名单。
安置议程包括以下几轮:
- 笔试
- 技术回合 – I
- 技术回合 – II
- 人力资源轮
在本文的其余部分,我将向您展示每一轮的完整细节。
笔试:20 次 MCQ - 45 分钟(无负面评分)
- 操作系统中基于调度的问题。问题中提到的调度算法是最短剩余时间优先算法。我们必须计算 CPU 空闲时间的百分比(问题的额外复杂性是提到的进程除了 CPU 请求之外还有 I/O 请求)
- 预测以下程序的输出:
char*gxxx() { static char xxx[1000]; return xxx; } main(){ char*g ="string"; strcpy(gxxx(),g); g = gxxx(); strcpy(g,"oldstring"); printf("g : %s", g); }
- BubbleSort 上的两个程序询问在算法执行期间执行的交换次数。 (在一个问题中,我们有一个样本数组,在另一个问题中,我们有一个大小为“n”的数组,表示一般情况)。
- 给出了一个有问题的程序。我们必须预测程序的作用。 (有问题的程序是二分搜索的迭代实现)。
- 给定一棵二叉树,你应该按照什么顺序遍历,以便我们可以生成它的镜像。
- 您使用什么数据结构以迭代方式实现递归算法。
- 给定一个具有“n”个节点和“e”条边的图,图中所有节点的度数之和是多少。 (用'n'(和/或)'e'来表达)
- 关于计算机体系结构的一些问题,其中询问了汇编程序如何实现 if 语句
- 调试器需要操作系统提供什么才能执行其功能。选项包括:调试信息、进程只读空间的写入权限等。
- 给定二叉树的后序遍历,求它的前序遍历。
- const char *p 和 char const *p 之间的区别(我们必须从选项列表中进行选择)。
- 假设您每次都分配固定大小的节点,操作系统分配内存的最佳分区位置方法是什么(最佳拟合、最差拟合、第一次拟合、下一次拟合)
void q(int i){ if(i >1){ q(i/2); q(i/2); } cout <<"*"; }
上述程序为调用 q(5) 打印了多少颗星?
技术面试——我
- 面试从讨论我的简历、实习经历和本科期间做过的项目开始。
- 我之前曾在一家初创公司实习过 Android 开发人员,所以面试开始询问有关它的问题。
- 有一个服务器将返回以随机顺序填充在用户屏幕中的食物列表。现在假设用户想要添加一个过滤器选项,以便根据某些标准对它们进行排序。你将如何设计它?在考虑了一下之后,我告诉了维护一个链表,因为项目的数量不是恒定的。此外,使用动态数组将毫无用处,因为我们不知道 API 调用之前的大小,而且与链表相比,数组的重新分配和数组之间的插入成本会很高。在讨论了这个问题之后,最后,问题归结为实现一个 sortedInsert()函数,该函数将列表的头节点和要插入的节点(以排序方式)作为参数。
面试官对链表的节点结构加了一个额外的约束。假设节点结构中存在许多字段,例如:食品的价格、受欢迎程度等,您将如何扩展您的方法,以便您可以将所有内容合并到同一个函数中。我调整了该方法的实现,以便我们可以调用单独的比较函数而不是比较链接列表中的数据值,这样我们可以结合用户的其他需求,例如:基于价格的过滤器和基于流行度的过滤器食品项目。 - 下一个问题是关于添加由链表表示的 2 个数字。 (给定数字的最高有效数字是列表的头部。)
最后,关于 Trie 数据结构的问题很少。它是如何实施的?在 Trie 中插入一个单词。你怎样才能使它更节省空间?复杂性等
技术面试 – II(整个面试完全基于 C)
- 关于函数指针和一些高级指针算法的问题
- 以下陈述之间的区别和相同的讨论
chara[]="hello";// stored as an array terminated with '\0' char*b ="world";// the string is stored in read only memory
- 在不使用临时变量的情况下交换 C 中的字符串。如何使用 XOR运算符进行交换?
- C中的序列点
- strcpy() 库函数的工作和实现
人力资源回合
有两个面试官。这更像是一次对话,而不是一对一的 QA 会议。尽管与之前的采访相比,它很长,但它是一次极好的体验。
- 说说你自己?
- 关于我在简历中提到的事情的一般问题。
- 过去的学者(中级和第 10 级)。
- 实习讨论。
- 你引以为豪的一项成就是什么?
- 您想开发客户产品或您自己想法的产品吗?
- 你喜欢维护代码库还是从头开始编写全新的代码?
- 如果您在 Teradata 从事维护工作或测试工作,该怎么办?
- 你对公司有什么期望?
- 你认为什么是工作满意度?
- 您可以在 Teradata 工作多少年?债券讨论。你会工作 5 年,还是会在债券到期后离开?
- 你未来的目标是什么?进一步的学术或工作?
- 与井字游戏有关的一个逻辑问题。您将获得一个井字游戏矩阵,其中填充了某些 X 和 O。你必须确定谁是赢家。采取任何不是蛮力的方法。如何减少比较次数?
最终判决
您需要对 C 编程语言有充分的了解。
- 如果您练习 GeeksforGeeks 中有关数据结构和算法的问题,那么您就可以开始了。
- 为了通过第一轮,操作系统概念也是必要的。
- 面试时保持冷静和放松。面试官其实很友好。
- 最重要的是,对自己有信心。祝一切顺利。
如果您喜欢 GeeksforGeeks 并愿意做出贡献,您还可以撰写文章并将您的文章邮寄至 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。