1. Biến trong Python được khai báo bằng cách nào sau đây?
A. Gán giá trị cho tên biến.
B. Sử dụng từ khóa ‘var’ theo sau là tên biến.
C. Sử dụng từ khóa ‘declare’ theo sau là tên biến.
D. Sử dụng từ khóa ‘define’ theo sau là tên biến.
2. Kiểu dữ liệu nào sau đây trong Python được sử dụng để lưu trữ một chuỗi các ký tự?
A. str
B. int
C. float
D. bool
3. Trong Python, hàm nào dùng để lấy độ dài của một chuỗi hoặc một danh sách?
A. len()
B. size()
C. count()
D. length()
4. Trong Python, nếu bạn muốn thoát khỏi vòng lặp ‘while’ hoặc ‘for’ ngay lập tức, bạn sử dụng từ khóa nào?
A. break
B. continue
C. pass
D. exit
5. Trong Python, nếu bạn muốn bỏ qua việc thực thi phần còn lại của vòng lặp hiện tại và tiếp tục với lần lặp tiếp theo, bạn sử dụng từ khóa nào?
A. continue
B. break
C. pass
D. skip
6. Trong Python, làm thế nào để bắt đầu một khối mã được thụt lề (indented block)?
A. Sử dụng dấu hai chấm (:) theo sau câu lệnh điều khiển hoặc vòng lặp.
B. Sử dụng dấu ngoặc nhọn ({}) bao quanh khối mã.
C. Sử dụng từ khóa ‘begin’ và ‘end’.
D. Sử dụng dấu chấm phẩy (;) ở cuối mỗi dòng.
7. Phép toán nào sau đây trong Python dùng để thực hiện phép chia lấy phần nguyên?
8. Đâu là cách khai báo một vòng lặp ‘for’ trong Python để lặp qua các số từ 0 đến 4?
A. for i in range(5):
B. for i from 0 to 4:
C. loop i in range(0, 5):
D. for i = 0 to 4:
9. Trong Python, từ khóa ‘if’ được sử dụng để làm gì?
A. Thực hiện một khối mã nếu một điều kiện là đúng.
B. Lặp lại một khối mã cho đến khi điều kiện sai.
C. Định nghĩa một hàm mới.
D. Tạo một biến mới.
10. Cấu trúc điều khiển nào trong Python cho phép thực thi một khối mã nhiều lần dựa trên một điều kiện?
A. Vòng lặp (loop)
B. Câu lệnh điều kiện (if-else)
C. Hàm (function)
D. Lớp (class)
11. Toán tử nào sau đây trong Python được sử dụng để so sánh xem hai giá trị có bằng nhau hay không?
12. Trong Python, từ khóa ‘else’ được sử dụng kết hợp với từ khóa nào?
A. if
B. for
C. while
D. elif
13. Toán tử nào sau đây trong Python dùng để nối hai chuỗi?
14. Biểu thức ‘5 + 3 * 2’ trong Python sẽ trả về giá trị nào?
15. Phép toán nào sau đây trong Python dùng để nâng lên lũy thừa?
A. **
B. ^
C. pow()
D. BOTH A and C
16. Trong câu lệnh ‘if x > 10:’, biểu thức ‘x > 10’ được gọi là gì?
A. Điều kiện
B. Biến
C. Toán tử
D. Giá trị
17. Kiểu dữ liệu nào trong Python được sử dụng để biểu diễn các giá trị đúng hoặc sai?
A. bool
B. str
C. int
D. float
18. Cấu trúc dữ liệu nào trong Python 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?
A. List (Danh sách)
B. Tuple (Bộ)
C. Set (Tập hợp)
D. Dictionary (Từ điển)
19. Biểu thức `3 > 5` trong Python sẽ trả về giá trị nào?
A. False
B. True
C. None
D. Error
20. Cấu trúc dữ liệu nào trong Python lưu trữ các cặp khóa-giá trị?
A. Dictionary
B. List
C. Tuple
D. Set
21. Trong Python, hàm `input()` dùng để làm gì?
A. Nhận đầu vào từ người dùng.
B. In dữ liệu ra màn hình.
C. Thực hiện phép tính.
D. Định nghĩa một biến.
22. Cấu trúc dữ liệu nào trong Python không cho phép các phần tử trùng lặp và không có thứ tự?
A. Set
B. List
C. Tuple
D. Dictionary
23. Cú pháp nào sau đây dùng để định nghĩa một hàm trong Python?
A. def function_name(parameters):
B. function function_name(parameters):
C. define function_name(parameters):
D. void function_name(parameters):
24. Trong ngôn ngữ lập trình Python, câu lệnh nào sau đây được sử dụng để in ra màn hình dòng chữ ‘Xin chào thế giới!’?
A. print(‘Xin chào thế giới!’)
B. echo ‘Xin chào thế giới!’
C. console.log(‘Xin chào thế giới!’)
D. display(‘Xin chào thế giới!’)
25. Phép toán nào sau đây trong Python dùng để thực hiện phép chia lấy phần dư?
26. Nếu bạn có một biến `x = 10`, câu lệnh `x += 5` sẽ thay đổi giá trị của `x` thành bao nhiêu?
27. Cấu trúc dữ liệu nào trong Python là bất biến (immutable), nghĩa là không thể thay đổi sau khi tạo?
A. Tuple
B. List
C. Dictionary
D. Set
28. Cấu trúc dữ liệu nào trong Python cho phép lưu trữ các phần tử có thứ tự nhưng không thể thay đổi?
A. Tuple
B. List
C. Set
D. Dictionary
29. Câu lệnh nào sau đây sẽ tạo ra một chuỗi trống trong Python?
30. Câu lệnh nào sau đây sẽ thêm phần tử ‘apple’ vào cuối danh sách `fruits = [‘banana’, ‘orange’]`?
A. fruits.append(‘apple’)
B. fruits.add(‘apple’)
C. fruits.insert(‘apple’)
D. fruits.push(‘apple’)
31. Khi sử dụng khối lệnh ‘repeat until ‘, chuỗi lệnh bên trong sẽ được thực thi:
A. Cho đến khi điều kiện trở thành ‘sai’.
B. Luôn luôn, không dừng lại.
C. Cho đến khi điều kiện trở thành ‘đúng’.
D. Một lần duy nhất.
32. Trong Scratch, để tạo một hoạt ảnh di chuyển liên tục theo đường cong, ta có thể kết hợp các khối lệnh nào?
A. ‘move X steps’ và ‘turn Y degrees’ trong vòng lặp ‘forever’.
B. ‘go to X Y’ và ‘switch costume’.
C. ‘change size by X’ và ‘wait X seconds’.
D. ‘broadcast message’ và ‘when I receive message’.
33. Khi sử dụng vòng lặp ‘repeat until ‘, việc đặt điều kiện sao cho nó không bao giờ đúng sẽ dẫn đến:
A. Chương trình dừng ngay lập tức.
B. Chương trình chạy vô hạn.
C. Chương trình chạy một lần duy nhất.
D. Chương trình bị lỗi.
34. Trong Scratch, khối lệnh ‘change Y by X’ dùng để làm gì?
A. Thay đổi vị trí theo trục ngang.
B. Thay đổi vị trí theo trục dọc.
C. Thay đổi hướng của đối tượng.
D. Thay đổi kích thước của đối tượng.
35. Để tạo hiệu ứng nhân vật di chuyển tới và lui theo một đường thẳng, ta có thể kết hợp các khối lệnh nào?
A. ‘repeat X times’ với ‘move X steps’ và ‘wait X seconds’.
B. ‘forever’ với ‘turn Y degrees’.
C. ‘glide X secs to X Y’.
D. ‘broadcast message’.
36. Trong Scratch, khối lệnh ‘show’ có chức năng gì?
A. Làm cho đối tượng biến mất.
B. Làm cho đối tượng xuất hiện.
C. Thay đổi kích thước của đối tượng.
D. Thay đổi màu sắc của đối tượng.
37. Khối lệnh ‘change size by X’ trong Scratch có chức năng gì?
A. Thay đổi hướng di chuyển của đối tượng.
B. Thay đổi kích thước của đối tượng theo một lượng nhất định.
C. Thay đổi màu sắc của đối tượng.
D. Tạo hiệu ứng rung cho đối tượng.
38. Nếu bạn muốn một nhân vật di chuyển 10 bước, chờ 0.5 giây, rồi lại di chuyển 10 bước, bạn sẽ sử dụng cấu trúc nào?
A. Khối ‘repeat 2 times’ chứa ‘move 10 steps’ và ‘wait 0.5 seconds’.
B. Khối ‘forever’ chứa ‘move 10 steps’ và ‘wait 0.5 seconds’.
C. Khối ‘repeat until’ chứa ‘move 10 steps’ và ‘wait 0.5 seconds’.
D. Khối ‘move 10 steps’, ‘wait 0.5 seconds’, ‘move 10 steps’ nối tiếp nhau.
39. Trong một dự án Scratch, nếu bạn muốn một nhân vật di chuyển 5 bước mỗi lần nhấn phím ‘mũi tên phải’, bạn sẽ sử dụng sự kiện nào?
A. ‘when flag clicked’.
B. ‘when this sprite clicked’.
C. ‘when key ‘right arrow’ pressed’.
D. ‘when backdrop switches to’.
40. Nếu bạn muốn một nhân vật nói ‘Xin chào!’ và ngay lập tức biến mất, bạn sẽ sử dụng các khối lệnh nào?
A. Khối ‘say “Xin chào!”‘ rồi đến khối ‘hide’.
B. Khối ‘hide’ rồi đến khối ‘say “Xin chào!”‘.
C. Khối ‘say “Xin chào!”‘ và ‘hide’ đặt song song.
D. Sử dụng khối ‘wait 0 seconds’.
41. Để nhân vật nói ‘Tuyệt vời!’ và sau đó thay đổi màu sắc, bạn cần sắp xếp các khối lệnh như thế nào?
A. Khối ‘say “Tuyệt vời!”‘ rồi đến khối ‘change color effect by X’.
B. Khối ‘change color effect by X’ rồi đến khối ‘say “Tuyệt vời!”‘.
C. Hai khối lệnh này đặt song song.
D. Sử dụng khối ‘wait X seconds’ giữa hai khối lệnh.
42. Trong lập trình Scratch, khối lệnh ‘repeat X times’ được sử dụng để thực hiện một chuỗi các lệnh:
A. Một số lần xác định trước.
B. Cho đến khi điều kiện được đáp ứng.
C. Vô hạn lần.
D. Cho đến khi người dùng dừng chương trình.
43. Trong Scratch, làm thế nào để nhân vật di chuyển về phía trước và quay phải mỗi lần thực hiện một bước trong vòng lặp?
A. Đặt khối ‘move 10 steps’ và ‘turn right 15 degrees’ trong vòng lặp ‘forever’.
B. Đặt khối ‘move 10 steps’ và ‘turn left 15 degrees’ trong vòng lặp ‘forever’.
C. Đặt khối ‘move 10 steps’ và ‘point in direction 90’ trong vòng lặp ‘forever’.
D. Đặt khối ‘move 10 steps’ và ‘go to X Y’ trong vòng lặp ‘forever’.
44. Nếu bạn muốn một đối tượng trong Scratch di chuyển 50 bước, sau đó quay 90 độ, rồi lặp lại hành động này 4 lần, bạn sẽ sử dụng cấu trúc điều khiển nào?
A. Vòng lặp ‘repeat 4 times’.
B. Vòng lặp ‘forever’.
C. Vòng lặp ‘repeat until ‘.
D. Sử dụng các khối lệnh nối tiếp nhau.
45. Giả sử bạn muốn nhân vật của mình nói ‘Xin chào!’ và sau đó di chuyển 100 bước. Khối lệnh nào là phù hợp nhất để thực hiện chuỗi hành động này theo thứ tự?
A. Khối ‘say “Xin chào!”‘ đặt trên khối ‘move 100 steps’.
B. Khối ‘move 100 steps’ đặt trên khối ‘say “Xin chào!”‘.
C. Khối ‘say “Xin chào!”‘ và khối ‘move 100 steps’ đặt song song.
D. Sử dụng khối ‘wait 1 seconds’ giữa hai khối lệnh.
46. Khối lệnh nào trong Scratch cho phép bạn lặp lại một hành động cho đến khi một điều kiện cụ thể được thỏa mãn?
A. repeat X times
B. forever
C. repeat until
D. if then
47. Trong Scratch, để làm cho một nhân vật quay ngược lại hướng hiện tại, bạn sẽ sử dụng khối lệnh nào?
A. ‘turn right 180 degrees’.
B. ‘turn left 90 degrees’.
C. ‘point in direction 180’.
D. ‘set rotation style to all around’.
48. Trong Scratch, khối lệnh ‘go to X Y’ được dùng để làm gì?
A. Di chuyển đối tượng một khoảng cách nhất định.
B. Thay đổi kích thước của đối tượng.
C. Di chuyển đối tượng đến một vị trí cụ thể trên sân khấu.
D. Thay đổi hướng của đối tượng.
49. Trong Scratch, để tạo hiệu ứng nhân vật di chuyển theo đường zig-zag, bạn có thể kết hợp các khối lệnh nào?
A. ‘move X steps’ và ‘turn Y degrees’ xen kẽ trong vòng lặp.
B. ‘glide X secs to X Y’.
C. ‘change size by X’.
D. ‘broadcast message’.
50. Trong Scratch, vòng lặp ‘forever’ thường được sử dụng để:
A. Thực hiện một hành động duy nhất.
B. Lặp lại một chuỗi hành động liên tục.
C. Thực hiện hành động dựa trên một điều kiện.
D. Lặp lại hành động một số lần nhất định.
51. Nếu bạn muốn nhân vật di chuyển từ vị trí hiện tại đến một vị trí khác trong 2 giây, bạn nên sử dụng khối lệnh nào?
A. ‘glide 2 secs to X Y’.
B. ‘move 2 steps’.
C. ‘go to X Y’.
D. ‘change x by 2’.
52. Khi lập trình một trò chơi đoán số trong Scratch, việc sử dụng vòng lặp ‘repeat until ‘ là hợp lý cho trường hợp nào?
A. Chương trình chỉ cần chạy một lần.
B. Người chơi đoán đúng số bí mật.
C. Người chơi đoán sai số bí mật.
D. Chương trình chạy liên tục.
53. Nếu bạn muốn nhân vật nói ‘Xin chào!’ trong 2 giây, rồi im lặng, bạn sẽ sử dụng khối lệnh nào?
A. Khối ‘say “Xin chào!” for 2 secs’.
B. Khối ‘say “Xin chào!”‘ rồi đến ‘wait 2 secs’.
C. Khối ‘say “Xin chào!”‘ rồi đến ‘say “”‘.
D. Khối ‘say “Xin chào!”‘ và ‘wait 2 secs’ song song.
54. Đâu là mục đích chính của việc sử dụng vòng lặp ‘forever’ trong Scratch?
A. Thực hiện một hành động duy nhất một lần.
B. Lặp lại một chuỗi hành động liên tục cho đến khi chương trình bị dừng.
C. Thực hiện một hành động dựa trên một điều kiện cụ thể.
D. Lặp lại một hành động một số lần nhất định.
55. Để làm cho một nhân vật di chuyển về phía trước một khoảng cách ngẫu nhiên mỗi lần, bạn sẽ kết hợp các khối lệnh nào?
A. ‘repeat X times’ với ‘move (pick random X to Y) steps’.
B. ‘forever’ với ‘move (pick random X to Y) steps’.
C. ‘glide X secs to X Y’.
D. ‘go to X Y’.
56. Trong lập trình Scratch, khối lệnh ‘wait X seconds’ có tác dụng gì?
A. Làm cho chương trình chạy nhanh hơn.
B. Tạm dừng chương trình trong một khoảng thời gian nhất định.
C. Tăng tốc độ di chuyển của đối tượng.
D. Bỏ qua một số lệnh nhất định.
57. Trong Scratch, khi sử dụng vòng lặp ‘repeat until ‘, nếu điều kiện ban đầu đã là ‘đúng’, thì vòng lặp sẽ:
A. Thực hiện các lệnh bên trong một lần.
B. Thực hiện các lệnh bên trong nhiều lần.
C. Không thực hiện các lệnh bên trong lần nào.
D. Thực hiện các lệnh bên trong vô hạn lần.
58. Trong Scratch, để nhân vật thay đổi trang phục (costume) sau mỗi 1 giây, ta nên sử dụng kết hợp các khối lệnh nào?
A. ‘repeat X times’ với ‘next costume’ và ‘wait X seconds’.
B. ‘forever’ với ‘next costume’ và ‘wait X seconds’.
C. ‘if ‘ với ‘next costume’.
D. ‘broadcast message’ và ‘when I receive message’ với ‘next costume’.
59. Để tạo hiệu ứng nhân vật nhảy lên và rơi xuống theo chu kỳ, ta có thể sử dụng kết hợp vòng lặp và các khối lệnh nào?
A. ‘repeat X times’ với ‘change y by X’ và ‘wait X seconds’.
B. ‘forever’ với ‘change x by X’.
C. ‘glide X secs to X Y’.
D. ‘broadcast message’.
60. Trong Scratch, để tạo hiệu ứng nhân vật di chuyển sang trái và lặp lại hành động này 10 lần, ta sử dụng cấu trúc nào?
A. Khối ‘repeat 10 times’ chứa khối ‘move -10 steps’.
B. Khối ‘forever’ chứa khối ‘move -10 steps’.
C. Khối ‘repeat until’ chứa khối ‘move -10 steps’.
D. Khối ‘wait 10 seconds’ chứa khối ‘move -10 steps’.
61. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân là bao nhiêu?
A. O(log n)
B. O(n)
C. O(n^2)
D. O(1)
62. Khi so sánh hai thuật toán cùng giải quyết một bài toán, thuật toán nào được coi là hiệu quả hơn?
A. Thuật toán sử dụng ít tài nguyên (thời gian, bộ nhớ) hơn.
B. Thuật toán có nhiều bước hơn.
C. Thuật toán có kết quả gần đúng hơn.
D. Thuật toán dễ viết hơn.
63. Phát biểu nào sau đây mô tả đúng cách biểu diễn thuật toán?
A. Thuật toán có thể được biểu diễn bằng ngôn ngữ tự nhiên, mã giả hoặc lưu đồ.
B. Thuật toán chỉ có thể biểu diễn bằng ngôn ngữ lập trình cụ thể.
C. Lưu đồ là cách biểu diễn duy nhất cho thuật toán.
D. Mã giả không phải là một cách biểu diễn thuật toán hợp lệ.
64. Khi một hàm nhận vào các giá trị gọi là ‘tham số’ (parameters), ý nghĩa của chúng là gì?
A. Là các biến mà hàm sử dụng để nhận dữ liệu đầu vào từ bên ngoài.
B. Là các biến chỉ được sử dụng bên trong hàm và không liên quan đến bên ngoài.
C. Là kết quả mà hàm trả về.
D. Là các tên gọi của hàm.
65. Trong các thuật toán sắp xếp, thuật toán nào thường được coi là hiệu quả hơn thuật toán sắp xếp nổi bọt về mặt độ phức tạp thời gian trung bình?
A. Thuật toán sắp xếp trộn (Merge Sort) hoặc sắp xếp nhanh (Quick Sort)
B. Thuật toán sắp xếp chọn (Selection Sort)
C. Thuật toán sắp xếp chèn (Insertion Sort)
D. Tất cả các thuật toán trên đều có hiệu quả tương đương.
66. Đâu là một ví dụ về bài toán có thể được giải quyết bằng thuật toán đệ quy hiệu quả?
A. Tính số Fibonacci thứ n.
B. Tính tổng của một mảng số rất lớn.
C. Tìm kiếm một phần tử trong mảng chưa sắp xếp.
D. In ra màn hình tất cả các số chẵn từ 1 đến 100.
67. Hình thoi trong lưu đồ thường được sử dụng để biểu diễn loại thao tác nào?
A. Điều kiện rẽ nhánh (ví dụ: câu lệnh IF-THEN-ELSE)
B. Bắt đầu hoặc kết thúc thuật toán
C. Nhập hoặc xuất dữ liệu
D. Một quy trình con hoặc hàm gọi
68. Trong biểu diễn thuật toán bằng lưu đồ, hình nào thường được dùng để biểu diễn một thao tác xử lý (ví dụ: gán giá trị, tính toán)?
A. Hình chữ nhật
B. Hình thoi
C. Hình bình hành
D. Hình elip
69. Phát biểu nào sau đây là đúng về thuật toán đệ quy?
A. Thuật toán đệ quy là thuật toán mà trong quá trình thực hiện, nó gọi lại chính nó.
B. Thuật toán đệ quy luôn sử dụng nhiều bộ nhớ hơn thuật toán lặp.
C. Thuật toán đệ quy không bao giờ có thể thay thế bằng thuật toán lặp.
D. Thuật toán đệ quy chỉ có thể có một trường hợp cơ sở duy nhất.
70. Khi mô tả thuật toán bằng mã giả, mục đích chính của việc sử dụng mã giả là gì?
A. Diễn tả logic của thuật toán một cách rõ ràng, không phụ thuộc vào cú pháp của một ngôn ngữ lập trình cụ thể.
B. Viết chương trình hoàn chỉnh có thể chạy trực tiếp trên máy tính.
C. Chỉ dùng để ghi lại các bước mà không cần sự rõ ràng.
D. Thay thế hoàn toàn cho việc vẽ lưu đồ.
71. Tính dừng của thuật toán có nghĩa là gì?
A. Thuật toán phải kết thúc sau một số hữu hạn các bước.
B. Thuật toán phải hoạt động liên tục mà không dừng lại.
C. Thuật toán chỉ dừng khi gặp lỗi.
D. Thuật toán phải dừng ngay lập tức khi nhận được lệnh.
72. Hình bình hành trong lưu đồ thường được sử dụng để biểu diễn hoạt động nào?
A. Nhập hoặc xuất dữ liệu
B. Bắt đầu hoặc kết thúc thuật toán
C. Thao tác xử lý tính toán
D. Một phép so sánh logic
73. Trong bài toán sắp xếp một dãy số theo thứ tự tăng dần, một thuật toán có thể bao gồm các bước lặp đi lặp lại việc so sánh và hoán đổi các cặp phần tử liền kề nếu chúng sai thứ tự. Đây là ví dụ về loại cấu trúc điều khiển nào trong thuật toán?
A. Cấu trúc lặp (Vòng lặp)
B. Cấu trúc tuần tự
C. Cấu trúc rẽ nhánh
D. Cấu trúc lựa chọn
74. Theo Sách giáo khoa Tin học 10 (Kết nối tri thức với cuộc sống), khi nói đến thuật toán, phát biểu nào sau đây là đúng nhất?
A. Thuật toán là một dãy hữu hạn các thao tác cần thực hiện, theo một thứ tự nhất định để giải quyết một vấn đề hoặc đạt được một mục tiêu nào đó.
B. Thuật toán là một quy trình bất kỳ để giải quyết vấn đề, không cần quan tâm đến số lượng bước hay thứ tự thực hiện.
C. Thuật toán chỉ áp dụng cho các bài toán về số học, không liên quan đến các lĩnh vực khác.
D. Thuật toán là một đoạn mã máy tính được viết sẵn để thực thi một chức năng cụ thể.
75. Phát biểu nào sau đây mô tả đúng về ‘độ phức tạp thuật toán’?
A. Độ phức tạp thuật toán đo lường lượng tài nguyên (thời gian hoặc bộ nhớ) mà thuật toán cần để chạy, thường được biểu diễn dưới dạng hàm của kích thước đầu vào.
B. Độ phức tạp thuật toán chỉ đo lường số dòng mã trong thuật toán.
C. Độ phức tạp thuật toán càng cao thì thuật toán càng nhanh.
D. Độ phức tạp thuật toán chỉ áp dụng cho các bài toán lớn.
76. Phát biểu nào sau đây đúng về mối quan hệ giữa thuật toán và chương trình máy tính?
A. Chương trình máy tính là hiện thực hóa của một hoặc nhiều thuật toán bằng một ngôn ngữ lập trình cụ thể.
B. 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.
C. Chương trình máy tính luôn đơn giản hơn thuật toán.
D. Thuật toán chỉ là một phần nhỏ của chương trình máy tính.
77. Khái niệm ‘truyền tham chiếu’ (pass by reference) trong lập trình hàm có nghĩa là gì?
A. Hàm nhận địa chỉ của biến gốc, mọi thay đổi bên trong hàm sẽ ảnh hưởng trực tiếp đến biến gốc.
B. Hàm nhận một bản sao của biến gốc, mọi thay đổi chỉ ảnh hưởng đến bản sao đó.
C. Hàm chỉ có thể đọc giá trị của biến mà không thể thay đổi.
D. Truyền tham chiếu chỉ áp dụng cho các biến toàn cục.
78. Phát biểu nào sau đây là đúng về ‘hàm’ trong lập trình?
A. Hàm là một khối mã có tên, thực hiện một nhiệm vụ cụ thể và có thể được gọi lại nhiều lần.
B. Hàm luôn trả về một giá trị.
C. Mỗi hàm chỉ có thể được gọi một lần duy nhất.
D. Hàm chỉ có thể nhận vào một tham số.
79. Phát biểu nào sau đây mô tả đúng về kỹ thuật “chia để trị” (Divide and Conquer)?
A. Chia bài toán lớn thành các bài toán con tương tự có kích thước nhỏ hơn, giải các bài toán con rồi kết hợp kết quả.
B. Thực hiện tuần tự các bước từ đầu đến cuối.
C. Luôn sử dụng các vòng lặp lồng nhau.
D. Chỉ áp dụng cho các bài toán có ít đầu vào.
80. Xét bài toán tính giai thừa của một số nguyên không âm n (n!). Thuật toán đệ quy cho bài toán này sẽ có dạng: nếu n=0 thì giai thừa là 1, ngược lại thì giai thừa của n bằng n nhân với giai thừa của (n-1). Trường hợp cơ sở ở đây là gì?
A. n = 0, trả về 1.
B. n > 0.
C. n * giai thừa của (n-1).
D. n * (n-1)!
81. Khái niệm ‘truyền tham trị’ (pass by value) trong lập trình hàm có nghĩa là gì?
A. Hàm nhận một bản sao của giá trị biến gốc, mọi thay đổi bên trong hàm không ảnh hưởng đến biến gốc.
B. Hàm nhận địa chỉ của biến gốc, mọi thay đổi bên trong hàm sẽ ảnh hưởng trực tiếp đến biến gốc.
C. Hàm chỉ có thể đọc giá trị của biến mà không thể thay đổi.
D. Truyền tham trị chỉ áp dụng cho các biến cục bộ.
82. Một thuật toán có tính xác định nghĩa là gì?
A. Với mỗi bước của thuật toán, hành động tiếp theo là xác định rõ ràng và duy nhất.
B. Thuật toán chỉ thực hiện được một hành động duy nhất từ đầu đến cuối.
C. Thuật toán có thể có nhiều kết quả khác nhau cho cùng một đầu vào.
D. Tính xác định chỉ áp dụng cho các thuật toán có điều kiện rẽ nhánh.
83. Trong một thuật toán đệ quy, ‘trường hợp cơ sở’ (base case) có vai trò gì?
A. Là điều kiện dừng, ngăn chặn đệ quy vô hạn.
B. Là bước gọi đệ quy chính.
C. Là nơi để xử lý lỗi.
D. Là nơi để khởi tạo biến.
84. Xét bài toán tìm số lớn nhất trong ba số a, b, c. Phát biểu nào sau đây mô tả đúng logic của một thuật toán tìm số lớn nhất?
A. So sánh a với b, so sánh kết quả với c, và chọn số lớn nhất trong các so sánh đó.
B. Cộng ba số lại và chia cho 3.
C. Chỉ cần so sánh a với b là đủ để tìm ra số lớn nhất.
D. Chọn số lớn nhất một cách ngẫu nhiên.
85. Đâu là một ví dụ về ‘lỗi cú pháp’ (syntax error) trong lập trình?
A. Thiếu dấu chấm phẩy cuối câu lệnh.
B. Thuật toán chạy chậm.
C. Kết quả tính toán sai.
D. Chương trình bị treo.
86. Đâu không phải là một đặc tính quan trọng của thuật toán?
A. Tính chung
B. Tính đúng đắn
C. Tính dừng
D. Tính hiệu quả
87. Khi nào thì thuật toán tìm kiếm nhị phân (Binary Search) có thể được áp dụng hiệu quả?
A. Khi dãy dữ liệu đã được sắp xếp.
B. Khi dãy dữ liệu chưa được sắp xếp.
C. Khi dãy dữ liệu có số lượng phần tử rất lớn và không có thứ tự.
D. Khi chỉ cần tìm kiếm một lần duy nhất.
88. Thuật toán sắp xếp nổi bọt (Bubble Sort) thường có độ phức tạp thời gian là bao nhiêu trong trường hợp xấu nhất?
A. O(n^2)
B. O(n)
C. O(log n)
D. O(n log n)
89. Cho thuật toán tìm kiếm tuyến tính trên một dãy số. Nếu kích thước của dãy số tăng gấp đôi, độ phức tạp về thời gian của thuật toán này sẽ thay đổi như thế nào (ước lượng)?
A. Tăng gấp đôi (tuyến tính).
B. Tăng gấp bốn.
C. Không thay đổi.
D. Giảm đi một nửa.
90. Nếu một hàm có ‘phạm vi hoạt động’ là cục bộ (local scope), điều đó có nghĩa là gì?
A. Các biến được khai báo bên trong hàm chỉ có thể được truy cập và sử dụng bên trong chính hàm đó.
B. Các biến này có thể được truy cập từ bất kỳ đâu trong chương trình.
C. Các biến này sẽ tồn tại vĩnh viễn sau khi hàm kết thúc.
D. Phạm vi hoạt động cục bộ chỉ áp dụng cho các biến toàn cục.
91. Khi một gói tin được gửi đi, tầng nào trong mô hình OSI chịu trách nhiệm định dạng và biểu diễn dữ liệu, bao gồm mã hóa, giải mã, nén và giải nén?
A. Tầng Liên kết dữ liệu (Data Link Layer)
B. Tầng Phiên (Session Layer)
C. Tầng Trình bày (Presentation Layer)
D. Tầng Ứng dụng (Application Layer)
92. Phân biệt khái niệm ‘tốc độ tải lên’ (upload speed) và ‘tốc độ tải xuống’ (download speed) trong dịch vụ Internet.
A. Tốc độ tải xuống là tốc độ nhận dữ liệu từ Internet về máy, tốc độ tải lên là tốc độ gửi dữ liệu từ máy lên Internet.
B. Tốc độ tải lên và tải xuống là như nhau, chỉ là cách gọi khác.
C. Tốc độ tải xuống chỉ áp dụng cho video, còn tốc độ tải lên cho tệp tin.
D. Tốc độ tải lên cao hơn tốc độ tải xuống theo mặc định của mọi nhà cung cấp Internet.
93. Tại sao các địa chỉ IP riêng (private IP) không thể trực tiếp truy cập từ Internet?
A. Các địa chỉ IP riêng chỉ có giá trị trong mạng nội bộ và không được các router Internet định tuyến.
B. Địa chỉ IP riêng quá dài nên không thể truyền qua Internet.
C. Internet chỉ nhận dạng các địa chỉ IP công cộng.
D. Các thiết bị sử dụng địa chỉ IP riêng không có khả năng kết nối Internet.
94. Trong mạng máy tính, địa chỉ MAC (Media Access Control) có đặc điểm gì nổi bật?
A. Là địa chỉ vật lý duy nhất, được nhà sản xuất gán cho mỗi card mạng.
B. Là địa chỉ có thể thay đổi tùy theo cấu hình mạng.
C. Là địa chỉ được sử dụng để định tuyến gói tin trên Internet.
D. Là địa chỉ được cấp phát động bởi máy chủ DHCP.
95. Trong bài 26 ‘Mạng máy tính’, khi nói về địa chỉ IP, việc phân loại địa chỉ IP thành địa chỉ công cộng (public IP) và địa chỉ riêng (private IP) nhằm mục đích chính là gì?
A. Phân biệt thiết bị có thể truy cập Internet trực tiếp và thiết bị chỉ có thể giao tiếp trong mạng nội bộ, giúp quản lý tài nguyên địa chỉ IP hiệu quả hơn.
B. Để phân biệt các loại thiết bị mạng như router và switch, đảm bảo chúng hoạt động đúng chức năng.
C. Tạo ra các lớp địa chỉ IP khác nhau (A, B, C) để phân chia phạm vi sử dụng.
D. Đảm bảo mỗi thiết bị trong mạng có một địa chỉ IP duy nhất để phân biệt với các thiết bị khác trên toàn cầu.
96. Trong mô hình OSI, tầng nào chịu trách nhiệm đóng gói dữ liệu thành các khung (frames) và thực hiện kiểm tra lỗi ở cấp độ liên kết dữ liệu, cũng như quản lý truy cập vào phương tiện truyền dẫn vật lý?
A. Tầng Mạng (Network Layer)
B. Tầng Liên kết dữ liệu (Data Link Layer)
C. Tầng Phi vật lý (Physical Layer)
D. Tầng Vận chuyển (Transport Layer)
97. Trong việc đảm bảo an ninh mạng, ‘tường lửa’ (firewall) có vai trò gì?
A. Kiểm soát và lọc lưu lượng mạng ra vào dựa trên các quy tắc định sẵn để ngăn chặn truy cập trái phép.
B. Tăng tốc độ truyền dữ liệu trên mạng bằng cách nén dữ liệu.
C. Mã hóa toàn bộ dữ liệu được truyền đi trên mạng để bảo mật.
D. Phát hiện và loại bỏ virus, malware khỏi hệ thống máy tính.
98. Trong mạng cục bộ (LAN), thiết bị nào đóng vai trò trung tâm kết nối nhiều máy tính hoặc thiết bị mạng khác lại với nhau, cho phép chúng giao tiếp với nhau?
A. Switch
B. Router
C. Modem
D. Card mạng (NIC)
99. Phân biệt hai giao thức TCP và UDP, giao thức nào thường được sử dụng cho các ứng dụng yêu cầu độ tin cậy cao và truyền dữ liệu có thứ tự, chẳng hạn như truyền tệp tin (FTP) hoặc email (SMTP)?
A. UDP (User Datagram Protocol)
B. TCP (Transmission Control Protocol)
C. Cả TCP và UDP đều có khả năng tương đương.
D. Không giao thức nào trong hai giao thức này phù hợp cho việc truyền tệp tin hoặc email.
100. Tại sao việc sử dụng NAT (Network Address Translation) lại quan trọng trong việc kết nối mạng nội bộ với Internet?
A. NAT cho phép nhiều thiết bị trong mạng nội bộ chia sẻ một địa chỉ IP công cộng duy nhất để truy cập Internet, giúp tiết kiệm địa chỉ IP.
B. NAT mã hóa toàn bộ dữ liệu truyền qua mạng để bảo vệ thông tin khỏi bị đánh cắp.
C. NAT tự động phát hiện và sửa lỗi trong quá trình truyền dữ liệu, đảm bảo kết nối ổn định.
D. NAT tạo ra một lớp tường lửa mạnh mẽ, ngăn chặn mọi truy cập trái phép từ bên ngoài vào mạng nội bộ.
101. Khi nói về các loại địa chỉ IP, địa chỉ nào được thiết kế để chỉ có thể sử dụng trong mạng nội bộ và không được phép định tuyến trên Internet?
A. Địa chỉ IP riêng (Private IP Address)
B. Địa chỉ IP công cộng (Public IP Address)
C. Địa chỉ IP tĩnh (Static IP Address)
D. Địa chỉ IP động (Dynamic IP Address)
102. Trong mô hình OSI, tầng nào chịu trách nhiệm cung cấp các dịch vụ truyền thông logic giữa các ứng dụng, bao gồm quản lý phiên làm việc?
A. Tầng Trình bày (Presentation Layer)
B. Tầng Phiên (Session Layer)
C. Tầng Ứng dụng (Application Layer)
D. Tầng Vận chuyển (Transport Layer)
103. Tại sao việc cập nhật thường xuyên các bản vá lỗi và phần mềm bảo mật là cần thiết cho hệ thống mạng?
A. Các bản cập nhật thường khắc phục các lỗ hổng bảo mật mà hacker có thể khai thác, giúp bảo vệ hệ thống.
B. Cập nhật giúp tăng tốc độ xử lý của máy tính lên gấp đôi.
C. Bản cập nhật mới sẽ thay đổi hoàn toàn giao diện người dùng.
D. Cập nhật là cách duy nhất để kết nối Internet.
104. Khi sử dụng dịch vụ đám mây (cloud computing), dữ liệu của bạn được lưu trữ ở đâu?
A. Trên các máy chủ của nhà cung cấp dịch vụ đám mây, có thể ở nhiều địa điểm khác nhau.
B. Chỉ trên máy tính cá nhân của bạn.
C. Trên các thiết bị lưu trữ di động (USB, thẻ nhớ).
D. Dữ liệu được phân tán ngẫu nhiên trên tất cả các thiết bị kết nối Internet.
105. Khái niệm ‘độ trễ’ (latency) trong mạng máy tính đề cập đến yếu tố nào?
A. Thời gian cần thiết để một gói tin di chuyển từ nguồn đến đích.
B. Tốc độ tối đa mà dữ liệu có thể được truyền đi.
C. Số lượng gói tin bị mất trong quá trình truyền.
D. Khả năng phục hồi của mạng khi có sự cố.
106. Trong mạng máy tính, khái niệm ‘thông lượng’ (throughput) thường được hiểu là gì?
A. Tốc độ thực tế mà dữ liệu được truyền thành công qua mạng.
B. Tổng băng thông của tất cả các kết nối trong mạng.
C. Thời gian cần thiết để một gói tin đi từ đầu đến cuối.
D. Số lượng thiết bị có thể kết nối đồng thời.
107. Khi bạn gõ một địa chỉ website vào trình duyệt và nhấn Enter, quá trình phân giải tên miền (DNS) diễn ra như thế nào để tìm ra địa chỉ IP của máy chủ web?
A. Máy tính của bạn gửi yêu cầu đến máy chủ DNS để tra cứu địa chỉ IP tương ứng với tên miền.
B. Trình duyệt web tự động tạo ra địa chỉ IP dựa trên tên miền đã nhập.
C. Tên miền được gửi trực tiếp đến máy chủ web để yêu cầu địa chỉ IP của nó.
D. Hệ điều hành sẽ lưu trữ sẵn tất cả các địa chỉ IP của mọi tên miền trên thế giới.
108. Trong mạng không dây (Wi-Fi), SSID (Service Set Identifier) đóng vai trò gì?
A. Là tên của mạng Wi-Fi, giúp người dùng nhận dạng và kết nối đến mạng mong muốn.
B. Là mật khẩu để xác thực truy cập vào mạng Wi-Fi.
C. Là địa chỉ IP của điểm truy cập Wi-Fi.
D. Là mã hóa dữ liệu được sử dụng trong mạng Wi-Fi.
109. Khi bạn thực hiện lệnh ‘ping’ đến một địa chỉ IP hoặc tên miền, mục đích chính của lệnh này là gì?
A. Kiểm tra khả năng kết nối mạng và đo lường độ trễ đến địa chỉ đích.
B. Tải xuống một tệp tin từ máy chủ đích.
C. Gửi một email đến địa chỉ đích.
D. Tìm kiếm các lỗ hổng bảo mật trên mạng.
110. Trong mạng máy tính, khái niệm ‘băng thông’ (bandwidth) thường được hiểu là gì?
A. Tốc độ truyền dữ liệu tối đa mà một kết nối mạng có thể hỗ trợ trong một đơn vị thời gian nhất định.
B. Số lượng thiết bị có thể kết nối đồng thời vào mạng.
C. Khoảng cách tối đa mà tín hiệu có thể truyền đi mà không bị suy hao.
D. Số lượng gói tin được truyền đi thành công trong một lần gửi.
111. Giao thức nào thường được sử dụng để truyền tải các trang web trên Internet?
A. FTP (File Transfer Protocol)
B. HTTP (Hypertext Transfer Protocol)
C. SMTP (Simple Mail Transfer Protocol)
D. POP3 (Post Office Protocol version 3)
112. Trong các loại cáp mạng phổ biến, cáp xoắn đôi không có lớp chống nhiễu (Unshielded Twisted Pair – UTP) được sử dụng rộng rãi vì lý do gì?
A. Chi phí thấp, dễ lắp đặt và đủ đáp ứng yêu cầu tốc độ cho hầu hết các mạng LAN.
B. Khả năng chống nhiễu tuyệt đối, phù hợp cho môi trường công nghiệp nặng.
C. Tốc độ truyền dữ liệu cao hơn cáp quang.
D. Không cần sử dụng đầu nối RJ45.
113. Tại sao việc sử dụng địa chỉ IP động (dynamic IP address) lại phổ biến hơn địa chỉ IP tĩnh (static IP address) cho người dùng cá nhân?
A. Địa chỉ IP động được cấp phát tự động bởi máy chủ DHCP, dễ quản lý và tiết kiệm tài nguyên địa chỉ IP cho nhà cung cấp dịch vụ.
B. Địa chỉ IP động cung cấp bảo mật cao hơn địa chỉ IP tĩnh.
C. Địa chỉ IP tĩnh yêu cầu cấu hình thủ công phức tạp hơn.
D. Địa chỉ IP động cho phép truy cập Internet từ bất kỳ đâu.
114. Khi bạn sử dụng dịch vụ VPN (Virtual Private Network), mục đích chính của nó là gì?
A. Tạo một kết nối an toàn và mã hóa qua mạng công cộng, cho phép truy cập tài nguyên mạng nội bộ hoặc duyệt web ẩn danh.
B. Tăng tốc độ kết nối Internet bằng cách nén dữ liệu.
C. Phân bổ địa chỉ IP cho các thiết bị trong mạng nội bộ.
D. Ngăn chặn tất cả các loại mã độc xâm nhập vào máy tính.
115. Khi một máy tính gửi dữ liệu qua mạng, dữ liệu này sẽ được đóng gói tuần tự theo các tầng của mô hình TCP/IP. Tầng nào trong mô hình TCP/IP tương đương với Tầng Giao vận và Tầng Phiên trong mô hình OSI?
A. Tầng Ứng dụng (Application Layer)
B. Tầng Mạng (Internet Layer)
C. Tầng Giao vận (Transport Layer)
D. Tầng Truy cập mạng (Network Access Layer)
116. Trong mô hình TCP/IP, tầng nào chịu trách nhiệm cho việc hiển thị dữ liệu cho người dùng cuối và cung cấp các dịch vụ mạng mà ứng dụng cần, ví dụ như email, duyệt web?
A. Tầng Truy cập mạng (Network Access Layer)
B. Tầng Mạng (Internet Layer)
C. Tầng Giao vận (Transport Layer)
D. Tầng Ứng dụng (Application Layer)
117. Theo mô hình OSI, tầng nào chịu trách nhiệm chuyển đổi dữ liệu thành các gói tin (packets) và quản lý việc truyền tin qua mạng?
A. Tầng Mạng (Network Layer)
B. Tầng Giao vận (Transport Layer)
C. Tầng Liên kết dữ liệu (Data Link Layer)
D. Tầng Phiên (Session Layer)
118. Khi nói về các loại hình mạng máy tính, mạng WAN (Wide Area Network) khác biệt cơ bản với mạng LAN (Local Area Network) ở điểm nào?
A. WAN có phạm vi địa lý rộng lớn hơn nhiều, kết nối các mạng LAN hoặc các vị trí địa lý xa nhau.
B. WAN chỉ sử dụng kết nối không dây, còn LAN sử dụng kết nối có dây.
C. WAN chỉ có thể kết nối hai máy tính, còn LAN có thể kết nối nhiều máy tính.
D. Tốc độ truyền dữ liệu trên WAN luôn chậm hơn đáng kể so với LAN.
119. Trong mô hình TCP/IP, giao thức nào chịu trách nhiệm gửi các gói tin IP đến địa chỉ đích, không đảm bảo việc giao hàng hay thứ tự các gói tin?
120. Khái niệm ‘truy cập không dây’ (wireless access) trong mạng máy tính đề cập đến phương thức nào để thiết bị kết nối mạng?
A. Sử dụng sóng vô tuyến (như Wi-Fi, Bluetooth) để truyền dữ liệu mà không cần dây cáp vật lý.
B. Chỉ sử dụng cáp quang để kết nối mạng.
C. Truyền dữ liệu qua đường dây điện thoại.
D. Kết nối trực tiếp bằng cáp Ethernet.
121. Phát biểu nào sau đây là đúng về việc đặt tên biến trong Python?
A. Tên biến phân biệt chữ hoa và chữ thường (ví dụ: ‘age’ khác ‘Age’).
B. Tên biến không được chứa ký tự gạch dưới (‘_’).
C. Tên biến có thể trùng với các từ khóa của Python (ví dụ: ‘if’, ‘for’).
D. Tên biến phải luôn bắt đầu bằng một chữ cái viết hoa.
122. Trong Python, toán tử ‘+’ có thể được sử dụng cho cả phép cộng số học và phép nối chuỗi. Phát biểu nào sau đây là đúng khi áp dụng cho hai biến ‘a = 5’ và ‘b = ’10”?
A. a + b sẽ cho kết quả là 15.
B. a + b sẽ gây ra lỗi kiểu dữ liệu.
C. a + b sẽ cho kết quả là ‘510’.
D. a + b sẽ cho kết quả là ’15’.
123. Trong Python, phát biểu nào sau đây là đúng về hằng số (constant)?
A. Python có cơ chế khai báo hằng số bắt buộc, không cho phép thay đổi giá trị.
B. Python không có kiểu dữ liệu hằng số thực sự, nhưng theo quy ước, các biến được viết hoa toàn bộ thường được coi là hằng số.
C. Hằng số trong Python luôn được khai báo bằng từ khóa ‘const’.
D. Giá trị của hằng số có thể thay đổi tùy ý.
124. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘boolean’ trong Python?
A. Chỉ có thể là số 0 hoặc 1.
B. Có thể là bất kỳ chuỗi ký tự nào.
C. Chỉ có hai giá trị là True và False.
D. Lưu trữ các giá trị có phần thập phân.
125. Phát biểu nào sau đây mô tả đúng về cách Python xử lý kiểu dữ liệu?
A. Python là ngôn ngữ có kiểu dữ liệu tĩnh (statically typed), kiểu dữ liệu của biến phải được khai báo rõ ràng.
B. Python là ngôn ngữ có kiểu dữ liệu động (dynamically typed), kiểu dữ liệu của biến được xác định khi chương trình chạy.
C. Python yêu cầu tất cả các biến phải là chuỗi ký tự.
D. Python không hỗ trợ kiểu dữ liệu số.
126. Phát biểu nào sau đây mô tả đúng về biến trong ngữ cảnh lập trình?
A. Biến là một phần cứng của máy tính.
B. Biến là một tên gọi để tham chiếu đến một giá trị dữ liệu trong bộ nhớ.
C. Biến chỉ có thể lưu trữ một giá trị duy nhất trong suốt chương trình.
D. Biến là một câu lệnh bắt buộc phải có trong mọi chương trình.
127. Trong lập trình Python, phát biểu nào sau đây mô tả đúng nhất về biến?
A. Biến là một vùng nhớ có tên dùng để lưu trữ dữ liệu.
B. Biến chỉ có thể lưu trữ số nguyên.
C. Biến là một từ khóa được định sẵn trong ngôn ngữ lập trình.
D. Biến là một hàm được người dùng định nghĩa.
128. Trong Python, nếu bạn muốn tạo một biến lưu trữ ngày tháng năm, kiểu dữ liệu nào thường được sử dụng nhất hoặc cần nhập thêm thư viện nào?
A. Không có kiểu dữ liệu tích hợp sẵn, cần sử dụng thư viện ‘datetime’.
B. Kiểu ‘string’.
C. Kiểu ‘integer’.
D. Kiểu ‘float’.
129. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘integer’ (số nguyên) trong Python?
A. Lưu trữ các số có phần thập phân.
B. Lưu trữ các ký tự hoặc chuỗi ký tự.
C. Lưu trữ các số nguyên không có phần thập phân.
D. Lưu trữ giá trị logic đúng hoặc sai.
130. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘float’ (số thực) trong Python?
A. Chỉ lưu trữ các số nguyên dương.
B. Lưu trữ các số có phần thập phân.
C. Lưu trữ các giá trị logic (True/False).
D. Lưu trữ một chuỗi ký tự duy nhất.
131. Giả sử bạn có biến `price = 19.99`. Để làm tròn giá trị này lên số nguyên gần nhất trong Python, bạn sẽ sử dụng hàm nào?
A. math.ceil()
B. round()
C. int()
D. math.floor()
132. Giả sử bạn có đoạn mã Python sau: `x = 10; y = ’20’; z = x + int(y)`. Giá trị của biến ‘z’ sẽ là bao nhiêu?
A. 30
B. ‘1020’
C. Lỗi
D. 1020
133. 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 không được bắt đầu bằng chữ số.
B. Tên biến có thể chứa khoảng trắng.
C. Tên biến phải bắt đầu bằng một ký tự đặc biệt.
D. Tên biến phải viết hoa toàn bộ.
134. Giả sử bạn có đoạn mã Python: `a = 5; a = a + 2`. Giá trị cuối cùng của biến `a` là bao nhiêu?
135. Nếu bạn có biến `name = ‘Alice’` và bạn muốn tạo một chuỗi thông báo ‘Hello, Alice!’, câu lệnh nào sau đây là hiệu quả nhất trong Python?
A. f’Hello, {name}!’
B. ‘Hello, ‘ + name + ‘!’
C. ‘Hello, {}!’.format(name)
D. Cả ba phương án trên đều đúng và hiệu quả.
136. Nếu bạn có biến `a = ‘5’` và `b = 3`, phép toán `a * b` trong Python sẽ cho kết quả là gì?
137. Trong Python, bạn muốn lấy độ dài của chuỗi ‘Programming’. Câu lệnh nào sau đây là đúng?
A. len(‘Programming’)
B. size(‘Programming’)
C. length(‘Programming’)
D. count(‘Programming’)
138. Nếu bạn thực hiện phép toán `2 ** 3` trong Python, kết quả sẽ là gì?
139. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘string’ (chuỗi ký tự) trong Python?
A. Lưu trữ một giá trị boolean duy nhất.
B. Lưu trữ một dãy các ký tự được đặt trong dấu nháy.
C. Lưu trữ các số nguyên hoặc số thực.
D. Lưu trữ một tập hợp các phần tử không có thứ tự.
140. Giả sử bạn có biến `a = 15` và `b = 4`. Phép toán `a // b` trong Python sẽ cho kết quả là gì?
141. Phát biểu nào sau đây mô tả đúng về cách Python quản lý bộ nhớ cho biến?
A. Python sử dụng quản lý bộ nhớ thủ công, lập trình viên phải tự cấp phát và giải phóng bộ nhớ.
B. Python sử dụng cơ chế thu gom rác tự động để quản lý bộ nhớ.
C. Mỗi biến trong Python đều chiếm một lượng bộ nhớ cố định, không đổi.
D. Python chỉ cho phép lưu trữ một biến tại một thời điểm.
142. Trong Python, để gán giá trị ‘Hello World’ cho biến có tên ‘message’, câu lệnh nào sau đây là chính xác?
A. message = ‘Hello World’
B. SET message = ‘Hello World’
C. DECLARE message AS STRING = ‘Hello World’
D. message := ‘Hello World’
143. Phát biểu nào sau đây KHÔNG phải là một quy tắc khi đặt tên biến trong Python?
A. Tên biến có thể chứa dấu gạch dưới.
B. Tên biến có thể bắt đầu bằng một ký tự đặc biệt như ‘@’.
C. Tên biến không được trùng với từ khóa của Python.
D. Tên biến phân biệt chữ hoa và chữ thường.
144. Trong Python, nếu bạn muốn chuyển đổi chuỗi ‘123’ thành một số nguyên, bạn sẽ sử dụng hàm nào?
A. int()
B. str()
C. float()
D. convert()
145. Phát biểu nào sau đây mô tả đúng về từ khóa (keyword) trong Python?
A. Chúng là những tên biến do người dùng tự đặt.
B. Chúng là những tên hàm được định nghĩa sẵn.
C. Chúng là những từ có ý nghĩa đặc biệt, được ngôn ngữ lập trình sử dụng cho các mục đích nhất định.
D. Chúng có thể được sử dụng làm tên biến mà không ảnh hưởng đến chức năng của chương trình.
146. Để hiển thị giá trị của biến ‘score’ ra màn hình trong Python, câu lệnh nào sau đây được sử dụng?
A. display(score)
B. show(score)
C. print(score)
D. output(score)
147. Trong Python, làm thế nào để nhập dữ liệu từ bàn phím vào một biến?
A. Sử dụng hàm `input()`
B. Sử dụng hàm `get()`
C. Sử dụng hàm `read()`
D. Sử dụng hàm `scan()`
148. Phát biểu nào sau đây mô tả đúng về toán tử gán (`=`) trong Python?
A. Nó dùng để so sánh hai giá trị.
B. Nó dùng để gán giá trị của biểu thức bên phải cho biến bên trái.
C. Nó dùng để thực hiện phép cộng.
D. Nó dùng để khai báo kiểu dữ liệu của biến.
149. Trong Python, làm thế nào để kiểm tra kiểu dữ liệu của một biến?
A. Sử dụng hàm `type()`
B. Sử dụng toán tử `typeof`
C. Sử dụng hàm `datatype()`
D. Sử dụng phương thức `get_type()`
150. Trong Python, làm thế nào để kiểm tra xem một biến `x` có phải là số nguyên hay không?
A. isinstance(x, int)
B. type(x) == ‘int’
C. x.is_integer()
D. check_type(x, ‘integer’)