Difficulty: Medium
Correct Answer: The program will print the output 10 20 10.
Explanation:
Introduction / Context:
This problem asks you to combine constructor-time printing, global variables, and references used later in main. The key is that the constructor prints immediately and later streaming of rx-- shows the value before decrement.
Given Data / Assumptions:
x and y.x=10, y=20 and prints \"10 20 \".rx and ry alias x and y.
Concept / Approach:
Post-decrement returns the current value then decrements the object. The intermediate assignments make both globals equal to 10 before the final print.
Step-by-Step Solution:
1) Constructor prints 10 20 . 2) ry = x; sets y=10. 3) rx = y; sets x=10. 4) cout << rx--; prints 10, then decrements x to 9. 5) Combined console output: 10 20 10 (spaces as shown).
Verification / Alternative check:
Change the last line to cout << --rx; to see 9 printed instead, matching option C's last number and highlighting the difference between pre and post operators.
Why Other Options Are Wrong:
0 0 10 contradicts constructor assignment; 10 20 9 confuses pre/post decrement; compile error is inapplicable; 20 10 10 swaps constructor values.
Common Pitfalls:
Overlooking that the constructor already printed; forgetting post-decrement prints the old value.
Final Answer:
10 20 10
Discussion & Comments