Capgemini Frequent Questions+Previous Year
Capgemini Frequent Questions+Previous Year
Capgemini Frequent Questions+Previous Year
int A[5][5], k, j;
A[k][j] = A[j][k];
Ans. A
#include<stdio.h>
int main()
long double a;
long double b;
int arr[sizeof(!a+b)];
printf(“%d”,sizeof(arr));
B. 32
C. 64 with warning
D. No output
Ans. C
B. It instructs the compiler to keep a local variable in existence during the lifetime of a
program.
Ans. C
#include<stdio.h>
int main()
int x =4, y = 0;
int z;
z = (y++, y);
printf(“%d\n”, z);
return 0;
A. 1
B. 0
D. Compilation Error
Ans. A
#include<stdio.h>
int main()
int ch;
print(“Enter a value between 1 & 2”);
scanf(“%d”, &ch);
switch(ch, ch+1)
case 1 :
printf(“1\n”);
break;
case 2 :
printf(“2\n”);
break;
default :
printf(“3\n”);
A. 1
C. 1
D. No output
Ans. C
if (num>0)
a=a+1;
fun1(num/10);
else
return a;
A. 2
B. 3
C. Runtime Error
D. None of these
Ans. B
2. set m=1,t=0
3. if m >= n
4. go to line 9
5. else
6. t=t+m
7. m+=1
8. go to line 3
9. display T
10. stop
A. 32
B. 76
C. 56
D. 28
Ans. D
int fun(int n)
if(n == 4)
return n;
else
return 2*fun(n+1);
A. 4
B. 8
C. 16
D. Error
Ans. C
if ( i+j> 5)
j = i+2;
if ( j<5 )
print(i)
else
print(j)
else
print(i+1)
A. 12
B. 5
C. 7
D. 6
Ans. C
int j=41, k= 37
j=j+1
k=k-1
j=j/k
k=k/j
print(k,j)
A. 42 36
B. 36 1
C. 1 1
D. 1 36
Ans. C
#include<stdio.h>
int main()
int a =0,b=1,c=2;
A. 0 1 2
B. 0 2 0
C. 0 2 2
D. Error
Ans. C
12.
print a * b / c – d
print a * b / (c – d)
A. Differ by 80
B. Same
C. Differ by 50
D. Differ by 160
Ans. A
13.
A. 0 and 1
B. 0 and 0
C. 1 and 1
D. 1 and 0
Ans. D
float c
c=a/b
print c
A. 984
B. 98.4
C. 98
D. Error
Ans. B
if (condition 1) {
if (condition 2)
{ // Statement A } else
if (condition 3)
{ // Statement B} else
if (condition 4)
{// Statement D}
else
{// Statement E}
Ans. C
#include<stdio.h>
int main()
int num = 8;
return 0;
A. 8 0
B. 0 0
C. 16 4
#include<stdio.h>
int main(){
int i = 16;
i =! i > 15;
printf(“i = %d”,i);
return 0;
}
A. i = -1
B. i = 0
C. i = 1
Ans. B
#include<stdio.h>
int main()
printf(“%d”,sizeof(x));
return 0;
A. 40
B. 10
C. 20
D. Error
Ans. A
#include<stdio.h>
int main()
int x = 2;
return 0;
}
A. true
B. false
C. 0
D. Error
Ans. B
#include<stdio.h>
int main()
int a = 4, b = 2;
return 0;
A. 4
B. 1
C. 0
D. 16
Ans. D
#include<stdio.h>
int main()
int a = 4, b = 2;
A. 4
B. 1
C. 0
D. 6
Ans. D
#include<stdio.h>
int main()
printf(“%d”,a);
return 0;
A. -1
B. Garbage value
C. 0
D. Error
Ans. -1
#include<stdio.h>
int x = 0;
int main(){
if(x == x)
printf(“if”);
else
printf(“else”);
return 0;
B. ifelse
C. else
D. if
Ans D
#include<stdio.h>
#define FALSE -1
#define NULL 0
#define TRUE 1
int main(){
if(NULL)
printf(“NULL”);
else if(FALSE)
printf(“TRUE”);
else
printf(“FALSE”);
return 0;
A. TRUE
B. FALSE
C. NULL
D. Error
Ans. A
#include<stdio.h>
int main(){
int i;
if(true)
printf(“work”);
else
printf(“not work”);
return 0;
A. work
B. not work
C. compiler error
D. runtime error
Ans. A
#include<stdio.h>
int main()
if(printf(“0”))
printf(“inside if block”);
else
printf(“inside else block”);
return 0;
B. 0
C. 0inside if block
Ans. C
#include<stdio.h>
int main(){
int i = 5, j = 4;
if(!printf(“”))
else
return 0;
A. 5 5
B. 5 4
C. 5 6
D. 6 6
Ans. B
#include<stdio.h>
int main()
int i = 25;
if(i == 25);
i = 50;
if(i == 25)
i = i + 1;
else
i = i + 1;
printf(“%d”, i);
return 0;
A. 51
B. 25
C. 50
D. None of these
Ans. A
#include<stdio.h>
int main()
if(sizeof(0))
printf(“Hai”);
else
printf(“Bye”);
return 0;
}
A. 2
B. Bye
C. Runtime Error
D. Hai
Ans. D
#include<stdio.h>
int main()
if(sizeof(‘\0’))
printf(“inside if block”);
else
return 0;
A. inside if block
D. None of these
Ans. A
#include<stdio.h>
int main()
{
int i = 65;
switch(i)
case 65:
printf(“Integer 65”);
break;
case ‘A’:
printf(“Char 65”);
break;
default:
printf(“Bye”);
return 0;
A. Integer 65
B. Char 65
C. Bye
Ans. D
#include<stdio.h>
int main()
switch(2/3)
case 1:
printf(“case 1 executed “);
case 2:
break;
default:
return 0;
A. case 1 executed
B. case 2 executed
Ans. C
#include<stdio.h>
int main()
int i = 1;
switch(i)
case i:
printf(“case 1 executed”);
break;
case i + 1;
printf(“case 2 executed”);
break;
default:
break;
return 0;
A. case 1 executed
B. case 2 executed
Ans. D
#include<stdio.h>
int main(){
while(printf(“%d”, 5) < 4)
printf(“Loop “);
return 0;
B. Infinite loop
D. None of these
Ans. B
#define NULL 0
int main()
while (NULL == 0)
printf(“Loop”);
break;
return 0;
A. Loop
B. Null
C. 0
Ans. A
#include<stdio.h>
int main(){
float ft = 7.5;
while(ft)
printf(“Loop”);
ft = ft – .5;
if(ft == 5.0f)
break;
}
return 0;
A. LoopLoopLoopLoopLoop
B. Loop
C. No output
D. None of these
Ans. A
#include<stdio.h>
int main()
while(!!7)
printf(“Hai”);
return 0;
A. Hai
B. HaiHai
C. Infinite loop
D. None of these
Ans. C
#include<stdio.h>
int main(){
while(!printf(“awesome”));
return 0;
A. awesome
B. Error
C. Infinite loop
D. None of these
Ans. A
Read n
i=0,s=0
Function Sample(int n)
while(n>0)
r=n%l0
p=8^i
s=s+p*r
i++
n=n/10
End While
Return s;
End Function
a) 27
b) 187
c) 87
d) 120
Ans: Option C
Integer n
for (n = 3; n != 0; n--)
Print n
n = n-1
end for
a) 3 1
b) 3 2 1
c) 3
d) Infinite Loop
Ans: Option D
Function(input a, input b)
If(a < b)
return function(b, a)
elseif(b != 0)
return (a + function(a,b-1))
else
return 0
a) 56
b) 78
c) 72
d) 68
Ans: Option C
Read number
Function divisible(number)
while (num_remainder)
even_counter= even_counter+1
End If
End While
return even_counter;
a) 3
b) 4
c) 2
d) 1
Answer: Option D
Function mul(a, b)
t=0
while (b != 0)
t=t+a
b=b-1
End While
return t;
End Function
a) 490563
b) 49056
c) 490561
Ans: Option B
Read size
Read a[1],a[2],a[size]
i=0
While(i<size)
j=i+1
While(j<size)
t= a[i];
a[i] = a[j];
a[j] = t;
End If
j=j+1
End While
i=i+1
End While
i=0
While (i<size)
print a[i]
i=i+1
End While
a) Line 4
b) Line 6
c) Line 7
d) No Error
Ans: Option C
7) What is the time complexity of searching for an element in a circular linked list?
a) O(n)
b) O(nlogn)
c) O(1)
Ans: Option A
8) In the worst case, the number of comparisons needed to search a singly linked list of length
n for a given element is
a) log 2 n
b) n
? 2
c) log 2 n 1
d) n
Ans: Option D
a) O(n)
b) O(n!)
c) O(n log n)
d) O(n^C)
Ans: Option A
ch = b;
ch++;
a) 0
b) 25
c) 26
d) 1
Ans: B
11) Consider the following piece of code.What will be the space required for this code?
int sum(int A[], int n)
int sum = 0, i;
return sum;
// sizeof(int) = 2 bytes
a) 2n + 8
b) 2n + 4
c) 2n + 2
d) 2n
Ans: A
Function(input a,input b)
If(a<b)
return function(b,a)
elseif(b!=0)
return (a+function(a,b-1))
else
return 0
a) 56
b) 88
c) 72
d) 65
Ans: C
Input m=9,n=6
m=m+1
N=n-1
m=m+n
if (m>n)
print m
else
print n
a) 6
b) 5
c) 10
d) 15
Ans: D
Integer n
if(g>f)
for(n=f;n<g;n=n+1)
sum=sum+n
print sum
a) 21
b) 15
c) 9
d) 6
Ans: A
15) Consider a hash table with 9 slots. The hash function is h(k) = k mod 9. The collisions are
resolved by chaining. The following 9 keys are inserted in the order: 5, 28, 19, 15, 20, 33, 12,
17, 10. The maximum, minimum, and average chain lengths in the hash table, respectively,
are
a) 3, 0, and 1
b) 3, 3, and 3
c) 4, 0, and 1
d) 3, 0, and 2
Ans: A
16) You have an array of n elements. Suppose you implement a quick sort by always
choosing the central element of the array as the pivot. Then the tightest upper bound for the
worst case performance is:
a) O(n2)
b) O(nLogn)
c) ?(nLogn)
d) O(n3)
Ans: A
17) Let G be a graph with n vertices and m edges. What is the tightest upper bound on the
running time on Depth First Search of G? Assume that the graph is represented using
adjacency matrix.
a)O(n)
b)O(m+n)
c)O(n2)
d)O(mn)
Ans: C
18) Let P be a Quick Sort Program to sort numbers in ascending order using the first element
as a pivot. Let t1 and t2 be the number of comparisons made by P for the inputs {1, 2, 3, 4, 5}
and {4, 1, 5, 3, 2} respectively. Which one of the following holds?
a)t1 = 5
b)t1 < t2
c)t1 > t2
d)t1 = t2
Ans: C
func(root.left());
func(root.right());
System.out.println(root.data());
}
a)Preorder traversal
b)Inorder traversal
c) Postorder traversal
Ans: C
20) How will you find the minimum element in a binary search tree?
while(root.left() != null)
root = root.left();
System.out.println(root.data());
while(root != null)
root = root.left();
System.out.println(root.data());
while(root.right() != null)
{
root = root.right();
System.out.println(root.data());
while(root != null)
root = root.right();
System.out.println(root.data());
Ans: a
What is the output of the code given below? Now, let us take up a small test.
1#include <stdio.h>
2int main()
3{
4 char ch = 'A';
5 printf("%d\n", ch);
6 return 0;
7}
1. A
2. 'A'
3. 65
4. 97
Solution: The output of this code snippet might have been A if the format specifier mentioned
in the print statement would be character format specifier - '%c'. But since the format
specifier is integer format specifier - '%d', the ASCII code character A which is 65 is
retrieved as the output. A
Writing code all starts with knowing the coding constructs. The basic coding constructs of
any programming language are data types. You might be tested on knowing more about the
data types and the qualifiers not used frequently. You may come across a question of this
kind.
1.short int x;
2.signed short x;
3.short x;
4.unsigned short x;
1. 3 and 4
2. 1
3. 2
4. All are valid
Solution:All are valid. First 3 mean the same thing. 4th means unsigned.
Expression Evaluation is the favorite question to test your knowledge about combinations of
different mathematical operators.
1#include <stdio.h>
2int foo(int* a, int* b)
3{
4 int sum = *a + *b;
5 *b = *a;
6 return *a = sum - *b;
7}
8int main()
9{
10 int i = 0, j = 1, k = 2, l;
11 l = i++ || foo(&j, &k);
12 printf("%d %d %d %d", i, j, k, l);
13 return 0;
}
14
1. 1 2 1 1
2. 1 1 2 1
3. 1 2 2 1
4. 1 2 2 2
Solution: The control in the logical OR goes to the second expression only if the first
expression results in FALSE. The function foo() is called because i++ returns 0(post-
increment) after incrementing the value of i to 1. The foo() function actually swaps the values
of two variables and returns the value of the second parameter. So, values of variables j and k
get exchanged and OR expression evaluates to be TRUE.1 2 1 1
1#include <stdio.h>
2int i;
3int main()
4{
5 if (i);
6 else
7 printf("Ëlse");
8 return 0;
9}
1. if block is executed.
2. else block is executed
3. It is unpredictable as i is not initialized.
4. Error: misplaced else
Solution: Since i is defined globally, it is initialized with default value 0. The else block is
executed as the expression within if evaluates to FALSE. An empty block is equivalent to a
semi-colon(;). So the statements if (i);andif (i) {} are equivalent.
We can divide a large program into the basic building blocks known as a function. The
function contains the set of programming statements enclosed by {}. A function can be called
multiple times to provide reusability and modularity to a program. In other words, we can say
that the collection of functions creates a program.
You can be given a function and ask you the functionality of the function.
void swap ( int x, int y )
1{
2 int tmp;
3 tmp = x;
4 x = y;
5 y = tmp;
6}
7
Solution: The code will not work because the parameters are passed by value. In order to
swap the values of x and y the parameters should be passed with reference. The correct code
is:
void swap ( int &x, int &y )
1{
2 int tmp;
3 tmp = x;
4 x = y;
5 y = tmp;
6}
7
As per the above discussion, you might have got some clarity on the kind of questions that
you might come across in this Capgemini Pseudo Code Online test. Having a quick revision
on format specifiers, data types, functions, expression statements, conditional statements,
looping constructs makes facing this section of the Capgemini recruitment process with great
aplomb.
1) Count the number of co-prime pairs in an array. (Any two numbers whose GCD is 1
are be called as co-prime)
Input:
The first line contains an integer T, total number of elements. Then follow T elements.
Output:
Count the number of co-prime pairs in an array.
Constraints:
1 ? T ? 25
1 ? elements ? 100
Input 1:
3
123
Output 1:
3
Here, Co-prime pairs are (1, 2), (2, 3), (1, 3)
Input 2:
4
4839
Output 2:
4
Here, Co-prime pairs are (4, 3), (8, 3), (4, 9 ), (8, 9 )
#include<stdio.h>
int coprime(int a, int b)
{
int gcd;
while ( a != 0 )
{
gcd = a; a = b%a; b = gcd;
}
if(gcd == 1)
return 1;
else
return 0;
}
int count_pairs(int arr[], int n)
{
int count = 0;
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (coprime(arr[i], arr[j]))
count++;
}
}
return count;
}
int main()
{
int n;
scanf("%d", &n);
int a[25], i;
for(i=0; i<n; i++)
scanf("%d", &a[i]);
printf("%d", count_pairs(a, n));
return 0;
}
2) Search for Nth Occurrence
Given an array, number to search (say e1), and occurrence (say n), print the index of the nth
occurrence of e1 in the array. If e1 does not occur n times, then print the index as -1.
Get the size of an array and get elements one by one. Input the number to be searched and
occurrence. For example, 7 => Size of an array 1 4 6 7 6 3 6 => array elements 6 => number
to be searched 3 => 3rd occurrence of number 6 Output: 6 Explanation: Number 6, 3rd
occurrence position is 6
Input:
7
1467636
6
3
Output:
6
#include<stdio.h>
int main()
{
int a[100],n,i,e1,size,count=0;
scanf("%d",&size);
for(i=0;i<size;i++)
scanf("%d",&a[i]);
scanf("%d",&e1);
scanf("%d",&n);
for(i=0;i<size;i++)
{
if(e1==a[i])
count++;
//If 'n'th occurrence found then print it's index and exit.
if(count==n)
{
printf("%d",i);
return 0;
}
}
//If 'n' occurrence not found then print '-1'.
printf("%d",-1);
return 0;
}
The input consists of n + 2 lines. The first line consists a single integer n, The next n lines
consist of 1 integer element part of the array. The last line consists of an integer to be
searched. Output found or missing based on whether the element is present in the array or
not. Note: max value of n is 100.
Input 1:
3
123
6
Output 1:Missing
Input 2:
3
123
2
Output 2:Found
#include<stdio.h>
#define MAX_SIZE 20
int main()
{
int n, i, j, min_index, array[MAX_SIZE], x;
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &array[i]);
scanf("%d", &x);
for(i = 0; i < n; i++)
{
if(x == array[i])
{
printf("Foundn");
return 0;
}
}
printf("Missingn");
return 0;
}
Input:
The first line contains an integer T, total number of elements. Then follow T integers.
Output:
Display the second largest among the given T integers.
Constraints:
1 ? T ? 1000
1 ? integers ? 1000000
Input:
7
23 45 7 34 25 25 89
Output:
45
#include<stdio.h>
int main()
{
int a[50], size, i, j = 0, big, sec_big;
scanf("%d", &size);
for(i=0; i<size; i++)
scanf("%d", &a[i]);
big=a[0];
for(i=1;i<size;i++)
{
if(big<a[i])
{
big=a[i];
j = i;
}
}
sec_big =a[size-j-1];
for(i=1;i<size;i++)
{
if(sec_big <a[i] && j != i)
sec_big =a[i];
}
printf("%d", sec_big);
return 0;
}
Get a target element and return its coordinates. If the value didn't exist, the program had to
return (-1,-1).The first line of input is the sizeof row and column, followed rxc elements. The
third line of input is the element to be searched in the rxc matrix.
Input 1:
42
09876543
3
Output 1:
(3, 1)
#include<stdio.h>
int main()
{
int i, j, count = 0;
int arr[10][10], search, r, c;
scanf("%d %d", &r, &c);
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
scanf("%d", &arr[i][j]);
}
scanf("%d", &search);
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
if (arr[i][j] == search)
{
printf("(%d , %d)n", i, j);
count++;
}
}
}
if (count == 0)
printf("(-1,-1)");
return 0;
}
#include<stdio.h>
int main()
{
char ch;
int i;
scanf("%c", &i);
scanf("%d", &ch);
printf("%c %d", ch, i);
return 0;
}
Error: suspicious char to in conversion in scanf()
Error: we may not get input for second scanf() statement
No error
None of above
Question: Consider the following iterative implementation to find the factorial of a
number:
int main()
{
int n = 6, i;
int fact = 1;
for(i=1;i<=n;i++)
_________;
printf("%d",fact);
return 0;
}
Which of the following lines should be inserted to complete the above code?
fact = fact + i
fact = fact * i
i = i * fact
i = i + fact
Question: How will you find the maximum element in a binary search tree?
a)
public void max(Tree root)
{
while(root.left() != null)
{
root = root.left();
}
System.out.println(root.data());
}
b)
public void max(Tree root)
{
while(root != null)
{
root = root.left();
}
System.out.println(root.data());
}
c)
public void max(Tree root)
{
while(root.right() != null)
{
root = root.right();
}
System.out.println(root.data());
}
d)
public void max(Tree root)
{
while(root != null)
{
root = root.right();
}
System.out.println(root.data());
}
10
1
10 9 8 … 1 0
10 9 8 … 1
a) 27
b) 187
c) 87
d) 120
Ans: Option C
a) 3 1
b) 3 2 1
c) 3
d) Infinite Loop
Ans: Option D
a) 56
b) 78
c) 72
d) 68
Ans: Option C
a) 3
b) 4
c) 2
d) 1
Answer: Option D
a) 490563
b) 49056
c) 490561
d) None of the mentioned
Ans: Option B
a) Line 4
b) Line 6
c) Line 7
d) No Error
Ans: Option C
7) What is the time complexity of searching for an element in a circular linked list?
a) O(n)
b) O(nlogn)
c) O(1)
d) None of the mentioned
Ans: Option A
8) In the worst case, the number of comparisons needed to search a singly linked list
of length n for a given element is
a) log 2 n
b) n
?2
c) log 2 n 1
d) n
Ans: Option D
11) Consider the following piece of code.What will be the space required for this
code?
int sum(int A[], int n)
{
int sum = 0, i;
for(i = 0; i < n; i++)
sum = sum + A[i];
return sum;
}
// sizeof(int) = 2 bytes
a) 2n + 8
b) 2n + 4
c) 2n + 2
d) 2n
Ans: A
a) 6
b) 5
c) 10
d) 15
Ans: D
15) Consider a hash table with 9 slots. The hash function is h(k) = k mod 9. The
collisions are resolved by chaining. The following 9 keys are inserted in the order: 5,
28, 19, 15, 20, 33, 12, 17, 10. The maximum, minimum, and average chain lengths
in the hash table, respectively, are
a) 3, 0, and 1
b) 3, 3, and 3
c) 4, 0, and 1
d) 3, 0, and 2
Ans: A
16) You have an array of n elements. Suppose you implement a quick sort by always
choosing the central element of the array as the pivot. Then the tightest upper bound
for the worst case performance is:
a) O(n2)
b) O(nLogn)
c) ?(nLogn)
d) O(n3)
Ans: A
17) Let G be a graph with n vertices and m edges. What is the tightest upper bound
on the running time on Depth First Search of G? Assume that the graph is
represented using adjacency matrix.
a)O(n)
b)O(m+n)
c)O(n2)
d)O(mn)
Ans: C
18) Let P be a Quick Sort Program to sort numbers in ascending order using the first
element as a pivot. Let t1 and t2 be the number of comparisons made by P for the
inputs {1, 2, 3, 4, 5} and {4, 1, 5, 3, 2} respectively. Which one of the following holds?
a)t1 = 5
b)t1 < t2
c)t1 > t2
d)t1 = t2
Ans: C
Ans: C
20) How will you find the minimum element in a binary search tree?
a) public void min(Tree root)
{
while(root.left() != null)
{
root = root.left();
}
System.out.println(root.data());
}
Ans: a