What will be the output of the following pseudocode? integer a, b, c; Set a =…

2023

What will be the output of the following pseudocode?

integer a, b, c;

Set a = 6;

b = 84;

while (b > 0)

b = b / 2;

a = a + 6;

c = a + b;

while (c > 40)

if (c mode 2 is equal to 0)

Print a

else

Print b c = c / 10;

End while Print c

  1. A.

    12 1 4 48

  2. B.

    12 1 48 4

  3. C.

    1 12 48 4

  4. D.

    10 12 4 48

Attempted by 2 students.

Show answer & explanation

Correct answer: B

int main() { int a=6, b=84, c; while(b>0) { b=b/2; a=a+6; c=a+b; while(c>40) { if(c%2==0) printf("%d\n", a); else printf("%d\n", b); c=c/10; } } printf("%d\n", c); }

Execution Trace:

  1. Init: a=6, b=84.

  2. Iter 1: b=42, a=12, c=54. Inner loop (c>40): 54 is even -> Print 12. c becomes 5.

  3. Iter 2: b=21, a=18, c=39. Inner loop (c>40): False.

  4. Iter 3: b=10, a=24, c=34. Inner loop (c>40): False.

  5. Iter 4: b=5, a=30, c=35. Inner loop (c>40): False.

  6. Iter 5: b=2, a=36, c=38. Inner loop (c>40): False.

  7. Iter 6: b=1, a=42, c=43. Inner loop (c>40): 43 is odd -> Print 1. c becomes 4.

  8. Iter 7: b=0, a=48, c=48. Inner loop (c>40): 48 is even -> Print 48. c becomes 4.

  9. Outer loop ends (b=0).

  10. Final Print: 4.

Output Sequence: 12, 1, 48, 4.

Explore the full course: Accenture Preparation