JavaScript is required

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); };

A.

“ 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1”

B.

“ 18 9 4 2 1”

C.

“ 18 9 4 2 1 0”

D.

Không câu nào đúng

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"

Câu hỏi liên quan