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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
