Top TCS NQT Coding Questions with Answers 2025 [Complete Programming Round]

tcs nqt coding questions with answers 2025
Spread the love

Are you preparing for the TCS NQT 2025 and feeling unsure about the coding section? You’re not alone. Every year, lakhs of candidates compete for opportunities at Tata Consultancy Services (TCS), and the TCS nqt coding questions section is one of the most critical components of the selection process.

Register for TCS NQT 2025 here

In this comprehensive blog, we will guide you through:

tcs nqt coding questions

This guide is 100% beginner-friendly and updated as per the latest TCS NQT 2025 syllabus.


Table of Contents

  1. What is TCS NQT?
  2. TCS NQT 2025 Exam Pattern
  3. Overview of TCS Coding Round
  4. Top 15 TCS Coding Questions with Solutions
  5. Key Programming Topics to Prepare
  6. TCS Coding Practice Strategy (1 Month Plan)
  7. FAQs
  8. Final Tips & Call-to-Action

What is TCS NQT?

TCS National Qualifier Test (NQT) is a national-level recruitment exam conducted by TCS to hire fresh graduates for entry-level roles. NQT scores are not only accepted by TCS but also by various other corporate partners.

It evaluates candidates across four key domains:

  • Verbal Ability
  • Reasoning Ability
  • Numerical Ability
  • Programming Logic and Coding

The most challenging and career-defining round, however, is the coding section, which tests your ability to solve real-world programming problems.

Eligibility:

  • UG/PG/Diploma final year students (any stream)
  • Pass outs from 2024, 2023, 2022 batches

TCS NQT 2025 Exam Pattern

Here is the official updated exam pattern for TCS NQT 2025 (for IT Role):

SectionQuestionsDuration
Numerical Ability2640 mins
Verbal Ability2430 mins
Reasoning Ability3050 mins
Programming Logic1015 mins
Coding245 mins

Important Notes:

  • There is no negative marking.
  • You can choose from C, C++, Java, Python, or Perl for coding.

Overview of TCS Coding Round

In the TCS coding section, you will be given 2 questions:

  • Q1: Easy to Medium level
  • Q2: Medium to Hard level

These are practical problem-solving questions, often testing algorithms, logic, and basic data structures.

Key Expectations:

  • Write syntactically correct and optimized code
  • Handle edge cases
  • Pass all hidden test cases

Also Read: Blog


Top 15 TCS NQT Coding Questions with Detailed Solutions

Let’s walk through the most commonly asked TCS NQT coding questions. Each question is followed by an explanation and Python code. These can easily be translated into C/C++/Java.

1. Reverse a String Without Built-In Function

def reverse_string(s):
    reversed_s = ''
    for char in s:
        reversed_s = char + reversed_s
    return reversed_s
print(reverse_string("TCSNQT"))

2. Check Prime Number

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True
print(is_prime(17))

3. Fibonacci Series

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        print(a, end=' ')
        a, b = b, a + b
fibonacci(7)

4. Factorial using Recursion

def factorial(n):
    return 1 if n == 0 else n * factorial(n-1)
print(factorial(5))

5. Palindrome Checker

def is_palindrome(s):
    return s == s[::-1]
print(is_palindrome("madam"))

6. Missing Number in Array

def find_missing(arr, n):
    total = n * (n + 1) // 2
    return total - sum(arr)
print(find_missing([1, 2, 3, 5], 5))  # Output: 4

7. Count Vowels in String

def count_vowels(s):
    return sum(1 for c in s.lower() if c in 'aeiou')
print(count_vowels("NQT Preparation"))

8. Sum of Digits

def digit_sum(n):
    return sum(int(d) for d in str(n))
print(digit_sum(1234))

9. Armstrong Number

def is_armstrong(n):
    num = str(n)
    return n == sum(int(i)**len(num) for i in num)
print(is_armstrong(153))

10. Second Largest Number

