Trả lời:
Đáp án đúng: A
Đề bài yêu cầu xác định kết quả của đoạn chương trình C++ được cung cấp.
Phân tích đoạn code:
1. **Khởi tạo**: Một mảng số nguyên `arr` được khởi tạo với các giá trị {1, 2, 3}. Biến `n` được gán giá trị 3 (kích thước mảng).
2. **Vòng lặp for**: Vòng lặp chạy từ `i = 0` đến `i < n` (tức là 0, 1, 2).
3. **arr[i] = arr[arr[i] % n]**: Đây là dòng lệnh quan trọng. Ta xét từng giá trị của `i`:
* **i = 0**: `arr[0] = arr[arr[0] % n] = arr[1 % 3] = arr[1] = 2`. Vậy `arr[0]` bây giờ là 2.
* **i = 1**: `arr[1] = arr[arr[1] % n]`. `arr[1]` hiện tại là 2 (sau bước trước). Vậy `arr[1] = arr[2 % 3] = arr[2] = 3`. Vậy `arr[1]` bây giờ là 3.
* **i = 2**: `arr[2] = arr[arr[2] % n] = arr[3 % 3] = arr[0] = 2`. Vậy `arr[2]` bây giờ là 2.
4. **In kết quả**: Đoạn code in ra `arr[0] + arr[1]`. Tức là `2 + 3 = 5`.
Vậy, kết quả của chương trình là 5.