Tìm kết quả của chương trình sau: main() { int n; for (n = 18; n > 0; n /= 2) printf(“ % 3 d”, n); };
Trả lời:
Đáp án đúng: B
Chương trình này sử dụng một vòng lặp `for` để in ra các giá trị của biến `n`.
- **Khởi tạo:** `n = 18`
- **Điều kiện lặp:** `n > 0` (vòng lặp tiếp tục miễn là `n` lớn hơn 0)
- **Cập nhật:** `n /= 2` (chia `n` cho 2 và gán lại cho `n`)
- **In:** `printf("% 3 d", n)` (in giá trị của `n` với định dạng số nguyên, chiếm 3 khoảng trắng).
Vòng lặp hoạt động như sau:
1. **n = 18:** In ra 18. Sau đó, `n = 18 / 2 = 9`.
2. **n = 9:** In ra 9. Sau đó, `n = 9 / 2 = 4` (phép chia số nguyên).
3. **n = 4:** In ra 4. Sau đó, `n = 4 / 2 = 2`.
4. **n = 2:** In ra 2. Sau đó, `n = 2 / 2 = 1`.
5. **n = 1:** In ra 1. Sau đó, `n = 1 / 2 = 0`.
6. **n = 0:** Điều kiện `n > 0` không còn đúng, vòng lặp kết thúc.
Kết quả in ra sẽ là: " 18 9 4 2 1"





