Get free ebooK with 50 must do coding Question for Product Based Companies solved
Fill the details & get ebook over email
Thank You!
We have sent the Ebook on 50 Must Do Coding Questions for Product Based Companies Solved over your email. All the best!

Wipro Interview Experience

Last Updated on February 20, 2023 by Prepbytes

Wipro is a well-established Indian multinational corporation that provides consulting services. If you wish to work for Wipro, you must prepare for the interview rounds. Here we will provide you with interview experiences of some selected candidates and questions that are commonly asked by interviewers in Wipro. Before diving deeper, it’s important to understand why so many individuals want to work with the organisation.

Why Wipro?

Wipro is a multinational corporation that provides innovative digital transformation services, IT solutions, and consulting services to businesses across various industries. The company is committed to delivering high-quality services and adding value to its clients’ businesses by leveraging emerging technologies such as cloud, analytics, and artificial intelligence.

The company’s diverse and talented workforce is one of its biggest assets, and Wipro is committed to fostering a culture of inclusion, collaboration, and continuous learning. Wipro’s core values of integrity, respect, and teamwork are reflected in its approach to business and its relationships with its clients, employees, and communities.

Wipro Interview Experience

Wipro visited our campus for the NTH Drive. I’ll do my best to guide you through my Wipro interview experience for the drive.

Round 1 – Written Test

Round 1 consists of 4 sections, that are follows as:

Section 1 – Logical Ability
In this section, questions were majorly from the following topics:

  • Coding-Decoding
  • Blood Relations
  • Directions
  • Sequences of numbers
  • Clocks and Calendar
  • Deductive Reasoning
  • Critical Thinking

Section 2 – Quantitative Ability
In this section, questions were based on topics such as:

  • Time and speed
  • Ratio and Proportion
  • Percentage
  • Profit and Loss
  • HCF-LCM
  • Data Interpretation

Section 3 – Essay Writing
In this section, we were given 25 minutes to write an essay of about 250 words on a given topic. My topic was “role of artificial intelligence and machine learning in shaping the future of work”.