def second_largest(nums):
    unique_nums = list(set(nums))
    unique_nums.sort()
    return unique_nums[-2]
print(second_largest([1, 2, 3, 4, 5]))

11. Check Leap Year

def is_leap(year):
    return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
print(is_leap(2024))

12. Remove Duplicates from List

def remove_duplicates(lst):
    return list(set(lst))
print(remove_duplicates([1, 2, 2, 3, 4, 4]))

13. Print Pattern

def print_pattern(n):
    for i in range(1, n + 1):
        print('*' * i)
print_pattern(5)

14. GCD of Two Numbers

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a
print(gcd(12, 18))

15. Binary to Decimal

def binary_to_decimal(binary):
    return int(binary, 2)
print(binary_to_decimal("1010"))

Key Programming Topics to Prepare for TCS Coding Round

To crack the TCS NQT coding questions section, focus on the following topics:

  • Strings (palindromes, reverse, count vowels)
  • Arrays (missing number, second largest, duplicates)
  • Loops and Recursion
  • Number Theory (prime, Armstrong, factorial)
  • Patterns and Mathematical Problems
  • Sorting and Searching (basic level)
  • Functions and Conditional Logic

Problem Statement –

A chocolate factory is packing chocolates into the packets. The chocolate packets here represent an array  of N number of integer values. The task is to find the empty packets(0) of chocolate and push it to the end of the conveyor belt(array).

Example 1 :

N=8 and arr = [4,5,0,1,9,0,5,0].

There are 3 empty packets in the given set. These 3 empty packets represented as O should be pushed towards the end of the array

Input :

8  – Value of N

[4,5,0,1,9,0,5,0] – Element of arr[O] to arr[N-1],While input each element is separated by newline

Output:

4 5 1 9 5 0 0 0

Example 2:

Input:

6 — Value of N.

[6,0,1,8,0,2] – Element of arr[0] to arr[N-1], While input each element is separated by newline

Output:

6 1 8 2 0 0

C

C++

Java

Python

Run

#include<stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    int L[n];
    int j = 0;
    for (int i = 0; i < n; i++) {
        int a;
        scanf("%d", &a);
        if (a != 0) {
            L[j] = a;
            j++;
        }
    }
    for (int i = 0; i < n; i++) {
        if (i < j) {
            printf("%d ", L[i]);
        }
        else {
            printf("0");
        }
    }
    return 0;
}

TCS NQT Coding Question – September Day 1 – Slot 1

Problem Statement –

Joseph is learning digital logic subject which will be for his next semester. He usually tries to solve unit assignment problems before the lecture. Today he got one tricky question. The problem statement is “A positive integer has been given as an input. Convert decimal value to binary representation. Toggle all bits of it after the most significant bit including the most significant bit. Print the positive integer value after toggling all bits”.

Constrains-

1<=N<=100

Example 1:

Input :

10  -> Integer

Output :

5    -> result- Integer

Explanation:

Binary representation of 10 is 1010. After toggling the bits(1010), will get 0101 which represents “5”. Hence output will print “5”.

C

C++

Java

Python

Run

#include<stdio.h> 
#include<math.h>
int main()
{
    int n;
    scanf("%d", &n);
    int k = (1 << (int)(log2(n) + 1)) - 1;
    printf("%d", n ^ k);
    return 0;
}

TCS NQT Coding Question Day 1 Slot 2 – Question 1

Jack is always excited about sunday. It is favourite day, when he gets to play all day. And goes to cycling with his friends. 

So every time when the months starts he counts the number of sundays he will get to enjoy. Considering the month can start with any day, be it Sunday, Monday…. Or so on.

Count the number of Sunday jack will get within n number of days.

 Example 1:

Input 

mon-> input String denoting the start of the month.

13  -> input integer denoting the number of days from the start of the month.

Output :

2    -> number of days within 13 days.

Explanation:

The month start with mon(Monday). So the upcoming sunday will arrive in next 6 days. And then next Sunday in next 7 days and so on.

