ProGrad Programs
About Us



TCS Ninja programming MCQ's with answers for TCS NQT test | FACE Prep

Published on 07 Mar 2020

TCS Ninja programming MCQ's are discussed below with answers. TCS Ninja programming MCQ's cover basic topics in C. It is easy to answer these questions if you are conceptually strong in C programming.Below are some of the TCS Ninja programming MCQ's asked in previous TCS exams.

Also practice other sections in TCS Ninja test pattern. Check out our TCS Ninja dashboards below for free material.

TCS Ninja Programming MCQ's Syllabus

1. Given a code in C language/pseudocode, Identify the functionality of the code.

2. Given a code in C language/pseudocode, identify the bug (syntactic/ semantic) in the code.

3. Conceptual Questions in programming

4. Elementary algorithms based questions

5. Elementary data structures based questions

6. Questions based on basics of C language

7. Basic Concepts behind compiling, linking, OS

TCS Ninja Programming MCQ's with solutions

TCS Ninja Programming MCQs (Standard section)


int main(intargc, char **argv)
char **items;
int j = 3, i;
items =argv;
for(i = 1; (i%4); i++)
int **p = &items[j];
printf("%c", **p);
return 0;

The above code is run with three command line parameters mentioned here:Paper Ink Pen

What will be the output of the above program?

a) PIP

b) Pen

c) Pap

d) Ink

Answer: a


2) Improper formation of which of the following data-structures can cause un-intentional looping of a program that uses it.

a) Linked list

b) Array

c) Queue

d) Stack

Answer: a


3) What is the data type that occupies the least storage in "C" language?

Please give the answer in the blank line: __________

Answer: char


4) Which of the following is true?

a) Array is a dynamic data structure whose size can be changed while stacks are static data structures whose sizes are fixed.

b) Array elements can be accessed and modified(elements can be added or removed) only at the ends of the array while any elements of the stack can be accessed or modified randomly through their indices.

c) An array can have elements of different data types.

d) Elements of a linked-list can be accessed only sequentially.

Answer: d


5) Which of the following statements is FALSE?

a) The time complexity of binary search is O(log n).

b) A linear search requires a sorted list.

c) A binary search can operate only on a sorted list.

d) The time complexity of linear search is O(n).

Answer: b


6) Eesha wrote a function fact( ) in "C" language to calculate factorial of a given number and saved the file as fact.c. She forgot to code the main function to call this fact function. Will she be able to compile this fact.c without the main() function?

a) Yes, she can compile provided the compiler option -no strict-checking is enabled.

b) No, she can not compile as the main function is required to compile any C program file.

c) Yes, she can compile as main( ) is not required at compile time.

d) Yes, she can compile and run as the system will supply default values to fact function.

Answer: b


7) The difference between variable declaration and variable definition is:

a) Declaration and definition are the same. There is no difference.

b) A declaration is used for variables and definitions is used for functions.

c) Declaration associates type to the variable whereas definition associates scope to the variable.

d) Declaration associates type to the variable whereas definition gives the value to the variable.

Answer: d

TCS Ninja Programming Concepts (Advanced Section)

1) The in order and pre order traversal of a binary tree are db ea fc g and a bd ec f g, respectively. The post-order traversal of the binary tree is:

a) d eb fg c a

b) de fgb ca

c) e db fg ca

d) e db gf c a



2) Eesha wrote a recursive function that takes the first node in a linked list as an argument, reverses the list, returning the first Node in the result. The pseudo code for this function is given below. However, she did not get the correct result. In which line number did she make a mistake?

Please give the answer in the blank line: ____________

public Node reverse(Node first)
if (first == null) return null;
if (first.next == null) return first;
Node second = first.next;
Node rest = reverse (second);
second.next = first;
first.next = null;
return rest.next;

Answer: return rest


3) The longest common subsequence (LCS) problem is the problem of finding the longest subsequence common to a set of sequences (often just two sequences). A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements. One form of implementation of LCS function is given below. The function takes as input sequences X[1...m] and Y[1...n], computes the length of the Longest common subsequence between X[1..i] and Y[1..j] for all 1<i<m and 1<j<n, and stores it in C[i,j]. C[m,n] will contain the length of the LCS of X and Y.

function LCSLength(X[1..m], Y[1..n])
C = array(0..m, 0..n)
for i:= 0..m
C[i,0] =0
for j := 0..n
C[0,j] = 0d
for i := 1..m
for j := 1..n
if X[i] = Y[j]
C[i,j] := C[i-1, j-1] + 1
C[i,j] := max(C[i, j-1], C[i-1, j])
return C[m, n]

Eesha used the above algorithm to calculate the LCS length between "kitten" and "string". What was the result she got? Please give the answer in the blank line. ___________