Section 4 – Coding
There were two questions in coding section.

  • Question 1 – Write code to find the intersection point of two linked list.
    Ans –

    #include <stdio.h>
    #include <stdlib.h>
    
    struct Node {
        int data;
        struct Node* next;
    };
    
    int getCount(struct Node* head);
    
    int _getIntesectionNode(int d, struct Node* head1, struct Node* head2);
    
    int getIntesectionNode(struct Node* head1, struct Node* head2)
    {
        int c1 = getCount(head1);
        int c2 = getCount(head2);
        int d;
    
        if (c1 > c2) {
            d = c1 - c2;
            return _getIntesectionNode(d, head1, head2);
        }
        else {
            d = c2 - c1;
            return _getIntesectionNode(d, head2, head1);
        }
    }
    
    int _getIntesectionNode(int d, struct Node* head1, struct Node* head2)
    {
        int i;
        struct Node* current1 = head1;
        struct Node* current2 = head2;
    
        for (i = 0; i < d; i++) {
            if (current1 == NULL) {
                return -1;
            }
            current1 = current1->next;
        }
    
        while (current1 != NULL && current2 != NULL) {
            if (current1 == current2)
                return current1->data;
            current1 = current1->next;
            current2 = current2->next;
        }
    
        return -1;
    }
    
    int getCount(struct Node* head)
    {
        struct Node* current = head;
        int count = 0;
    
        while (current != NULL) {
            count++;
            current = current->next;
        }
    
        return count;
    }
    
    int main()
    {
        struct Node* newNode;
        struct Node* head1 = (struct Node*)malloc(sizeof(struct Node));
        head1->data = 9;
    
        struct Node* head2 = (struct Node*)malloc(sizeof(struct Node));
        head2->data = 8;
    
        newNode = (struct Node*)malloc(sizeof(struct Node));
        newNode->data = 10;
        head2->next = newNode;
    
        newNode = (struct Node*)malloc(sizeof(struct Node));
        newNode->data = 5;
        head2->next->next = newNode;
    
        newNode = (struct Node*)malloc(sizeof(struct Node));
        newNode->data = 15;
        head1->next = newNode;
        head2->next->next->next = newNode;
    
        newNode = (struct Node*)malloc(sizeof(struct Node));
        newNode->data = 20;
        head1->next->next = newNode;
    
        head1->next->next->next = NULL;
    
        int res = getIntesectionNode(head1, head2);
        printf("%d",res);
        getchar();
    }
    #include <bits/stdc++.h>
    using namespace std;
    
    class Node {
    public:
        int data;
        Node* next;
    };
    
    int getCount(Node* head);
    
    int _getIntesectionNode(int d, Node* head1, Node* head2);
    
    int getIntesectionNode(Node* head1, Node* head2)
    {
        int c1 = getCount(head1);
        int c2 = getCount(head2);
        int d;
    
        if (c1 > c2) {
            d = c1 - c2;
            return _getIntesectionNode(d, head1, head2);
        }
        else {
            d = c2 - c1;
            return _getIntesectionNode(d, head2, head1);
        }
    }
    
    int _getIntesectionNode(int d, Node* head1, Node* head2)
    {
        Node* current1 = head1;
        Node* current2 = head2;
    
        for (int i = 0; i < d; i++) {
            if (current1 == NULL) {
                return -1;
            }
            current1 = current1->next;
        }
    
        while (current1 != NULL && current2 != NULL) {
            if (current1 == current2)
                return current1->data;
    
            current1 = current1->next;
            current2 = current2->next;
        }
    
        return -1;
    }
    
    int getCount(Node* head)
    {
        Node* current = head;
    
        int count = 0;
    
        while (current != NULL) {
            count++;
            current = current->next;
        }
        return count;
    }
    
    int main()
    {
        Node* newNode;
        Node* head1 = new Node();
        head1->data = 9;
    
        Node* head2 = new Node();
        head2->data = 8;
    
        newNode = new Node();
        newNode->data = 10;
        head2->next = newNode;
    
        newNode = new Node();
        newNode->data = 5;
        head2->next->next = newNode;
    
        newNode = new Node();
        newNode->data = 15;
        head1->next = newNode;
        head2->next->next->next = newNode;
    
        newNode = new Node();
        newNode->data = 20;
        head1->next->next = newNode;
    
        head1->next->next->next = NULL;
    
        cout << "The node of intersection is " << getIntesectionNode(head1, head2);
    }
    class LinkedList {
    
        static Node head1, head2;
    
        static class Node {
    
            int data;
            Node next;
    
            Node(int d)
            {
                data = d;
                next = null;
            }
        }
    
        int getNode()
        {
            int c1 = getCount(head1);
            int c2 = getCount(head2);
            int d;
    
            if (c1 > c2) {
                d = c1 - c2;
                return _getIntesectionNode(d, head1, head2);
            }
            else {
                d = c2 - c1;
                return _getIntesectionNode(d, head2, head1);
            }
        }
    
        int _getIntesectionNode(int d, Node node1, Node node2)
        {
            int i;
            Node current1 = node1;
            Node current2 = node2;
            for (i = 0; i < d; i++) {
                if (current1 == null) {
                    return -1;
                }
                current1 = current1.next;
            }
            while (current1 != null && current2 != null) {
                if (current1.data == current2.data) {
                    return current1.data;
                }
                current1 = current1.next;
                current2 = current2.next;
            }
    
            return -1;
        }
    
        int getCount(Node node)
        {
            Node current = node;
            int count = 0;
    
            while (current != null) {
                count++;
                current = current.next;
            }
    
            return count;
        }
    
        public static void main(String[] args)
        {
            LinkedList list = new LinkedList();
    
            list.head1 = new Node(8);
            list.head1.next = new Node(10);
            list.head1.next.next = new Node(5);
            list.head1.next.next.next = new Node(15);
            list.head1.next.next.next.next = new Node(20);
    
            list.head2 = new Node(9);
            list.head2.next = new Node(15);
            list.head2.next.next = new Node(20);
    
            System.out.println("The node of intersection is " + list.getNode());
        }
    }
  • Question 2 – Inplace rotate square matrix by 90 degree anti-clockwise
    Ans –

    #include <bits/stdc++.h>
    using namespace std;
    #define N 4
    
    void rotateMatrix(int mat[][N])
    { 
        for (int i = 0; i < N; i++)
            reverse(mat[i], mat[i] + N);
    
        for (int i = 0; i < N; i++) {
            for (int j = i; j < N; j++)
                swap(mat[i][j], mat[j][i]);
        }
    }
    
    void displayMatrix(int mat[N][N])
    {
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                cout << mat[i][j] << " ";
            }
            cout << endl;
        }
        cout << endl;
    }
    
    int main()
    {
        int mat[N][N]={{ 11, 12, 13, 14 },
                   { 15, 16, 17, 18 },
                   { 19, 20, 21, 22 },
                   { 23, 24, 25, 26 } };
    
        rotateMatrix(mat);
        displayMatrix(mat);
        return 0;
    }
    
    import java.io.*;
    
    class PrepBytes {
    
        static void Reverse(int i, int mat[][], int N)
        {
            int start = 0;
            int end = N - 1;
    
            while (start < end) {
                int temp = mat[i][start];
                mat[i][start] = mat[i][end];
                mat[i][end] = temp;
    
                start++;
                end--;
            }
        }
    
        static void rotateMatrix(int N, int mat[][])
        { 
            for (int i = 0; i < N; i++)
                Reverse(i, mat, N);
    
            for (int i = 0; i < N; i++) {
                for (int j = i; j < N; j++) {
                    int temp = mat[i][j];
                    mat[i][j] = mat[j][i];
                    mat[j][i] = temp;
                }
            }
        }
    
        static void displayMatrix(int N, int mat[][])
        {
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++)
                    System.out.print(" " + mat[i][j]);
    
                System.out.print("\n");
            }
            System.out.print("\n");
        }
    
        public static void main(String[] args)
        {
            int N = 4;
    
            int mat[][] = {{ 11, 12, 13, 14 },
                           { 15, 16, 17, 18 },
                           { 19, 20, 21, 22 },
                       { 23, 24, 25, 26 }};
            rotateMatrix(N, mat);
            displayMatrix(N, mat);
        }
    }
    def rotateMatrix(mat):
    
        for i in range(len(mat)):
            mat[i].reverse()
    
        for i in range(len(mat)):
            for j in range(i, len(mat)):
    
                mat[i][j], mat[j][i] = mat[j][i], mat[i][j]
    
    
    def displayMatrix(mat):
    
        for i in range(0, len(mat)):
            for j in range(0, len(mat)):
                print(mat[i][j], end=' ')
            print()
    
    
    if __name__ == "__main__":
        mat = [[11, 12, 13, 14],
               [15, 16, 17, 18],
               [19, 20, 21, 22],
               [23, 24, 25, 26]]
    
        rotateMatrix(mat)
    
        displayMatrix(mat)

