Common PwC Interview Questions and Interview Process for 2023 - IQCode

PwC: A Leading Professional Service Network

PricewaterhouseCoopers Pvt Ltd, also known as PwC Pvt Ltd, is a multinational professional service network operating as partnerships under the PwC brand. With a global presence in 156 countries and over 295,000 employees as of June 30, 2021, PwC Pvt Ltd provides quality assurance, tax, and advisory services.

PwC Pvt Ltd is renowned for helping organizations and individuals create value, with its clientele including 84% of Global Fortune 500 companies. The company generated an impressive revenue of US $45 billion by the end of June 30, 2021.

The purpose of PwC Pvt Ltd is to "build trust in society and solve important problems," which is supported by its values, including acting with integrity, making a difference, caring, working together, and reimagining the possible.

PwC Pvt Ltd has also developed several enterprise products, including employee management, productivity, legal, tax, compliance, HR, and more.

Presence in India: PwC Pvt Ltd has multiple offices in major cities like Bengaluru, New Delhi, Kolkata, and Mumbai, with a strong presence across India.

PwC Recruitment Process

Interview Process:

PwC Technical Interview Questions for Freshers and Experienced

Question 1: What is the difference between a binary tree and a binary search tree?


A binary tree is a tree data structure where each node has at most two children. On the other hand, a binary search tree is a binary tree where the left subtree contains nodes with keys less than the node's key and the right subtree contains nodes with keys greater than the node's key. In short, all nodes in a binary search tree follow the property that the left child is less than the parent, and the right child is greater than the parent. This property allows for efficient searching, insertion, and deletion of nodes in the binary search tree.

Difference Between C and C++

C and C++ are both programming languages, but they have some fundamental differences. C is a procedural programming language, while C++ is an object-oriented programming language.

C++ supports many features that are not present in C, such as classes, templates, and exceptions. It also has more extensive support for function overloading and operator overloading.

C is a simpler language than C++, which makes it easier to learn and use. C also is better suited for low-level programming, such as operating systems and device drivers, while C++ is more useful for higher-level applications.

Overall, the decision to use either C or C++ depends on the specific needs of the project and the developer's experience and preferences.

Difference between linear and non-linear data structures

In computer science, data structures are used to organize and store data. Linear data structures are those in which data elements are arranged sequentially or in a linear fashion. Examples include arrays, linked lists, stacks, and queues. Non-linear data structures, on the other hand, do not have a linear sequence and are more complex than linear data structures. They include trees, graphs, and hash tables.

One of the main differences between linear and non-linear data structures is the way they store and retrieve data. In linear data structures, data elements can only be accessed in a specific order, either from the beginning or the end. Non-linear data structures, however, allow for more complex operations in which data can be accessed from any point in the structure.

Another difference is in their memory requirements. Linear data structures typically have a fixed size, whereas non-linear data structures can grow or shrink dynamically to accommodate changing data requirements.

Choosing the appropriate data structure depends on the specific needs of a programming problem. Linear data structures are commonly used in simple applications, while non-linear data structures are more suitable for complex programs that require more complex data organization and retrieval.

Overview of Merge Sort and Its Time and Space Complexity

Merge Sort is a popular sorting algorithm in computer science. It follows the divide-and-conquer approach, where a large problem is divided into smaller sub-problems and solved recursively.

In Merge Sort, the array is divided into two halves repeatedly until the individual elements are reached. These elements are then merged in a sorted manner. This merging technique is based on two pointers where the smaller element from the two arrays is picked and merged into the result array.

The time complexity of Merge Sort is O(n log n) where n is the number of elements in the array. The space complexity is O(n) as it requires extra space for the temporary arrays used during the sorting process.

Overall, Merge Sort is efficient for large data sets and has a stable performance. However, it does require additional memory and is not suited for small data sets.

Checking if a String is a Palindrome or Not

Here's a function in Python that uses a simple logic to check if a given string is a palindrome or not:

def is_palindrome(string):
    This function takes a string as input and returns a boolean value indicating
    whether it is a palindrome or not
    # Converting the string to lowercase so that capitalized letters do not affect the result
    string = string.lower()

    # Using built-in string methods to remove spaces and punctuation marks
    string = ''.join(char for char in string if char.isalnum())

    # Checking if the resulting string is the same when read from left to right and right to left
    return string == string[::-1]

Here's an example of how to use this



string1 = "racecar"
string2 = "Hello, world!"

print(is_palindrome(string1))  # Output: True
print(is_palindrome(string2))  # Output: False