Now total number of days are 13. It means 6 days to first sunday and then remaining 7 days will end up in another sunday. Total 2 sundays may fall within 13 days.

C

C++

Java

Python

Run

#include<stdio.h>
#include<string.h>
#define MAX_LENGTH 4
int main()
{
    char s[MAX_LENGTH];
    scanf("%s", s);

    int a, ans = 0;
    scanf("%d", &a);

    // Map weekdays to their corresponding values
    char weekdays[][MAX_LENGTH] = {
        "mon", "tue", "wed", "thu", "fri", "sat", "sun"
    };
    int values[] = {6, 5, 4, 3, 2, 1, 0};

    // Find the corresponding value for the input weekday
    int mapSize = sizeof(weekdays) / sizeof(weekdays[0]);
    int m = -1;
    for (int i = 0; i < mapSize; i++) { 
      if (strcmp(s, weekdays[i]) == 0) {
        m = values[i]; break; } 
      
    } if (m != -1) { // Calculate the answer 
    if (a - m >= 1) {
            ans = 1 + (a - m) / 7;
        }
    }
    
    printf("%d", ans);

    return 0;
}

TCS NQT Coding Question Day 1 Slot 2 – Question 2

Airport security officials have confiscated several item of the passengers at the security check point. All the items have been dumped into a huge box (array). Each item possesses a certain amount of risk[0,1,2]. Here, the risk severity of the items represent an array[] of N number of integer values. The task here is to sort the items based on their levels of risk in the array. The risk values range from 0 to 2.

Example :

Input :

7  -> Value of N