Tips: For the first round, I recommend that you prepare using PrepBytes, you will undoubtedly crack round 1 with confidence, and it will help you in the same way that PrepBytes helped me in my preparation.

Round 2 – Technical Interview

After clearing the written test, I was shortlisted for the technical round. Interviewer was very friendly and the technical round went very smoothly. I have shared some interview questions which the interviewer asked me.

Q – 1 In C, what makes a macro faster than a function?
Ans – In C, macros are not necessarily faster than functions in terms of execution speed. The main reason for using macros is to provide a way to write code that is more concise, readable and maintainable. Macros are pre-processed by the compiler, and at the end of preprocessing stage, the macro is replaced with the corresponding code.

However, macros can lead to some performance improvements when they are used for small, frequently executed code snippets. This is because they eliminate the overhead of a function call and stack management that comes with using a function. Macros can also allow for optimization of code by evaluating expressions at compile time, which can reduce the number of instructions executed at runtime.

Q – 2 State some differences between an object-oriented programming language and object-based programming language?
Ans – Some key differences between object-oriented programming language and object-based programming language are:

  • Inheritance: OOP languages support inheritance, which allows a class to inherit properties and behavior from another class. OBP languages may not support inheritance or may have limited support.
  • Polymorphism: OOP languages support polymorphism, which allows objects to take on different forms or behaviors depending on their context. OBP languages may not support polymorphism or may have limited support.
  • Encapsulation: OOP languages support encapsulation, which means that objects can hide their data and behavior from the outside world. OBP languages may not support encapsulation or may have limited support.
  • Methods: OOP languages allow objects to have methods or functions that can be called to perform specific tasks. OBP languages may not have this feature or may have limited support.
  • Examples: Examples of OOP languages include Java, C++, and Python. Examples of OBP languages include JavaScript, VBScript, and ActionScript.

