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 vòng lặp `for` để in ra các giá trị của biến `n` sau mỗi lần chia cho 2. Bước 1: `n` được khởi tạo là 18. Bước 2: Vòng lặp `for` bắt đầu. Điều kiện lặp là `n > 0`. Bước 3: Trong mỗi lần lặp, giá trị của `n` được in ra bằng `printf(" % 3 d", n);`. Định dạng `% 3 d` in ra một số nguyên với độ rộng tối thiểu là 3 ký tự, căn phải. Bước 4: Sau khi in, `n` được gán bằng `n / 2`. Vì `n` là kiểu `int`, phép chia này là phép chia số nguyên, tức là phần thập phân bị bỏ đi. Các lần lặp cụ thể: - Lần 1: `n = 18`. In ra " 18". `n` trở thành `18 / 2 = 9`. - Lần 2: `n = 9`. In ra " 9". `n` trở thành `9 / 2 = 4`. - Lần 3: `n = 4`. In ra " 4". `n` trở thành `4 / 2 = 2`. - Lần 4: `n = 2`. In ra " 2". `n` trở thành `2 / 2 = 1`. - Lần 5: `n = 1`. In ra " 1". `n` trở thành `1 / 2 = 0`. - Lần 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 là: " 18 9 4 2 1" Vậy đáp án đúng là B.

Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


50 câu hỏi 60 phút

Câu hỏi liên quan