[1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each element is separated by new line.

Output :

0 0 0 1 1 2 2  -> Element after sorting based on risk severity 

Example 2:

input : 10  -> Value of N 

[2,1,0,2,1,0,0,1,2,0] -> Element of arr[0] to arr[N-1], while input each element is separated by a new line.

Output : 

0 0 0 0 1 1 1 2 2 2  ->Elements after sorting based on risk severity.

Explanation:

In the above example, the input is an array of size N consisting of only 0’s, 1’s and 2s. The output is a sorted array from 0 to 2 based on risk severity.

C

C++

Java

Python

Run

#include<stdio.h> 
void swap(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

void sortArray(int arr[], int size) {
    int low = 0, mid = 0, high = size - 1;
    while (mid <= high) {
        if (arr[mid] == 0) {
            swap(&arr[low], &arr[mid]);
            low++;
            mid++;
        } else if (arr[mid] == 1) {
            mid++;
        } else {
            swap(&arr[mid], &arr[high]);
            high--;
        }
    }
}

int main() {
    int n;
    scanf("%d", &n);
    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    sortArray(a, n);
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    return 0;
}

TCS NQT Coding Question Day 2 Slot 1 – Question 1

Given an integer array Arr of size N the task is to find the count of elements whose value is greater than all of its prior elements.

Note : 1st element of the array should be considered in the count of the result.

For example,

Arr[]={7,4,8,2,9}

As 7 is the first element, it will consider in the result.

8 and 9 are also the elements that are greater than all of its previous elements.

Since total of  3 elements is present in the array that meets the condition.

Hence the output = 3.

 Example 1:

Input 

5 -> Value of N, represents size of Arr

7-> Value of Arr[0]

4 -> Value of Arr[1]

8-> Value of Arr[2]

2-> Value of Arr[3]

9-> Value of Arr[4]

Output :

3

Example 2:

5   -> Value of N, represents size of Arr

3  -> Value of Arr[0]

4 -> Value of Arr[1]

5 -> Value of Arr[2]

8 -> Value of Arr[3]

9 -> Value of Arr[4]

Output : 

5

Constraints

1<=N<=20

1<=Arr[i]<=10000

C

C++

java

Python

Run

#include<stdio.h> 
#include<limits.h> 

int main() {
    int n, c = 0, a, m = INT_MIN;
    scanf("%d", &n);
    while (n--) {
        scanf("%d", &a);
        if (a >= m) {
            m = a;
            c++;
        }
    }
    printf("%d", c);
    return 0;
}

 

TCS NQT Coding Question Day 2 Slot 1 – Question 2

A supermarket maintains a pricing format for all its products. A value N is printed on each product. When the scanner reads the value N on the item, the product of all the digits in the value N is the price of the item. The task here is to design the software such that given the code of any item N the product (multiplication) of all the digits of value should be computed(price).

Example 1:

Input :

5244 -> Value of N

Output :
160 -> Price 

Explanation:

From the input above 

Product of the digits 5,2,4,4

5*2*4*4= 160

Hence, output is 160.

C

C++

java

Python

Run

#include<stdio.h> 
#include<limits.h>

int main() {
    char s[100];
    scanf("%s", s);
    int p = 1;
    for (int i = 0; i < strlen(s); i++) {
        p *= (s[i] - '0');
    }
    printf("%d", p);
    return 0;
}

TCS NQT Coding Question Day 3 Slot 2 – Question 1

A furnishing company is manufacturing a new collection of curtains. The curtains are of two colors aqua(a) and black (b). The curtains color is represented as a string(str) consisting of a’s and b’s of length N. Then, they are packed (substring) into L number of curtains in each box. The box with the maximum number of ‘aqua’ (a) color curtains is labeled. The task here is to find the number of ‘aqua’ color curtains in the labeled box.

Note :

If ‘L’ is not a multiple of N, the remaining number of curtains should be considered as a substring too. In simple words, after dividing the curtains in sets of ‘L’, any curtains left will be another set(refer example 1)

Example 1:

Input :

bbbaaababa -> Value of str

3    -> Value of L

Output:

3   -> Maximum number of a’s

Explanation:

From the input given above.

Dividing the string into sets of 3 characters each 

Set 1: {b,b,b}

Set 2: {a,a,a}

Set 3: {b,a,b}

Set 4: {a} -> leftover characters also as taken as another set

Among all the sets, Set 2 has more number of a’s. The number of a’s in set 2 is 3.

Hence, the output is 3.

Example 2:

Input :

abbbaabbb -> Value of str

5   -> Value of L

Output:

2   -> Maximum number of a’s

Explanation:

From the input given above,

Dividing the string into sets of 5 characters each.

Set 1: {a,b,b,b,b}

Set 2: {a,a,b,b,b}

Among both the sets, set 2 has more number of a’s. The number of a’s in set 2 is 2.

Hence, the output is 2.

Constraints:

1<=L<=10

1<=N<=50

The input format for testing 

The candidate has to write the code to accept two inputs separated by a new line.

First input- Accept string that contains character a and b only

Second input- Accept value for N(Positive integer number)

The output  format for testing

The output should be a positive integer number of print the message(if any) given in the problem statement.(Check the output in Example 1, Example 2).

C

C++

Java

Python

Run

#include<stdio.h>
#include<string.h>

int main() {
    char str[100];
    scanf("%s", str);
    int n;
    scanf("%d", &n);
    int max = 0, count = 0;
    for (int i = 0; i < strlen(str); i++) {
if (i % n == 0) {
if (count > max) max = count; count = 0; } if (str[i] == 'a') count++; } if (count > max) max = count; printf("%d\n", max); return 0; }

TCS NQT Coding Question Day 3 Slot 2 – Question 2

An international round table conference will be held in india. Presidents from all over the world representing their respective countries will be attending the conference. The task is to find the possible number of ways(P) to make the N members sit around the circular table such that.

The president and prime minister of India will always sit next to each other.

Example 1:

Input :

4   -> Value of N(No. of members)

Output : 

12  -> Possible ways of seating the members

Explanation:

2  members should always be next to each other. 

So, 2 members can be in 2!ways

Rest of the members can be arranged in (4-1)! ways.(1 is subtracted because the previously selected two members will be considered as single members now).

So total possible ways 4 members can be seated around the circular table 2*6= 12.

Hence, output is 12.

Example 2:

Input:

10  -> Value of N(No. of members)

Output :

725760 -> Possible ways of seating the members 

Explanation:

2 members should always be next to each other.

So, 2 members can be in 2! ways 

Rest of the members can be arranged in (10-1)! Ways. (1 is subtracted because the previously selected two members will be considered as a single member now).

So, total possible ways 10 members can be seated around a round table is 

2*362880 = 725760 ways.

Hence, output is 725760.

The input format for testing

The candidate has to write the code to accept one input 

First input – Accept value of number of N(Positive integer number)

The output format for testing 

The output should be a positive integer number or print the message(if any) given in the problem statement(Check the output in example 1, example2)

Constraints :

2<=N<=50

C

C++

Java

Python

Run

#include<stdio.h> 
int main() {
    int n;
    scanf("%d", &n);
    int fact[n + 1];
    fact[0] = 1;
    for (int i = 1; i <= n; i++) {
        fact[i] = fact[i - 1] * i;
    }
    printf("%d\n", fact[n - 1] * 2);
    return 0;
}

TCS NQT Coding Question Day 4 Slot 1 – Question 1

Problem Statement

An intelligence agency has received reports about some threats. The reports consist of numbers in a mysterious method. There is a number “N” and another number “R”. Those numbers are studied thoroughly and it is concluded that all digits of the number ‘N’ are summed up and this action is performed ‘R’ number of times. The resultant is also a single digit that is yet to be deciphered. The task here is to find the single-digit sum of the given number ‘N’ by repeating the action ‘R’ number of times.

If the value of ‘R’ is 0, print the output as ‘0’.

Example 1:

Input :

99 -> Value of N

3  -> Value of R

Output :

9  -> Possible ways to fill the cistern.

Explanation:

Here, the number N=99

  1. Sum of the digits N: 9+9 = 18
  2. Repeat step 2 ‘R’ times i.e. 3 tims  (9+9)+(9+9)+(9+9) = 18+18+18 =54
  3. Add digits of 54 as we need a single digit 5+4

Hence , the output is 9.

Example 2:

Input :

1234   -> Value of N

2      -> Value of R

Output :

2  -> Possible ways to fill the cistern

Explanation:

Here, the number N=1234

  1. Sum of the digits of N: 1+2+3+4 =10
  2. Repeat step 2 ‘R’ times i.e. 2 times  (1+2+3+4)+(1+2+3+4)= 10+10=20
  3. Add digits of 20 as we need a single digit. 2+0=2

Hence, the output is 2.

Constraints:

0<N<=1000

0<=R<=50

The Input format for testing 

The candidate has to write the code to accept 2 input(s)

First input- Accept value for N (positive integer number)

Second input: Accept value for R(Positive integer number)

The output format for testing 

The output should be a positive integer number or print the message (if any) given in the problem statement. (Check the output in Example 1, Example 2).

#include<stdio.h>
#include<string.h>
int main() {
    char s[100];
    scanf("%s", s);
    int n, sum = 0;
    scanf("%d", &n);
    for (int i = 0; i < strlen(s); i++) {
      sum += (s[i] - '0'); 
    } 
    sum *= n; 
    sprintf(s, "%d", sum);
    while (strlen(s) > 1) {
        sum = 0;
        for (int i = 0; i < strlen(s); i++) {
            sum += (s[i] - '0');
        }
        sprintf(s, "%d", sum);
    }
    printf("%s", s);
    return 0;
}

C

C++

Java

Python

Run

TCS NQT Coding Question Day 4 Slot 1 – Question 2

Problem Statement

Particulate matters are the biggest contributors to Delhi pollution. The main reason behind the increase in the concentration of PMs include vehicle emission by applying Odd Even concept for all types of vehicles. The vehicles with the odd last digit in the registration number will be allowed on roads on odd dates and those with even last digit will on even dates.

Given an integer array a[], contains the last digit of the registration number of N vehicles traveling on date D(a positive integer). The task is to calculate the total fine collected by the traffic police department from the vehicles violating the rules.

Note : For violating the rule, vehicles would be fined as X Rs.

Example 1:

Input :

4 -> Value of N

{5,2,3,7} -> a[], Elements a[0] to a[N-1], during input each element is separated by a new line

12 -> Value of D, i.e. date 

200 -> Value of x i.e. fine

Output :

600  -> total fine collected 

Explanation:

Date D=12 means , only an even number of vehicles are allowed. 

Find will be collected from 5,3 and 7 with an amount of 200 each.

Hence, the output = 600.

Example 2:

Input :

5   -> Value of N 

{2,5,1,6,8}  -> a[], elements a[0] to a[N-1], during input each element is separated by new line

3 -> Value of D i.e. date 

300 -> Value of X i.e. fine 

Output :

900  -> total fine collected 

Explanation:

Date D=3 means only odd number vehicles with are allowed.

Find will be collected from 2,6 and 8 with an amount of 300 each.

Hence, the output = 900 

Constraints:

  • 0<N<=100
  • 1<=a[i]<=9
  • 1<=D <=30
  • 100<=x<=5000 

The input format for testing 

The candidate has to write the code to accept 4 input(s).

First input – Accept for N(Positive integer) values (a[]), where each value is separated by a new line.

Third input – Accept value for D(Positive integer)

Fourth input – Accept value for X(Positive integer )

The output format for testing 

The output should be a positive integer number (Check the output in Example 1, Example e) if no fine is collected then print ”0”.

C

C++

Java

Python

Run

#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++)
        scanf("%d", &arr[i]);
    int d, x;
    scanf("%d %d", &d, &x);
    int countEven = 0, countOdd = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] % 2 == 0)
            countEven++;
        else
            countOdd++;
    }
    if (d % 2 != 0) {
        if (countEven == 0)
            printf("0\n");
        else
            printf("%d\n", countEven * x);
    } else {
        if (countOdd == 0)
            printf("0\n");
        else
            printf("%d\n", countOdd * x);
    }
    return 0;
}

