Trắc Nghiệm Ôn Tập — Buổi 2: Biến, Hằng và Kiểu Dữ Liệu¶
Hướng dẫn: Chọn đáp án đúng nhất cho mỗi câu hỏi. Xem đáp án ở cuối trang.
Phần 1: Kiểu Dữ Liệu¶
Câu 1. Kiểu dữ liệu nào dùng để lưu số nguyên trong C++?
- A.
float - B.
string - C.
int - D.
char
Câu 2. Kiểu char dùng để lưu trữ:
- A. Một chuỗi ký tự bất kỳ
- B. Một ký tự đơn (1 chữ cái, chữ số hoặc ký hiệu)
- C. Số thực có độ chính xác cao
- D. Giá trị đúng/sai
Câu 3. Khai báo nào sau đây là đúng cú pháp?
- A.
int 1tuoi = 15; - B.
float diem-trung-binh = 8.5; - C.
bool datGiai = true; - D.
char ten = "An";
Câu 4. Kiểu dữ liệu bool chỉ có thể nhận 2 giá trị là:
- A.
0và1 - B.
yesvàno - C.
truevàfalse - D. Cả A và C đều đúng
Câu 5. Kiểu double khác float ở điểm nào?
- A.
doublelưu số nguyên,floatlưu số thực - B.
doublecó độ chính xác cao hơn và chiếm nhiều bộ nhớ hơn - C.
floatcó độ chính xác cao hơndouble - D. Không có sự khác biệt
Phần 2: Khai Báo Biến và Hằng Số¶
Câu 6. Dòng lệnh nào khai báo hằng số PI?
- A.
int PI = 3.14; - B.
float PI = 3.14f; - C.
const float PI = 3.14f; - D.
static float PI = 3.14f;
Câu 7. Điều gì xảy ra nếu ta cố tình thay đổi giá trị của một hằng số const?
- A. Chương trình chạy bình thường, giá trị thay đổi được
- B. Chương trình trả về lỗi khi biên dịch (compile error)
- C. Chương trình chạy nhưng bỏ qua lệnh gán đó
- D. Giá trị thay đổi chỉ trong vòng đó rồi trở lại
Câu 8. Tên biến nào vi phạm quy tắc đặt tên trong C++?
- A.
_diemToan - B.
hocSinh2 - C.
diem-van - D.
soLuong
Câu 9. Đoạn code sau in ra kết quả gì?
- A.
5 - B.
3 - C.
8 - D.
53
Phần 3: Ứng Dụng và Lỗi Thường Gặp¶
Câu 10. Kết quả của phép tính 7 / 2 trong C++ với 2 biến kiểu int là:
- A.
3.5 - B.
3 - C.
4 - D.
3.0
Câu 11. Để lưu điểm số 8.75 của học sinh, nên dùng kiểu dữ liệu nào?
- A.
int - B.
char - C.
bool - D.
floathoặcdouble
Câu 12. Đoạn code sau có lỗi gì?
- A. Thiếu
#include <iostream> - B. Biến
tuoichưa được gán giá trị (uninitialized variable) - C. Sai cú pháp
cout - D. Không có lỗi, chương trình chạy bình thường
Câu 13. Khi in một biến bool có giá trị true bằng cout, màn hình sẽ hiện:
- A.
true - B.
True - C.
1 - D.
yes
Câu 14. Đoạn code hoán đổi biến sau, sau khi chạy, giá trị của a và b là bao nhiêu?
- A.
a = 3, b = 7(không đổi) - B.
a = 7, b = 3 - C.
a = 7, b = 7 - D.
a = 3, b = 3
Câu 15. Giá trị float cần hậu tố f khi khai báo. Nếu viết float x = 3.14; (thiếu f), điều gì xảy ra?
- A. Lỗi biên dịch, chương trình không chạy
- B. Biến
xsẽ là kiểudouble, C++ sẽ cảnh báo mất độ chính xác khi chuyển sangfloat - C. Biến
xsẽ tự động là kiểuint - D. Chương trình chạy bình thường, không có gì khác biệt
Đáp Án¶
Xem đáp án
| Câu | Đáp án | Giải thích |
|---|---|---|
| 1 | C | int lưu số nguyên. float/double lưu số thực, char lưu ký tự đơn |
| 2 | B | char chỉ lưu được 1 ký tự đơn, dùng dấu nháy đơn 'A' |
| 3 | C | bool datGiai = true; đúng cú pháp. A sai (tên bắt đầu bằng số), B dùng dấu -, D dùng "..." cho char |
| 4 | D | bool nhận true/false (về mặt ngữ nghĩa) hoặc 1/0 (khi in ra màn hình) |
| 5 | B | double 8 bytes (15-16 chữ số thập phân), float 4 bytes (6-7 chữ số) |
| 6 | C | const float PI = 3.14f; là cú pháp đúng để khai báo hằng số |
| 7 | B | Trình biên dịch sẽ báo lỗi assignment of read-only variable |
| 8 | C | diem-van dùng dấu - không hợp lệ. Tên biến chỉ được dùng chữ, số và _ |
| 9 | C | a = 5 + 3 = 8 |
| 10 | B | Chia số nguyên cho số nguyên → kết quả là số nguyên (phần thập phân bị bỏ): 7/2 = 3 |
| 11 | D | 8.75 là số thực → cần float hoặc double. int sẽ cắt bỏ phần .75 |
| 12 | B | tuoi được khai báo nhưng chưa gán giá trị, in ra giá trị rác (undefined behavior) |
| 13 | C | cout in bool dưới dạng số: true → 1, false → 0 |
| 14 | B | Sau hoán đổi: a = 7, b = 3. Biến tam giữ giá trị cũ của a (là 3) để gán cho b |
| 15 | B | 3.14 không có f → C++ coi là double. Gán vào float có thể mất độ chính xác, trình biên dịch có thể cảnh báo |