Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình - Đề 09 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Trong lập trình, khái niệm "biến" dùng để chỉ điều gì?
- A. Một loại hàm đặc biệt.
- B. Vùng nhớ tạm thời để lưu trữ dữ liệu.
- C. Một lệnh điều khiển chương trình.
- D. Tên của một chương trình.
Câu 2: Phát biểu nào sau đây là đúng về ngôn ngữ lập trình biên dịch (compiled)?
- A. Mã nguồn được thực thi trực tiếp từng dòng một.
- B. Dễ dàng sửa lỗi trong quá trình chạy chương trình.
- C. Cần dịch toàn bộ mã nguồn thành mã máy trước khi thực thi.
- D. Chỉ chạy được trên một số hệ điều hành nhất định.
Câu 3: Đâu là kiểu dữ liệu phù hợp nhất để lưu trữ số lượng sinh viên trong một lớp học?
- A. Số nguyên (Integer).
- B. Số thực (Floating-point).
- C. Chuỗi ký tự (String).
- D. Boolean (Logic).
Câu 4: Trong cấu trúc điều khiển "IF-ELSE", mệnh đề "ELSE" được thực hiện khi nào?
- A. Luôn luôn được thực hiện.
- B. Khi điều kiện "IF" đúng.
- C. Khi có lỗi xảy ra trong khối lệnh "IF".
- D. Khi điều kiện "IF" sai.
Câu 5: Vòng lặp "FOR" thường được sử dụng hiệu quả nhất trong trường hợp nào?
- A. Khi số lần lặp không xác định trước.
- B. Khi biết trước số lần lặp cần thực hiện.
- C. Khi cần lặp vô hạn.
- D. Khi điều kiện lặp phức tạp.
Câu 6: "Hàm" (function) trong lập trình có vai trò chính là gì?
- A. Tăng tốc độ thực thi chương trình.
- B. Giảm dung lượng bộ nhớ chương trình.
- C. Tổ chức mã nguồn thành các khối lệnh có thể tái sử dụng.
- D. Thay thế các biến toàn cục.
Câu 7: "Mảng" (array) là cấu trúc dữ liệu dùng để lưu trữ?
- A. Một tập hợp các phần tử có cùng kiểu dữ liệu.
- B. Các phần tử có kiểu dữ liệu khác nhau.
- C. Chỉ một phần tử duy nhất.
- D. Các hàm và thủ tục.
Câu 8: Trong lập trình hướng đối tượng (OOP), "đối tượng" (object) là gì?
- A. Một loại biến đặc biệt.
- B. Một thể hiện cụ thể của một lớp (class), bao gồm dữ liệu và phương thức.
- C. Một hàm có thể gọi chính nó.
- D. Một cấu trúc dữ liệu phức tạp nhất.
Câu 9: "Thuật toán" (algorithm) trong lập trình được hiểu là?
- A. Một ngôn ngữ lập trình cụ thể.
- B. Một công cụ để viết mã.
- C. Một loại lỗi trong chương trình.
- D. Một dãy các bước hữu hạn để giải quyết một vấn đề.
Câu 10: "Gỡ lỗi" (debugging) là quá trình?
- A. Viết mã chương trình.
- B. Biên dịch mã nguồn.
- C. Tìm và sửa các lỗi trong chương trình.
- D. Kiểm thử tốc độ chương trình.
Câu 11: Kiểu dữ liệu "Boolean" thường được sử dụng để biểu diễn?
- A. Số nguyên và số thực.
- B. Giá trị đúng (true) hoặc sai (false).
- C. Chuỗi ký tự.
- D. Ngày và giờ.
Câu 12: "Biến toàn cục" (global variable) khác với "biến cục bộ" (local variable) ở điểm nào?
- A. Biến toàn cục có thể được truy cập từ mọi nơi trong chương trình, biến cục bộ chỉ trong phạm vi khai báo.
- B. Biến toàn cục có tốc độ truy cập nhanh hơn biến cục bộ.
- C. Biến cục bộ được lưu trữ ở bộ nhớ ngoài, biến toàn cục ở bộ nhớ chính.
- D. Biến toàn cục chỉ dùng cho số, biến cục bộ cho chuỗi.
Câu 13: "Comment" (chú thích) trong mã nguồn có tác dụng gì?
- A. Thay thế mã lệnh khi cần.
- B. Tăng hiệu suất chương trình.
- C. Báo lỗi cho trình biên dịch.
- D. Giải thích mã lệnh cho người đọc, không ảnh hưởng đến thực thi.
Câu 14: "Toán tử gán" (=) trong lập trình có chức năng?
- A. So sánh hai giá trị bằng nhau.
- B. Thực hiện phép tính cộng.
- C. Gán giá trị bên phải cho biến bên trái.
- D. Kiểm tra kiểu dữ liệu.
Câu 15: "Đệ quy" (recursion) là kỹ thuật lập trình mà hàm?
- A. Gọi một hàm khác trong chương trình.
- B. Tự gọi chính nó.
- C. Không trả về giá trị.
- D. Chỉ được dùng trong ngôn ngữ hàm.
Câu 16: "Kiểu dữ liệu trừu tượng" (Abstract Data Type - ADT) là gì?
- A. Mô tả dữ liệu và các thao tác trên dữ liệu mà không cần quan tâm đến cách cài đặt cụ thể.
- B. Kiểu dữ liệu cơ bản như số nguyên, số thực.
- C. Kiểu dữ liệu chỉ dùng trong lập trình hướng đối tượng.
- D. Cách đặt tên biến theo quy tắc.
Câu 17: Trong lập trình, "biến hằng" (constant variable) được sử dụng để?
- A. Lưu trữ giá trị có thể thay đổi trong quá trình chạy.
- B. Tăng tốc độ truy cập biến.
- C. Lưu trữ giá trị không đổi trong suốt chương trình.
- D. Đánh dấu biến là quan trọng.
Câu 18: "Ngôn ngữ lập trình bậc cao" (high-level programming language) có đặc điểm gì?
- A. Gần gũi với phần cứng máy tính.
- B. Dễ đọc, dễ viết và gần với ngôn ngữ tự nhiên hơn.
- C. Chạy nhanh hơn ngôn ngữ bậc thấp.
- D. Khó học và sử dụng.
Câu 19: "Trình thông dịch" (interpreter) khác với "trình biên dịch" (compiler) như thế nào?
- A. Trình thông dịch tạo ra mã máy, trình biên dịch không.
- B. Trình biên dịch chạy chương trình từng dòng, trình thông dịch dịch toàn bộ.
- C. Không có sự khác biệt.
- D. Trình thông dịch dịch và thực thi mã nguồn từng dòng, trình biên dịch dịch toàn bộ trước khi thực thi.
Câu 20: Khi nào nên sử dụng cấu trúc dữ liệu "Hàng đợi" (Queue)?
- A. Khi cần xử lý các phần tử theo thứ tự "vào trước - ra trước" (FIFO).
- B. Khi cần truy cập phần tử ngẫu nhiên một cách nhanh chóng.
- C. Khi cần sắp xếp dữ liệu.
- D. Khi cần lưu trữ dữ liệu có cấu trúc phức tạp.
Câu 21: Cho đoạn mã giả: `NẾU (điểm >= 5) THÌ in ra "Đạt" NGƯỢC LẠI in ra "Chưa đạt"`. Đoạn mã này thể hiện cấu trúc điều khiển nào?
- A. Vòng lặp.
- B. Rẽ nhánh (IF-ELSE).
- C. Tuần tự.
- D. Đệ quy.
Câu 22: Trong lập trình, "tham số" (parameter) của hàm dùng để làm gì?
- A. Đặt tên cho hàm.
- B. Xác định kiểu dữ liệu trả về của hàm.
- C. Truyền dữ liệu vào hàm khi gọi.
- D. Lưu trữ kết quả trả về của hàm.
Câu 23: "Kiểu dữ liệu con trỏ" (pointer) dùng để lưu trữ?
- A. Giá trị của một biến khác.
- B. Tên của một biến khác.
- C. Kiểu dữ liệu của một biến khác.
- D. Địa chỉ bộ nhớ của một biến khác.
Câu 24: "Độ phức tạp thuật toán" (time complexity) dùng để đánh giá?
- A. Thời gian thực thi của thuật toán theo kích thước đầu vào.
- B. Dung lượng bộ nhớ cần thiết của thuật toán.
- C. Độ dài mã nguồn của thuật toán.
- D. Mức độ dễ hiểu của thuật toán.
Câu 25: Trong quy trình phát triển phần mềm, giai đoạn "Kiểm thử" (testing) nhằm mục đích?
- A. Thiết kế giao diện người dùng.
- B. Phát hiện và sửa lỗi trong phần mềm.
- C. Thu thập yêu cầu từ khách hàng.
- D. Triển khai phần mềm cho người dùng.
Câu 26: "Mã giả" (pseudocode) được sử dụng để làm gì?
- A. Thay thế ngôn ngữ lập trình thật.
- B. Tăng tốc độ viết mã.
- C. Mô tả thuật toán một cách dễ hiểu, gần với ngôn ngữ tự nhiên.
- D. Biên dịch chương trình thành mã máy.
Câu 27: "Ngăn xếp" (Stack) là cấu trúc dữ liệu hoạt động theo nguyên tắc nào?
- A. Vào trước - ra trước (FIFO).
- B. Truy cập ngẫu nhiên.
- C. Sắp xếp theo thứ tự.
- D. Vào sau - ra trước (LIFO).
Câu 28: "Biến tĩnh" (static variable) trong hàm khác với biến cục bộ thông thường như thế nào?
- A. Biến tĩnh có phạm vi toàn cục, biến cục bộ có phạm vi hàm.
- B. Biến tĩnh giữ giá trị giữa các lần gọi hàm, biến cục bộ bị hủy khi hàm kết thúc.
- C. Biến tĩnh nhanh hơn biến cục bộ.
- D. Biến tĩnh chỉ dùng cho số, biến cục bộ cho mọi kiểu dữ liệu.
Câu 29: Trong lập trình hướng đối tượng, "kế thừa" (inheritance) cho phép?
- A. Một lớp con (subclass) kế thừa các thuộc tính và phương thức từ lớp cha (superclass).
- B. Các đối tượng giao tiếp với nhau.
- C. Ẩn thông tin bên trong đối tượng.
- D. Tạo ra nhiều đối tượng cùng loại.
Câu 30: "Đệ quy vô hạn" (infinite recursion) trong lập trình có thể dẫn đến?
- A. Chương trình chạy nhanh hơn.
- B. Tiết kiệm bộ nhớ.
- C. Lỗi tràn bộ nhớ ngăn xếp (stack overflow) và chương trình bị treo.
- D. Không có vấn đề gì xảy ra.