1. Nếu `x = 10.5`, thì `type(x)` sẽ trả về giá trị nào trong Python?
2. Đâu là cách khai báo một biến kiểu chuỗi (string) trong Python với giá trị ‘Programming’?
A. programming = ‘Programming’
B. var programming = ‘Programming’
C. string programming = ‘Programming’
D. declare programming as ‘Programming’
3. Đâu là một cách để kiểm tra xem một biến `my_var` có phải là kiểu số nguyên (integer) hay không trong Python?
A. my_var == int
B. type(my_var) == ‘int’
C. isinstance(my_var, int)
D. my_var is int
4. Nếu `x = ‘hello’` và `y = ‘world’`, thì `x + y` trong Python sẽ cho kết quả là gì?
A. ‘hello world’
B. ‘helloworld’
C. Lỗi
D. [‘hello’, ‘world’]
5. Trong Python, phép toán `2 ** 3` có ý nghĩa là gì?
A. Phép chia lấy phần dư của 2 cho 3.
B. Phép toán lũy thừa, tính 2 mũ 3.
C. Phép nhân 2 với 3.
D. Phép chia lấy phần nguyên của 2 cho 3.
6. Phát biểu nào sau đây là ĐÚNG về kiểu dữ liệu trong Python?
A. Python là ngôn ngữ có kiểu dữ liệu tĩnh, phải khai báo kiểu dữ liệu trước khi sử dụng biến.
B. Python là ngôn ngữ có kiểu dữ liệu động, không cần khai báo kiểu dữ liệu rõ ràng cho biến.
C. Tất cả các biến trong Python đều có kiểu dữ liệu là chuỗi.
D. Kiểu dữ liệu chỉ có thể là số hoặc chuỗi.
7. Để khai báo một biến `count` và gán giá trị ban đầu là 0 trong Python, câu lệnh nào là phù hợp nhất?
A. count = 0
B. var count = 0;
C. let count = 0;
D. initialize count = 0
8. Đâu là một biểu thức toán học hợp lệ trong Python?
A. 5 + * 3
B. 10 / (2 – 2)
C. 7 + 3 * 2
D. 8 % 0
9. Câu lệnh `x = 5` và `y = x + 2`. Sau khi thực thi, giá trị của biến `y` là bao nhiêu?
10. Trong Python, câu lệnh nào dùng để in giá trị của một biến hoặc một biểu thức ra màn hình?
A. input()
B. display()
C. print()
D. output()
11. Trong Python, để chuyển đổi một chuỗi ký tự ’50’ thành một số nguyên, ta sử dụng hàm nào?
A. float(’50’)
B. str(’50’)
C. int(’50’)
D. convert(’50’)
12. Trong Python, để kiểm tra xem hai biến `a` và `b` có bằng nhau hay không, ta sử dụng toán tử nào?
13. Trong Python, để nhận dữ liệu nhập từ người dùng qua bàn phím, ta sử dụng hàm nào?
A. print()
B. input()
C. get()
D. read()
14. Biến ‘age’ được gán giá trị 25. Câu lệnh ‘print(type(age))’ trong Python sẽ cho kết quả là gì?
15. 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ị ‘Hello, World!’ cho nó?
A. print(‘Hello, World!’)
B. variable my_variable = ‘Hello, World!’
C. my_variable = ‘Hello, World!’
D. declare my_variable as ‘Hello, World!’
16. Đâu là kiểu dữ liệu cơ bản trong Python dùng để biểu diễn một số nguyên, ví dụ như 10, -5, 0?
A. float
B. string
C. boolean
D. integer
17. Khi thực hiện phép toán cộng hai chuỗi ký tự trong Python, ví dụ ‘Hello’ + ‘ ‘ + ‘World’, kết quả thu được là gì?
A. Một lỗi cú pháp do không thể cộng chuỗi với chuỗi.
B. ‘HelloWorld’
C. ‘Hello World’
D. Một danh sách chứa các chuỗi con.
18. Đâu là một ví dụ về kiểu dữ liệu số thực (float) trong Python?
A. 100
B. ‘100.5’
C. 100.5
D. True
19. Nếu `x = 5` và `y = ‘5’`, hai biến này có bằng nhau về mặt giá trị khi so sánh trực tiếp bằng `x == y` không?
A. Có, vì cả hai đều biểu diễn số 5.
B. Không, vì chúng có kiểu dữ liệu khác nhau (int và str).
C. Có, nếu `y` được chuyển đổi sang kiểu int.
D. Không, vì `x` là số và `y` là chuỗi.
20. Trong Python, câu lệnh `print(5 / 2)` sẽ cho kết quả là gì?
21. Đâu là phát biểu ĐÚNG về quy tắc đặt tên biến trong Python?
A. Tên biến có thể bắt đầu bằng một chữ số.
B. Tên biến có thể chứa ký tự đặc biệt như @, #, $.
C. Tên biến phân biệt chữ hoa và chữ thường (case-sensitive).
D. Tên biến không được chứa dấu gạch dưới (_).
22. Phép toán `10 // 3` trong Python sẽ trả về kết quả là gì?
23. Câu lệnh nào sau đây sẽ in ra màn hình chuỗi ‘Python is fun!’?
A. print(‘Python is fun!’)
B. display(‘Python is fun!’)
C. output(‘Python is fun!’)
D. write(‘Python is fun!’)
24. Nếu `name = ‘Alice’` và `age = 30`, câu lệnh `print(‘My name is ‘ + name + ‘ and I am ‘ + str(age) + ‘ years old.’)` sẽ xuất ra thông báo nào?
A. My name is Alice and I am 30 years old.
B. My name is Alice and I am age years old.
C. My name is Alice and I am 30.
D. My name is Alice, age is 30.
25. Trong Python, kiểu dữ liệu nào dùng để biểu diễn các giá trị đúng hoặc sai?
A. int
B. str
C. float
D. bool
26. Trong Python, toán tử `%` dùng để làm gì?
A. Lũy thừa
B. Chia lấy phần dư
C. Chia lấy phần nguyên
D. So sánh bằng
27. Phát biểu nào sau đây mô tả chính xác nhất về biến trong lập trình?
A. Biến là một lệnh để máy tính thực hiện một hành động cụ thể.
B. Biến là một vùng nhớ được đặt tên để lưu trữ dữ liệu.
C. Biến là một chuỗi các hướng dẫn cho bộ xử lý.
D. Biến là một cách để hiển thị kết quả ra màn hình.
28. Nếu người dùng nhập ‘100’ khi chương trình Python đang chờ nhập bằng ‘input()’, biến nhận giá trị này sẽ có kiểu dữ liệu gì?
A. int
B. float
C. str
D. bool
29. Câu lệnh `print(3 * ‘abc’)` trong Python sẽ cho ra kết quả là gì?
A. ‘abcabcabc’
B. ‘abc * 3’
C. Lỗi
D. [‘abc’, ‘abc’, ‘abc’]
30. Nếu `x = 15` và `y = 4`, thì biểu thức `x % y` trong Python sẽ trả về giá trị nào?
31. Lệnh `continue` trong Python khi được sử dụng trong vòng lặp có tác dụng gì?
A. Chấm dứt hoàn toàn vòng lặp.
B. Bắt đầu lại vòng lặp từ đầu.
C. Bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần lặp tiếp theo.
D. Thực hiện một hành động phụ trợ.
32. Trong Python, khi bạn muốn xóa một phần tử khỏi danh sách dựa trên giá trị của nó, bạn sử dụng phương thức nào?
A. pop()
B. remove()
C. delete()
D. clear()
33. Phát biểu nào sau đây đúng về ‘boolean’ trong Python?
A. Chỉ có thể là số 0 hoặc 1.
B. Có hai giá trị: True và False.
C. Là một loại chuỗi ký tự.
D. Luôn có giá trị là ‘True’.
34. Phát biểu nào sau đây đúng về cách khai báo một hàm (function) trong Python?
A. Bắt đầu bằng từ khóa ‘function’.
B. Bắt đầu bằng từ khóa ‘func’.
C. Bắt đầu bằng từ khóa ‘def’.
D. Bắt đầu bằng từ khóa ‘define’.
35. Phát biểu nào sau đây mô tả đúng về ‘code comment’ trong Python?
A. Là các dòng mã lệnh được trình thông dịch bỏ qua và không thực thi.
B. Là các dòng mã lệnh bắt buộc phải có để chương trình chạy được.
C. Là các dòng mã lệnh chỉ được hiển thị khi chương trình bị lỗi.
D. Là các dòng mã lệnh chỉ có thể viết bằng tiếng Anh.
36. Trong Python, vòng lặp ‘for’ thường được sử dụng để lặp qua các phần tử của một hoặc một tập hợp các phần tử nào?
A. Chỉ các biến kiểu số nguyên.
B. Các chuỗi ký tự.
C. Các đối tượng có thể lặp (iterable objects) như danh sách, chuỗi, tuple, từ điển.
D. Chỉ các biến kiểu boolean.
37. 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. let message = ‘Hello, World!’;
B. var message = ‘Hello, World!’;
C. message = ‘Hello, World!’
D. string message = ‘Hello, World!’;
38. Trong Python, khi bạn muốn tạo một danh sách rỗng, bạn sử dụng cú pháp nào?
A. list()
B. []
C. new list()
D. list[]
39. Khi làm việc với danh sách (list) trong Python, thao tác nào sau đây dùng để thêm một phần tử vào cuối danh sách?
A. insert()
B. remove()
C. append()
D. extend()
40. Phát biểu nào sau đây là đúng về cách Python xử lý kiểu dữ liệu của biến?
A. Python là ngôn ngữ có kiểu dữ liệu tĩnh, phải khai báo rõ kiểu trước khi sử dụng.
B. Python là ngôn ngữ có kiểu dữ liệu động, kiểu dữ liệu của biến được xác định tự động khi gán giá trị.
C. Kiểu dữ liệu của biến phải được định nghĩa rõ ràng trong mọi trường hợp.
D. Python chỉ hỗ trợ một kiểu dữ liệu duy nhất cho tất cả các biến.
41. Phát biểu nào sau đây là đúng về ‘variable scope’ (phạm vi của biến) trong Python?
A. Tất cả các biến đều có phạm vi toàn cục.
B. Các biến được định nghĩa bên trong hàm chỉ có thể truy cập được bên trong hàm đó.
C. Các biến được định nghĩa bên ngoài hàm có thể truy cập được ở bất kỳ đâu mà không cần khai báo lại.
D. Phạm vi của biến chỉ phụ thuộc vào tên biến.
42. Hàm `print()` trong Python được sử dụng chủ yếu cho mục đích gì?
A. Để nhận đầu vào từ người dùng.
B. Để thực thi mã lệnh.
C. Để hiển thị thông tin ra màn hình console.
D. Để định nghĩa một hàm mới.
43. Trong Python, một tuple khác với một list ở điểm nào?
A. Tuple không thể chứa các kiểu dữ liệu khác nhau.
B. Tuple có thể thay đổi (mutable), còn list thì không.
C. Tuple không thể thay đổi (immutable), còn list thì có thể.
D. List được khai báo bằng dấu ngoặc đơn, còn tuple bằng dấu ngoặc vuông.
44. Phát biểu nào sau đây mô tả đúng chức năng của toán tử ‘%’ trong Python?
A. Phép cộng hai số.
B. Phép nhân hai số.
C. Phép chia lấy dư (phần dư của phép chia).
D. Phép chia lấy phần nguyên.
45. Trong Python, một ‘chuỗi ký tự’ (string) có thể được khai báo bằng cách sử dụng các cặp dấu nháy nào?
A. Chỉ dấu nháy kép (“).
B. Chỉ dấu nháy đơn (‘).
C. Cả dấu nháy đơn (‘) và dấu nháy kép (“).
D. Dấu nháy backtick (`).
46. Hàm `input()` trong Python dùng để làm gì?
A. In một giá trị ra màn hình.
B. Đọc một dòng văn bản từ người dùng nhập vào.
C. Thực hiện một phép toán số học.
D. Kiểm tra điều kiện logic.
47. 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) và truy cập giá trị bằng khóa?
A. List
B. Tuple
C. Set
D. Dictionary
48. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘float’ trong Python?
A. Là kiểu dữ liệu lưu trữ các số nguyên.
B. Là kiểu dữ liệu lưu trữ các chuỗi ký tự.
C. Là kiểu dữ liệu lưu trữ các số có phần thập phân.
D. Là kiểu dữ liệu lưu trữ giá trị đúng/sai.
49. Phát biểu nào sau đây đúng về cách truy cập phần tử đầu tiên của một danh sách ‘my_list’ trong Python?
A. my_list(0)
B. my_list[1]
C. my_list[0]
D. my_list.get(0)
50. Trong Python, làm thế nào để bạn truy cập vào các khóa (keys) của một dictionary?
A. Sử dụng phương thức `values()`.
B. Sử dụng phương thức `items()`.
C. Sử dụng phương thức `keys()`.
D. Truy cập trực tiếp bằng chỉ số.
51. Trong Python, toán tử `==` được sử dụng để làm gì?
A. Gán giá trị cho biến.
B. Kiểm tra xem hai giá trị có bằng nhau không.
C. Thực hiện phép cộng.
D. Kiểm tra xem hai giá trị có khác nhau không.
52. Trong Python, để chuyển đổi một số nguyên sang dạng chuỗi ký tự, bạn sử dụng hàm nào?
A. int()
B. float()
C. str()
D. char()
53. Trong lập trình, ‘biến’ (variable) được hiểu là gì?
A. Một toán tử thực hiện phép tính.
B. Một lệnh điều khiển luồng chương trình.
C. Một tên gọi đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
D. Một cấu trúc dữ liệu cố định.
54. Khi thực hiện phép chia lấy phần nguyên trong Python bằng toán tử ‘//’, kết quả trả về thuộc kiểu dữ liệu nào?
A. Float
B. Boolean
C. String
D. Integer
55. Phát biểu nào sau đây mô tả đúng về cách hoạt động của vòng lặp `while` trong Python?
A. Lặp lại một số lần xác định trước.
B. Lặp lại miễn là một điều kiện cho trước còn đúng.
C. Chỉ lặp lại một lần duy nhất.
D. Lặp lại cho đến khi gặp lệnh `break`.
56. Trong Python, hàm nào được sử dụng để lấy độ dài của một chuỗi hoặc một danh sách?
A. size()
B. length()
C. count()
D. len()
57. Phát biểu nào sau đây mô tả chính xác về cấu trúc điều khiển ‘if-elif-else’ trong Python?
A. Chỉ cho phép kiểm tra một điều kiện duy nhất.
B. Cho phép kiểm tra nhiều điều kiện tuần tự, thực thi khối lệnh đầu tiên có điều kiện đúng.
C. Mỗi ‘elif’ yêu cầu một khối lệnh ‘else’ đi kèm.
D. Chỉ sử dụng được khi có ít nhất hai điều kiện cần kiểm tra.
58. Khi một hàm trong Python trả về một giá trị, giá trị đó được xác định bởi từ khóa nào?
A. return
B. yield
C. send
D. pass
59. Phát biểu nào sau đây mô tả đúng nhất về kiểu dữ liệu ‘integer’ trong Python?
A. Là kiểu dữ liệu lưu trữ các số có phần thập phân.
B. Là kiểu dữ liệu lưu trữ các ký tự đơn.
C. Là kiểu dữ liệu lưu trữ các số nguyên, không có phần thập phân.
D. Là kiểu dữ liệu lưu trữ giá trị đúng hoặc sai.
60. Lệnh ‘break’ trong Python được sử dụng để làm gì trong một vòng lặp?
A. Bắt đầu lại vòng lặp từ đầu.
B. Bỏ qua lần lặp hiện tại và tiếp tục với lần lặp tiếp theo.
C. Chấm dứt hoàn toàn vòng lặp.
D. Thực hiện một số hành động trước khi thoát vòng lặp.
61. Trong Python, toán tử nào được sử dụng để thực hiện phép chia lấy phần dư?
62. Câu lệnh nào trong Python dùng để kiểm tra xem một biến có tồn tại trong một chuỗi hoặc danh sách hay không?
A. find
B. search
C. in
D. exists
63. Trong Python, câu lệnh `if x > 10:` là một ví dụ của cấu trúc điều khiển nào?
A. Vòng lặp
B. Cấu trúc tuần tự
C. Cấu trúc lựa chọn (rẽ nhánh)
D. Cấu trúc lặp lại
64. Nếu `name = ‘Alice’`, câu lệnh `print(name[0])` sẽ xuất ra ký tự nào?
65. Trong Python, giá trị boolean nào sẽ được trả về bởi biểu thức `5 > 3 and 10 < 20`?
A. False
B. True
C. None
D. Error
66. Trong Python, toán tử nào được sử dụng để so sánh hai giá trị có bằng nhau hay không?
67. Câu lệnh nào dùng để bỏ qua lần lặp hiện tại của vòng lặp và tiếp tục với lần lặp tiếp theo?
A. break
B. pass
C. continue
D. skip
68. Nếu `numbers = [1, 2, 3, 4, 5]`, câu lệnh `numbers.append(6)` sẽ thay đổi danh sách như thế nào?
A. Danh sách vẫn là [1, 2, 3, 4, 5]
B. Danh sách trở thành [6, 1, 2, 3, 4, 5]
C. Danh sách trở thành [1, 2, 3, 4, 5, 6]
D. Danh sách trở thành [1, 2, 3, 4, 5] và trả về 6
69. Câu lệnh nào dùng để kết thúc một vòng lặp ‘for’ hoặc ‘while’ ngay lập tức?
A. continue
B. pass
C. break
D. exit
70. Đâu là cách viết đúng cho một chuỗi ký tự nhiều dòng (multiline string) trong Python?
A. ‘Dòng 1
Dòng 2’
B. ”’Dòng 1
Dòng 2”’
C. ‘Dòng 1’ + ‘
‘ + ‘Dòng 2’
D. Cả A, B và C đều đúng
71. Đâu là kiểu dữ liệu cơ bản trong Python 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. int
72. Đâu là kiểu dữ liệu trong Python dùng để lưu trữ một bộ sưu tập các phần tử không thay đổi và có thứ tự?
A. list
B. set
C. dictionary
D. tuple
73. Đâu là toán tử logic trong Python dùng để kiểm tra xem cả hai điều kiện có cùng đúng hay không?
74. Nếu `x = 5` và `y = 2`, kết quả của phép tính `x / y` trong Python là gì?
75. Nếu `my_list = [10, 20, 30, 40]`, câu lệnh `my_list.pop(1)` sẽ trả về giá trị nào và làm thay đổi danh sách ra sao?
A. Trả về 10, danh sách còn [20, 30, 40]
B. Trả về 20, danh sách còn [10, 30, 40]
C. Trả về 30, danh sách còn [10, 20, 40]
D. Trả về 40, danh sách còn [10, 20, 30]
76. Câu lệnh `for i in range(5):` sẽ lặp lại khối mã 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
77. Đâu là cách đúng để truy cập giá trị của khóa ‘city’ trong từ điển `student = {‘name’: ‘Bob’, ‘age’: 20, ‘city’: ‘New York’}`?
A. student.city
B. student[‘city’]
C. student(city)
D. student.get(‘city’)
78. Nếu `text = ‘Programming’`, câu lệnh `print(text[3:7])` sẽ xuất ra chuỗi con nào?
A. ‘gram’
B. ‘gramm’
C. ‘rammi’
D. ‘mming’
79. 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ị ‘Hello, World!’ cho nó?
A. declare x = ‘Hello, World!’
B. let x = ‘Hello, World!’
C. x = ‘Hello, World!’
D. variable x = ‘Hello, World!’
80. Câu lệnh nào sau đây sẽ in ra màn hình chuỗi ‘Python is fun’?
A. display(‘Python is fun’)
B. output(‘Python is fun’)
C. print(‘Python is fun’)
D. show(‘Python is fun’)
81. Đâu là cách khai báo một danh sách (list) rỗng trong Python?
82. Nếu bạn muốn thêm một phần tử vào đầu danh sách `my_list = [2, 3, 4]`, bạn sẽ sử dụng phương thức nào?
A. append()
B. insert(0, 1)
C. add(1)
D. extend([1])
83. Câu lệnh nào sau đây sẽ tạo ra một chuỗi ký tự có độ dài 0?
84. Đâu là cách khai báo một từ điển (dictionary) trong Python với một cặp khóa-giá trị?
A. {‘key’: ‘value’}
B. (‘key’: ‘value’)
C. [‘key’: ‘value’]
D.
85. Đâu là tên gọi của một đoạn mã có thể tái sử dụng để thực hiện một tác vụ cụ thể trong Python?
A. Biến (Variable)
B. Hàm (Function)
C. Lớp (Class)
D. Module
86. Trong Python, từ khóa nào dùng để chỉ ra rằng một khối mã thuộc về một cấu trúc điều khiển hoặc định nghĩa hàm/lớp?
A. Tab hoặc khoảng trắng
B. Dấu hai chấm (:) và thụt lề
C. Dấu ngoặc nhọn ({})
D. Dấu chấm phẩy (;)
87. Giả sử bạn có biến `price = 19.99`. Hàm nào trong Python sẽ chuyển đổi giá trị này thành một số nguyên bằng cách làm tròn xuống?
A. round(price)
B. ceil(price)
C. int(price)
D. floor(price)
88. Giả sử bạn có biến `age = 25`. Câu lệnh `print(type(age))` sẽ xuất ra kết quả nào sau đây?
89. Đâu là cách khai báo một hàm (function) trong Python?
A. function my_func():
B. define my_func():
C. def my_func():
D. fun my_func():
90. Trong Python, cấu trúc `while condition:` sẽ tiếp tục thực thi khối mã bên trong cho đến khi nào?
A. Điều kiện ‘condition’ trở thành False.
B. Điều kiện ‘condition’ trở thành True.
C. Thực thi đủ 10 lần lặp.
D. Gặp câu lệnh ‘break’.
91. Trong ngữ cảnh của thuật toán, độ phức tạp thời gian (time complexity) đo lường điều gì?
A. Lượng bộ nhớ mà thuật toán sử dụng.
B. Số lượng các phép tính mà thuật toán thực hiện khi đầu vào có kích thước ‘n’.
C. Thời gian thực tế mà thuật toán chạy trên một máy tính cụ thể.
D. Mức độ phức tạp của mã nguồn thuật toán.
92. Trong lập trình, ‘vòng lặp for’ thường được sử dụng khi nào?
A. Khi số lần lặp là không xác định trước và phụ thuộc vào một điều kiện nào đó được kiểm tra ở mỗi bước lặp.
B. Khi cần thực hiện một khối lệnh ít nhất một lần, bất kể điều kiện có đúng hay không.
C. Khi biết trước số lần cần lặp hoặc cần lặp qua một tập hợp các phần tử có thứ tự.
D. Khi cần thực hiện một khối lệnh chỉ một lần nếu điều kiện là đúng.
93. Khái niệm ‘con trỏ’ (pointer) trong lập trình C/C++ đề cập đến điều gì?
A. Một biến lưu trữ trực tiếp giá trị của dữ liệu.
B. Một biến lưu trữ địa chỉ bộ nhớ của một biến khác.
C. Một hàm thực hiện một phép toán cụ thể.
D. Một cấu trúc dữ liệu dùng để lưu trữ danh sách các phần tử.
94. Khái niệm ‘vòng lặp vô hạn’ (infinite loop) là gì và làm thế nào để tránh?
A. Là vòng lặp thực hiện đúng một lần, tránh bằng cách đặt điều kiện sai.
B. Là vòng lặp không bao giờ kết thúc vì điều kiện dừng luôn sai hoặc không bao giờ đạt được, tránh bằng cách đảm bảo điều kiện lặp thay đổi và có điểm dừng rõ ràng.
C. Là vòng lặp chỉ thực hiện khi có lỗi xảy ra, tránh bằng cách sửa lỗi cú pháp.
D. Là vòng lặp sử dụng quá nhiều bộ nhớ, tránh bằng cách khai báo biến hợp lý.
95. Trong lập trình, ‘lỗi cú pháp’ (syntax error) là gì và khi nào thường gặp phải?
A. Là lỗi logic khiến chương trình cho kết quả sai, thường xảy ra khi lập trình viên hiểu sai yêu cầu.
B. Là lỗi do chương trình cố gắng truy cập bộ nhớ không hợp lệ, thường xảy ra với con trỏ.
C. Là lỗi do vi phạm các quy tắc ngữ pháp của ngôn ngữ lập trình, thường bị trình biên dịch phát hiện trước khi chạy.
D. Là lỗi do quá tải hệ thống hoặc thiếu tài nguyên khi chương trình chạy.
96. Trong lập trình, ‘hằng số’ (constant) là gì và lợi ích của việc sử dụng chúng?
A. Là một biến có giá trị có thể thay đổi tùy ý trong quá trình chạy chương trình.
B. Là một giá trị không đổi, được định nghĩa một lần và không thể thay đổi trong quá trình thực thi chương trình, giúp tăng tính rõ ràng và dễ bảo trì.
C. Là một hàm được gọi tự động khi có sự kiện xảy ra.
D. Là một cấu trúc dữ liệu dùng để lưu trữ nhiều giá trị.
97. Trong lập trình hướng đối tượng, ‘tính kế thừa’ (inheritance) cho phép gì?
A. Một lớp có thể có nhiều bản sao của chính nó.
B. Một lớp mới (lớp con) có thể kế thừa các thuộc tính và phương thức từ một lớp cha đã có.
C. Các đối tượng có thể thay đổi hành vi của chúng dựa trên dữ liệu đầu vào.
D. Một lớp có thể đóng gói tất cả dữ liệu và phương thức của nó để bảo vệ khỏi truy cập bên ngoài.
98. Tại sao việc kiểm tra đầu vào (input validation) lại quan trọng trong mọi ứng dụng phần mềm?
A. Để đảm bảo chương trình luôn chạy nhanh hơn, bất kể dữ liệu đầu vào.
B. Để ngăn chặn các lỗi chương trình, hành vi không mong muốn hoặc các lỗ hổng bảo mật do dữ liệu không hợp lệ hoặc độc hại cung cấp.
C. Để tự động chuyển đổi mọi định dạng dữ liệu đầu vào về một định dạng chuẩn duy nhất.
D. Để giảm bớt số lượng dòng mã cần viết trong chương trình.
99. Tại sao việc đặt tên biến, hàm, lớp có ý nghĩa và tuân theo quy ước lại quan trọng trong phát triển phần mềm?
A. Giúp trình biên dịch hiểu rõ hơn về mục đích của từng thành phần trong mã.
B. Tăng tốc độ thực thi chương trình vì trình biên dịch có thể tối ưu hóa dựa trên tên gọi.
C. Cải thiện khả năng đọc hiểu, bảo trì và cộng tác của mã nguồn giữa các lập trình viên.
D. Đảm bảo chương trình hoạt động chính xác trên mọi hệ điều hành mà không cần điều chỉnh.
100. Trong lập trình hướng đối tượng, khái niệm ‘tính đóng gói’ (encapsulation) đề cập đến điều gì?
A. Khả năng một đối tượng có thể thực hiện nhiều hành động khác nhau tùy thuộc vào ngữ cảnh.
B. Việc che giấu chi tiết triển khai bên trong của một đối tượng và chỉ cho phép truy cập thông qua các phương thức công khai (public methods).
C. Khả năng tạo ra các lớp mới dựa trên các lớp đã có, kế thừa thuộc tính và phương thức.
D. Khả năng các đối tượng khác nhau có thể phản ứng với cùng một thông điệp theo cách riêng của chúng.
101. Tại sao việc sử dụng cấu trúc dữ liệu ‘ngăn xếp’ (stack) lại phù hợp cho việc quản lý các lời gọi hàm và theo dõi trạng thái thực thi (LIFO – Last-In, First-Out)?
A. Nó cho phép thêm và xóa phần tử ở bất kỳ vị trí nào một cách hiệu quả.
B. Nó đảm bảo rằng phần tử được thêm vào sau cùng sẽ là phần tử được lấy ra đầu tiên.
C. Nó cho phép truy cập ngẫu nhiên vào bất kỳ phần tử nào trong ngăn xếp.
D. Nó được tối ưu hóa cho việc tìm kiếm phần tử nhanh chóng.
102. Khái niệm ‘biến toàn cục’ (global variable) trong lập trình có nhược điểm chính nào?
A. Khó khăn trong việc khai báo và khởi tạo ban đầu.
B. Chỉ có thể truy cập được trong một hàm hoặc một khối lệnh cụ thể.
C. Có thể bị thay đổi giá trị bởi bất kỳ phần nào của chương trình, gây khó khăn cho việc theo dõi và gỡ lỗi.
D. Chiếm dụng nhiều bộ nhớ hơn so với biến cục bộ.
103. Trong lập trình, ‘thuật toán tìm kiếm nhị phân’ (binary search) có hiệu quả cao khi nào?
A. Khi dữ liệu được lưu trữ dưới dạng danh sách liên kết.
B. Khi dữ liệu đã được sắp xếp theo thứ tự.
C. Khi dữ liệu có cấu trúc cây nhị phân.
D. Khi dữ liệu không có thứ tự cụ thể.
104. Theo phân tích phổ biến về ngôn ngữ lập trình, tại sao việc sử dụng biến có kiểu dữ liệu rõ ràng lại quan trọng hơn so với việc sử dụng biến không khai báo kiểu dữ liệu trong các ngôn ngữ như C++ hoặc Java?
A. Giúp trình biên dịch phát hiện lỗi sớm, tăng hiệu quả quản lý bộ nhớ và cho phép tối ưu hóa mã nguồn, dẫn đến mã chạy nhanh hơn.
B. Cho phép lập trình viên thay đổi kiểu dữ liệu của biến một cách linh hoạt trong quá trình chạy chương trình để phù hợp với các tình huống khác nhau.
C. Giảm bớt công sức cho lập trình viên vì không cần phải ghi nhớ hoặc khai báo rõ ràng kiểu dữ liệu cho từng biến.
D. Tăng khả năng đọc hiểu cho người đọc mã nguồn mới, vì họ không cần biết về quy tắc kiểu dữ liệu của ngôn ngữ.
105. Khái niệm ‘đệ quy’ (recursion) trong lập trình là gì?
A. Một hàm gọi lại chính nó để giải quyết một vấn đề nhỏ hơn.
B. Một vòng lặp thực hiện các thao tác lặp đi lặp lại.
C. Một cách để lưu trữ dữ liệu theo cấu trúc cây.
D. Một kỹ thuật để tối ưu hóa hiệu suất của chương trình.
106. Tại sao ‘kiểu dữ liệu trừu tượng’ (Abstract Data Type – ADT) lại quan trọng trong thiết kế phần mềm?
A. Nó định nghĩa cách thức một cấu trúc dữ liệu hoạt động mà không cần quan tâm đến chi tiết triển khai cụ thể.
B. Nó đảm bảo rằng tất cả các biến trong chương trình đều có giá trị ban đầu.
C. Nó chỉ cho phép sử dụng các cấu trúc dữ liệu có sẵn trong ngôn ngữ lập trình.
D. Nó tự động tạo ra mã máy hiệu quả nhất cho mọi thuật toán.
107. Khi nói về cấu trúc dữ liệu ‘mảng’ (array), đặc điểm nổi bật nhất của nó là gì?
A. Cho phép lưu trữ các phần tử có kiểu dữ liệu khác nhau trong cùng một cấu trúc.
B. Các phần tử được lưu trữ liên tiếp nhau trong bộ nhớ và có thể truy cập trực tiếp thông qua chỉ số (index).
C. Kích thước của mảng có thể thay đổi linh hoạt trong quá trình chạy chương trình.
D. Cung cấp cơ chế tự động sắp xếp các phần tử theo thứ tự tăng dần hoặc giảm dần.
108. Trong lập trình hướng đối tượng, ‘tính đa hình’ (polymorphism) cho phép gì?
A. Một lớp có thể kế thừa từ nhiều lớp cha.
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 phương thức) theo cách riêng của chúng.
C. Che giấu chi tiết triển khai bên trong của một đối tượng.
D. Kết hợp dữ liệu và phương thức vào một đơn vị duy nhất.
109. Trong các cấu trúc điều khiển, ‘câu lệnh if-else if-else’ được sử dụng để làm gì?
A. Thực hiện một khối lệnh duy nhất khi một điều kiện là đúng.
B. Lặp lại một khối lệnh cho đến khi một điều kiện trở thành sai.
C. Thực hiện một trong nhiều khối lệnh khác nhau dựa trên việc kiểm tra một chuỗi các điều kiện theo thứ tự.
D. Thực hiện một khối lệnh ít nhất một lần, sau đó lặp lại dựa trên một điều kiện.
110. Trong lập trình, ‘lệnh gán’ (assignment statement) có vai trò gì?
A. Điều khiển luồng thực thi của chương trình dựa trên điều kiện.
B. Định nghĩa một hàm mới trong chương trình.
C. Lưu trữ một giá trị (kết quả của một biểu thức) vào một biến.
D. In một chuỗi ký tự ra màn hình.
111. Khái niệm ‘biểu thức’ (expression) trong lập trình có đặc điểm nào?
A. Là một lệnh thực hiện một hành động cụ thể, như in ra màn hình.
B. Là một tổ hợp các toán hạng, toán tử và có thể có các lời gọi hàm, luôn trả về một giá trị duy nhất.
C. Là một khối lệnh được thực thi khi một điều kiện nhất định đúng.
D. Là một khai báo biến để lưu trữ dữ liệu.
112. Tại sao ‘lỗi thực thi’ (runtime error) lại khó phát hiện và sửa chữa hơn ‘lỗi cú pháp’?
A. Lỗi thực thi xảy ra khi chương trình chạy, phụ thuộc vào dữ liệu đầu vào và trạng thái hệ thống, không bị trình biên dịch bắt.
B. Lỗi thực thi chỉ xảy ra với các ngôn ngữ thông dịch.
C. Lỗi thực thi là do lập trình viên đặt tên biến sai.
D. Lỗi thực thi luôn làm chương trình bị treo ngay lập tức.
113. Trong lập trình, ‘lỗi logic’ (logic error) là gì và làm sao để phát hiện?
A. Là lỗi cú pháp khiến chương trình không biên dịch được.
B. Là lỗi do chương trình cố gắng thực hiện một phép toán không hợp lệ, dẫn đến crash.
C. Là lỗi khiến chương trình chạy đúng cú pháp nhưng cho ra kết quả không như mong đợi do sai sót trong thuật toán hoặc cách triển khai.
D. Là lỗi do thiếu bộ nhớ hoặc tài nguyên hệ thống.
114. Phân biệt giữa ngôn ngữ lập trình biên dịch (compiled) và ngôn ngữ thông dịch (interpreted).
A. Ngôn ngữ biên dịch dịch toàn bộ mã nguồn sang mã máy trước khi chạy, còn ngôn ngữ thông dịch dịch từng dòng lệnh khi chạy.
B. Ngôn ngữ biên dịch yêu cầu môi trường chạy có sẵn trình biên dịch, còn ngôn ngữ thông dịch yêu cầu môi trường chạy có sẵn trình thông dịch.
C. Ngôn ngữ biên dịch thường chạy nhanh hơn nhưng khó sửa lỗi hơn, còn ngôn ngữ thông dịch chạy chậm hơn nhưng dễ dàng sửa lỗi hơn.
D. Tất cả các phương án trên đều đúng.
115. Khái niệm ‘kiểu dữ liệu boolean’ (boolean data type) được sử dụng chủ yếu cho mục đích gì?
A. Lưu trữ các chuỗi ký tự dài.
B. Biểu diễn các giá trị logic ‘đúng’ (true) hoặc ‘sai’ (false).
C. Lưu trữ các số thực với độ chính xác cao.
D. Thực hiện các phép toán số học phức tạp.
116. Trong lập trình, ‘hàm’ (function) có vai trò quan trọng nào?
A. Lưu trữ toàn bộ mã nguồn của chương trình trong một khối duy nhất.
B. Chia nhỏ chương trình thành các khối mã có thể tái sử dụng, giúp tổ chức mã, dễ đọc và dễ bảo trì.
C. Đảm bảo rằng tất cả các biến trong chương trình đều có giá trị ban đầu.
D. Tự động sửa lỗi cú pháp trong mã nguồn.
117. Tại sao việc sử dụng cấu trúc dữ liệu ‘hàng đợi’ (queue) lại phù hợp cho việc quản lý các tác vụ chờ xử lý theo thứ tự đến trước được phục vụ trước (FIFO – First-In, First-Out)?
A. Nó cho phép thêm phần tử vào bất kỳ vị trí nào và lấy phần tử từ vị trí bất kỳ.
B. Nó đảm bảo rằng phần tử được thêm vào đầu tiên sẽ là phần tử được lấy ra đầu tiên.
C. Nó cho phép truy cập ngẫu nhiên vào bất kỳ phần tử nào trong hàng đợi.
D. Nó được tối ưu hóa cho việc sắp xếp các phần tử theo thứ tự giảm dần.
118. Tại sao ‘thuật toán sắp xếp nổi bọt’ (bubble sort) thường không được khuyến khích sử dụng cho các tập dữ liệu lớn?
A. Nó yêu cầu quá nhiều bộ nhớ để lưu trữ dữ liệu.
B. Nó có độ phức tạp thời gian cao, thường là O(n^2), làm cho quá trình sắp xếp rất chậm khi số lượng phần tử lớn.
C. Nó chỉ hoạt động với các kiểu dữ liệu số nguyên.
D. Nó không thể sắp xếp các mảng có chứa các phần tử trùng lặp.
119. Tại sao việc sử dụng ‘mảng động’ (dynamic array) hoặc ‘danh sách’ (list) lại linh hoạt hơn mảng tĩnh (static array) trong nhiều trường hợp?
A. Mảng động không cần khai báo kích thước ban đầu.
B. Kích thước của mảng động có thể thay đổi trong quá trình chạy chương trình, cho phép thêm hoặc bớt phần tử.
C. Mảng động luôn có hiệu suất truy cập tốt hơn mảng tĩnh.
D. Mảng động có thể lưu trữ các kiểu dữ liệu khác nhau.
120. Trong lập trình, ‘vòng lặp while’ thường được sử dụng khi nào?
A. Khi biết trước chính xác số lần cần lặp.
B. Khi cần thực hiện một khối lệnh ít nhất một lần, bất kể điều kiện.
C. Khi việc lặp phụ thuộc vào một điều kiện được kiểm tra trước mỗi lần lặp và số lần lặp không nhất thiết phải biết trước.
D. Khi cần lặp qua tất cả các phần tử của một mảng.
121. Phát biểu nào sau đây mô tả đúng nhất về ‘biên dịch’ (compilation) trong quá trình phát triển phần mềm?
A. Quá trình chạy chương trình trực tiếp trên máy tính.
B. Quá trình chuyển đổi mã nguồn viết bằng ngôn ngữ lập trình bậc cao thành mã máy (hoặc mã trung gian) mà máy tính có thể hiểu và thực thi.
C. Quá trình tìm và sửa lỗi trong chương trình.
D. Quá trình tạo ra giao diện đồ họa.
122. Phát biểu nào sau đây mô tả đúng nhất quá trình ‘thông dịch’ (interpretation) trong lập trình?
A. Chuyển đổi toàn bộ mã nguồn thành mã máy trước khi chạy.
B. Thực thi mã nguồn từng dòng một bởi một chương trình gọi là trình thông dịch.
C. Tìm và sửa lỗi trong chương trình.
D. Tạo ra một tệp thực thi độc lập.
123. Trong lập trình, ‘toán tử gán’ (assignment operator), thường ký hiệu là ‘=’, có chức năng chính là gì?
A. So sánh hai giá trị để xem chúng có bằng nhau không.
B. Thực hiện phép cộng hai giá trị.
C. Gán giá trị của biểu thức bên phải cho biến ở bên trái.
D. Kiểm tra xem biến đã tồn tại hay chưa.
124. Trong lập trình, ‘thuật toán’ (algorithm) được định nghĩa là gì?
A. Một ngôn ngữ lập trình cụ thể.
B. Một tập hợp các bước hữu hạn, rõ ràng để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Một phương pháp để lưu trữ dữ liệu.
D. Một giao diện đồ họa cho người dùng.
125. Phát biểu nào sau đây là một ví dụ về việc khai báo một hằng số số thực (float/double) trong lập trình?
A. const int MAX_VALUE = 100;
B. String greeting = ‘Hello’;
C. const double PI = 3.14159;
D. bool is_ready = false;
126. Theo nguyên tắc chung của lập trình, phát biểu nào sau đây mô tả đúng nhất vai trò của ‘kiểu dữ liệu’?
A. Kiểu dữ liệu xác định tốc độ xử lý của chương trình.
B. Kiểu dữ liệu quy định cách thức dữ liệu được lưu trữ và các phép toán có thể thực hiện trên dữ liệu đó.
C. Kiểu dữ liệu chỉ là một quy ước đặt tên cho các biến.
D. Kiểu dữ liệu là bắt buộc đối với các chương trình đơn giản.
127. Xét đoạn mã sau (giả sử ngôn ngữ C++):
int diemSo = 9;
phát biểu nào sau đây là đúng về ‘diemSo’?
A. ‘diemSo’ là một chuỗi ký tự.
B. ‘diemSo’ là một biến kiểu số nguyên có giá trị là 9.
C. ‘diemSo’ là một hằng số.
D. Cần thêm từ khóa ‘const’ để ‘diemSo’ có thể lưu giá trị 9.
128. Phát biểu nào sau đây mô tả đúng nhất mục đích của việc khai báo biến trong lập trình?
A. Để máy tính biết sẽ tạo ra bao nhiêu chương trình.
B. Để cấp phát bộ nhớ và đặt tên cho một vùng nhớ sẽ lưu trữ dữ liệu.
C. Để đảm bảo chương trình chạy nhanh hơn.
D. Để người lập trình nhớ được tất cả các giá trị.
129. Trong lập trình, ‘cấu trúc rẽ nhánh’ (conditional statement) như ‘if-else’ được sử dụng để làm gì?
A. Thực hiện một khối lệnh nhiều lần.
B. Chọn một trong các đường đi thực thi dựa trên một điều kiện.
C. Gán giá trị cho biến.
D. Kết thúc chương trình.
130. Khi so sánh hai biến ‘a’ và ‘b’ để kiểm tra xem chúng có bằng nhau không, người lập trình thường sử dụng toán tử nào?
131. Trong lập trình, ‘biến toàn cục’ (global variable) có đặc điểm gì nổi bật so với ‘biến cục bộ’ (local variable)?
A. Biến toàn cục chỉ có thể được sử dụng trong một hàm.
B. Biến toàn cục có phạm vi truy cập rộng hơn, thường là toàn bộ chương trình, trong khi biến cục bộ chỉ có trong phạm vi của hàm hoặc khối mã nơi nó được khai báo.
C. Biến toàn cục luôn được khởi tạo với giá trị 0.
D. Biến cục bộ có thể thay đổi giá trị của biến toàn cục.
132. Phát biểu nào sau đây mô tả đúng nhất về ‘mảng’ (array) trong lập trình?
A. Mảng là một biến đơn lẻ có thể lưu nhiều loại dữ liệu khác nhau.
B. Mảng là một tập hợp có thứ tự các phần tử cùng kiểu dữ liệu, có thể truy cập bằng chỉ số.
C. Mảng chỉ dùng để lưu trữ chuỗi ký tự.
D. Mảng có kích thước cố định và không thể thay đổi sau khi khai báo.
133. Trong một chương trình, khi một biến được khai báo với kiểu dữ liệu ‘string’, nó thường được dùng để lưu trữ loại thông tin nào?
A. Một số nguyên duy nhất.
B. Một chuỗi các ký tự, có thể bao gồm chữ cái, số và ký hiệu.
C. Một giá trị đúng/sai (boolean).
D. Một số thập phân với độ chính xác cao.
134. Khi xem xét một biểu thức toán học như ‘x = y + 5’, phát biểu nào sau đây về ‘x’ và ‘y’ là chính xác nhất?
A. ‘x’ và ‘y’ đều là hằng số.
B. ‘x’ là biến nhận giá trị từ ‘y’ cộng thêm 5, trong khi ‘y’ có thể là biến hoặc hằng số.
C. ‘x’ và ‘y’ đều là các hàm.
D. Biểu thức này chỉ hợp lệ nếu ‘x’ và ‘y’ là số nguyên.
135. Trong lập trình, ‘độ phức tạp thời gian’ (time complexity) đo lường yếu tố nào của một thuật toán?
A. Lượng bộ nhớ mà thuật toán sử dụng.
B. Thời gian thực thi của thuật toán phụ thuộc vào kích thước của dữ liệu đầu vào.
C. Số lượng dòng mã trong thuật toán.
D. Khả năng tái sử dụng của thuật toán.
136. Trong lập trình, ‘biểu thức’ (expression) là gì?
A. Một câu lệnh hoàn chỉnh kết thúc chương trình.
B. Một tổ hợp các toán tử, toán hạng và biến mà khi được đánh giá sẽ cho ra một giá trị duy nhất.
C. Một định nghĩa về kiểu dữ liệu.
D. Một đoạn mã được thực thi khi có sự kiện xảy ra.
137. Trong lập trình, khi sử dụng ‘vòng lặp while’, điều kiện để vòng lặp dừng lại là gì?
A. Vòng lặp sẽ dừng khi điều kiện kiểm tra là đúng.
B. Vòng lặp sẽ tiếp tục chạy cho đến khi điều kiện kiểm tra trở thành sai.
C. Vòng lặp sẽ dừng sau một số lần lặp cố định.
D. Vòng lặp sẽ dừng khi gặp một lệnh ‘break’.
138. Phát biểu nào sau đây mô tả đúng nhất mục đích của việc sử dụng ‘chỉ số’ (index) khi làm việc với mảng?
A. Để xác định kích thước của mảng.
B. Để truy cập và xác định vị trí của một phần tử cụ thể trong mảng.
C. Để thay đổi kiểu dữ liệu của các phần tử trong mảng.
D. Để đặt tên cho toàn bộ mảng.
139. Phát biểu nào sau đây mô tả đúng nhất vai trò của ‘hàm’ (function/method) trong lập trình?
A. Hàm là nơi khai báo tất cả các biến của chương trình.
B. 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.
C. Hàm chỉ dùng để in kết quả ra màn hình.
D. Hàm là bắt buộc phải có trong mọi chương trình.
140. Phát biểu nào sau đây là ví dụ về việc sử dụng ‘vòng lặp’ để lặp lại một hành động?
A. if (x > 0) { print(‘Dương’); }
B. int i = 0; while (i < 5) { print(i); i++; }
C. function greet(name) { print(‘Hello, ‘ + name); }
D. int a = 10; int b = 20; int sum = a + b;
141. Phát biểu nào sau đây là một ví dụ về ‘toán tử so sánh’ (comparison operator) dùng để kiểm tra điều kiện ‘lớn hơn hoặc bằng’?
142. Phát biểu nào sau đây mô tả đúng nhất vai trò của ‘vòng lặp’ (loop) trong lập trình?
A. Vòng lặp dùng để kết thúc chương trình.
B. Vòng lặp cho phép thực hiện lặp đi lặp lại một khối lệnh nhiều lần dựa trên một điều kiện nhất định.
C. Vòng lặp chỉ dùng để khai báo biến.
D. Vòng lặp chỉ thực hiện một lần duy nhất.
143. Trong lập trình, ‘độ phức tạp không gian’ (space complexity) đo lường yếu tố nào của một thuật toán?
A. Thời gian thực thi của thuật toán.
B. Lượng bộ nhớ (không gian lưu trữ) mà thuật toán cần sử dụng, phụ thuộc vào kích thước dữ liệu đầu vào.
C. Số lượng phép toán trong thuật toán.
D. Khả năng xử lý song song của thuật toán.
144. Trong lập trình, ‘debug’ là quá trình 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. Tối ưu hóa hiệu suất chương trình.
D. Thiết kế giao diện người dùng.
145. Khi một chương trình cần thực hiện một hành động lặp đi lặp lại một số lần xác định trước, cấu trúc nào sau đây thường được ưu tiên sử dụng?
A. Cấu trúc ‘if-else’.
B. Vòng lặp ‘for’.
C. Cấu trúc ‘switch-case’.
D. Hàm.
146. Khi lập trình, nếu cần lưu trữ một giá trị chỉ có thể là đúng hoặc sai, kiểu dữ liệu nào là phù hợp nhất?
A. Integer
B. String
C. Boolean
D. Float
147. Phát biểu nào sau đây mô tả chính xác nhất sự khác biệt giữa biến và hằng số trong lập trình?
A. Biến luôn là số, hằng số luôn là chữ.
B. Giá trị của biến có thể thay đổi trong quá trình thực thi, còn giá trị của hằng số là cố định và không thể thay đổi.
C. Biến chỉ dùng trong các phép tính, hằng số chỉ dùng để hiển thị.
D. Hằng số cần khai báo trước, biến thì không.
148. Phát biểu nào sau đây là một ví dụ về việc sử dụng ‘cấu trúc rẽ nhánh’ để kiểm tra một điều kiện?
A. for (int i = 0; i < 10; i++) { // code }
B. if (diem >= 5) { print(‘Đạt’); } else { print(‘Không đạt’); }
C. while (ketThuc == false) { // code }
D. function tinhTong(a, b) { return a + b; }
149. Phát biểu nào sau đây là một ví dụ về khai báo biến kiểu số nguyên (integer) trong một ngôn ngữ lập trình phổ biến?
A. String tenNguoi = ‘An’;
B. Boolean is_valid = True;
C. int soLuong = 100;
D. float giaTien = 15.50;
150. Trong ngữ cảnh lập trình, ‘biến’ có thể được định nghĩa là gì?
A. Một địa chỉ cố định trong bộ nhớ máy tính.
B. Một tên gọi đại diện cho một giá trị có thể thay đổi trong quá trình thực thi chương trình.
C. Một lệnh để máy tính thực hiện một hành động cụ thể.
D. Một quy tắc để máy tính thực hiện tính toán.