Q – 3 In the context of C++ programming language can you explain precondition and postcondition to a member function.
Ans – In the context of C++ programming, a precondition and a postcondition are specifications that define the behavior of a member function before and after it is called.

A precondition is a condition that must be true before the member function is called. It defines the set of valid inputs that the member function can work with. For example, if a member function takes an argument that represents an index in an array, the precondition could be that the index must be within the bounds of the array.

A postcondition, on the other hand, is a condition that must be true after the member function completes execution. It defines what the member function guarantees to do for the caller. For example, if a member function returns the maximum value in an array, the postcondition could be that the returned value must be less than or equal to all other values in the array.

Q – 4 Explain free() vs delete () in C++.
Ans – free() is a function that is used to deallocate memory that was allocated using malloc(), calloc(), or realloc(). It takes a pointer to the memory that needs to be deallocated, and releases the memory block so that it can be used by other parts of the program. free() does not call the object’s destructor, because it only deals with raw memory blocks, not objects.

delete is an operator in C++ that is used to deallocate memory that was allocated using the new operator. It not only deallocates the memory, but also calls the destructor of the object if it has one. This is important for objects that have dynamic memory allocation inside the constructor, because they must be cleaned up properly before being deallocated.

Another important difference between free() and delete is that free() only deals with raw memory, while delete can be used to deallocate both raw memory and objects. This is because delete operator internally uses free() to deallocate raw memory.

Q – 5 What are the differences between error and exception in Java?
Ans – In Java, errors and exceptions are both used to handle unexpected or exceptional conditions that can occur during program execution, but they have different meanings and uses.

Errors are typically used to indicate serious and unrecoverable problems that occur at the system level or at a level beyond the control of the application. Examples of errors include stack overflow errors, out of memory errors, and internal JVM errors. Errors are not intended to be caught by the application, and they usually result in the termination of the program.

On the other hand, exceptions are used to indicate exceptional conditions that occur at the application level, such as invalid input data, file not found, network errors, and so on. Exceptions are intended to be caught and handled by the application, and they allow for graceful recovery and continuation of the program’s execution. Exceptions can be checked or unchecked. Checked exceptions are those that the compiler requires to be handled or declared in the method signature, while unchecked exceptions are those that do not require handling or declaration.

Q – 6 List some important features of an operating system.
Ans – An operating system (OS) is a software that manages computer hardware resources and provides services to computer programs. Some of the important features of an operating system are:

  • Process management: An operating system must be able to manage processes or programs running on the system, including process scheduling, synchronization, and communication.
  • Memory management: An operating system must be able to manage memory, allocating and deallocating memory as needed, and providing virtual memory functionality.
  • File system management: An operating system must be able to manage files and directories, including creating, modifying, and deleting files, and providing access control mechanisms.
  • Device management: An operating system must be able to manage devices such as printers, scanners, and network interfaces, providing device drivers and allowing applications to access devices.
  • User interface: An operating system must provide a user interface that allows users to interact with the system, including graphical user interfaces, command-line interfaces, and web-based interfaces.

Q – 7 What are the different types of Shells in Linux?
Ans – In Linux, a shell is a command-line interface that allows users to interact with the operating system by typing commands. There are several types of shells available in Linux, including:

  • Bourne Shell (sh)
  • C Shell (csh)
  • Korn Shell (ksh)
  • Bourne-Again Shell (bash)
  • Z Shell (zsh)

Each shell has its own set of features and commands, and users can choose the shell that best fits their needs and preferences. The Bourne-Again Shell (bash) is the most commonly used shell in Linux and is the default shell in most distributions.

Q – 8 What are the advantages and disadvantages of time slicing in CPU Scheduling in OS?
Ans

