Zensar recruits candidates for Junior Software Engineer and Software Test Engineer roles through multiple channels. The selection flow generally includes:
Zensar selects candidates through three main routes:
Currently, freshers are typically hired for:
To apply at Zensar, candidates must meet the following criteria:
Elimination rate: 60%+
For Off-Campus and Referral drives, resumes are filtered using an ATS (Applicant Tracking System) that scores and shortlists candidates.
On-Campus applicants who meet eligibility criteria usually skip this step.
Elimination rate: 65%+
The test is conducted on HirePro and may follow one of two patterns:
Elimination rate: 70%+
The GD round is conducted only when necessary:
Topics generally revolve around current affairs and recent technological trends, lasting 15–20 minutes.
Elimination rate: 80%+
This round evaluates a candidate’s technical capabilities. It may last up to an hour and includes:
Most service-based companies, including Zensar, typically conduct one main technical interview.
Elimination rate: 95%+
The final round focuses on personality and cultural fit. Sometimes merged with the technical interview. Questions typically cover:
Do you have any technical certifications?
What is the extent of your technical expertise?
What do you do to improve your technical skills?
Mention methods like :-
Give an example of how you apply your technical knowledge in a practical way?
What was the recent technical project you worked on? What were your key responsibilities?
What is the production deployment process you follow?
What do you like most about the IT industry? What do you enjoy the least about it?
Why is a solution design document important?
Whenever you solve a problem, who do you keep in mind? The end-user, the business, or yourself, and why?
How many programming languages do you know?
What is the use of printf() and scanf() functions?
What is the static variable? What is its use?
A variable which is declared static, is known as a static variable. These variables are able to retain its value between multiple function calls.
Syntax:
static int y=10;//static variable
Static variables are used because these variables can be accessed from anywhere in the program.
Static variables are used as common values and are shared by all the methods.
What is the difference between call by value and call by reference in C?
What is Recursion in C?
Recursion is the process where a function calls itself. This function is known as a recursive function. There are 2 phases of recursion:-
What is a pointer in C? What are its uses?
A pointer is a variable referring to the address of a value. When a variable is declared inside a program, the system allocates some memory to it. This memory contains an address number. The variables that hold this address number are called pointer variables.
Syntax: Data_type *p;
P is a pointer variable holding the address number of data_type value.
Uses of Pointer:-
Pointers are used in accessing elements through an array. Pointers are used to pass a reference of a variable to another function.
What is a NULL pointer and far pointer?
What is a dangling pointer? How is it overcome?
Dangling pointer is a problem that arises when an object is deleted without modifying the value of the pointer. Thus the pointer is now pointing to a deallocated memory.
In other words, if a pointer say A is pointing to a memory location, but another pointer B deletes the memory occupied by A while A is still pointing to that location, A becomes a dangling pointer.
What is an infinite loop?
A loop running continuously for an indefinite number of times is called the infinite loop.
What is a command line argument?
The argument passed to the main() function while executing the program is known as a command line argument.
Can we compile a program without the main() function?
We can compile a program without the main() function, however the program won’t be executed. However adding #define, we can compile and run the program without using the main() function.
What is an object and class?
What do you mean by JVM, JDK and JRE?
How can you restrict inheritance?
By the following methods:
What are static methods and static variables?
They are methods and variables shared by all the objects in a class. Their static nature comes from the class and not from the object itself.
What is enumeration?
It is an interface you can use to access original data structure.
What is the use of ‘this’ keyword in JAVA?
‘this’ keyword is used to refer to a current object, to invoke the current class method or class constructor.
It is also used to pass on as an argument into methods or constructors.
What is the final variable?
In Java, the final variable is used to restrict the users from updating the variable. The final variable once assigned can not be changed after that.
Why is JAVA platform independent?
Java is platform independent because of its byte codes which can run on any system regardless of its operating systems.
What are access modifiers in Java?
Access modifiers are special keywords that can restrict the access of a class, constructor, data member and method in another class. They are of 4 types:-
What is method overloading?
It is a polymorphism technique that allows us to create multiple methods with the same name but different signatures.
What is interpreted language?
An interpreted language executes its statements line by line. Interpreted language codes can run directly from the source code with no intermediary compilation step.
What are lists and tuples?
Lists and tuples are sequence data types. The objects stored in both the sequences can have different data types.
What is pass in Python?
Pass keyword represents a null operation in python. Used for the purpose of filling up empty block code which may execute during runtime, but are yet to be written
What is self in Python?
Self is a keyword that defines an instance of an object of a class. It is explicitly used as the first parameter.
What is slicing in Python?
Slicing is used to break up a list or tuple.
Syntax:
[start:stop:step]
What is the use of break statement?
What is an operator in Python?
Operator is a symbol, which is used on some values and produces an output as a result. Operator works on operands.
Operators are of unary, binary or ternary types depending on the number of operands required.
They include:-
What is swapcase() function in Python?
What is the Python decorator?
It is a powerful tool that allows you to add functionality in an existing code. It is also known as meta-programming.
What is the difference between Python Arrays and lists?
What is DBMS?
DBMS stands for Database Management System. It carries out operations like creation, maintenance and use of a database.
What are tables, fields and record?
What is Foreign Key?
Foreign Key is a key which links 2 tables.
It is a field or a collection of fields in a table that corresponds to the Primary Key of another table.
What is the difference between DELETE and TRUNCATE?
What is a constraint?
Constraints are limitations on the data type of a given table. Samples of constraints are:
What is ACID property in a database?
What is SQL?
SQL stands for Structured Query Language and is used to communicate with the Database. It is a standard language for accessing and manipulating databases.
What is a unique key?
What is a relationship and what are they?
Relationship is the interconnection of tables within the database. There are various relationships,
What is a query?
A query is really a request for data. A DB query is a code written in order to get the information back from the database. You ask the database for something and it answers in the best way it knows with data as a result of a query.
What is Machine Learning?
Machine Learning is the science of getting computers to act in a real-time situation without being programmed explicitly. It is an application of AI and it enables systems to learn automatically and to improve from previous experience.
What is Supervised, Unsupervised and Semi-Supervised learning?
What are training set and test set in Machine Learning and why are they important?
Explain the stages of building a Machine Learning model.
How does IoT work?
Iot is built on the concept of AI. An IoT device has a sensor which collects data, the cloud facilitates the network between the devices, the software processes and stores the data and finally the UI enables the device to respond to the stimulation.
What is Natural Language Processing?
Natural language processing is a branch of Artificial Intelligence that deals with the conversion of Human Language to Machine Understandable language, so it can be processed by Machine Learning models.
What is IIOT?
IIOT(Industrial Internet of Things) are large scale IoT structures or systems that are used at the industrial level.
What is Deep Learning?
Deep Learning is a subset of machine learning. It is a neural network with multiple layers, which creates a stimulation of the human brain, allowing the model to lean from large amounts of data.
What is Arduino?
It is an open source electronics platform based on easy-to-use hardware and software. Arduino boards can read input and turn it into an output.
What is Neural Network?
Neural Network is a replication of the firing of neurons in our brain, which facilitates learning, although on a less complex scale.
What do you mean by Open-source Hardware?
What is Raspberry Pi?
Raspberry Pi is a microcomputer that can be connected to a peripheral device. We can execute a number of tasks in a Raspberry Pi including, creating spreadsheets, coding, games etc.
How is Raspberry Pi used in IoT?
Raspberry Pi is a platform to develop many IoT based applications. IoT requires a network of devices and software to connect and exchange data. Raspberry Pi can provide this platform for it.
List any two real-life applications of Natural language processing.
What is Ethical Hacking?
Ethical Hacking is when a person is allowed to hack the system with the permission of the owner to find any bug in the system and to fix it.
What is the difference between IP and MAC address?
Explain LAN
LAN or Local Area Network is used to connect devices such that they are able to share resources and exchange information. LAN is of two types, wireless LAN and wired LAN.
What is VPN?
VPN or Virtual Private Network is a private Wide Area Network built on the Internet. It allows the creation of a secured tunnel between different networks using the internet. VPN allows a client to connect to a network remotely.
What are Private and Special IP addresses?
What is DNS?
DNS is the Domain Name System. It basically translates the domain name of their corresponding IPs. It uses port 53 by default.
What is the main purpose of an OS? What are the different types of OS?
The function of an OS is to execute user programs and make it easier for the users to interact with the system. It is designed to ensure that the system performs better by managing all computational activities.
Types of OS:
Explanation:
A process has its own memory space; a thread shares memory within the same process. Threads are lightweight; processes are heavier.
Explanation:
Deadlock occurs when 4 conditions hold simultaneously: Mutual exclusion, Hold and wait, No preemption, Circular wait.
Prevention breaks at least one of these conditions.
Explanation:
Abstract class → can have concrete + abstract methods.
Interface → only abstract methods (in older versions), supports multiple inheritance.
Explanation:
Compile-time → method overloading.
Runtime → method overriding via dynamic binding.
Explanation:
Atomicity, Consistency, Isolation, Durability → ensures reliable transactions.
Explanation:
Indexes speed up SELECT but require updates on INSERT, causing overhead.
Explanation:
PK → no nulls + unique.
Unique Key → allows one null (depends on DB engine).
Explanation:
Removes redundancy and anomalies (update, delete, insert).
Explanation:
INNER, LEFT, RIGHT, FULL OUTER joins combine rows based on conditions.
Explanation:
TCP → reliable, connection-oriented.
UDP → faster, connectionless, no acknowledgment.
Explanation:
DNS resolution → TCP handshake → HTTP request → server processing → response → rendering.
Explanation:
Threads run in parallel; synchronization prevents race conditions.
Explanation:
If unbalanced, becomes a linked list → O(n) search.
Explanation:
Using chaining (linked lists) or trees (balanced BST) when large.
Explanation:
Best/Average: O(n log n)
Worst: O(n²) (when pivot selection poor)
Explanation:
Breaks down problems into overlapping subproblems, stores solutions.
Example: Fibonacci, knapsack.
Explanation:
Microservices → independent deployment, scalable.
Monolithic → tightly coupled, single deployable unit.
Explanation:
Uses HTTP methods, stateless architecture, resource-based URLs.
Explanation:
Automatically removes unused objects to free memory; uses mark-and-sweep.
Explanation:
Reusable solutions to common problems.
Singleton ensures only one instance of class exists.
Explanation:
Output depends on execution order of threads → requires locks/ synchronization.
Explanation:
Uses disk as extension of RAM → paging → avoids memory overflow.
Explanation:
Paging → divides memory into fixed blocks.
Segmentation → divides into logical variable-size segments.
Explanation:
Ensures referential integrity between tables.
Explanation:
Precompiled SQL code → faster, secure, reusable.
Explanation:
IaaS → infrastructure
PaaS → platform for developers
SaaS → ready software for users
Explanation:
Compiler → translates entire program.
Interpreter → executes line by line.
Explanation:
Single entry point that handles routing, authentication, load balancing.
Explanation:
Distributed systems can only guarantee two:
Consistency, Availability, Partition Tolerance.
Explanation:
Used to manage runtime errors and keep program from crashing ungracefully.
Coding Question: Maximum Number of Handshakes
In this task, you are required to write a program to calculate the maximum number of handshakes in a meeting. The user will input the number of people (integer n) present in the meeting. Your program should then determine the possible number of handshakes that can occur after everyone is settled.
Write a program that takes an integer input n representing the number of people in a meeting and outputs the maximum number of handshakes possible.
In this task, you are required to write a program that checks whether a given positive integer can be expressed as the sum of two prime numbers. The user will input a positive integer, and your program should determine whether it can be expressed as the sum of two prime numbers.
Write a program that takes a positive integer as input and outputs whether it can be expressed as the sum of two prime numbers. If it is possible, print a message indicating that the integer can be expressed as the sum of two prime numbers.
In this task, you are required to write a program that finds the occurrence of a specific digit in a given number. The user will input an integer, and your program should determine the occurrence count of a digit specified by the user.
Write a program that takes an integer as input and a digit to search for. The program should output the count of occurrences of the specified digit in the given number. If the digit does not occur, the program should output 0.
In this task, you are required to write a program to find the Nth row of Pascal’s Triangle. Pascal’s Triangle is a mathematical construct where each number is the sum of the two directly above it. The user will input a non-negative integer representing the row number (zero-based index), and your program should output the corresponding row of Pascal’s Triangle.
Write a program that takes a non-negative integer as input and outputs the Nth row of Pascal’s Triangle.
In this task, you are required to write a program that calculates the factorial of a given number using recursion. The user will input a non-negative integer, and your program should use recursion to find and print the factorial of that number.
Write a program that takes a non-negative integer as input and calculates its factorial using recursion.
In this task, you are required to write a program to sort the elements in an array based on their frequency in descending order. The user will input an array of elements, and your program should sort the elements based on their frequency, with higher frequency elements appearing first.
Write a program that takes an array of elements as input and sorts them in descending order of their frequency.
In this task, you are required to write a program that finds the repeating elements in an array. The user will input an array of elements, and your program should identify and print the elements that occur more than once.
Write a program that takes an array of elements as input and outputs the repeating elements in the array.
In this task, you are required to write a program that removes duplicate elements from an array. The user will input an array of elements, and your program should output the array after removing the duplicate elements.
Write a program that takes an array of elements as input and outputs the array after removing duplicates.
In this task, you are required to write a program that calculates the maximum scalar product (dot product) of two arrays. The user will input two arrays, and your program should find and print the maximum scalar product of the two arrays.
Write a program that takes two arrays as input and calculates their maximum scalar product.
In this task, you are required to write a program that determines whether one array is a subset of another array. The user will input two arrays, and your program should check if all the elements of the second array are present in the first array.
Write a program that takes two arrays as input and checks if the second array is a subset of the first array.
In this task, you are required to write a program that replaces each element in an array with its corresponding rank. The user will input an array of elements, and your program should replace each element with its rank. The rank is determined by the order of elements, with the minimum element having the highest rank.
Write a program that takes an array of elements as input and replaces each element with its rank.
In this task, you are required to write a program that performs both left and right rotations on an array. The user will input an array of elements and the number of positions to rotate. Your program should then rotate the array to the left and right by the specified number of positions.
Write a program that takes an array of elements and the number of positions to rotate as input, and outputs the array after both left and right rotations.
In this task, you are required to write a program that rotates an array using the Juggling Algorithm. The user will input an array of elements and the number of positions to rotate. Your program should use the Juggling Algorithm to rotate the array by the specified number of positions.
Write a program that takes an array of elements and the number of positions to rotate as input, and outputs the array after rotation using the Juggling Algorithm.
In this task, you are required to write a program that counts the sum of numbers in a given string. The user will input a string, and your program should iterate through each character of the string, identifying numeric values and calculating their sum.
Write a program that takes a string as input and outputs the sum of the numbers present in the string.
In this task, you are required to write a program that checks whether two strings are anagrams or not. Two strings are considered anagrams if they contain the same characters, only the order of characters is different. To determine this, your program should count the frequencies of each letter in both strings and check if the frequencies match.
Write a program that takes two strings as input and outputs whether they are anagrams or not.
In this task, you are required to write a program that replaces a particular word in a given string with another word. The user will input a string and two words: the word to be replaced and the word to replace it. Your program should then replace all occurrences of the specified word in the string with the new word.
Write a program that takes a string and two words as input, and outputs the string after the replacement.
In this task, you are required to write a program that finds the maximum profit by buying and selling a share at most twice. The user will input an array representing the prices of the share on different days. Your program should maximize the profit by making at most two transactions, where the second transaction can only start after the first transaction is completed (Buy->Sell->Buy->Sell).
Write a program that takes an array of share prices as input and outputs the maximum profit that can be obtained with at most two transactions.
In this task, you are required to write a program that finds the smallest subarray with a sum greater than a given value. The user will input an array of integers and a target sum value. Your program should determine whether there exists a subarray whose sum is greater than the given value. If such a subarray is present, your program should print true, otherwise, print false.
Write a program that takes an array of integers and a target sum as input, and outputs whether there exists a subarray with a sum greater than the given value.
In this task, you are required to write a program that finds the median of two sorted arrays of equal size. The user will input two arrays (arr1[] and arr2[]) of the same size n. Your program should merge these arrays and calculate the median.
Write a program that takes two sorted arrays of the same size as input and outputs the median of the merged array.
In this task, you are required to write a program that finds the maximum value of mat(c, d) – mat(a, b) over all choices of indexes in an n x n matrix mat[n][n], where c > a and d > b. The user will input the matrix of integers.
Write a program that takes an n x n matrix as input and outputs the maximum value of mat(c, d) – mat(a, b) over all valid choices of indexes.
Write a program to perform insertion at the beginning of the singly linked list.
Write a program to perform deletion from the beginning of the singly linked list
Write a program that reverses the linked list by creating a vector, storing the elements of the linked list, and then changing the linked list node data by iterating through the vector in reverse.
Write a program that explores and implements different methods for inserting nodes in the middle of a singly linked list in C.
Write a program that reverses subgroups of nodes in the linked list according to a user-given size.
Write a program that explores and implements different methods for inserting a node at a given position in a singly linked list
Write a program that allows users to input a new node into the doubly linked list at a specified position according to their demand, considering the position and node data. Explore and implement different methods for achieving this in the C language.
Write a program that covers all possible scenarios for insertion and deletion at various positions within a doubly linked list. Consider insertion and deletion at the beginning, end, and at arbitrary positions to provide a thorough understanding of these operations.
Write a program in the C language to perform insertion at the beginning of a circular linked list, covering both scenarios of an empty list and an already existing list.
Write a program in the C language to perform insertion in the middle of a circular linked list. Consider different scenarios, such as inserting in an empty list or at various positions in an already existing list.