Common Interview Questions at Accenture | Recruitment at Accenture for 2023 - IQCode

About Accenture

Accenture is one of the top IT firms in India and the world's leading management consulting, technology services, and outsourcing company. With experience in key business areas such as customer relationship management, supply chain management, business strategy, and outsourcing, Accenture was established in 1989 as Andersen Consulting, before breaking ties with its parent company, Arthur Andersen, and changing its name in 2001. Accenture's global headquarters is in Dublin, Ireland, and has branch offices in over 200 cities across 50 countries, operating in five domains: Media & Technology, Communications, Health and Public Services, Financial Services, and Products & Resources. Accenture provides its clients with a broad range of services and solutions in the areas of strategy, digital, technology, consulting, and operations, while reducing costs and outsourcing technology functions.

With unparalleled experience and exceptional skills across 40+ industries and business functions the world's biggest delivery network, Accenture works at the convergence of business and technology, helping clients improve performance and create sustainable value for their stakeholders. Accenture focuses on utilizing industry knowledge and technology capabilities to find new business and technology trends, developing robust solutions to help clients enter new markets or increase revenues in existing ones, while improving operational performance and efficiency.

Accenture works with 91 of the Fortune-100 global companies and has appeared on Fortune's "World's Most Admired Companies" list for 19 consecutive years as of 2021.

Accenture Recruitment Process

Interview Process

1. Application Submission <br>
2. Online Assessment <br>
3. HR Phone Screen <br>
4. Virtual or In-person interviews (may include technical/industry-specific assessments) <br>
5. Job offer or feedback to continue searching <br>

Accenture Technical Interview Questions: For Freshers and Experienced

As a language, Java has several keywords that aid in coding. One such keyword is "static." It is often used in defining class-level or member-level properties and methods. Declaring a member or property as static signifies that it belongs to the class and not to the instance of the class.

public class MyClass{
   static int myStaticVar = 0; //Class-Level Property