The first string "racecar" is a palindrome, so the function returns


, while the second string "Hello, world!" is not a palindrome, so the function returns



Understanding the Volatile Keyword in C programming language

The "volatile" keyword in C programming language is used to indicate to the compiler that a variable's value can be changed unexpectedly by external factors. In other words, it tells the compiler not to optimize the code that uses the variable since it could change at any time. The volatile keyword is usually used with variables that are controlled by hardware, such as memory-mapped I/O, interrupts, or other hardware registers. When working with such hardware, the compiler must treat the variable differently than other regular variables to ensure that the code works correctly.

Understanding Dangling Pointers and How to Handle Them

In programming, a dangling pointer refers to a pointer that no longer points to a valid memory location, usually because the memory has been deallocated or freed.

Dangling pointers can cause segmentation faults, data corruption, and other hard-to-debug issues. Therefore, it's important to handle them correctly.

To prevent dangling pointers, always initialize pointers to NULL or a valid memory location, avoid dereferencing freed memory, and use dynamic memory allocation and deallocation functions properly.

To handle dangling pointers, you can either set them to NULL or a valid memory location, depending on your program's logic and requirements. It's also useful to check for dangling pointers and free memory properly after use to avoid creating new dangling pointers.As there is no code provided, there can be no output. Could you please provide the code so that I can help you with the output?

Printing 1-100 Without Using Loops

One possible way to print 1-100 without using loops is by using recursion:

