# Capgemini Pseudo code Previous Year Questions

06 January 2023

Capgemini Pseudocode Previous Year Questions

Capgemini Pseudocode Questions

Q1) What is the output of this C code?

#include <stdio.h>

int main()

{

int i= 0, j = 0;

while (I1: i < 2)

{

i++;

while (j < 3)

{

printf("loop\n");

goto I1;

}

}

}

A. loop loop loop loop

B. loop loop

C. Compile time error

D. Infinite loop

Explanation: goto label is expected to give at any line except, conditional areas. In the given code, compiler fails to identify I1 as label & it will consider I1 as an undeclared identifier.

Q2) What is the output of this code?

#include<stdio.h>

int main()

{

static int i = 5;

if (--i){

printf("%d ",i);

main();

}

}

A. 4 3 2 1

B. 4 4 4 4

C. 0 0 0 0

D. 1 2 3 4

Explanation: Here, main() is a recursive function which will keep on executing till if condition is false. Initial value of static variable i = 5. i--(Pre-decrement) will update the i value as 4. As long as value inside if brackets are Non-zero numbers, condition will be true. As I is a static variable, re-initialization in the next function call will not affect I value. i value will keep on decrement and print 4 3 2 1. After 1, i becomes 0 and the if condition fails followed by ending recursive calls.

Q3) Consider the below given fragment of code.

int f(int &x, int c) {

c = c - 1;

if (c == 0) retum 1;

x = x + 1;

return f(x, c) * x;

}

In above program the first parameter is passed by reference and the second parameter is passed by value. If the value of p = 5 before the call then what is the value that returned by f(p, p)?

A. 6561

B. 161051

C. 55440

D. 3024

Explanation: As X is call by reference, last updated value of X will be assigned to the variable for all the recursive calls. When c value becomes 0, x value will be 9. So,

f(5,5)

->f(6,4) * 9

-> f(7,3) * 9

-> f(8,2) * 9

-> f(9,1) * 9

-> c == 0 & returns 1

Ans => 1 * 9 * 9 * 9 * 9 = 6561

Q4) Comment on the output of this C code?

#include <stdio.h>

int main()

{

int x = 3,i=0;

do{

X= x ++;

i++;

} while (i != 3);

printf(“%d\n", x);

}

A. Output will be 5

B. Output will be 6

C. Output will be 3

D. Undefined behaviour

Explanation: Here i = 0, x = 3.

x = x++( x = 3)

Post increment will assign value before gets updated.

I value will increment by 1 and loop will run 3 times.

When I becomes 3, while loop fails(3 != 3 returns false)

X value remains 3 because always value gets reassigned before the updation.

Q5) What will be the value of s if n=127?

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

Explanation: Here i=0,s=0,n=127

(127>0) while condition true

r = 127 % 10 = 7

p = 8 ^ 0 = 8

s = 0 + 8 * 7 = 56

i = 1

n = 127/10 = 12

(12>0) while condition true

r =  12 % 10 = 2

p = 8 ^ 1 = 9

s = 56 + 9 * 2 = 74

i = 2

n = 12/10 = 1

(1>0) while condition true

r = 1 % 10 = 1

p = 8^2 = 10

s = 74 + 1 * 10 = 84

I = 3

N = 1/10 = 0

(0>0) While condition fails

S  = 84

Q6) What will be the output if limit = 6?

Read limit n1 = 0, n2= 1, n3=1, count = 1;

while  count <= limit

count=count+1

print n3

n3 = n1 + n2

n1 = n2

n2 = n3

End While

A. 1235813

B. 12358

C. 123581321

D. 12358132

Explanation: The above pseudocode will print Fibonacci numbers from 1 to 13 without any space

(1<=6) while condition is true

count = 2

print 1

n3 = 1 + 1 = 2

n1 = 1

n2 = 2

(2<=6) while condition is true

count = 3

print 2

n3 = 1 + 2 = 3

n1 = 2

n2 = 3

(3<=6) while condition is true

count = 4

print 3

n3 = 2 + 3 = 5

n1 = 3

n2 = 5

(4<=6) while condition is true

count = 5

print 5

n3 = 5 + 3 = 8

n1 = 5

n2 = 8

(5<=6) while condition is true

count = 6

print 8

n3 = 5 + 8 = 13

n1 = 8

n2 = 13

(6<=6) while condition is true

count = 7

print 13

n3 = 8 + 13 = 21

n1 = 13

n2 = 21

(7<=6) while condition false

Ans : 1235813

Q7) What will be the value of even_counter if number = 2630?

Function divisible(number)

even_counter = 0, num_remainder = number;

while (num_remainder)

digit = num_remainder % 10;

if digit != 0 AND number % digit == 0

even_counter= even_counter+1