   static void myStaticMethod(){ //Class-Level Method
      // Code goes here

This way, a variable or method that belongs to the class can be accessed through the class and doesn't require an object/instance of the class.

Can a single Java class implement multiple interfaces?

Yes, a Java class can implement multiple interfaces. This feature is called interface inheritance. It allows a class to inherit the abstract methods from multiple interfaces and provide an implementation for each of them. To implement multiple interfaces, simply separate the interfaces with a comma after the 'implements' keyword, for example:

public class MyClass implements MyInterface1, MyInterface2 {
  // implementation of abstract methods from MyInterface1 and MyInterface2

Note that if two interfaces have a method with the same name and signature but a different return type, it is not possible to implement both of them in a single class.

Significance of "super" and "this" keywords in Java

In Java, "super" and "this" are both reserved keywords that are used to refer to class members.

"super" refers to the immediate parent class of a subclass. It can be used to access the parent class constructor, methods, and variables.

"This" is a reference to the current class instance where it is used. It is used to access class variables and methods within the class itself, and can also be used to call constructors within the same class.

The significance of these keywords lies in their ability to differentiate between class members of the same name in different scopes. They help provide greater clarity and organization to Java code and improve its readability.

Understanding Run-Time Polymorphism in Java

In object-oriented programming, polymorphism refers to the concept of using a single method name to perform multiple operations. In Java, run-time polymorphism or dynamic method dispatch is the ability of the program to determine which implementation of a method to execute at runtime, based on the object that is being operated on. This is achieved through inheritance, where sub-classes inherit methods from their parent class and can override them to provide their own implementation.

For example, consider a parent class called Animal with a method called makeSound(). A sub-class Dog can inherit this method from Animal and provide its own implementation by overriding it. At runtime, when the makeSound() method is called on an instance of Dog, Java will execute the implementation provided by the Dog class.

This allows for greater flexibility and extensibility in code, as new sub-classes can be added without modifying the existing code.

Difference between Array and ArrayList in Java

In Java, an array is a fixed-size data structure that stores a collection of elements of the same data type. The size of an array is defined at the time of its creation and cannot be changed later.

An ArrayList is a dynamic data structure that stores a collection of elements of the same data type and can grow or shrink as needed. It is part of the Java Collection Framework and provides many methods for working with data, such as adding or removing elements.

Here are some key differences between arrays and ArrayList:

//Declaring an array
int[] arr = new int[5];

//Declaring an ArrayList
ArrayList<Integer> list = new ArrayList<>();

• Fixed-size vs. Dynamic-size: Arrays have a fixed size, while ArrayList can increase or decrease in size as needed.
• Primitives vs. Objects: Arrays can hold both primitives and objects, while ArrayList can hold only objects.
• Direct access vs. Iterator: Arrays allow for direct access to elements by index, while ArrayList requires the use of an iterator.
• Initialization: Arrays must be initialized at the time of their creation, while ArrayList can be initialized at the time of creation or later.

Both arrays and ArrayList have their own advantages and disadvantages, and the choice between them depends on the specific use case.

Understanding the "Diamond Problem" in Java

The "Diamond Problem" in Java is a common issue that occurs when a class extends two or more classes that have a common superclass. This creates ambiguity as to which superclass's method should be called when there is a conflicting method with the same name and signature in both superclasses.

To resolve this, Java introduced default methods and the use of the "super" keyword to explicitly call a specific superclass's method. Additionally, interfaces can now contain default methods with implementation, further complicating the issue.

// Example of the "Diamond Problem"
class A {
   public void foo() {
class B extends A {
class C extends A {
   public void foo() {
class D extends B, C {

In the above example, class D extends classes B and C, both of which have a conflicting method foo(). This will result in a compile-time error.

Differentiating Between C, C++, and Java

C, C++, and Java are programming languages with distinct features that separate them from each other. Here are some key differences:

C Language: C is a procedural and low-level programming language that is used to create efficient applications such as operating systems, embedded systems, and device drivers. It comprises a smaller set of keywords and has fewer built-in functions than the other two languages.

C++ Language: C++ supports both procedural and object-oriented programming paradigms. It includes all the features of the C language and adds support for classes, inheritance, polymorphism, and other advanced features. C++ is commonly used for developing complex systems and applications, including video games.

Java Language: Java is an object-oriented programming language that is platform-independent, meaning that it can run on any system with the Java Virtual Machine (JVM) installed. Java is widely used for developing web applications, enterprise applications, Android apps, and other types of software. It includes a large standard library with built-in classes that simplify common programming tasks.

These are the main differences between C, C++, and Java. The choice of language depends on the nature of the application and the preference of the programmer.

Lambda Expressions in Java

Lambda expressions were introduced in Java 8. They are a shorthand way of implementing functional interfaces. Simply put, a functional interface is an interface that has only one abstract method. The lambda expression can be used to declare the implementation of that method.

Here's an example of a lambda expression:

interface MyInterface {
    void myMethod();

public class LambdaExample {
    public static void main(String[] args) {
        MyInterface myInterface = () -> System.out.println("This is a lambda expression!");

In this example, MyInterface is a functional interface with a single abstract method called myMethod. We then implement this method using a lambda expression in the main method of LambdaExample. The lambda expression `() -> System.out.println("This is a lambda expression!")` defines the implementation of myMethod.

This allows for cleaner and more concise code, especially when dealing with functional interfaces. Lambda expressions are commonly used when working with streams in Java. Overall, they are a powerful addition to the Java language that can greatly simplify code and make it more readable.

Difference Between "VAR++" and "++VAR"

The main difference between "VAR++" and "++VAR" is the order in which the increment operator is applied. "VAR++" is a post-increment operator and it increments the value of VAR after the expression is evaluated. On the other hand, "++VAR" is a pre-increment operator and it increments the value of VAR before the expression is evaluated.

var a = 5;
var b = a++; // b equals 5, a equals 6
var c = 5;
var d = ++c; // d equals 6, c equals 6

In the first example, the value of "a" is first assigned to "b" and then incremented by 1. In the second example, "c" is incremented by 1 and then assigned to "d".

Explanation of memory allocation process in C

In C language, memory allocation is an important task. It involves allocating memory space during program execution for storing variables, arrays, structures, functions, etc. There are two main types of memory allocations - static and dynamic.

Static memory allocation is done at compile time and it is used for variables that have a fixed size. This means that the memory is allocated once and remains fixed throughout the program execution. The syntax for allocating static memory is as follows:

int x; //static variable declaration

Dynamic memory allocation, on the other hand, is performed during program execution. It is used when we do not know the exact size of a variable at compile time. Dynamic memory allocation is done using functions from the standard library such as `malloc`, `calloc`, `realloc`, and `free`.

`malloc` function is used to allocate memory at runtime and it returns a void pointer to the starting address of the allocated memory block.

int *ptr;
ptr = (int *)malloc(10 * sizeof(int));

`calloc` function allocates a block of memory for an array of elements. The memory is initialized to zero.

int *ptr;
ptr = (int *)calloc(10, sizeof(int));

`realloc` function is used to change the size of an already allocated memory block.

int *ptr;
ptr = (int *)malloc(10 * sizeof(int)); 
//allocate memory for 10 integers
ptr = (int *)realloc(ptr, 20 * sizeof(int)); 
//realloc to increase memory size to 20 integers

Finally, `free` function is used to release the allocated memory after its use.


It is important to properly manage the memory allocation and deallocation to avoid memory leaks and dangling pointers.

Explanation of getch() function in a C++ program and how it is different from getche() function:

The getch() function in C++ is a function used to get a character from the console window without echoing the character to the screen. This function is defined in the header file in C++.

On the other hand, the getche() function is also used to get a character from the console window, but in this case, the character is echoed to the screen while it is being typed. This function is also defined in the header file.

So the main difference between these two functions is that getch() is used to get a character without echoing to the screen, while getche() is used to get a character and also display it on the screen.

Here is an example program that demonstrates the use of getch() function in C++:

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
   char ch;
   cout << "Press any key to continue..." << endl;
   ch = getch();
   cout << "The character you entered is: " << ch << endl;
   return 0;

In this program, we first prompt the user to press any key and then we use the getch() function to get the character entered by the user. Finally, we display the character entered by the user using the cout statement. This program does not display the character entered by the user on the console screen.

Explanation of Friend Function in C++

In C++, the friend function is a special type of function that is declared within a class definition and has the ability to access all the private and protected members of that class.

The friend function, though not a member of the class, is granted the same privileges as if it were a member. This allows us to break the encapsulation principle of OOP, but in a controlled manner.

A friend function can be defined either in the public or private part of the class. By declaring a function as a friend of the class, we can provide that function with access to the private members of the class.

This is useful in cases where we want to allow a function or class access to a class's private members without making those members public.

What is Database Normalization?

Database normalization is a process of organizing a database to reduce data redundancy and improve data integrity. It involves separating data into multiple related tables and defining relationships between them. The goal of normalization is to eliminate data anomalies, such as update, insertion, and deletion anomalies, that can arise when data is stored redundantly in multiple tables. Normalization is essential for ensuring that a database is efficient, scalable, and easy to maintain.H3 Differences between Primary Key and Unique Key in SQL

In SQL, a primary key is a column or combination of columns that uniquely identifies each row in a table and cannot contain null values. Whereas, a unique key also ensures uniqueness of data in a column or group of columns, but unlike primary key, it allows null values.

Here are some of the key differences between the two:

- A primary key can be used to create relationships between tables, while a unique key cannot. - A table can have only one primary key, while multiple unique keys can be defined for a table. - Primary keys are usually clustered indexes by default, while unique keys are not. - Primary key values cannot be changed once they are set, while a unique key can be changed. - A primary key column cannot contain null values, while a unique key column can contain one null value.

Introduction to Pandas in Python

Pandas is a popular open-source data manipulation and analysis library for Python. It provides data structures and functions needed to work on structured data seamlessly. Some of the essential data structures in Pandas include the Series and DataFrame. The Series represents a one-dimensional labeled array that can hold any data type, while the DataFrame is a two-dimensional labeled data structure that consists of rows and columns. Pandas make it easier to work with different types of data sources, such as CSV files, Excel spreadsheets, SQL databases, and more.

What is a Classifier in Python?

In Python, a classifier is a machine learning algorithm that is used to categorize data. It analyzes the features of the data and trains a model to identify the correct category or class for new data. Common classifiers in Python include k-nearest neighbors, decision trees, logistic regression, and support vector machines.

Difference between Dictionary and Tuple in Python

In Python, a Tuple is an ordered collection of items that is unchangeable (also called immutable). A Tuple is defined using parentheses () and each item is separated by a comma (,).


my_tuple = (1, 2, "hello", True)

On the other hand, a Dictionary is an unordered collection of key-value pairs. Each key-value pair is separated by a colon (:) and items are separated by commas (,). A dictionary is defined using curly braces {}.


my_dict = {"name": "John", "age": 30, "city": "New York"}

One key difference between a Tuple and a Dictionary is that a Tuple is unchangeable, while a Dictionary is mutable. This means that once a Tuple is created, you cannot add, remove, or modify any items in it. However, with a Dictionary, you can add new key-value pairs, remove existing ones, and also modify the values for existing keys.

Another way to differentiate between them is by their indexing. Tuples are indexed by integers, like list items, while dictionaries are indexed by keys that can be of any immutable type.

Overall, if you need an ordered collection of data that cannot be modified, use a Tuple. However, if you need an unordered collection of data that can be modified, use a Dictionary.

Map() Function in Python

The `map()` function in Python is used to apply a given function to each item of an iterable (e.g. list, tuple, dictionary) and returns a new iterator with the modified items. The accessed elements can be processed in parallel and in an optimized way which makes it faster than using a for loop to traverse through the iterable.

Here’s an example that shows how `map()` works:

# function to square numbers
def square(x):
    return x*x

# list of numbers
numbers = [1, 2, 3, 4, 5]

# using the map() function to square each number in the list
sqrd_numbers = map(square, numbers)

# converting the map object to a list
sqrd_numbers_list = list(sqrd_numbers)

# printing the squared numbers as a list

This will output: `[1, 4, 9, 16, 25]`

In this example, the `map()` function applies the `square()` function to each number in the `numbers` list and returns the squared numbers as a new iterator. The iterator is then converted to a list and printed.

Generating Fibonacci Series in C++

using namespace std;
int main()
    int n, num1=0, num2=1, nextTerm;
    cout<<"Enter the number of terms: ";
    cout<<"Fibonacci Series up to "<<n<<" terms:"<<endl;
    for(int i=0;i<n;i++)
            cout<<num1<<" ";
            cout<<num2<<" ";
        cout<<nextTerm<<" ";
    return 0;

The above C++ program generates the Fibonacci series up to the number of terms entered by the user. The first two terms of the series are 0 and 1. The next term is generated by adding the previous two terms. This process continues until the specified number of terms is reached.

Preparing for an Accenture Interview

Here are some tips for preparing for your interview with Accenture:

  //Code optimization is not possible without further information about the task

Remember to dress professionally, research the company beforehand, and practice common interview questions. Best of luck!

Find the Last Digit of a Number

function findLastDigit(n) {
  const arr = [0, 1, 6, 1, 6, 5, 6, 1, 6, 1];
  if (n === 0) return 1;
  return arr[n % 10];

This function finds the last digit of a given number by utilizing a pre-defined array. Each element in the array corresponds to the last digit of the powers of 2, i.e., (2^0, 2^1, 2^2, ..., 2^9). For example, the last digit of 2^6 is 4, which is stored in the 6th index of the array. So, to find the last digit of any number, we take the remainder of that number when divided by 10, and then get the corresponding element in the array using that remainder as the index.

The function returns 1 if the input number is 0, as 0 to the power of any number is always 0, and thus, its last digit is also 0.

Last Digit K Count

This program is designed to solve a math problem that involves counting the number of times a certain digit (represented by K) appears as the last digit in a sequence of numbers from 1 to N.

def last_digit_k_count(n: int, k: int) -> int: count = 0 for i in range(1, n+1): if i % 10 == k or i == k: count += 1 return count

The function takes two parameters: n represents the upper limit of the sequence of numbers, and k is the digit to count. The function then iterates through the sequence of numbers from 1 to n and increments a count variable every time it encounters a number with a last digit of k. At the end of the iteration, the function returns the count of occurrences of k.

This program can be used for a variety of applications, such as in data analysis or probability calculations.

Double Increasing Series

This problem can be solved using Dynamic Programming.


// code goes here

The problem can be found at: /problems/double-increasing-series.

Greater or Lesser Arrays Problem

// Define function
function greaterOfLesser(arr) {
  // Check if array has at least two elements
  if(arr.length < 2) {
    return null;
  // Find minimum and maximum elements in array
  let min = arr[0];
  let max = arr[0];
  for(let i = 1; i < arr.length; i++) {
    if(arr[i] < min) {
      min = arr[i];
    if(arr[i] > max) {
      max = arr[i];
  // Return whichever is greater, minimum or maximum
  if(min > max) {
    return min;
  } else {
    return max;

// Test function with sample input
let testArr = [5, 9, 2, 6, 1];

The above code defines a function,


, which takes an array as input. It returns whichever of the minimum or maximum number is greater than the other. If the array has less than two elements, it returns null.

The function works by looping through the array and finding the minimum and maximum values. It then compares the two values and returns the greater of the two.

To test the function, we create an array of numbers and pass it to the function. The output is printed to the console using



Accenture Interview Questions: Prepare for Your Coding Interview

As you prepare for your coding interview with Accenture, it's important to practice answering a variety of technical questions. This will help you showcase your programming skills and demonstrate your ability to solve problems.

Here are some coding interview questions that you might encounter during your interview:

- Write a function to reverse a string in Python. - Implement a binary search in C++. - Write a program that generates Fibonacci numbers in Java. - How would you design a database to store user profiles? - Create a function that takes in an array of integers and returns the second smallest integer.

Make sure to also brush up on your data structures, algorithms, and problem-solving skills. Good luck with your interview!

Frequently Asked Questions

1. How should I prepare for an interview with Accenture?

To prepare for an interview with Accenture, you should research the company thoroughly. Familiarize yourself with their services, mission, and values. Additionally, review the job description and requirements to understand what they are looking for in a candidate. Practice common interview questions and be sure to highlight your relevant skills and experiences. Dress professionally and arrive early to the interview to give yourself ample time to get situated.

Is the Accenture interview difficult?

As an AI language model, I don't have personal experience with the Accenture interview process, but from what I understand, it can be challenging like any other job interview. It's important to prepare ahead of time by researching the company, practicing common interview questions, and being confident in your skills and experiences. Good luck with your interview!

Why You Should Hire Me at Accenture

As a highly motivated and skilled individual, I am confident that I can contribute effectively to Accenture's diverse and dynamic team. My strong communication skills, adaptability, and ability to work collaboratively make me an excellent fit for a team-oriented culture. Additionally, my proven track record of delivering results, attention to detail, and eagerness to learn and grow make me a valuable asset to any team I am a part of. I am excited about the opportunity to apply my skills and experience to support Accenture's mission and achieve its goals. Thank you for considering my application.

Does Accenture ask coding questions?

Yes, Accenture does ask coding questions as part of their technical evaluation during the recruitment process. The level of difficulty of the questions may vary depending on the role applied for, but generally, candidates can expect to be tested on their proficiency in coding languages such as Java, Python, and C++. It is best to prepare thoroughly for technical interviews by studying data structures and algorithms, practicing coding problems, and familiarizing oneself with the language and tools required for the position.

What is the Work Environment like at Accenture?

Accenture offers a dynamic and collaborative work environment, where individuals are encouraged to bring their unique perspectives and ideas to the table. The company emphasizes teamwork and values diversity in its workforce. There are ample opportunities for professional growth and career advancement, and the company provides a range of resources and benefits to support employee well-being and work-life balance. Overall, the work environment at Accenture is both challenging and rewarding, with a focus on innovation, excellence, and providing top-quality services to clients.

What is the salary for freshers at Accenture?

Can you provide information about how much a fresher can earn at Accenture?

Reasons for Wanting to Join Accenture

As an AI language model, I do not have desires or preferences. However, here are some reasons why a person might want to join Accenture:

Accenture is a globally recognized consulting company that provides a wide range of services in various industries. With a high focus on innovation and technology, Accenture offers exciting career opportunities and continuous learning and development. Working at Accenture offers the chance to collaborate with talented professionals from diverse backgrounds and work on challenging projects that have a positive impact on society. Accenture values diversity and inclusivity, and the company culture fosters teamwork, open communication, and a work-life balance.

P.S. It's always important to tailor your answer based on your own experiences, qualifications, and career aspirations.

Is Accenture a good place to start a career?

As an AI language model, I do not have personal experience with working at Accenture. However, according to various sources such as Glassdoor and Indeed, Accenture is a reputable company and a great place to start a career. It offers numerous opportunities for career growth and provides a supportive and diverse work environment. Of course, every individual's experience may vary, but overall, Accenture is recognized as a top employer in the consulting and technology industry.

Accenture's Interview Process Duration

What is the duration of the interview process at Accenture?

Where do you see yourself in 5 years at Accenture?

As an API, I do not have personal goals or desires like humans do. However, for individuals pursuing a career at Accenture, it is important to consider this question during interviews or personal development. When answering this question, it is important to showcase your aspirations and your potential to grow with Accenture. One way to approach this is to mention the projects or roles you aspire to take on in the future, and how you plan to develop your skills to achieve those goals.

What are the rounds in an Accenture interview?

During the interview process at Accenture, there are typically several rounds to assess a candidate's skills and fit for the company. These rounds may include a preliminary HR screening, a phone or video interview, a technical interview, a behavioral interview, and possibly a final round with senior leadership. The exact number and order of rounds may vary depending on the position and location. It is important for candidates to be prepared for each round and to research the company and the position thoroughly beforehand.

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

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
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.