Trắc Nghiệm Ôn Tập — Buổi 10: Cấu Trúc switch-case¶
Hướng dẫn: Chọn đáp án đúng nhất. Xem đáp án ở cuối trang.
Phần 1: Lý Thuyết Cơ Bản¶
Câu 1. switch-case dùng để làm gì?
- A. Lặp lại đoạn code nhiều lần
- B. So sánh một biến với nhiều giá trị cụ thể và thực thi code tương ứng
- C. Khai báo nhiều biến cùng lúc
- D. Nhập dữ liệu từ bàn phím
Câu 2. Kiểu dữ liệu nào KHÔNG thể dùng trong switch?
- A.
int - B.
char - C.
float - D.
long
Câu 3. Tác dụng của từ khóa break trong switch-case là:
- A. Thoát khỏi toàn bộ chương trình
- B. Bỏ qua câu lệnh tiếp theo
- C. Thoát khỏi khối
switch, tiếp tục thực thi sau} - D. Thoát khỏi hàm
main
Câu 4. Khối default trong switch thực thi khi nào?
- A. Luôn luôn thực thi
- B. Khi không có case nào khớp
- C. Khi giá trị bằng 0
- D. Khi tất cả case đều đúng
Câu 5. "Fall-through" trong switch-case có nghĩa là:
- A. Chương trình bị lỗi và dừng
- B. Thiếu
defaultblock - C. Khi không có
break, thực thi tiếp tục sang case tiếp theo - D. Biến trong
switchbị tràn số
Phần 2: Cú Pháp Và Vận Dụng¶
Câu 6. Đoạn code sau in ra gì khi x = 2?
switch (x) {
case 1: cout << "A"; break;
case 2: cout << "B"; break;
case 3: cout << "C"; break;
default: cout << "D"; break;
}
- A.
A - B.
B - C.
BC - D.
D
Câu 7. Đoạn code sau in ra gì khi x = 2? (Chú ý: thiếu break)
- A.
B - B.
BC - C.
BCD - D.
ABCD
Câu 8. Đoạn code sau in ra gì khi x = 5?
switch (x) {
case 1: cout << "Mot"; break;
case 2: cout << "Hai"; break;
default: cout << "Khac"; break;
}
- A.
Mot - B.
Hai - C.
Khac - D. Không in gì
Câu 9. Đoạn code fall-through sau in ra gì khi thang = 4?
switch (thang) {
case 4: case 6: case 9: case 11:
cout << "30 ngay"; break;
case 2:
cout << "28 ngay"; break;
default:
cout << "31 ngay"; break;
}
- A.
28 ngay - B.
30 ngay - C.
31 ngay - D.
30 ngay28 ngay
Câu 10. Dòng nào trong switch là KHÔNG hợp lệ?
- A.
case 1: - B.
case 'A': - C.
case x:(x là biến) - D.
case -5:
Câu 11. Tại sao không nên dùng switch với kiểu string?
- A. Vì
stringquá dài - B. Vì C++ không hỗ trợ
switchvớistring - C. Vì
stringkhông có giá trị - D. Vì
stringkhông thể so sánh
Câu 12. Đoạn code nào ĐÚNG về cú pháp?
- A.
switch (3.14) { case 3.14: cout << "Pi"; } - B.
switch (x) { case "hello": cout << "Hi"; } - C.
switch (x) { case 1: case 2: cout << "1 or 2"; break; } - D.
switch (x) { case x+1: cout << "A"; }
Câu 13. Khi nào nên dùng if-else if thay vì switch-case?
- A. Khi có nhiều giá trị nguyên cần kiểm tra
- B. Khi cần kiểm tra khoảng giá trị (ví dụ:
diem >= 8) - C. Khi code cần ngắn hơn
- D. Khi biến có kiểu
int
Câu 14. Đoạn code sau in ra gì khi c = 'b'?
switch (c) {
case 'A': case 'a': cout << "A"; break;
case 'B': case 'b': cout << "B"; break;
default: cout << "Khac"; break;
}
- A.
A - B.
B - C.
Khac - D.
AB
Câu 15. Vị trí của default trong switch có bắt buộc phải ở cuối không?
- A. Có, bắt buộc phải ở cuối
- B. Không, có thể ở bất kỳ đâu, nhưng thường đặt cuối để dễ đọc
- C. Phải đặt ở đầu
- D.
defaultkhông được phép trong C++17
Câu 16. Đoạn code sau in ra gì khi x = 5?
- A.
D - B.
C - C.
DC - D. Không in gì
Đáp Án¶
Xem đáp án
| Câu | Đáp án | Giải thích |
|---|---|---|
| 1 | B | switch-case so sánh biến với nhiều giá trị cụ thể |
| 2 | C | float (số thực) không được hỗ trợ trong switch |
| 3 | C | break thoát khỏi khối switch, tiếp tục chạy sau dấu } |
| 4 | B | default chạy khi không có case nào khớp với giá trị |
| 5 | C | Fall-through: thiếu break → thực thi tiếp case tiếp theo |
| 6 | B | x=2 khớp case 2 → in "B" → break thoát |
| 7 | C | x=2 khớp case 2, không có break → rơi xuống case 3 và default → in "BCD" |
| 8 | C | x=5 không khớp case 1 hay 2 → vào default → in "Khac" |
| 9 | B | thang=4 khớp case 4 → fall-through đến cout << "30 ngay" → break |
| 10 | C | case x: dùng biến làm giá trị case — không hợp lệ, phải là hằng số |
| 11 | B | C++ không hỗ trợ switch với kiểu string, chỉ hỗ trợ kiểu nguyên |
| 12 | C | Fall-through hợp lệ: case 1: case 2: cout << "1 or 2"; break; |
| 13 | B | Khi cần kiểm tra khoảng giá trị (>= 5, < 10...) phải dùng if-else if |
| 14 | B | c='b' khớp case 'b' → in "B" → break |
| 15 | B | default có thể đặt bất kỳ đâu nhưng thông thường đặt cuối cho dễ đọc |
| 16 | C | x=5 không khớp case nào nên nhảy vào default in D, rồi rơi xuống case 3 in C |