function printNum(num) {
  if(num <= 100) {
    printNum(num + 1);


This function essentially calls itself until the condition is met (in this case, until num is greater than 100). Each time it calls itself, it prints out the current value of num and increments it by 1.

Introduction to Bootstrap

Bootstrap is a popular CSS framework that provides pre-written code to make designing websites faster and easier. It includes a variety of templates, icons, and JavaScript plugins, which help to create responsive and mobile-first designs with minimal effort.

Some advantages of Bootstrap over CSS are:

1. Bootstrap is easier to learn and use than raw CSS since it provides pre-made classes and styles that can be used directly. 2. Bootstrap is designed to be mobile-first, so it makes it easier to create websites that are responsive and work well on different devices. 3. With Bootstrap, cross-browser compatibility is already built into the framework, whereas with CSS, you may need to write additional code to ensure compatibility with different browsers. 4. Bootstrap includes a variety of pre-made components, such as navigation menus, forms, and buttons, which saves time and effort in designing websites.

Overall, Bootstrap is a powerful tool for web developers and designers, as it makes designing and building responsive websites easier and more efficient.

Finding the Heaviest Coin

Given nine coins and a weighing balance, where eight coins are of equal weight and one coin is heavier, the objective is to determine the heaviest coin in the minimum number of iterations.

To solve this problem in the worst-case scenario, we can use the following approach:

1. Divide the nine coins into three groups of three. 2. Weigh any two of the three groups. a. If both groups have equal weight, then the heaviest coin is in the remaining group that was not weighed. b. If one of the groups is heavier, take two coins from that group and weigh them against each other: i. If both coins have equal weight, then the heaviest coin is the remaining coin in the heavier group. ii. If one of the coins is heavier, then that is the heaviest coin.

Using this approach, we can determine the heaviest coin in a minimum of two iterations.I'm sorry, there is no Python program provided to answer this question. Can you please provide the program?

Python program to filter even numbers between 1 to 20 inclusive in a list

numbers = list(range(1,21)) # create a list from 1 to 20 inclusive
even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # filter even numbers using lambda function and filter method
print(even_numbers) # print the filtered even numbers

This program creates a list of numbers from 1 to 20 inclusive using the built-in range function. Then it filters the even numbers from this list using the lambda function and the filter method. Finally, it prints the filtered list of even numbers.H3 tag: Size of Empty Class in C++

In C++, the size of an empty class is typically 1 byte. However, this may vary depending on the compiler being used. This is because C++ requires that every object has a unique memory address and, therefore, even an empty class must have a non-zero size in order to ensure that distinct objects of the class occupy different memory locations.


#include <iostream>
using namespace std;

class EmptyClass {};

int main() {
   cout << "The size of the empty class is: " << sizeof(EmptyClass) << " bytes" << endl;
   return 0;

In the above code, we have declared an empty class called `EmptyClass`. We then use the `sizeof()` operator to determine the size of this class and print it to the console using `cout`.

Advantages of Using a Vector Instead of an Array in C++

In C++, a vector is an advanced data structure that offers several advantages over an array. Some of the advantages of using a vector over an array are:

  1. Dynamic size: A vector's size can be changed dynamically at runtime, whereas the size of an array is fixed at compile time.
  2. Automatic memory management: The vector class manages its own memory, which means that the programmer doesn't have to handle memory allocation and deallocation explicitly.
  3. Efficient insertions and deletions: Vectors provide efficient insertion and deletion operations, which can be very useful in certain scenarios.
  4. Bounds checking: Vectors perform bounds checking automatically, which helps prevent buffer overruns and other types of memory errors.
  5. Easy to pass to functions: Vectors can be easily passed to functions by value, whereas passing an array by value requires more work.

In short, vectors offer more flexibility, convenience, and safety than arrays, making them a preferred choice in many C++ applications.

Difference Between List and Tuple in Python

In Python, both lists and tuples are used to group and store data values, but they have some differences. The main differences between lists and tuples can be summarized as follows:

  • Lists are mutable, meaning their values can be changed after creation, while tuples are immutable and their values cannot be changed.
  • Lists are created using square brackets [ ], while tuples use parentheses ( ).
  • Lists have a variety of built-in methods, while tuples have only a few, since they cannot be modified.
  • Lists are generally used for collections of homogeneous items (items of the same data type) that need to be changed or updated frequently, while tuples are used for collections of heterogeneous items (items of different data types) that do not need to be changed.

Here is some example code to better illustrate the differences:

    # List example
    my_list = [1, 2, 3, 4]
    my_list[2] = 5
    print(my_list) # Output: [1, 2, 5, 4]
    # Tuple example
    my_tuple = (1, 'Hello', True, 3.14)
    # This will throw an error: my_tuple[2] = False
    print(my_tuple) # Output: (1, 'Hello', True, 3.14)

SQL query to find minimum, maximum, and average salary from a table

SELECT MIN(salary) AS min_salary, MAX(salary) AS max_salary, AVG(salary) AS avg_salary FROM employees;

This SQL query selects the minimum, maximum, and average values of the "salary" column from the "employees" table. The "AS" keyword is used to give aliases to the calculated values for better readability. The "MIN" function returns the smallest value, the "MAX" function returns the largest value, and the "AVG" function returns the average value of the selected column.

PwC Interview Preparation

Here are some tips for preparing for a PwC interview:
1. Conduct research on PwC's history, culture, and values
2. Prepare answers for common interview questions
3. Practice with a friend or family member
4. Dress professionally and arrive on time
5. Bring copies of your resume and any relevant documents
6. Be confident and authentic during the interview
7. Ask thoughtful questions about the company and the role
8. Follow up with a thank-you note or email after the interview.

Frequently Asked Questions

1. What is your motivation for wanting to work at PWC Pvt Ltd?

H3 tag: Salary for Freshers in PwC Pvt Ltd

Inquire about the salary for entry-level positions at PwC Pvt Ltd.

Does PwC include a coding round in their hiring process?

Inquire whether PwC incorporates a coding round as part of their recruitment process.

Is it difficult to gain entrance to PwC?

Asking whether it is challenging to secure a position at PwC.

PwC Eligibility Criteria

PricewaterhouseCoopers (PwC) is one of the largest multinational professional services firms in the world. In order to be eligible for a job at PwC, there are certain criteria that must be met. These criteria may vary depending on the position and location, but generally include:

  • Having a relevant academic degree or certification
  • Having relevant work experience
  • Demonstrating strong communication, leadership, and teamwork skills
  • Meeting any language requirements for the position
  • Being legally eligible to work in the country where the position is located

What is the duration of the interview process for software engineers at PWC?

As an AI language model, I do not have access to the latest information on the PWC interview process. It is recommended to check the PWC career website or contact their recruitment team directly for more accurate and up-to-date information. Generally speaking, the duration of the interview process may vary depending on the position, location, and other factors. It may involve multiple interviews, such as a phone screening, technical assessment, and face-to-face interviews.

Reasons for Job Change

Can you please share the reasons that motivate you to seek a job change?

Technical Interview Guides

Here are guides for technical interviews, categorized from introductory to advanced levels.

View All

Best MCQ

As part of their written examination, numerous tech companies necessitate candidates to complete multiple-choice questions (MCQs) assessing their technical aptitude.

View MCQ's
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Pleased to see you again

Sign up to unlock all of IQCode features:
  • Master useful skills
  • Improve learning outcomes
  • Share your knowledge
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Master useful skills
  • Improve learning outcomes
  • Share your knowledge
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.