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
- A.
12 1 4 48
- B.
12 1 48 4
- C.
1 12 48 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:
Init: a=6, b=84.
Iter 1: b=42, a=12, c=54. Inner loop (c>40): 54 is even -> Print 12. c becomes 5.
Iter 2: b=21, a=18, c=39. Inner loop (c>40): False.
Iter 3: b=10, a=24, c=34. Inner loop (c>40): False.
Iter 4: b=5, a=30, c=35. Inner loop (c>40): False.
Iter 5: b=2, a=36, c=38. Inner loop (c>40): False.
Iter 6: b=1, a=42, c=43. Inner loop (c>40): 43 is odd -> Print 1. c becomes 4.
Iter 7: b=0, a=48, c=48. Inner loop (c>40): 48 is even -> Print 48. c becomes 4.
Outer loop ends (b=0).
Final Print: 4.
Output Sequence: 12, 1, 48, 4.