Đáp án đúng: B
Câu lệnh break
không chỉ được sử dụng trong cấu trúc switch...case
. Nó còn được sử dụng trong các vòng lặp for
, while
và do...while
để thoát khỏi vòng lặp ngay lập tức khi một điều kiện nhất định được đáp ứng.
Câu hỏi liên quan
Phân tích từng biểu thức:
1. `n <= 3`: Vì `n` ban đầu là 2, biểu thức này trả về 1 (true) vì 2 nhỏ hơn hoặc bằng 3.
2. `n = 4`: Đây là một phép gán. Giá trị của `n` được gán bằng 4. Biểu thức này trả về giá trị được gán, tức là 4.
3. `n >= 2`: Vì `n` bây giờ là 4, biểu thức này trả về 1 (true) vì 4 lớn hơn hoặc bằng 2.
Do đó, hàm `printf` sẽ in ra các giá trị 1, 4 và 1, cách nhau bởi khoảng trắng.
Vậy đáp án đúng là B. 1 4 1
- `int i = 3;`: Khai báo biến `i` bên ngoài vòng lặp `while`, biến này quyết định số lần lặp.
- `while (i--)`: Vòng lặp `while` tiếp tục cho đến khi `i` (bên ngoài) giảm xuống 0. `i--` vừa kiểm tra giá trị của `i` vừa giảm `i` đi 1 sau mỗi lần lặp. Do đó, vòng lặp sẽ chạy 3 lần.
- `int i = 100;`: Bên trong vòng lặp, một biến `i` *khác* được khai báo và khởi tạo với giá trị 100. Đây là một biến cục bộ, chỉ có phạm vi bên trong vòng lặp `while`.
- `i--;`: Giá trị của biến `i` cục bộ (bên trong vòng lặp) giảm đi 1, trở thành 99.
- `printf("%d ", i);`: In giá trị của biến `i` cục bộ (bên trong vòng lặp), tức là 99.
Như vậy, trong mỗi lần lặp, biến `i` bên trong vòng lặp được gán giá trị 100, giảm xuống 99 và in ra. Vòng lặp chạy 3 lần, nên đầu ra sẽ là "99 99 99".
Ban đầu, `i = 2` và `j = 2`.
Trong lần lặp đầu tiên:
* `--i` làm giảm `i` xuống 1 ( `i` bây giờ là 1). Vì `--i` là khác 0 nên điều kiện đầu tiên của `&&` là đúng.
* `j++` làm tăng `j` lên 1 ( `j` bây giờ là 3). Vì `i` khác 0 nên toàn bộ điều kiện `while` là đúng.
* `printf("%d %d", i, j)` in ra "1 3".
Vòng lặp dừng lại vì biểu thức `--i` được ước lượng thành `0` ở lần lặp thứ hai, dẫn đến điều kiện `while` sai.
Vậy, đầu ra của chương trình là "1 3".
Trong đoạn mã C này, biểu thức điều kiện if(i = 20)
gán giá trị 20 cho biến i
. Trong C, phép gán trả về giá trị được gán, tức là 20 trong trường hợp này. Vì 20 là một giá trị khác 0, nó được coi là true
trong ngữ cảnh điều kiện. Do đó, khối lệnh printf(" Hello");
sẽ được thực thi, in ra " Hello".
Đoạn mã C này sử dụng hàm strcmp()
để so sánh hai chuỗi str1
và str2
. Hàm strcmp()
trả về 0 nếu hai chuỗi bằng nhau, một giá trị âm nếu str1
nhỏ hơn str2
, và một giá trị dương nếu str1
lớn hơn str2
.
Trong trường hợp này, cả hai chuỗi str1
và str2
đều được khởi tạo với giá trị "vncoding"
. Do đó, strcmp(str1, str2)
sẽ trả về 0.
Điều kiện if (strcmp(str1, str2))
sẽ được hiểu là if (0)
, tức là điều kiện sai. Vì vậy, phần else
sẽ được thực thi, và chương trình sẽ in ra "Unequal"
.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.