1. Phát biểu nào sau đây mô tả đúng nhất về thuật toán?
A. Thuật toán là một chương trình máy tính hoàn chỉnh có thể chạy độc lập.
B. Thuật toán là một tập hợp hữu hạn các chỉ thị hoặc quy tắc, được sắp xếp theo một trình tự logic để giải quyết một vấn đề cụ thể.
C. Thuật toán chỉ áp dụng cho các bài toán tính toán số học phức tạp.
D. Thuật toán luôn yêu cầu sử dụng ngôn ngữ lập trình bậc cao.
2. Khi viết một chương trình, điều quan trọng nhất cần xem xét khi chọn tên biến là gì?
A. Tên biến phải ngắn gọn nhất có thể để tiết kiệm bộ nhớ.
B. Tên biến phải có ý nghĩa, mô tả rõ ràng mục đích sử dụng của biến đó.
C. Tên biến nên chứa các ký tự đặc biệt để phân biệt với các từ khóa của ngôn ngữ.
D. Tên biến phải bắt đầu bằng một số để dễ dàng nhận biết.
3. Khi làm việc với cấu trúc dữ liệu danh sách (list) trong Python, thao tác nào sau đây thêm một phần tử vào cuối danh sách?
A. list.insert(index, element)
B. list.remove(element)
C. list.append(element)
D. list.pop()
4. Khi sử dụng cấu trúc lặp for để duyệt qua một chuỗi (string) trong Python, biến lặp sẽ nhận giá trị là gì trong mỗi lần lặp?
A. Chỉ số của ký tự hiện tại.
B. Ký tự hiện tại trong chuỗi.
C. Toàn bộ chuỗi.
D. Số lượng ký tự còn lại trong chuỗi.
5. Trong Python, cấu trúc dữ liệu nào sau đây là một tập hợp không có thứ tự (unordered) và không cho phép các phần tử trùng lặp?
A. List
B. Tuple
C. Dictionary
D. Set
6. Trong lập trình, biểu thức (expression) là gì?
A. Một câu lệnh hoàn chỉnh để thực thi một hành động.
B. Một tổ hợp các toán tử, toán hạng và giá trị có thể được đánh giá để tạo ra một giá trị duy nhất.
C. Một khối mã được định nghĩa để tái sử dụng.
D. Một cách để khai báo một biến mới.
7. Trong lập trình Python, để truy cập phần tử đầu tiên của một danh sách có tên là my_list, ta sử dụng cú pháp nào?
A. my_list(0)
B. my_list[0]
C. my_list.first()
D. my_list.get(0)
8. Trong Python, để truy cập và thay đổi giá trị của một phần tử trong danh sách đã có, ta sử dụng cú pháp nào?
A. list.update(index, new_value)
B. list.set(index, new_value)
C. list[index] = new_value
D. list.change(index, new_value)
9. Phát biểu nào sau đây mô tả đúng nhất về mối quan hệ giữa thuật toán và chương trình máy tính?
A. Thuật toán và chương trình máy tính là hai khái niệm hoàn toàn giống nhau.
B. Chương trình máy tính là một cách hiện thực hóa (implementation) một hoặc nhiều thuật toán bằng một ngôn ngữ lập trình cụ thể.
C. Thuật toán là một phần của chương trình máy tính, không thể tồn tại độc lập.
D. Chương trình máy tính là một thuật toán được viết bằng ngôn ngữ tự nhiên.
10. Đâu là phát biểu đúng nhất về vai trò của biến trong lập trình?
A. Biến là nơi lưu trữ cố định các giá trị không thay đổi trong suốt quá trình chạy chương trình.
B. Biến là một định danh dùng để đặt tên cho một ô nhớ, giúp chương trình truy cập và thao tác với dữ liệu.
C. Biến chỉ được sử dụng để lưu trữ các giá trị số nguyên.
D. Biến chỉ có thể được khai báo một lần duy nhất trong toàn bộ chương trình.
11. Khi so sánh hai giá trị bằng nhau trong biểu thức điều kiện, ta sử dụng toán tử nào trong hầu hết các ngôn ngữ lập trình?
12. Trong Python, cấu trúc dữ liệu dictionary (từ điển) lưu trữ dữ liệu dưới dạng nào?
A. Một chuỗi các phần tử có thứ tự.
B. Một danh sách các cặp khóa-giá trị (key-value pairs).
C. Một tập hợp các phần tử duy nhất.
D. Một dãy các ký tự.
13. Trong lập trình, khái niệm debug đề cập đến hoạt động nào?
A. Viết mã nguồn mới cho một chức năng.
B. Tối ưu hóa hiệu suất của chương trình.
C. Tìm kiếm, xác định và sửa lỗi trong mã nguồn.
D. Thiết kế giao diện người dùng cho ứng dụng.
14. Trong lập trình, khi hai hay nhiều biến cùng tham chiếu đến cùng một đối tượng (ví dụ: một danh sách), việc thay đổi giá trị của đối tượng thông qua một biến sẽ ảnh hưởng như thế nào đến các biến còn lại?
A. Các biến còn lại sẽ không bị ảnh hưởng, chúng giữ nguyên giá trị cũ.
B. Các biến còn lại sẽ tự động cập nhật để tham chiếu đến giá trị mới của đối tượng.
C. Chương trình sẽ báo lỗi vì không được phép thay đổi đối tượng thông qua nhiều biến.
D. Chỉ biến được sử dụng để thay đổi đối tượng là có ý nghĩa, các biến khác trở nên vô dụng.
15. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây được sử dụng để in một dòng văn bản ra màn hình?
A. input()
B. print()
C. display()
D. output()
16. Đâu là ví dụ về một cấu trúc dữ liệu tuyến tính (linear data structure)?
A. Cây nhị phân (Binary Tree)
B. Đồ thị (Graph)
C. Ngăn xếp (Stack)
D. Heap
17. Yếu tố nào sau đây KHÔNG phải là đặc điểm cần có của một thuật toán?
A. Tính xác định (Definiteness)
B. Tính hữu hạn (Finiteness)
C. Tính tùy ý (Arbitrariness)
D. Tính hiệu quả (Effectiveness)
18. Câu lệnh nào trong Python được dùng để lấy đầu vào từ người dùng qua bàn phím?
A. print()
B. input()
C. scan()
D. read()
19. Trong lập trình hướng đối tượng, một class (lớp) có thể được xem như là gì?
A. Một biến đơn lẻ lưu trữ một giá trị.
B. Một đối tượng cụ thể đã được tạo ra.
C. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
D. Một hàm thực hiện một tác vụ cụ thể.
20. Đâu là kiểu dữ liệu nguyên thủy (primitive data type) phổ biến trong nhiều ngôn ngữ lập trình, dùng để biểu diễn các số nguyên không có phần thập phân?
A. Float
B. String
C. Boolean
D. Integer
21. Trong lập trình Python, cấu trúc điều khiển nào cho phép lặp lại một khối mã nhiều lần dựa trên một điều kiện xác định trước và có khả năng không thực hiện lần nào nếu điều kiện ban đầu sai?
A. Cấu trúc lặp for
B. Cấu trúc lặp while
C. Cấu trúc rẽ nhánh if-else
D. Cấu trúc lặp do-while
22. Phát biểu nào sau đây đúng về sự khác biệt giữa list và tuple trong Python?
A. List có thể chứa các kiểu dữ liệu khác nhau, tuple chỉ chứa một kiểu dữ liệu.
B. List có thể thay đổi (mutable), còn tuple thì không (immutable).
C. Tuple có thứ tự, còn list thì không có thứ tự.
D. List được truy cập bằng chỉ số, tuple được truy cập bằng khóa.
23. Phát biểu nào sau đây mô tả chính xác chức năng của một vòng lặp trong lập trình?
A. Vòng lặp dùng để lưu trữ tạm thời các giá trị trung gian của phép tính.
B. Vòng lặp dùng để định nghĩa các hàm hoặc phương thức mới.
C. Vòng lặp dùng để thực thi lặp đi lặp lại một khối lệnh cho đến khi một điều kiện nhất định được thỏa mãn hoặc không còn được thỏa mãn.
D. Vòng lặp dùng để kiểm tra tính đúng sai của một biểu thức logic.
24. Trong Python, một tuple là gì?
A. Một danh sách có thể thay đổi (mutable list).
B. Một tập hợp các cặp khóa-giá trị không có thứ tự.
C. Một dãy các phần tử có thứ tự và không thể thay đổi (immutable sequence).
D. Một chuỗi ký tự đơn lẻ.
25. Khi khai báo một biến trong Python, quy tắc nào sau đây là BẮT BUỘC?
A. Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới.
B. Tên biến không được chứa khoảng trắng.
C. Tên biến có thể bắt đầu bằng một số.
D. Tên biến phải là một từ khóa của Python.