Trắc nghiệm Nguyên lý ngôn ngữ lập trình Bài: Các kiểu vô hướng là một trong những đề thi thuộc Chương 8: Cấu trúc dữ liệu trong học phần Nguyên lý ngôn ngữ lập trình chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Bài học này tập trung vào các kiểu dữ liệu cơ bản nhất, không thể phân chia thành các phần nhỏ hơn, và là nền tảng cho việc xây dựng mọi cấu trúc dữ liệu phức tạp. Việc hiểu rõ các kiểu vô hướng giúp lập trình viên nắm bắt cách dữ liệu được biểu diễn ở cấp độ thấp nhất và cách chúng được thao tác.
Trong bài học này, người học cần nắm vững các nội dung trọng tâm như: định nghĩa kiểu vô hướng, đặc điểm và các phép toán cơ bản trên từng loại (Boolean, Ký tự, Số nguyên, Số thực, Void, Liệt kê, Khoảng). Nắm bắt được cách các kiểu dữ liệu vô hướng được hiện thực hóa trong bộ nhớ và các giới hạn của chúng là yếu tố quan trọng để viết mã chính xác, hiệu quả và tránh các lỗi liên quan đến biểu diễn dữ liệu.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Nguyên lý ngôn ngữ lập trình Bài: Các kiểu vô hướng
Câu 1.Kiểu dữ liệu vô hướng (Scalar Type) là gì?
A. Một kiểu dữ liệu có thể chứa nhiều giá trị khác nhau.
B. Một kiểu dữ liệu có cấu trúc phức tạp.
C. Một kiểu dữ liệu mà các giá trị của nó là nguyên tố, không thể phân chia thành các thành phần nhỏ hơn có ý nghĩa.
D. Một kiểu dữ liệu chỉ dùng để lưu trữ địa chỉ.
Câu 2.Kiểu dữ liệu nào sau đây là một ví dụ điển hình của kiểu vô hướng?
A. Mảng (Array).
B. Bản ghi (Record/Struct).
C. Số nguyên (Integer).
D. Con trỏ (Pointer).
Câu 3.Kiểu Boolean có bao nhiêu giá trị và các giá trị đó là gì?
A. Vô số giá trị, bất kỳ số nào.
B. Hai giá trị: `true` và `false`.
C. Các ký tự ‘T’ và ‘F’.
D. Ba giá trị: `true`, `false`, và `null`.
Câu 4.Kiểu Ký tự (Character Type) được sử dụng để lưu trữ gì?
A. Các số nguyên lớn.
B. Một ký tự đơn lẻ (ví dụ: ‘A’, ‘b’, ‘5’).
C. Các chuỗi văn bản dài.
D. Các giá trị boolean.
Câu 5.Trong bảng mã ASCII, một ký tự thường được biểu diễn bằng bao nhiêu bit?
A. 1 bit.
B. 4 bit.
C. 7 hoặc 8 bit.
D. 16 bit.
Câu 6.Kiểu Số nguyên (Integer Type) được sử dụng để biểu diễn gì?
A. Các số có phần thập phân.
B. Các số nguyên không có phần thập phân.
C. Các chuỗi ký tự.
D. Các giá trị logic.
Câu 7.Lỗi “tràn số nguyên” (Integer Overflow) xảy ra khi nào?
A. Khi số nguyên có giá trị quá nhỏ.
B. Khi kết quả của một phép toán số nguyên vượt quá phạm vi giá trị mà kiểu dữ liệu đó có thể biểu diễn.
C. Khi số nguyên được chia cho 0.
D. Khi số nguyên được gán cho một biến kiểu chuỗi.
Câu 8.Kiểu Số thực (Floating-Point Type) được sử dụng để biểu diễn gì?
A. Chỉ các số nguyên dương.
B. Các số có phần thập phân (số thực).
C. Các giá trị true/false.
D. Các địa chỉ bộ nhớ.
Câu 9.Phát biểu nào sau đây đúng về độ chính xác của số thực?
A. Số thực luôn có độ chính xác tuyệt đối.
B. Số thực thường được biểu diễn dưới dạng gần đúng và có thể gặp vấn đề về độ chính xác (floating-point precision issues).
C. Số thực không có bất kỳ vấn đề nào về độ chính xác.
D. Độ chính xác của số thực chỉ phụ thuộc vào trình biên dịch.
Câu 10.Kiểu `Void` (kiểu rỗng) trong ngôn ngữ C/C++ có ý nghĩa gì?
A. Biến có thể lưu trữ bất kỳ giá trị nào.
B. Hàm có thể trả về bất kỳ kiểu nào.
C. Biểu thị sự vắng mặt của kiểu hoặc không có giá trị trả về.
D. Là một loại kiểu số nguyên đặc biệt.
Câu 11.Kiểu liệt kê (Enumeration Type – Enum) cho phép bạn làm gì?
A. Lưu trữ bất kỳ giá trị nào vào một biến.
B. Tạo một tập hợp các hằng số được đặt tên, giúp mã nguồn rõ ràng và an toàn hơn.
C. Biểu diễn các số thực.
D. Định nghĩa các hàm mới.
Câu 12.Ví dụ về khai báo kiểu liệt kê trong Java là gì?
A. `int day = MONDAY;`
B. `enum Day { MONDAY, TUESDAY, WEDNESDAY };`
C. `class Day { … }`
D. `String day = “MONDAY”;`
Câu 13.Kiểu Khoảng (Range Type) là gì?
A. Một kiểu dữ liệu cho phép biến nhận bất kỳ giá trị nào trong một khoảng liên tục.
B. Một kiểu dữ liệu cho phép biến nhận giá trị là một số nguyên nằm trong một khoảng xác định trước.
C. Một kiểu dữ liệu chỉ để biểu diễn chuỗi.
D. Một kiểu dữ liệu để biểu diễn ngày tháng.
Câu 14.Tại sao các kiểu vô hướng lại là nền tảng của mọi cấu trúc dữ liệu phức tạp hơn?
A. Vì chúng chỉ có thể được sử dụng một mình.
B. Vì các cấu trúc dữ liệu phức tạp được xây dựng từ các giá trị vô hướng làm thành phần cơ bản.
C. Vì chúng là các đối tượng.
D. Vì chúng không thể thay đổi giá trị.
Câu 15.Phát biểu nào sau đây là KHÔNG đúng về kiểu dữ liệu vô hướng?
A. Giá trị của chúng là nguyên tố.
B. Chúng có kích thước cố định trong bộ nhớ.
C. Chúng có thể được phân chia thành các thành phần con.
D. Chúng là các khối xây dựng cơ bản của hệ thống kiểu.
Câu 16.Vấn đề chính của việc so sánh số thực trực tiếp bằng toán tử `==` là gì?
A. Luôn cho kết quả đúng.
B. Có thể không chính xác do vấn đề về độ chính xác của biểu diễn số thực.
C. Chỉ có thể so sánh các số nguyên.
D. Gây ra lỗi cú pháp.
Câu 17.Trong ngôn ngữ C, kiểu `char` có thể được sử dụng để lưu trữ giá trị số nguyên không?
A. Không, chỉ có thể lưu trữ ký tự.
B. Có, vì `char` được biểu diễn nội bộ dưới dạng một số nguyên nhỏ.
C. Chỉ khi ép kiểu.
D. Chỉ khi đó là biến toàn cục.
Câu 18.Kiểu Số dấu phẩy tĩnh (Fixed-Point Number) được sử dụng khi nào?
A. Khi cần tính toán số thực với độ chính xác tùy ý.
B. Khi cần tính toán số thực mà không có lỗi làm tròn.
C. Khi cần tính toán số thực mà không cần phần thập phân.
D. Khi cần biểu diễn số thực với độ chính xác cố định sau dấu phẩy, thường dùng trong tài chính.
Câu 19.Kiểu Số phức (Complex Number) bao gồm những thành phần nào?
A. Chỉ có phần thực.
B. Phần thực và phần ảo.
C. Chỉ có phần ảo.
D. Phần nguyên và phần thập phân.
Câu 20.Trong các ngôn ngữ lập trình, việc sử dụng các kiểu vô hướng giúp đảm bảo an toàn kiểu như thế nào?
A. Bằng cách cho phép gán bất kỳ giá trị nào cho bất kỳ biến nào.
B. Bằng cách định nghĩa rõ ràng phạm vi giá trị và các phép toán hợp lệ cho từng loại dữ liệu cơ bản.
C. Bằng cách loại bỏ nhu cầu kiểm tra kiểu.
D. Bằng cách làm cho chương trình chạy chậm hơn.
Câu 21.Sự khác biệt giữa kiểu số nguyên có dấu (signed integer) và không dấu (unsigned integer) là gì?
A. Số nguyên có dấu chỉ lưu trữ số dương.
B. Số nguyên có dấu có thể lưu trữ cả số dương và âm, trong khi số nguyên không dấu chỉ lưu trữ số dương.
C. Kích thước bộ nhớ khác nhau.
D. Tốc độ phép toán khác nhau.
Câu 22.Khi nào thì kiểu `void*` (con trỏ void) trong C/C++ được sử dụng?
A. Để trỏ đến các biến kiểu `void`.
B. Để trỏ đến một vùng bộ nhớ mà không biết kiểu dữ liệu cụ thể của nó, thường yêu cầu ép kiểu khi sử dụng.
C. Để trỏ đến một hàm.
D. Để trỏ đến một biến tĩnh.
Câu 23.Lợi ích của việc sử dụng các kiểu liệt kê thay vì các hằng số số nguyên (ví dụ: `const int RED = 0;`) là gì?
A. Không có lợi ích nào.
B. Tăng tính an toàn kiểu, khả năng đọc hiểu và tự tài liệu hóa mã.
C. Giảm kích thước tệp thực thi.
D. Cho phép giá trị tùy ý.
Câu 24.Nếu bạn cần lưu trữ một số lượng rất lớn các ký tự và thực hiện các phép toán trên chúng, bạn sẽ sử dụng kiểu nào tốt hơn là nhiều biến ký tự đơn lẻ?
A. Một biến kiểu Boolean.
B. Một kiểu liệt kê.
C. Một mảng ký tự hoặc kiểu chuỗi (String Type).
D. Một biến kiểu Void.
Câu 25.Trong các hệ thống nhúng với bộ nhớ hạn chế, việc lựa chọn kiểu số nguyên có kích thước nhỏ nhất phù hợp (ví dụ: `int8_t` thay vì `int64_t`) là quan trọng vì lý do gì?
A. Để làm cho mã phức tạp hơn.
B. Để tiết kiệm bộ nhớ và tài nguyên hệ thống.
C. Để tăng tốc độ thực thi không cần thiết.
D. Để đảm bảo tương thích với mọi loại CPU.

Thảo Linh là một tác giả và biên tập viên giàu kinh nghiệm tại DeThiTracNghiem.vn, chuyên cung cấp các bộ đề thi thử trắc nghiệm chất lượng cao, giúp học sinh và sinh viên ôn tập hiệu quả. Với sự am hiểu sâu rộng về giáo dục và kỹ năng biên soạn nội dung học thuật, Thảo Linh đã đóng góp nhiều bài viết giá trị, giúp người học tiếp cận kiến thức một cách hệ thống và dễ hiểu.