TCS Coding Preparation Strategy (1 Month Plan)

Here’s a weekly breakdown to help you stay consistent:

Week 1

  • Basics of C/Python/Java
  • Print statements, loops, conditions
  • Easy pattern programs

Week 2

  • Arrays & Strings
  • Prime, Factorial, Palindrome
  • Solve 5 easy-medium questions/day

Week 3

  • Recursion, Functions
  • Practice intermediate level coding
  • Attempt TCS sample papers

Week 4

  • Full mock test every day
  • Revise all solved problems
  • Focus on speed + accuracy

Resources to Use:

  • LeetCode (Easy)
  • PrepInsta Premium
  • TCS Digital Archives
  • HackerRank (TCS tag)

Frequently Asked Questions

Q1. How many coding questions are asked in TCS NQT?

You will be asked 2 coding problems in the technical round.

Q2. Is Python allowed in TCS NQT 2025?

Yes, TCS supports Python along with C, C++, Java, and Perl.

Q3. What is the level of TCS Nqt coding questions?

Generally, one is easy-medium and the second is medium-hard.

Q4. Will the questions have hidden test cases?

Yes, and you must handle edge cases to pass all test cases.

Q5. Can I re-attempt the NQT?

Yes, you can take the NQT multiple times (within the exam window).


Final Tips & Call-to-Action

Cracking the TCS coding round isn’t just about writing code. It’s about writing the right code that runs efficiently. Practice regularly, simulate exam conditions, and review your logic.

🚀 Want a FREE PDF of TCS nqt coding questions + mock tests?
👉 Subscribe to our NQT Prep Series for fresh problems, interview tips, and exclusive Telegram access.

Your dream job at TCS is just a few questions away. Start solving, keep practicing, and never stop improving.


Leave a Reply

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