In recent years, India has become synonymous with tech innovation. To make the most of this burgeoning potential, global firms are ramping up their recruitment plans, aiming to hire 200,000 employees from the country by the end of 2022-23. If you are one of the lot and have an interview scheduled, peek into these questions below
C/C++
Define local block.
A local block is any part of a C program enclosed between the left brace ({) and the right brace (}). For example, a (switch) statement can also contain braces – that specific portion would be considered a local block.
Should variables be stored in local blocks?
Using local blocks for storing variables is unusual and should be avoided, with only rare exceptions. One of these exceptions is for debugging purposes when you want to declare a local example of a global variable to test within a function. On the other hand, you should also use a local block to make your program more readable in the current context.
Sometimes having the variable declared closer to where it is used makes your program more readable. However, well-written programs usually do not have to resort to declaring variables in this manner, and you should refrain from using local blocks.
What are ivalue and rvalue?
ivalue: An expression that may appear as either the left-hand or right-hand side of an assignment.
rvalue: An expression that can be assigned to an ivalue. The rvalue appears on the right side of an assignment statement.
Data Structure
What pointer type should be used while using C language to implement the heterogeneous linked list?
The heterogeneous linked list is made of several data types in its nodes, and a link pointer is needed to connect them. Using ordinary pointers, in this case, is not possible. Hence, void pointers capable of storing a pointer to any type as a generic pointer type are opted for.
What data structures are used to perform recursion?
Stack. Due to its LIFO (Last In First Out) property, it remembers the ‘caller’ so it knows whom to return when the function has to return. Recursion uses a system stack to store the function calls’ return addresses.
Every recursive function has its equivalent non-recursive function. Even when such procedures are written, an explicit stack is to be used.
Areas where data structures are applied extensively.
- Compiler Design
- Operating System
- Database Management System
- Statistical Analysis Package
- Numerical Analysis
- Graphics
- Artificial Intelligence
- Simulation
Java
Define transient variables.
A transient variable is a special variable created by using the transient keyword. It may have a non-serialized value at the time of serialisation. It is initialised by default during deserialization.
Why do threads block on I/O?
Threads block (or enter the waiting state) on I/O so other threads can execute while the operation is performed.
What is synchronisation, and why is it important?
Synchronisation is controlling the access of multiple threads to shared resources. Without synchronisation, one thread can modify a shared object while another uses or updates that object’s value. This often leads to significant errors.
SQL Server
Define Relational Database Management Systems.
Relational Database Management Systems (RDBMS) are database systems that maintain data in tables. Relationships may be created and maintained across as well as among the tables and data.
In an RDBMS, relationships between data items are expressed through tables. Associations among these tables are expressed via data values instead of pointers allowing a high degree of data independence. In addition, a relational database can reunify the items from different files, providing dynamic data usage tools.
Define normalisation.
Normalisation is a design and organisation process applied to data structures to minimise redundancy based on rules that help build relational databases.
It usually divides a database into two or more tables and defines their relationships. The objective is to separate data so that a field’s additions, deletions, and modifications can be done in just one table and propagated through the rest of the defined relationships database.
What is Denormalization?
The process of attempting to optimise the database performance by adding redundant data is denormalization. At times it is necessary because current DBMSs poorly integrate relational models.
A true RDBMS would allow for a complete normalised database at the logical level for high performance. Denormalization is a method to move from higher to lower normal forms of database modelling to speed up database access.