End If

num_remainder= num_remainder / 10;

End While

return even_counter;

A. 3

B. 4

C. 2

D. 1

Explanation: The above pseudocode counts the number of digits which are factors of given input.

even_counter = 0, num_remainder = 2630

(2630) while condition is true

digit = 2630 % 10 = 0

digit = 0. Therefore, if condition fails

num_remainder= 263

even_counter = 0, num_remainder = 263

(263) while condition is true

digit = 263 % 10 = 3

3 != 0 is true. But, 2630%3 == 0 is false. Therefore, if condition fails

num_remainder= 26

even_counter = 0, num_remainder = 26

(26) while condition is true

digit = 26 % 10 = 6

6 != 0 is true.But, 2630%6 == 0 is false. Therefore, if condition fails

num_remainder= 2

even_counter = 0, num_remainder = 2

(2) while condition is true

digit = 2 % 10 = 2

3 != 0 is true and 2630%2 == 0 is also true. Therefore, if condition is true

even_counter = 0 + 1 = 1

num_remainder= 0

even_counter = 1

(0) while condition is false

So, even_counter = 1.

Q8) What will be the value of t if a = 56 , b = 876?

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

D. None of the mentioned

Explanation: Here a = 56, b = 876

While loop condition is (876 != 0) and the updation is b = b-1. So, the loop runs 876 times. During each iteration, a value is updated as a = a + 56.

So, Ans = 876 * 56 = 49056

Q9) Code to sort given array in ascending order:

i=0

While(i<size)

j=i+1

While(j<size)

If a[i] < a[j] then

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

wrong statement?

A. Line 4

B. Line 6

C. Line 7

D. No Error

Explanation: The given pseudocode will sort array elements in descending order.

Here when i = 0, j starts from 1 and goes till n-1

In line no 7, a[0] < a[1] swaps both elements. So, eventually the greatest value will be stored in a[0].

Q10) 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

Explanation: n is the size of the array. So, to store array elements we need 2n bytes.

2 bytes for n, sum & i variables = 6 bytes.

2 bytes to store the return value.

So 2n + 8

Q11) What will be the output of the following pseudo code?

For input a=8 & b=9.

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

Explanation: Here, a=8 & b=9.

If first value is small, recursive call will happen with first value as large. Else if condition will be true as long as b !=0.

Recursive calls are ..

function(8,9)

• function(9,8)
• function(9,7) + 9
• function(9,6) + 9
• function(9,5) + 9
• function(9,4) + 9
• function(9,3) + 9
• function(9,2) + 9
• function(9,1) + 9
• function(9,0) + 9
• when b = 0, recursion ends , returns 0

So, 0 + 9 + 9 + 9 + 9 + 9 + 9 + 9 + 9 = 72

Q12) What will be the output of the following pseudo code?

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

Explanation: Here m = 9, n = 6

m = 9 + 1 = 10

n = n – 1 = 5

m = 10 + 5 = 15

if(15>5) condition is true.

print m(15)

So, Ans = 15

Q13) What will be the output of the following pseudo code?

Input f=6,g=9 and set sum=0

Integer n

if(g>f)

for(n=f;n<g;n=n+1)

sum=sum+n

End for loop

else

print error message

print sum

A. 21

B. 15

C. 9

D. 6

Explanation: Here f=6,g=9 and sum = 0

If(9>6) condition is true

Loop will run 3 times

When n = 6, sum = 0 + 6 = 6

When n = 7, sum = 6 + 7 = 13

When n = 8, sum = 13 + 8 = 21

So, sum = 21.

Q14) What will be the output if limit = 6?

Read limit n1 = 0, n2= 1, n3=1, count = 1;

while  count <= limit

count=count+1

print n3

n3 = n1 + n2

n1 = n2

n2 = n3

End While

A. 1235813

B. 12358

C. 23581321

D. 12358132

Explanation : The above pseudocode will print Fibonacci numbers from 1 to 13 without any space

(1<=6) while condition is true

count = 2

print 1

n3 = 0 + 1 = 1

n1 = 1

n2 = 1

(2<=6) while condition is true

count = 3

print 1

n3 = 1 + 1 = 2

n1 = 1

n2 = 2

(3<=6) while condition is true

count = 4

print 2

n3 = 1 + 2 = 3

n1 = 2

n2 = 3

(4<=6) while condition is true

count = 5

print 3

n3 = 2 + 3 = 5

n1 = 3

n2 = 5

(5<=6) while condition is true

count = 6

print 5

n3 = 3 + 5 = 8

n1 = 5

n2 = 8

(6<=6) while condition is true

count = 7

print 8

n3 = 5 + 8 = 13

n1 = 8

n2 = 13

(7<=6) while condition false

Ans : 112358