Answer: 2

TCS Ninja Programming MCQ's (previously asked)

1) How many times the below loop will be executed?

int main()
int x, y;
} }

A. 15

B. 11

C. 10

D. 13

Solution: Option A


2) Where are the local variables stored?

A. Disk

B. Stack

C. Heap

D. Code

Solution: Option B


3) Which datatype has more precision?

A. double

B. float

C. int

D. long int


4) Find the output of the following code?

int main
float f = 0.1;
if (f = 0.1)
printf (yes);
else print (no);


5) What will happen if in a C program you assign a value to an array element whose subscript exceeds the size ofarray?

A. The element will be set to 0.

B. The compiler would report an error.

C. The program may crash if some important data gets overwritten.

D. The array size would appropriately grow.

Solution: Option C

Explanation:If the index of the array size is exceeded, the program will crash. Hence "option c" is the correct answer. But the modern compilers will take care of this kind of errors.


6) What does the following declaration mean?

int (*ptr)[10];

A. ptr is array of pointers to 10 integers

B. ptr is a pointer to an array of 10 integers

C. ptr is an array of 10 integers

D. ptr is an pointer to array

Solution: Option B


7) In C, if you pass an array as an argument to a function, what actually gets passed?

A. Value of elements in array

B. First element of the array

C. Base address of the array

D. Address of the last element of array

Solution: Option C

Explanation:The statement 'C' is correct. When we pass an array as a function argument, the base address of the array will be passed.


8) What will be the output of the program?

int main()
  int a[5] = {5, 1, 15, 20, 25};
  int i, j, m;
  i = ++a[1];
  j = a[1]++;
  m = a[i++];
  printf("%d, %d, %d", i, j, m);
  return 0;

A. 2, 1, 15

B. 1, 2, 5

C. 3, 2, 15

D. 2, 3, 20

Solution: Option C


Step 1: int a[5] = {5, 1, 15, 20, 25}; The variable arr is declared as an integer array with a size of 5 and it is initiapzed to

a[0] = 5, a[1] = 1, a[2] = 15, a[3] = 20, a[4] = 25 .

Step 2: int i, j, m; The variable i,j,m are declared as an integer type.

Step 3: i = ++a[1]; becomes i = ++1; Hence i = 2 and a[1] = 2

Step 4: j = a[1]++; becomes j = 2++; Hence j = 2 and a[1] = 3.

Step 5: m = a[i++]; becomes m = a[2]; Hence m = 15 and i is incremented by 1(i++ means 2++ so i=3)

Step 6: printf("%d, %d, %d", i, j, m); It prints the value of the variables i, j, m

Hence the output of the program is 3, 2, 15


9) Is there any difference in the following declarations?

int fun(int arr[]);

int fun(int arr[2]);

A. Yes

B. No

Solution: Option B

Explanation:No, both the statements are the same. It is the prototype for the function fun() that accepts one integer array as a parameter and returns an integer value.


10) Are the expressions arr and &arr same for an array of 10 integers?



Solution: Option B

Explanation:Both mean two different things. arr gives the address of the first int, whereas the &arr gives the address ofarrayof ints.


11) Which of the flowing statements should be used to obtain a remainder after dividing 3.14 by 2.1?

A. rem = 3.14 % 2.1;

B. rem = modf(3.14, 2.1);

C. rem = fmod(3.14, 2.1);

D. Remainder cannot be obtain in floating point division.

Solution: Option C


fmod(x,y) - Calculates x modulo y, the remainder of x/y.

This function is the same as the modulus operator. But fmod() performs floating point divisions.


12) What are the types of packages?

A. Internal and External

B. External, Internal and None

C. External and None

D. Internal

Solution: Option B


13) Which of the following special symbols are allowed in a variable name?

A. * (asterisk)

B. | (pipepne)

C. -(hyphen)

D. _(underscore)

Solution: Option D

Explanation: Variable names in C are made up of letters (upper and lower case) and digits. The underscore character ("_") is also permitted. Names must not begin with a digit.


14) Is there any difference between following declarations?

1 : extern int fun();

2 : int fun();

A. Both are identical

B. No difference, except extern int fun(); is probably in another file

C. int fun(); is overrided with extern int fun();

D. None of these

Answer: Option B

Explanation: extern int fun(); declaration in C is to indicate the existence of a global function and it is defined externally to the current module or in another file.

int fun(); declaration in C is to indicate the existence of a function inside the current module or in the same file.

Practice more TCS Ninja programming questions

Practice TCS Ninja Coding questions

TCS Ninja Programming MCQs Session

Subscribe to Faceprep's YouTube channel to get notified of our videos.

If you have any feedback about this article and want to improve this, please write to enquiry@faceprep.in