Advantages:
Here are some advantages of time slicing in CPU scheduling:

  • Fairness: Time slicing ensures that all processes get a fair share of the CPU time, regardless of their priority or processing requirements.
  • Responsiveness: Time slicing ensures that processes can respond quickly to user input or events, as each process is given a small time slice to run.
  • Multitasking: Time slicing allows the operating system to run multiple processes simultaneously, which increases the overall system throughput and utilization.

Disadvantages:
Here are some disadvantages of time slicing in CPU scheduling:

  • Overhead: Time slicing adds an overhead to the system, as the operating system must switch between processes at regular intervals, which can cause context switching overhead.
  • Inefficient: Time slicing can be inefficient if the time slice is too short or too long. If the time slice is too short, the system spends too much time on context switching, and if the time slice is too long, some processes may have to wait a long time before getting CPU time.

Q – 9 What are the advantages and disadvantages of indexing in DBMS?
Ans

Advantages:
Here are some advantages of indexing in DBMS:

  • Faster Retrieval: Indexing allows the database system to quickly locate the required data, reducing the time required to access data from the database.
  • Improved Performance: Indexing can improve the performance of queries, especially when dealing with large data sets.
  • Efficient Query Processing: Indexing can help optimize query processing by enabling the use of efficient search algorithms, such as binary search or B-tree.
  • Reduced Disk I/O: Indexing can reduce the amount of disk I/O required to access data, by reducing the number of disk blocks that need to be accessed.

Disadvantages:
Here are some disadvantages of indexing in DBMS:

  • Overhead: Indexing requires additional storage space and additional processing overhead to maintain the index structure, which can increase the overall size of the database and reduce system performance.
  • Increased Update Time: Indexing can increase the time required to update data, as each index must be updated when data is modified, which can affect system performance.
  • Limited Indexing: Not all attributes or columns in a database can be indexed. For example, columns with large amounts of text or binary data may not be suitable for indexing.

Round 3 – HR Interview

After Technical round, my HR round was conducted on same day. The HR interview was short and lasted for only 5-10 minutes. Questions that were asked were like this –

Q – 1 What are your co-curricular activities?
Ans – When answering this type of HR question it’s important to highlight the activities that demonstrate skills and qualities that are relevant to the job you are applying for. I was a member of debating club in my college for almost three years which actually helped me to develop my public speaking and critical thinking skills. I also held a leadership role as the treasurer of the student government association, where I learned valuable budgeting and financial management skills. I mentioned all this things when answering this question.

Q – 2 Are you happy to relocate?
Ans – It’s important to be honest about your willingness to move and to provide a clear answer to the question. I had no such problem in relocating so i simply replied with “YES”.

Q – 3 Do you have any questions?
Ans – I had a few questions in my mind that I wanted to ask. So, I asked the HR interviewer – “Can you tell me more about the company culture and what makes Wipro a great place to work?” Also, “could you provide more insight into the growth opportunities within the company for employees who consistently deliver strong results?”.

My overall Wipro interview experience was fantastic. They informed me via email that I had been chosen. I’d also like to thank PrepBytes for their content, which was quite helpful to me.

FAQs on Wipro Interview Experience/Questions

Here are some frequently asked questions about Wipro interview experience/questions.

Q – 1 How can I prepare for a Wipro interview?
Ans – To prepare for a Wipro interview, research the company and the role you’re applying for. Practice answering common interview questions and review your technical skills. You can also practice coding challenges and work on building your problem-solving skills.

Q – 2 What is the dress code for a Wipro interview?
Ans – It’s recommended to dress in business formal attire for the interview, unless specified otherwise by the recruiter.

Q – 3 How long does it take to hear back from Wipro after an interview?
Ans – The duration for hearing back from Wipro after an interview may vary. It’s best to ask the recruiter about the timeline during the interview process. You can also follow up with the recruiter after the interview to get an update.

Q – 4 What qualities does Wipro look for in candidates during the interview?
Ans – Wipro looks for candidates with relevant experience and technical skills. They also value qualities such as teamwork, problem-solving ability, communication skills, and a passion for learning and growth.

Leave a Reply

Your email address will not be published. Required fields are marked *