TCS Ninja Programming MCQs
TCS Ninja Programming MCQs
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
3) What is the data type that occupies the least storage in “C” language? Please give the
answer in the blank line: __________
Answer: char
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
9) 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: ____________
10) 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.
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
#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
int main
{
float f = 0.1;
if (f = 0.1)
printf (“yes”);
else print (“no”);
}
15) 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.
17) 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.
#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
20) 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.
21) 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.
22) What are the types of packages?
A. Internal and External
B. External, Internal and None
C. External and None
D. Internal
Solution: Option B
23) 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.