Bỏ qua

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. 01
  • B. yesno
  • C. truefalse
  • D. Cả A và C đều đúng

Câu 5. Kiểu double khác float ở điểm nào?

  • A. double lưu số nguyên, float lưu số thực
  • B. double có độ chính xác cao hơn và chiếm nhiều bộ nhớ hơn
  • C. float có độ chính xác cao hơn double
  • 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ì?

int a = 5;
a = a + 3;
cout << a << endl;
  • 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. float hoặc double

Câu 12. Đoạn code sau có lỗi gì?

int tuoi;
cout << tuoi << endl;
  • A. Thiếu #include <iostream>
  • B. Biến tuoi chư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 ab là bao nhiêu?

int a = 3, b = 7;
int tam = a;
a = b;
b = tam;
  • 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 x sẽ là kiểu double, C++ sẽ cảnh báo mất độ chính xác khi chuyển sang float
  • C. Biến x sẽ tự động là kiểu int
  • 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ố: true1, false0
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