Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Cơ Sở Lập Trình - Đề 10 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 dùng để tính toán.
- B. Một vùng nhớ được đặt tên, dùng để lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
- C. Một lệnh điều khiển chương trình rẽ nhánh.
- D. Một giá trị không đổi được gán cho chương trình.
Câu 2: Kiểu dữ liệu "số nguyên" (integer) thường được sử dụng để lưu trữ loại thông tin nào?
- A. Các số không có phần thập phân.
- B. Các số có phần thập phân.
- C. Chuỗi ký tự văn bản.
- D. Giá trị đúng hoặc sai.
Câu 3: Thao tác nào sau đây thể hiện tính "tuần tự" trong cấu trúc điều khiển cơ bản của lập trình?
- A. Sử dụng vòng lặp "for" để lặp lại một đoạn mã.
- B. Sử dụng câu lệnh "if...else" để rẽ nhánh chương trình.
- C. Các câu lệnh được thực hiện lần lượt từ trên xuống dưới.
- D. Gọi một hàm từ bên trong một hàm khác.
Câu 4: "Thuật toán" trong lập trình được hiểu là gì?
- A. Một loại ngôn ngữ lập trình bậc cao.
- B. Một công cụ để kiểm thử chương trình.
- C. Một phần mềm biên dịch mã nguồn.
- D. Một dãy các bước hữu hạn và rõ ràng để giải quyết một vấn đề cụ thể.
Câu 5: Trong ngôn ngữ lập trình, "câu lệnh điều kiện" (ví dụ: if...else) dùng để làm gì?
- A. Lặp lại một khối lệnh nhiều lần.
- B. Thực hiện các hành động khác nhau tùy thuộc vào một điều kiện cho trước.
- C. Khai báo biến và kiểu dữ liệu.
- D. Định nghĩa một hàm mới.
Câu 6: "Vòng lặp" (loop) được sử dụng để làm gì trong lập trình?
- A. Thực hiện lặp đi lặp lại một khối lệnh cho đến khi một điều kiện nào đó không còn đúng.
- B. Rẽ nhánh chương trình dựa trên điều kiện.
- C. Khai báo và sử dụng biến.
- D. Định nghĩa và gọi hàm.
Câu 7: "Hàm" (function) trong lập trình có vai trò chính là gì?
- A. Lưu trữ dữ liệu tạm thời.
- B. Điều khiển luồng thực thi của chương trình.
- C. Tổ chức mã nguồn thành các khối nhỏ hơn, có tính tái sử dụng và dễ quản lý.
- D. Biên dịch mã nguồn thành mã máy.
Câu 8: "Tham số" (parameter) của hàm có chức năng gì?
- A. Xác định kiểu dữ liệu trả về của hàm.
- B. Điều khiển số lần lặp của vòng lặp bên trong hàm.
- C. Quy định phạm vi hoạt động của biến cục bộ trong hàm.
- D. Truyền dữ liệu vào hàm để hàm có thể xử lý.
Câu 9: "Biên dịch" (compilation) là quá trình chuyển đổi mã nguồn chương trình sang dạng nào?
- A. Mã nguồn cấp cao hơn.
- B. Mã máy (machine code) mà máy tính có thể trực tiếp hiểu và thực thi.
- C. Mã giả (pseudocode).
- D. Ngôn ngữ tự nhiên.
Câu 10: "Thông dịch" (interpretation) khác với biên dịch ở điểm nào?
- A. Thông dịch tạo ra mã máy, biên dịch thì không.
- B. Biên dịch thực hiện chương trình từng dòng lệnh, thông dịch thì biên dịch toàn bộ trước.
- C. Thông dịch thực hiện chương trình từng dòng lệnh một, trong khi biên dịch chuyển đổi toàn bộ mã nguồn trước khi thực thi.
- D. Không có sự khác biệt, biên dịch và thông dịch là như nhau.
Câu 11: Trong lập trình hướng đối tượng, "đối tượng" (object) là gì?
- A. Một kiểu dữ liệu nguyên thủy.
- B. Một hàm không trả về giá trị.
- C. Một cấu trúc dữ liệu tuyến tính.
- D. Một thể hiện cụ thể của một lớp (class), bao gồm dữ liệu (thuộc tính) và hành vi (phương thức).
Câu 12: Khái niệm "lớp" (class) trong lập trình hướng đối tượng dùng để làm gì?
- A. Lưu trữ danh sách các biến.
- B. Định nghĩa khuôn mẫu (blueprint) cho các đối tượng, mô tả các thuộc tính và phương thức chung.
- C. Thực hiện các phép toán số học.
- D. Quản lý bộ nhớ chương trình.
Câu 13: "Kế thừa" (inheritance) là một nguyên tắc quan trọng trong lập trình hướng đối tượng. Nó cho phép điều gì?
- A. Tạo ra các đối tượng độc lập hoàn toàn.
- B. Ẩn thông tin chi tiết của đối tượng.
- C. Một lớp con (subclass) có thể kế thừa các thuộc tính và phương thức từ lớp cha (superclass), giúp tái sử dụng mã và xây dựng hệ thống phân cấp lớp.
- D. Đóng gói dữ liệu và phương thức vào trong một đối tượng.
Câu 14: "Đa hình" (polymorphism) trong lập trình hướng đối tượng nghĩa là gì?
- A. Các đối tượng thuộc các lớp khác nhau có thể phản ứng với cùng một thông điệp (phương thức) theo những cách khác nhau.
- B. Một lớp chỉ có thể có một đối tượng duy nhất.
- C. Dữ liệu trong đối tượng không thể thay đổi sau khi tạo.
- D. Các lớp không thể kế thừa từ nhau.
Câu 15: "Mảng" (array) là một cấu trúc dữ liệu dùng để lưu trữ:
- A. Các đối tượng thuộc các lớp khác nhau.
- B. Một tập hợp các phần tử có cùng kiểu dữ liệu và được truy cập thông qua chỉ số.
- C. Các cặp khóa-giá trị.
- D. Dữ liệu có cấu trúc phân cấp.
Câu 16: Trong lập trình, "gỡ lỗi" (debugging) là quá trình:
- A. Viết mã nguồn chương trình.
- B. Biên dịch chương trình.
- C. Tìm và sửa các lỗi (bugs) trong chương trình.
- D. Tối ưu hóa hiệu suất chương trình.
Câu 17: "Mã giả" (pseudocode) thường được sử dụng để làm gì trong quá trình phát triển phần mềm?
- A. Thay thế ngôn ngữ lập trình chính thức.
- B. Biên dịch chương trình thành mã máy.
- C. Kiểm thử chương trình.
- D. Mô tả thuật toán hoặc logic chương trình một cách dễ hiểu, gần với ngôn ngữ tự nhiên, trước khi viết mã bằng ngôn ngữ lập trình cụ thể.
Câu 18: "Đệ quy" (recursion) là một kỹ thuật lập trình mà trong đó:
- A. Một hàm tự gọi chính nó để giải quyết một bài toán lớn bằng cách chia nhỏ thành các bài toán con tương tự.
- B. Một vòng lặp vô hạn.
- C. Một cách để khai báo biến toàn cục.
- D. Một kỹ thuật để tối ưu hóa bộ nhớ.
Câu 19: "Độ phức tạp thuật toán" (time complexity) dùng để đánh giá điều gì?
- A. Mức độ dễ hiểu của mã nguồn.
- B. Thời gian thực thi của thuật toán tăng lên như thế nào khi kích thước đầu vào tăng lên.
- C. Lượng bộ nhớ sử dụng của chương trình.
- D. Số lượng dòng mã trong chương trình.
Câu 20: Trong biểu thức logic, toán tử "AND" thường được sử dụng để:
- A. Đảo ngược giá trị logic (từ đúng sang sai, và ngược lại).
- B. Thực hiện phép cộng hai số.
- C. Kiểm tra xem cả hai điều kiện có đồng thời đúng hay không.
- D. Kiểm tra xem ít nhất một trong hai điều kiện có đúng hay không.
Câu 21: Kiểu dữ liệu "boolean" thường có bao nhiêu giá trị?
- A. Vô hạn.
- B. Hai (thường là "true" và "false").
- C. Mười (từ 0 đến 9).
- D. Tùy thuộc vào ngôn ngữ lập trình.
Câu 22: "Hằng số" (constant) trong lập trình khác với "biến" ở điểm nào?
- A. Hằng số được khai báo bên trong hàm, biến thì bên ngoài.
- B. Hằng số có thể thay đổi giá trị, biến thì không.
- C. Hằng số không cần khai báo kiểu dữ liệu, biến thì cần.
- D. Hằng số có giá trị không đổi trong suốt quá trình thực thi chương trình, trong khi giá trị của biến có thể thay đổi.
Câu 23: "Toán tử gán" (assignment operator, ví dụ "=") dùng để làm gì?
- A. Gán một giá trị cho một biến.
- B. So sánh hai giá trị.
- C. Thực hiện phép toán số học.
- D. Kết hợp hai chuỗi ký tự.
Câu 24: "Chú thích" (comment) trong mã nguồn có vai trò gì?
- A. Làm tăng tốc độ thực thi chương trình.
- B. Báo lỗi cho trình biên dịch.
- C. Giải thích mã nguồn, giúp người đọc (bao gồm cả lập trình viên) hiểu rõ hơn về chức năng của đoạn mã; trình biên dịch bỏ qua các dòng chú thích.
- D. Thay thế mã nguồn khi chương trình gặp lỗi.
Câu 25: "Biến cục bộ" (local variable) là biến được khai báo ở đâu?
- A. Bên ngoài tất cả các hàm.
- B. Bên trong một hàm hoặc một khối lệnh.
- C. Ở đầu chương trình.
- D. Trong thư viện hệ thống.
Câu 26: "Biến toàn cục" (global variable) có phạm vi sử dụng như thế nào?
- A. Có thể được truy cập và sử dụng từ bất kỳ đâu trong chương trình (sau khi được khai báo).
- B. Chỉ có thể được sử dụng trong hàm main().
- C. Chỉ có thể được sử dụng trong hàm mà nó được khai báo.
- D. Phạm vi sử dụng bị giới hạn trong một dòng mã.
Câu 27: Khi nào nên sử dụng vòng lặp "while" thay vì vòng lặp "for"?
- A. Khi biết trước số lần lặp.
- B. Khi muốn lặp lại một khối lệnh ít nhất một lần.
- C. Khi muốn lặp qua các phần tử của một mảng.
- D. Khi số lần lặp không xác định trước và phụ thuộc vào một điều kiện nào đó.
Câu 28: "Cấu trúc dữ liệu" (data structure) là gì?
- A. Một loại biến đặc biệt.
- B. Cách tổ chức và lưu trữ dữ liệu trong máy tính để có thể truy cập và thao tác dữ liệu một cách hiệu quả.
- C. Một tập hợp các hàm liên quan đến nhau.
- D. Một phương pháp kiểm thử phần mềm.
Câu 29: "Giải thuật tìm kiếm tuyến tính" (linear search) hoạt động như thế nào?
- A. Chia dữ liệu thành các phần nhỏ hơn và tìm kiếm trong từng phần.
- B. Sắp xếp dữ liệu trước rồi mới tìm kiếm.
- C. Duyệt qua từng phần tử của tập dữ liệu từ đầu đến cuối cho đến khi tìm thấy phần tử cần tìm hoặc duyệt hết.
- D. Chỉ tìm kiếm ở phần giữa của tập dữ liệu.
Câu 30: "Giải thuật sắp xếp nổi bọt" (bubble sort) có hiệu quả như thế nào đối với dữ liệu lớn?
- A. Rất hiệu quả, đặc biệt với dữ liệu lớn.
- B. Hiệu quả tương đương với các thuật toán sắp xếp khác.
- C. Hiệu quả, nhưng chỉ với dữ liệu đã gần được sắp xếp.
- D. Kém hiệu quả với dữ liệu lớn do độ phức tạp thời gian cao (O(n^2)).