1. Phát biểu nào sau đây là đúng về cách khai báo một biến kiểu chuỗi trong Python?
A. Cần sử dụng từ khóa `string` trước tên biến.
B. Chỉ có thể khai báo bằng dấu nháy kép.
C. Không cần khai báo kiểu dữ liệu tường minh, chỉ cần gán giá trị chuỗi.
D. Phải luôn kết thúc bằng dấu chấm phẩy.
2. Trong lập trình, ‘thuật toán tìm kiếm tuyến tính’ (linear search) hoạt động như thế nào?
A. So sánh phần tử cần tìm với phần tử ở giữa danh sách.
B. Duyệt qua từng phần tử của danh sách theo thứ tự cho đến khi tìm thấy hoặc hết danh sách.
C. Chia đôi danh sách và tìm kiếm ở một nửa.
D. Sử dụng bảng băm để truy cập trực tiếp.
3. Phát biểu nào sau đây là đúng về hiệu quả của thuật toán sắp xếp nổi bọt (bubble sort)?
A. Bubble sort là thuật toán sắp xếp hiệu quả nhất cho các tập dữ liệu lớn.
B. Bubble sort có độ phức tạp thời gian O(n^2) trong trường hợp xấu nhất và trung bình, khiến nó không hiệu quả với tập dữ liệu lớn.
C. Bubble sort luôn có độ phức tạp thời gian O(n log n).
D. Bubble sort yêu cầu bộ nhớ phụ lớn để hoạt động.
4. Tại sao việc sử dụng hàm (function) lại quan trọng trong lập trình?
A. Để làm cho mã nguồn dài hơn và phức tạp hơn.
B. Để giảm sự lặp lại của mã (DRY – Don’t Repeat Yourself), tăng tính tái sử dụng và dễ quản lý.
C. Để chỉ có thể chạy chương trình trên một loại máy tính duy nhất.
D. Để đảm bảo chương trình luôn chạy chậm.
5. Trong cấu trúc điều khiển rẽ nhánh `if-else`, mệnh đề `else` sẽ được thực thi khi nào?
A. Khi điều kiện trong mệnh đề `if` là đúng.
B. Khi điều kiện trong mệnh đề `if` là sai.
C. Luôn luôn được thực thi, bất kể điều kiện trong `if`.
D. Khi chương trình gặp lỗi.
6. Trong lập trình Python, câu lệnh `print(‘Hello, World!’)` có chức năng gì?
A. Đọc dữ liệu từ người dùng.
B. Thực hiện phép tính toán.
C. Hiển thị chuỗi ‘Hello, World!’ ra màn hình.
D. Khởi tạo một biến mới.
7. Phát biểu nào sau đây đúng về kiểu dữ liệu chuỗi (string) trong Python?
A. Chuỗi là một tập hợp các số có thể thực hiện phép toán số học trực tiếp.
B. Chuỗi là một dãy các ký tự, có thể được biểu diễn bằng dấu nháy đơn hoặc nháy kép.
C. Chuỗi là kiểu dữ liệu có thể thay đổi (mutable).
D. Chuỗi chỉ chứa được ký tự số.
8. Phát biểu nào sau đây mô tả đúng về ngôn ngữ lập trình Python?
A. Python là ngôn ngữ biên dịch thuần túy.
B. Python là ngôn ngữ thông dịch, có cú pháp rõ ràng, dễ đọc và mạnh mẽ.
C. Python yêu cầu khai báo kiểu dữ liệu cho mọi biến.
D. Python chỉ phù hợp cho các ứng dụng đồ họa.
9. Trong cấu trúc dữ liệu cây (tree), nút gốc (root node) là gì?
A. Nút có nhiều con nhất.
B. Nút ở cấp độ sâu nhất của cây.
C. Nút bắt đầu của cây, không có nút cha.
D. Nút lá (leaf node).
10. Trong cấu trúc `for i in range(5):`, biến `i` sẽ nhận các giá trị nào?
A. 1, 2, 3, 4, 5
B. 0, 1, 2, 3, 4
C. 0, 1, 2, 3, 4, 5
D. 5
11. Khái niệm ‘debug’ trong lập trình ám chỉ hoạt động gì?
A. Viết mã nguồn mới.
B. Tìm kiếm và sửa lỗi trong chương trình.
C. Thiết kế giao diện người dùng.
D. Tối ưu hóa tốc độ thực thi của thuật toán.
12. Trong các loại vòng lặp, vòng lặp `for` thường được sử dụng khi nào?
A. Khi số lần lặp không được biết trước.
B. Khi cần thực hiện một hành động nhiều lần với một số lần lặp xác định hoặc lặp qua các phần tử của một tập hợp.
C. Khi chỉ có một điều kiện duy nhất để thoát khỏi vòng lặp.
D. Khi cần lặp lại cho đến khi một điều kiện nào đó trở thành sai.
13. Trong ngôn ngữ Python, làm thế nào để truy cập phần tử đầu tiên của một mảng (hoặc danh sách) có tên là `my_list`?
A. my_list(0)
B. my_list[1]
C. my_list[0]
D. my_list.first()
14. Khi xem xét tính đúng đắn của một thuật toán, điều gì là quan trọng nhất cần đánh giá?
A. Thuật toán có sử dụng ít biến nhất có thể.
B. Thuật toán có thể chạy nhanh nhất trên mọi loại máy tính.
C. Thuật toán luôn cho ra kết quả đúng với mọi bộ dữ liệu đầu vào hợp lệ.
D. Thuật toán có thể được biểu diễn bằng nhiều sơ đồ khác nhau.
15. Khi so sánh hai số nguyên `a` và `b` trong Python, toán tử nào dùng để kiểm tra xem `a` có lớn hơn `b` không?
16. Giả sử bạn có một danh sách các số nguyên `numbers = [5, 2, 8, 1, 9]`. Nếu bạn muốn sắp xếp danh sách này theo thứ tự tăng dần trong Python, phương pháp nào sau đây thường được sử dụng?
A. Sử dụng phương thức `numbers.sort()`.
B. Sử dụng phương thức `numbers.reverse()`.
C. Sử dụng hàm `sorted(numbers)`. (Lưu ý: Cả hai đều có thể, nhưng `sort()` thay đổi tại chỗ).
D. Sử dụng vòng lặp `for` để so sánh từng cặp phần tử.
17. Biến trong lập trình là gì?
A. Một câu lệnh cố định không thay đổi trong chương trình.
B. Một đại lượng có thể thay đổi giá trị trong quá trình thực thi chương trình.
C. Một hàm được định nghĩa sẵn để thực hiện một tác vụ.
D. Một phần của hệ điều hành.
18. Phát biểu nào sau đây mô tả đúng nhất vai trò của thuật toán trong lập trình máy tính?
A. Thuật toán là tập hợp các lệnh máy tính được thực thi theo trình tự.
B. Thuật toán là một chuỗi các bước rõ ràng, hữu hạn để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Thuật toán là ngôn ngữ lập trình được sử dụng để viết chương trình.
D. Thuật toán là các cấu trúc dữ liệu dùng để lưu trữ thông tin.
19. Phát biểu nào sau đây mô tả chính xác nhất về mảng (array) trong lập trình?
A. Một tập hợp các biến độc lập có tên khác nhau.
B. Một tập hợp các phần tử cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ và có thể truy cập thông qua chỉ số (index).
C. Một cấu trúc dữ liệu chỉ chứa duy nhất một phần tử.
D. Một tập hợp các hàm được nhóm lại với nhau.
20. Một vòng lặp `while` trong lập trình sẽ tiếp tục thực hiện khối lệnh bên trong nó miễn là điều kiện của vòng lặp là gì?
A. Sai.
B. Đúng.
C. Không xác định.
D. Bằng không.
21. Phát biểu nào sau đây đúng về phạm vi của biến (variable scope)?
A. Biến toàn cục chỉ có thể truy cập bên trong một hàm.
B. Biến cục bộ chỉ có thể truy cập bên ngoài tất cả các hàm.
C. Phạm vi biến xác định nơi biến đó có thể được sử dụng hoặc truy cập trong chương trình.
D. Tất cả các biến đều có phạm vi toàn cục theo mặc định.
22. Khi nói về độ phức tạp không gian (space complexity) của một thuật toán, chúng ta đang đề cập đến yếu tố nào?
A. Thời gian cần thiết để thuật toán chạy.
B. Lượng bộ nhớ (RAM, ổ cứng) mà thuật toán sử dụng.
C. Số lượng phép toán mà thuật toán thực hiện.
D. Khả năng mở rộng của thuật toán.
23. Trong lập trình Python, khi một hàm nhận vào các giá trị để thực hiện công việc, các giá trị đó được gọi là gì?
A. Biến toàn cục.
B. Tham số (parameter).
C. Đối số (argument).
D. Hằng số.
24. Trong Python, toán tử `and` được sử dụng để làm gì?
A. Thực hiện phép cộng logic.
B. Kiểm tra xem cả hai điều kiện đều là đúng.
C. Thực hiện phép nhân.
D. Kiểm tra xem ít nhất một trong hai điều kiện là sai.
25. Đâu là mục đích chính của việc sử dụng cấu trúc dữ liệu?
A. Để làm cho chương trình chạy chậm hơn.
B. Để tổ chức và lưu trữ dữ liệu một cách hiệu quả, hỗ trợ các thao tác xử lý dữ liệu.
C. Để tăng số lượng dòng mã nguồn.
D. Để chỉ cho phép lưu trữ một loại dữ liệu duy nhất.
26. Phát biểu nào sau đây mô tả đúng về thuật toán đệ quy (recursion)?
A. Là một phương pháp lặp sử dụng vòng lặp `for`.
B. Là một hàm tự gọi lại chính nó để giải quyết các bài toán con.
C. Yêu cầu sử dụng bảng để lưu trữ tất cả các bước.
D. Luôn đảm bảo chương trình chạy nhanh hơn vòng lặp thông thường.
27. Phát biểu nào sau đây mô tả đúng nhất về ‘biên dịch’ (compilation) trong lập trình?
A. Chuyển mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy một lần duy nhất trước khi chạy chương trình.
B. Thực thi từng câu lệnh của mã nguồn ngay lập tức khi chương trình chạy.
C. Chuyển đổi mã nguồn thành mã trung gian (bytecode).
D. Phân tích lỗi cú pháp mà không tạo ra tệp thực thi.
28. Phát biểu nào sau đây là đúng về kiểu dữ liệu số nguyên (integer) trong hầu hết các ngôn ngữ lập trình?
A. Chỉ biểu diễn được các số có phần thập phân.
B. Biểu diễn được các số nguyên dương, số nguyên âm và số 0.
C. Có khả năng biểu diễn cả số nguyên và số thực với độ chính xác cao.
D. Là kiểu dữ liệu có kích thước bộ nhớ không xác định.
29. Ngôn ngữ lập trình bậc cao có đặc điểm nổi bật nào so với ngôn ngữ lập trình bậc thấp?
A. Gần gũi với ngôn ngữ máy, dễ dàng tương tác trực tiếp với phần cứng.
B. Yêu cầu người lập trình hiểu sâu về cấu trúc bộ nhớ và tập lệnh của máy tính.
C. Gần gũi với ngôn ngữ tự nhiên của con người, dễ đọc, dễ viết và dễ bảo trì.
D. Tốc độ thực thi nhanh hơn do không cần thông dịch hay biên dịch.
30. Khi thực hiện phép toán `5 / 2` trong Python 3, kết quả trả về sẽ là kiểu dữ liệu gì?
A. Số nguyên (integer).
B. Số thực (float).
C. Chuỗi (string).
D. Boolean.
31. Khi một hàm trong Python kết thúc mà không có câu lệnh ‘return’ rõ ràng, nó sẽ tự động trả về giá trị nào?
A. 0
B. ” (chuỗi rỗng)
C. None
D. False
32. Hàm nào trong Python trả về độ dài (số lượng phần tử) của một danh sách hoặc chuỗi?
A. size()
B. length()
C. count()
D. len()
33. Phát biểu nào sau đây mô tả đúng về tính chất của ‘set’ trong Python?
A. Các phần tử có thứ tự và có thể lặp lại.
B. Các phần tử không có thứ tự và không thể lặp lại.
C. Các phần tử có thứ tự và không thể lặp lại.
D. Các phần tử không có thứ tự và có thể lặp lại.
34. Trong Python, cấu trúc dữ liệu nào cho phép lưu trữ một tập hợp các phần tử có thứ tự và có thể thay đổi (mutable)?
A. Tuple
B. Set
C. Dictionary
D. List
35. Giả sử bạn có một biến `name = ‘Alice’`. Biểu thức `name[1]` trong Python sẽ trả về ký tự nào?
36. Trong lập trình Python, câu lệnh nào sau đây được sử dụng để khai báo một biến và gán giá trị chuỗi ‘Hello, World!’ cho nó?
A. var message = ‘Hello, World!’
B. let message = ‘Hello, World!’
C. message = ‘Hello, World!’
D. string message = ‘Hello, World!’
37. Vòng lặp ‘for’ trong Python thường được sử dụng để:
A. Thực hiện một khối lệnh lặp lại cho đến khi một điều kiện cụ thể trở thành sai.
B. Thực hiện một khối lệnh lặp lại một số lần xác định trước, thường duyệt qua một chuỗi hoặc dãy phần tử.
C. Nhảy đến một phần khác của chương trình.
D. Định nghĩa một hàm mới.
38. Phát biểu nào sau đây mô tả đúng nhất về kiểu dữ liệu ‘int’ trong Python?
A. Kiểu dữ liệu dùng để lưu trữ các ký tự đơn lẻ.
B. Kiểu dữ liệu dùng để lưu trữ các số nguyên, không có phần thập phân.
C. Kiểu dữ liệu dùng để lưu trữ các giá trị đúng hoặc sai (True/False).
D. Kiểu dữ liệu dùng để lưu trữ các số có phần thập phân.
39. Câu lệnh nào trong Python được sử dụng để thoát hoàn toàn khỏi một vòng lặp?
A. continue
B. exit
C. break
D. return
40. Đâu là cách khai báo một tuple rỗng trong Python?
A. ()
B. []
C. {}
D. tuple()
41. Giả sử bạn có một danh sách các số: `numbers = [1, 5, 3, 8, 2]`. Hàm `sorted(numbers)` sẽ trả về kết quả nào sau đây?
A. [1, 5, 3, 8, 2]
B. [8, 5, 3, 2, 1]
C. [1, 2, 3, 5, 8]
D. Lỗi vì không thể sắp xếp danh sách số.
42. Câu lệnh nào trong Python được sử dụng để in một thông báo ra màn hình console?
A. display(‘Thông báo’)
B. echo ‘Thông báo’
C. print(‘Thông báo’)
D. write(‘Thông báo’)
43. Phát biểu nào sau đây mô tả đúng về biến cục bộ (local variable) trong một hàm Python?
A. Biến có thể truy cập từ bất kỳ đâu trong chương trình.
B. Biến chỉ tồn tại và có thể truy cập bên trong hàm nơi nó được khai báo.
C. Biến được chia sẻ giữa tất cả các hàm trong chương trình.
D. Biến được tự động khởi tạo với giá trị 0.
44. Phát biểu nào sau đây là đúng về kiểu dữ liệu ‘float’ trong Python?
A. Chỉ dùng để lưu trữ số nguyên.
B. Dùng để lưu trữ các số có phần thập phân.
C. Dùng để lưu trữ các giá trị True/False.
D. Dùng để lưu trữ các ký tự đơn lẻ.
45. Giả sử bạn có biến `x = 10`. Câu lệnh nào sau đây sẽ làm tăng giá trị của `x` lên 1 đơn vị?
A. x = x – 1
B. x = x * 1
C. x = x + 1
D. x = x / 1
46. Trong cấu trúc điều khiển ‘if-elif-else’, từ khóa nào được sử dụng để kiểm tra một điều kiện khác nếu điều kiện ‘if’ ban đầu là sai?
A. else
B. then
C. elif
D. switch
47. Câu lệnh nào dùng để nhập dữ liệu từ bàn phím vào chương trình Python?
A. get()
B. input()
C. read()
D. scan()
48. Trong Python, toán tử nào được sử dụng để kiểm tra xem một phần tử có thuộc về một tập hợp hoặc danh sách hay không?
A. is
B. ===
C. in
D. contains
49. Phát biểu nào sau đây là đúng về toán tử ‘+’ trong Python khi áp dụng cho hai chuỗi?
A. Thực hiện phép cộng số học.
B. Thực hiện phép nối chuỗi.
C. Thực hiện phép so sánh bằng.
D. Thực hiện phép lặp chuỗi.
50. Trong lập trình Python, hàm được định nghĩa bằng từ khóa nào?
A. function
B. proc
C. def
D. method
51. Khi bạn muốn tạo một chuỗi ký tự, bạn cần sử dụng cặp dấu nào?
A. Dấu ngoặc đơn ()
B. Dấu ngoặc vuông []
C. Dấu nháy đơn ” hoặc dấu nháy kép “”
D. Dấu ngoặc nhọn {}
52. Đâu là cách đúng để tạo một tập hợp (set) rỗng trong Python?
53. Phát biểu nào sau đây mô tả đúng về ‘mutable’ (có thể thay đổi) và ‘immutable’ (không thể thay đổi) trong Python?
A. Mutable objects có thể thay đổi nội dung sau khi tạo, Immutable objects thì không.
B. Immutable objects có thể thay đổi nội dung sau khi tạo, Mutable objects thì không.
C. Cả Mutable và Immutable objects đều có thể thay đổi nội dung sau khi tạo.
D. Cả Mutable và Immutable objects đều không thể thay đổi nội dung sau khi tạo.
54. Nếu bạn muốn thực hiện một hành động chỉ khi một điều kiện là sai, bạn sẽ sử dụng cấu trúc điều khiển nào?
A. if
B. elif
C. else
D. for
55. Trong Python, bạn có thể lặp qua các ký tự của một chuỗi bằng cách sử dụng loại vòng lặp nào?
A. Chỉ có thể dùng vòng lặp ‘while’.
B. Chỉ có thể dùng vòng lặp ‘for’.
C. Cả vòng lặp ‘for’ và ‘while’ đều có thể sử dụng.
D. Không thể lặp qua các ký tự của chuỗi.
56. Phát biểu nào mô tả đúng nhất về cách truy cập phần tử trong một danh sách (list) Python bằng chỉ số (index)?
A. Sử dụng dấu chấm (.) theo sau là chỉ số.
B. Sử dụng dấu nháy kép (”) theo sau là chỉ số.
C. Sử dụng dấu ngoặc vuông ([]) theo sau là chỉ số.
D. Sử dụng dấu ngoặc nhọn ({}) theo sau là chỉ số.
57. Trong Python, câu lệnh nào được sử dụng để tạo một vòng lặp vô hạn nếu không có điều kiện dừng phù hợp?
A. for i in range(10):
B. while True:
C. if 1 == 1:
D. repeat until True:
58. Câu lệnh nào sau đây sẽ dừng thực thi vòng lặp hiện tại và chuyển sang vòng lặp tiếp theo?
A. break
B. continue
C. pass
D. return
59. Cấu trúc dữ liệu nào trong Python lưu trữ các cặp khóa-giá trị (key-value pairs)?
A. List
B. Tuple
C. Set
D. Dictionary
60. Phát biểu nào sau đây đúng về cách sử dụng toán tử so sánh ‘==’ trong Python?
A. Dùng để gán giá trị cho biến.
B. Dùng để kiểm tra xem hai giá trị có bằng nhau hay không.
C. Dùng để kiểm tra xem một giá trị có lớn hơn giá trị khác hay không.
D. Dùng để nối hai chuỗi lại với nhau.
61. Trong Python, kiểu dữ liệu nào sau đây được sử dụng để lưu trữ một chuỗi các ký tự?
A. int
B. float
C. str
D. bool
62. Phát biểu nào sau đây mô tả đúng về một ‘set’ trong Python?
A. Là một tập hợp các phần tử có thứ tự và có thể thay đổi.
B. Là một tập hợp các phần tử không có thứ tự, không cho phép các phần tử trùng lặp.
C. Là một tập hợp các phần tử có thứ tự và không thể thay đổi.
D. Là một tập hợp các cặp khóa-giá trị.
63. Phát biểu nào sau đây mô tả đúng vai trò của vòng lặp `for` trong Python?
A. Thực thi một khối lệnh một lần.
B. Thực thi một khối lệnh khi một điều kiện là sai.
C. Lặp qua một chuỗi các mục (như danh sách, chuỗi, phạm vi) và thực thi một khối lệnh cho mỗi mục.
D. Lặp lại một khối lệnh vô thời hạn cho đến khi có lệnh dừng.
64. Trong Python, toán tử `**` dùng để làm gì?
A. Phép chia lấy phần dư.
B. Phép lũy thừa.
C. Phép nhân.
D. Phép so sánh bằng.
65. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây được sử dụng để in ‘Xin chào thế giới!’ ra màn hình?
A. print(‘Xin chào thế giới!’)
B. echo ‘Xin chào thế giới!’
C. display(‘Xin chào thế giới!’)
D. write(‘Xin chào thế giới!’)
66. Đâu là một ví dụ về kiểu dữ liệu số thực (float) trong Python?
A. 100
B. ‘hello’
C. 3.14
D. True
67. Phát biểu nào sau đây mô tả đúng về một ‘tuple’ trong Python?
A. Là một tập hợp có thể thay đổi các phần tử.
B. Là một chuỗi các phần tử có thứ tự, không thể thay đổi (immutable).
C. Là một tập hợp không có thứ tự và cho phép các phần tử trùng lặp.
D. Là một tập hợp các cặp khóa-giá trị.
68. Cấu trúc điều khiển nào sau đây cho phép chương trình thực thi một khối lệnh nhiều lần dựa trên một điều kiện xác định?
A. if-else
B. for
C. while
D. try-except
69. Trong Python, để truy cập phần tử cuối cùng của một danh sách tên là `items`, bạn sẽ sử dụng chỉ số nào?
A. items[0]
B. items[len(items)]
C. items[-1]
D. items[len(items)-1]
70. Câu lệnh `continue` trong vòng lặp Python có tác dụng gì?
A. Thoát hoàn toàn khỏi vòng lặp.
B. In ra một giá trị.
C. Bỏ qua phần còn lại của khối lệnh trong lần lặp hiện tại và chuyển sang lần lặp tiếp theo.
D. Gán giá trị cho một biến.
71. Cho đoạn mã Python sau:
`text = ‘Python’
print(text[1:4])`
Kết quả in ra màn hình là gì?
A. Pyt
B. yth
C. thon
D. Pyth
72. Trong Python, từ khóa ‘import’ được sử dụng để làm gì?
A. Định nghĩa một biến mới.
B. Tạo một hàm mới.
C. Nhập (import) các module hoặc thư viện khác để sử dụng các chức năng của chúng.
D. Thoát khỏi vòng lặp.
73. Trong Python, làm thế nào để bạn tạo một từ điển (dictionary) trống?
74. Trong Python, làm thế nào để bạn kiểm tra xem một phần tử có tồn tại trong danh sách hay không?
A. if element == list:
B. if element in list:
C. if list.contains(element):
D. if element.is_in(list):
75. Câu lệnh nào sau đây được dùng để nhận dữ liệu nhập từ bàn phím trong Python?
A. print()
B. input()
C. get()
D. scan()
76. Trong lập trình Python, một ‘comment’ (chú thích) thường được bắt đầu bằng ký hiệu nào?
77. Phát biểu nào sau đây mô tả đúng về một ‘hàm’ (function) trong lập trình?
A. Một khối mã chỉ chạy một lần duy nhất khi chương trình bắt đầu.
B. Một khối mã có thể được định nghĩa và gọi lại nhiều lần để thực hiện một nhiệm vụ cụ thể.
C. Một biến lưu trữ kết quả tính toán của toàn bộ chương trình.
D. Một cấu trúc dữ liệu để lưu trữ nhiều giá trị cùng lúc.
78. Cho đoạn mã Python sau:
`my_dict = {‘a’: 1, ‘b’: 2}
print(my_dict.get(‘a’))`
Kết quả in ra màn hình là gì?
A. Lỗi
B. 1
C. {‘a’: 1, ‘b’: 2}
D. a
79. Khi làm việc với biến trong Python, phát biểu nào sau đây là KHÔNG đúng?
A. Tên biến có thể bắt đầu bằng số.
B. Tên biến có thể chứa ký tự gạch dưới (_).
C. Tên biến phân biệt chữ hoa và chữ thường.
D. Tên biến không được trùng với từ khóa của ngôn ngữ.
80. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu Boolean (bool) trong Python?
A. Chỉ có thể là các số nguyên từ 0 đến 9.
B. Chỉ có thể là chuỗi ký tự.
C. Chỉ có thể nhận hai giá trị: True hoặc False.
D. Có thể là bất kỳ ký tự nào.
81. Cho đoạn mã Python sau:
`x = 10
y = ‘5’
z = x + int(y)
print(z)`
Kết quả in ra màn hình là gì?
A. 15
B. ‘105’
C. Lỗi kiểu dữ liệu
D. 105
82. Cho đoạn mã Python sau:
`count = 0
while count < 3:
print(count)
count += 1`
Kết quả in ra màn hình là gì?
A. 0 1 2 3
B. 0 1 2
C. 1 2 3
D. Chạy vô hạn
83. Cho đoạn mã Python sau:
`my_list = [1, 2, 3, 4, 5]
print(my_list[2])`
Kết quả in ra màn hình là gì?
84. Đâu là một ví dụ về toán tử gán (assignment operator) trong Python?
85. Phát biểu nào sau đây mô tả chính xác nhất mục đích của câu lệnh `if condition:` trong Python?
A. Thực thi một khối lệnh nếu điều kiện ‘condition’ là sai.
B. Thực thi một khối lệnh nếu điều kiện ‘condition’ là đúng.
C. Lặp lại một khối lệnh cho đến khi điều kiện ‘condition’ là sai.
D. Thực hiện một hành động mặc định nếu điều kiện ‘condition’ không tồn tại.
86. Khi bạn cần thực hiện một hành động chỉ khi một điều kiện là đúng và một hành động khác nếu điều kiện đó là sai, bạn sẽ sử dụng cấu trúc nào trong Python?
A. if
B. for
C. if-else
D. while
87. Phát biểu nào sau đây mô tả đúng về lỗi ‘SyntaxError’ trong Python?
A. Xảy ra khi chương trình cố gắng thực hiện một phép toán không hợp lệ (ví dụ: chia cho 0).
B. Xảy ra khi chương trình gặp lỗi logic, dẫn đến kết quả sai.
C. Xảy ra khi cấu trúc câu lệnh của mã Python không tuân thủ các quy tắc ngữ pháp của ngôn ngữ.
D. Xảy ra khi chương trình cố gắng truy cập một biến chưa được định nghĩa.
88. Đâu là phép toán dùng để so sánh hai giá trị có bằng nhau hay không trong Python?
89. Trong Python, cách nào sau đây dùng để định nghĩa một hàm?
A. function my_func():
B. def my_func():
C. define my_func():
D. method my_func():
90. Câu lệnh `break` trong vòng lặp Python có tác dụng gì?
A. Bỏ qua lần lặp hiện tại và tiếp tục với lần lặp tiếp theo.
B. Thoát hoàn toàn khỏi vòng lặp.
C. Thực thi một khối lệnh khi điều kiện là sai.
D. Khởi động lại vòng lặp.
91. Câu lệnh nào sau đây dùng để tạo một vòng lặp `while` sẽ chạy vô hạn?
A. while True:
B. while 1:
C. while ‘ok’:
D. All of the above
92. Đâu là toán tử dùng để kiểm tra sự bằng nhau của hai giá trị trong Python?
93. Câu lệnh nào sau đây dùng để định nghĩa một hàm trong Python?
A. function ten_ham():
B. define ten_ham():
C. def ten_ham():
D. proc ten_ham():
94. Khi gọi một hàm đã định nghĩa, cú pháp đúng là gì?
A. call ten_ham()
B. ten_ham()
C. run ten_ham
D. execute ten_ham()
95. Nếu `x = ‘5’`, làm thế nào để chuyển đổi `x` thành số nguyên trong Python?
A. int(x)
B. convert_to_int(x)
C. x.to_int()
D. integer(x)
96. Trong Python, từ khóa `return` trong một hàm dùng để làm gì?
A. Bắt đầu một khối lệnh mới.
B. Ngắt vòng lặp.
C. Trả về một giá trị từ hàm và kết thúc thực thi hàm.
D. In một thông báo ra màn hình.
97. Nếu bạn có một chuỗi `s = ‘Python’`, làm thế nào để lấy ký tự thứ hai của chuỗi này?
A. s[2]
B. s[1]
C. s.charAt(1)
D. s.second()
98. Đâu là một ví dụ về kiểu dữ liệu số phức (complex number) trong Python?
A. 10 + 5j
B. 10 + 5i
C. 10 + 5
D. ’10 + 5j’
99. Đâu là cách đúng để thêm một phần tử vào cuối danh sách `my_list` trong Python?
A. my_list.add(element)
B. my_list.insert(element)
C. my_list.append(element)
D. my_list.push(element)
100. Cấu trúc dữ liệu nào trong Python được sử dụng để lưu trữ các cặp khóa-giá trị (key-value pairs)?
A. List
B. Tuple
C. Dictionary
D. Set
101. Nếu `x = 10` và `y = 5`, giá trị của biểu thức `x ** y` trong Python là gì?
102. Để truy cập phần tử đầu tiên của một danh sách có tên là `my_list`, bạn sẽ sử dụng chỉ số nào?
A. my_list(0)
B. my_list[0]
C. my_list[1]
D. my_list.first
103. Câu lệnh nào sau đây sẽ tạo ra một chuỗi ký tự (string) trong Python?
A. my_string = 123
B. my_string = [1, 2, 3]
C. my_string = ‘Hello’
D. my_string = (1, 2, 3)
104. Giả sử `my_dict = {‘name’: ‘Alice’, ‘age’: 30}`. Làm thế nào để truy cập giá trị ‘Alice’?
A. my_dict.get(‘Alice’)
B. my_dict[‘name’]
C. my_dict[0]
D. my_dict.name
105. Trong Python, `True` và `False` là các giá trị của kiểu dữ liệu nào?
A. Integer
B. String
C. Boolean
D. Float
106. Giả sử bạn có hai biến `a = 5` và `b = 2`. Giá trị của biểu thức `a // b` trong Python là gì?
107. Để kết thúc sớm một vòng lặp `for` hoặc `while` trước khi nó hoàn thành một cách tự nhiên, bạn sử dụng từ khóa nào?
A. continue
B. pass
C. return
D. break
108. Giả sử bạn có biến `tuoi = 18`. Câu lệnh nào sau đây sẽ cho kết quả là True nếu `tuoi` lớn hơn 18?
A. tuoi > 18
B. tuoi >= 18
C. tuoi < 18
D. tuoi == 18
109. Trong Python, câu lệnh nào được dùng để nhập dữ liệu từ bàn phím?
A. print()
B. input()
C. get()
D. read()
110. Trong lập trình Python, cấu trúc điều kiện `if-elif-else` được sử 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 một khối lệnh chỉ một lần.
C. Chọn thực thi một trong nhiều khối lệnh dựa trên các điều kiện khác nhau.
D. Gán giá trị cho biến.
111. Đâu là phát biểu ĐÚNG về biến trong lập trình Python?
A. Biến cần phải được khai báo với kiểu dữ liệu cụ thể trước khi sử dụng.
B. Tên biến không được bắt đầu bằng số.
C. Tên biến có thể chứa khoảng trắng.
D. Biến là cố định và không thể thay đổi giá trị sau khi khai báo.
112. Trong Python, một `tuple` khác với một `list` ở điểm nào?
A. Tuple có thể thay đổi (mutable) còn list thì không.
B. Tuple không thể thay đổi (immutable) còn list thì có thể.
C. Tuple chỉ chứa được các phần tử cùng kiểu dữ liệu.
D. List chỉ có thể truy cập bằng chỉ số, tuple có thể truy cập bằng tên.
113. Nếu bạn muốn lặp lại một khối lệnh 5 lần, bạn nên sử dụng loại vòng lặp nào trong Python?
A. Vòng lặp `while` với điều kiện không bao giờ sai.
B. Vòng lặp `for` với `range(5)`.
C. Vòng lặp `if`.
D. Vòng lặp `break`.
114. Nếu `my_list = [10, 20, 30, 40]`, giá trị của `my_list[2]` là gì?
115. Câu lệnh nào sau đây sẽ tạo ra một danh sách (list) rỗng trong Python?
A. list()
B. [ ]
C. new list
D. Both A and B
116. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây dùng để khai báo một biến và gán giá trị số nguyên cho nó?
A. var x = 10;
B. let x = 10;
C. x = 10
D. int x = 10;
117. Toán tử nào trong Python được sử dụng để lấy phần dư của phép chia?
118. Đâu là cú pháp chính xác để in một chuỗi ký tự ra màn hình trong Python?
A. echo ‘Xin chào’;
B. print(‘Xin chào’)
C. display(‘Xin chào’);
D. write(‘Xin chào’);
119. Trong Python, từ khóa `continue` được sử dụng để làm gì trong vòng lặp?
A. Thoát hoàn toàn khỏi vòng lặp.
B. Bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo.
C. Gán một giá trị mặc định.
D. Kiểm tra điều kiện lặp lại.
120. Nếu `x = 10` và `y = 3`, giá trị của `x % y` là bao nhiêu?
121. RAM (Random Access Memory) là loại bộ nhớ có đặc điểm gì?
A. Lưu trữ dữ liệu vĩnh viễn ngay cả khi tắt máy.
B. Tốc độ truy cập rất chậm nhưng dung lượng lớn.
C. Là bộ nhớ tạm thời, mất dữ liệu khi nguồn điện bị ngắt.
D. Chỉ dùng để lưu trữ hệ điều hành.
122. Trong lĩnh vực mạng máy tính, thuật ngữ ‘IP address’ dùng để chỉ điều gì?
A. Địa chỉ email của người dùng.
B. Địa chỉ vật lý duy nhất của card mạng (MAC address).
C. Một định danh số được gán cho mỗi thiết bị kết nối vào mạng sử dụng Giao thức Internet để truyền thông.
D. Tên miền của một trang web.
123. Một thuật toán tìm kiếm tuần tự (linear search) trên một mảng chưa sắp xếp có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?
A. O(log n)
B. O(n)
C. O(n^2)
D. O(1)
124. Trong Java, kiểu dữ liệu nào được sử dụng để biểu diễn một số nguyên có dấu với phạm vi giá trị từ -2,147,483,648 đến 2,147,483,647?
A. byte
B. short
C. int
D. long
125. Câu lệnh SQL `SELECT COUNT(*) FROM Students;` sẽ trả về kết quả gì?
A. Tất cả các bản ghi từ bảng Students.
B. Số lượng bản ghi có trong bảng Students.
C. Tên của cột có nhiều giá trị nhất.
D. Trung bình cộng của các giá trị trong bảng Students.
126. Trong SQL, mệnh đề nào được sử dụng để lọc các bản ghi dựa trên một điều kiện được chỉ định?
A. SELECT
B. FROM
C. WHERE
D. ORDER BY
127. Một ‘byte’ trong hệ thống máy tính thường được định nghĩa là tập hợp bao nhiêu bit?
A. 4 bit
B. 8 bit
C. 16 bit
D. 32 bit
128. CSS (Cascading Style Sheets) được sử dụng để làm gì trong phát triển web?
A. Xác định cấu trúc và nội dung của trang web.
B. Xử lý logic và tương tác phía máy chủ.
C. Kiểm soát cách trình bày và giao diện của các phần tử HTML.
D. Lưu trữ dữ liệu người dùng trên trình duyệt.
129. Khi mô tả thuật toán, khái niệm ‘độ phức tạp thời gian’ (time complexity) thường được đo lường bằng cách nào?
A. Số lượng biến được sử dụng.
B. Số lượng dòng mã của thuật toán.
C. Số lượng phép toán cơ bản (ví dụ: so sánh, gán, cộng) theo hàm của kích thước đầu vào.
D. Tốc độ thực thi trên một máy tính cụ thể.
130. JavaScript chủ yếu được sử dụng để làm gì trong phát triển web?
A. Tạo cấu trúc của trang web.
B. Thực hiện các tương tác động và logic phía client (trình duyệt).
C. Quản lý cơ sở dữ liệu phía máy chủ.
D. Chỉ định kiểu dáng và màu sắc cho các phần tử.
131. Khi thiết kế cơ sở dữ liệu quan hệ, ‘khóa chính’ (primary key) của một bảng có vai trò gì?
A. Chỉ định mối quan hệ giữa hai bảng.
B. Đảm bảo tính duy nhất và định danh cho mỗi bản ghi trong bảng.
C. Lưu trữ các giá trị có thể bị trùng lặp.
D. Xác định thứ tự sắp xếp của các bản ghi.
132. Cấu trúc dữ liệu nào trong C++ cho phép lưu trữ một tập hợp các phần tử có thứ tự, có thể thay đổi kích thước và truy cập bằng chỉ số?
A. Array
B. Set
C. Vector
D. List (linked list)
133. Bộ xử lý trung tâm (CPU) chịu trách nhiệm chính cho việc gì trong máy tính?
A. Lưu trữ dữ liệu lâu dài.
B. Hiển thị hình ảnh lên màn hình.
C. Thực hiện các phép tính toán và xử lý lệnh.
D. Kết nối máy tính với mạng.
134. Trong cấu trúc dữ liệu cây (tree), nút gốc (root) là nút:
A. Nằm ở vị trí cuối cùng của cây.
B. Có nhiều nút con nhất.
C. Nằm ở trên cùng, không có nút cha.
D. Chỉ xuất hiện trong cây nhị phân.
135. Đơn vị đo lường dung lượng lưu trữ nào sau đây lớn nhất?
A. Gigabyte (GB)
B. Terabyte (TB)
C. Megabyte (MB)
D. Kilobyte (KB)
136. Trong lập trình Python, cấu trúc dữ liệu nào cho phép lưu trữ một tập hợp các phần tử có thứ tự và có thể thay đổi (mutable) mà không cho phép các phần tử trùng lặp?
A. List
B. Tuple
C. Set
D. Dictionary
137. Trong C++, để bao gồm thư viện nhập/xuất chuẩn, ta sử dụng lệnh tiền xử lý nào?
A. #include
B. #include
C. #include
D. #include
138. Thuật toán sắp xếp nào sau đây thường có độ phức tạp thời gian trung bình là O(n log n)?
A. Bubble Sort
B. Insertion Sort
C. Merge Sort
D. Selection Sort
139. Giao thức nào chịu trách nhiệm truyền tải các trang web qua Internet?
A. FTP (File Transfer Protocol)
B. SMTP (Simple Mail Transfer Protocol)
C. HTTP (Hypertext Transfer Protocol)
D. TCP (Transmission Control Protocol)
140. Ngôn ngữ lập trình nào sau đây được thiết kế ban đầu cho các hệ thống nhúng và có cú pháp tương tự C, nhưng quản lý bộ nhớ thủ công hơn?
A. Python
B. Java
C. C++
D. C
141. Khái niệm ‘API’ (Application Programming Interface) là gì?
A. Một chương trình hoàn chỉnh có thể chạy độc lập.
B. Một bộ các quy tắc, định nghĩa và giao thức cho phép các ứng dụng phần mềm khác nhau giao tiếp với nhau.
C. Một giao diện người dùng đồ họa (GUI).
D. Một thuật toán mã hóa dữ liệu.
142. Khái niệm ‘recursion’ trong lập trình đề cập đến một hàm:
A. Gọi lại chính nó.
B. Gọi một hàm khác.
C. Thực thi một vòng lặp.
D. Truy cập một biến toàn cục.
143. Trong ngôn ngữ lập trình C++, câu lệnh `for (int i = 0; i < 5; i++)` sẽ thực thi khối lệnh bên trong bao nhiêu lần?
A. 4 lần
B. 5 lần
C. 6 lần
D. Vô hạn lần
144. Trong lập trình hướng đối tượng, ‘encapsulation’ (đóng gói) có nghĩa là gì?
A. Cho phép một lớp kế thừa từ nhiều lớp khác.
B. Kết hợp dữ liệu (thuộc tính) và phương thức xử lý dữ liệu đó vào một đơn vị duy nhất (lớp), đồng thời ẩn đi chi tiết triển khai.
C. Tạo ra các đối tượng có thể thay đổi hành vi của chúng dựa trên ngữ cảnh.
D. Cho phép truy cập trực tiếp vào thuộc tính của một lớp từ bên ngoài.
145. Khi làm việc với chuỗi trong Python, phương thức nào được sử dụng để chuyển toàn bộ chuỗi thành chữ hoa?
A. lower()
B. capitalize()
C. title()
D. upper()
146. Trong ngữ cảnh lập trình web, ‘HTML’ là viết tắt của gì?
A. Hyperlink and Text Markup Language
B. High Tech Machine Language
C. Hypertext Markup Language
D. Hyper Transfer Markup Language
147. Xét đoạn mã Python sau: `x = [1, 2, 3, 4, 5]`; `print(x[1:4])`. Kết quả in ra màn hình là gì?
A. [2, 3, 4, 5]
B. [1, 2, 3, 4]
C. [2, 3, 4]
D. [1, 2, 3]
148. Cấu trúc dữ liệu nào sau đây phù hợp để mô hình hóa mối quan hệ ‘cha-con’ giữa các thực thể, ví dụ như hệ thống tệp tin của máy tính?
A. Ngăn xếp (Stack)
B. Hàng đợi (Queue)
C. Cây (Tree)
D. Đồ thị (Graph)
149. Khi một chương trình gặp lỗi ‘Segmentation Fault’, điều này thường chỉ ra vấn đề gì?
A. Lỗi cú pháp trong mã nguồn.
B. Chương trình cố gắng truy cập vào một vùng bộ nhớ không được phép hoặc không tồn tại.
C. Lỗi logic trong vòng lặp.
D. Thiếu bộ nhớ RAM trên hệ thống.
150. Khái niệm ‘polymorphism’ (đa hình) trong lập trình hướng đối tượng cho phép:
A. Một đối tượng có thể có nhiều giá trị cùng lúc.
B. 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 (lời gọi hàm) theo cách riêng của chúng.
C. Một lớp có thể kế thừa thuộc tính từ nhiều lớp cha.
D. Che giấu thông tin chi tiết của lớp khỏi thế giới bên ngoài.