Tcs Programming Mcquestions

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 17

TCS Programming MCQuestions

The syllabus for this section is as follows.

Programming Concepts:
Iteration, recursion, procedural vs OOP.
C Language: call by value/reference, basic and derived data types,
storage class, scope and visibility, basics of pointers, basic header files,
library functions, branching and looping, command line arguments,
user-defined functions.

Algorithms:
Basic search algorithms, basic sort algorithms (tree traversal, dynamic
programming, etc)

Data Structures:
Array, Stack, Queue, List (tree, hash table, etc)

1) Eesha was in a wonderland where she saw a treasure trove of seven


items of various items (in lakhs) and weights (in kgs) as per the
table given below.

Value 12 10 8 11 14 5 5

Weight 4 6 5 7 3 10 12

She wanted to bring back the maximum value of items but she was not
able to carry more than 10 kgs. Using dynamic programming, what is
the maximum value of the items that she could carry back with her.

Answer: 26
2) In C language, if a function return type is not explicitly defined then
it defaults to what data type?

Answer: Int

3) Which of the following syntax is correct for command -line


arguments?

a) int main (char *argv[], int argc)


b) none of the three options
c) int main () { int argv, char *argc[]; }
d) int main(int var, char *varg[])

Answer: int main (int var,char *varg[])

4) The full set of operations allowed on a stack are

a) Push, pop
b) Push, pop, remove
c) Push, pop, add, remove
d) Push,pop,add,remove,substitute

Answer: push, pop

5) Realloc () function is used to:

a) Get back the memory that was released earlier using dree() function
b) Reallocate a file pointer when switching between files
c) Change the size of an array
d) Change the size of the dynamically allocated memory

Answer: change the size of dynamically allocated memory

6) Which of the below is NOT a data type in C language:


a) Signed int
b) Big int
c) Short int
d) Long int

Answer: Big int

7) Eesha wants to implement an image viewer application to view


images in a given folder. The application will be able to display an
image and will also know what its next and previous images are at any
given point of time so that the user can so that the user can view
next/previous image by pressing right/left keys on the keyboard.
Which data structure is appropriate for Esha to use?

a) Tree
b) Queue
c) Linked list
d) Stack

Answer: Linked list

8) The pseudo code below sorts an array using bubble sort. Here A is
the array and the” n” is the number of elements in it. Function swap
exchanges the value of 2 given value.
This function is called with A and 7 as parameter where the array a
initially contains the element 64, 34, 25,12, 22, 11, 9

a) 34 25 12 22 11 9 64
b) 25 12 22 11 9 34 64
c) 11 9 12 22 25 34 64
d) 12 11 9 22 25 34 64

Answer: 25 12 22 11 9 34 64

9) #define is used to

a) Define a variable
b) Define a macro
c) Define a function
d) Define a constant

Answer: Define a macro

10) What type of data structures are queues?

a) First in last out


b) First in first out
c) Last in first out
d) Last in last out

Answer: First in first out

11) Which of the following is NOT a valid storage class in C language?

a) Extern
b) Dynamic
c) Register
d) Auto
Answer: Dynamic

12) Eesha is developing a word processing software in which she wants


to provide undo feature. The software will maintain all the sequential
changes and at any point of time pressing control z will undo the latest
change, what data structure should Eesha use for this?

a) Stack
b) Queue
c) Linked list
d) Array

Answer: Stack

13) #include
Main(int argc,char**argv)
{
printf(“%s\n”,argv[–argc]);
Return 1;
}

The above program was run with the following command line
parameters
Asha usha nisha easha
What was the output?

a) Nisha
b) Unable to run due to compilation error
c) No output,run time error
d) easha

Answer: easha
TCS Ninja Programming MCQs (Standard section)

1)

#include
int main(int argc, char ** argv)
{
char **items;
int j = 3, i;
items = argv;
for(i = 1; (i%4); i++)
{
int **p = &items[j];
printf("%c", **p);
j--;
}
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 inorder and preorder traversal of a binary tree are d b e a f c


g and a b d e c f g, respectively. The post-order traversal of the binary
tree is:

a) d e b f g c a
b) d e f g b c a
c) e d b f g c a
d) e d b g f c a

Answer: 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
else
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?
#include<stdio.h>
int main()
{
int x, y;
for(x=5;x>=1;x--)
{
for(y=1;y<=x;y++)
printf("%d\n",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 of array?

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?

#include<stdio.h>
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
Explanation:
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 int 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?

A.Yes
B.No

Solution: Option B
Explanation: Both mean two different things. arr gives the address of
the first int, whereas the &arr gives the address of array of ints.

————————————————

11) Which of the fplowing 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
Explanation:
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 pnkages?

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.

You might also like