1. Phát biểu nào sau đây mô tả đúng về cách làm việc của một hàm số trong toán học và trong lập trình?
A. Trong toán học, hàm nhận đầu vào và trả về một đầu ra duy nhất, còn trong lập trình thì không có quy tắc tương tự.
B. Cả hàm số trong toán học và hàm trong lập trình đều có thể nhận đầu vào và trả về kết quả.
C. Hàm trong lập trình chỉ dùng để thực hiện các phép tính số học, không giống hàm toán học.
D. Hàm toán học không thể có tham số, chỉ hàm lập trình mới có.
2. Để nhập một mô-đun có tên là ‘math’ trong Python, ta sử dụng câu lệnh nào?
A. require ‘math’
B. include math
C. import math
D. use math
3. Trong lập trình Python, câu lệnh nào sau đây dùng để hiển thị thông báo ‘Xin chào thế giới!’ ra màn hình?
A. display(‘Xin chào thế giới!’)
B. print(‘Xin chào thế giới!’)
C. output(‘Xin chào thế giới!’)
D. show(‘Xin chào thế giới!’)
4. Khi bạn muốn tạo một danh sách các số từ 0 đến 9 trong Python, bạn có thể sử dụng hàm nào?
A. list(range(10))
B. range(0, 10)
C. create_list(10)
D. numbers(10)
5. Trong lập trình Python, câu lệnh `pass` được sử dụng để làm gì?
A. Thực thi tất cả các lệnh còn lại.
B. Dừng chương trình.
C. Không làm gì cả, là một lệnh giữ chỗ.
D. Nhảy đến lệnh tiếp theo.
6. Trong Python, làm thế nào để chuyển đổi một chuỗi ‘num_str’ thành một số nguyên?
A. int(num_str)
B. str_to_int(num_str)
C. convert_to_int(num_str)
D. num_str.to_int()
7. Câu lệnh `continue` trong vòng lặp Python có tác dụng gì?
A. Dừng hoàn toàn vòng lặp và thoát ra ngoài.
B. 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.
C. Thực thi lại lệnh ngay trước đó.
D. Thoát khỏi chương trình.
8. Để truy cập vào phần tử đầu tiên của một danh sách có tên là ‘my_list’ trong Python, ta sử dụng cách nào?
A. my_list(0)
B. my_list[0]
C. my_list.first
D. my_list[1]
9. Cấu trúc dữ liệu từ điển (dictionary) trong Python lưu trữ dữ liệu dưới dạng nào?
A. Chỉ số và giá trị.
B. Khóa và giá trị.
C. Tên và mô tả.
D. Mảng và phần tử.
10. Trong Python, danh sách (list) là một kiểu dữ liệu có đặc điểm gì?
A. Các phần tử không thể thay đổi thứ tự.
B. Các phần tử phải cùng kiểu dữ liệu.
C. Các phần tử có thể thay đổi, thêm, xóa và có thứ tự.
D. Chỉ chứa được một phần tử duy nhất.
11. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu Boolean trong Python?
A. Nó chỉ có thể nhận giá trị ‘True’.
B. Nó chỉ có thể nhận giá trị ‘False’.
C. Nó có thể nhận giá trị ‘True’ hoặc ‘False’.
D. Nó có thể nhận bất kỳ chuỗi ký tự nào.
12. Câu lệnh nào trong Python dùng để khai báo một hàm?
A. fun
B. func
C. def
D. function
13. Để biết độ dài của một chuỗi ‘my_string’ trong Python, ta sử dụng hàm nào?
A. my_string.length()
B. len(my_string)
C. size(my_string)
D. count(my_string)
14. Câu lệnh nào trong Python được sử dụng để đọc dữ liệu nhập từ bàn phím?
A. print()
B. input()
C. get()
D. read()
15. Trong Python, toán tử ‘+’ có thể được sử dụng để thực hiện hành động nào sau đây đối với hai chuỗi?
A. Trừ hai chuỗi.
B. Nối hai chuỗi lại với nhau.
C. Nhân hai chuỗi.
D. Chia hai chuỗi.
16. Phát biểu nào sau đây mô tả đúng về ‘variable scope’ (phạm vi của biến) trong Python?
A. Biến được khai báo ở đâu cũng có thể truy cập được từ mọi nơi trong chương trình.
B. Phạm vi của biến xác định phần nào của chương trình mà biến đó có thể được truy cập.
C. Chỉ có biến toàn cục mới có phạm vi.
D. Phạm vi của biến chỉ phụ thuộc vào tên của nó.
17. Trong Python, cấu trúc ‘if…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 hành động tùy theo điều kiện.
C. Định nghĩa một hàm mới.
D. Nhập dữ liệu từ người dùng.
18. Câu lệnh `break` trong vòng lặp Python có tác dụng gì?
A. Tiếp tục vòng lặp với lần lặp tiếp theo.
B. Dừng hoàn toàn vòng lặp hiện tại và thoát ra ngoài.
C. Chuyển sang thực thi lệnh ngay sau vòng lặp.
D. Nhảy đến đầu vòng lặp và kiểm tra lại điều kiện.
19. Phát biểu nào sau đây mô tả đúng về cách xử lý lỗi (error handling) trong Python, ví dụ với `try-except`?
A. Nó ngăn chặn mọi loại lỗi xảy ra.
B. Nó cho phép chương trình tiếp tục chạy một cách an toàn khi có lỗi không mong muốn xảy ra.
C. Nó chỉ dùng để hiển thị thông báo lỗi.
D. Nó yêu cầu tất cả các phép toán phải luôn đúng.
20. 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 có thể bắt đầu bằng số.
B. Tên biến có thể chứa ký tự đặc biệt như ‘@’, ‘#’, ‘$’.
C. Tên biến không phân biệt chữ hoa, chữ thường.
D. Tên biến không được trùng với các từ khóa của Python.
21. Kiểu dữ liệu nào trong Python thường được sử dụng để lưu trữ một chuỗi các ký tự?
A. Integer (int)
B. Float (float)
C. String (str)
D. Boolean (bool)
22. Trong Python, ký tự ‘#’ dùng để làm gì trong một dòng mã?
A. Bắt đầu một chuỗi ký tự.
B. Bắt đầu một khối mã.
C. Bắt đầu một dòng chú thích (comment).
D. Kết thúc một câu lệnh.
23. Khi một hàm trong Python trả về một giá trị, ta sử dụng từ khóa nào?
A. return
B. yield
C. give
D. send
24. Trong Python, để so sánh xem hai giá trị có bằng nhau hay không, ta sử dụng toán tử nào?
25. Phát biểu nào sau đây mô tả đúng nhất về biến trong lập trình?
A. Biến là một lệnh để thực thi chương trình.
B. Biến là một vị trí trong bộ nhớ để lưu trữ dữ liệu.
C. Biến là một cấu trúc điều khiển luồng.
D. Biến là một hàm dùng để tính toán.
26. Tập hợp (set) trong Python có đặc điểm nổi bật nào so với danh sách (list)?
A. Các phần tử có thứ tự và có thể trùng lặp.
B. Các phần tử không có thứ tự và không được phép trùng lặp.
C. Chỉ chứa được các phần tử là số nguyên.
D. Các phần tử có thể thay đổi nhưng không thể thêm mới.
27. Vòng lặp ‘while’ trong Python sẽ tiếp tục thực thi khối lệnh bên trong nó cho đến khi nào?
A. Cho đến khi điều kiện kiểm tra là sai.
B. Cho đến khi điều kiện kiểm tra là đúng.
C. Cho đến khi gặp lệnh ‘break’.
D. Sau một số lần lặp cố định.
28. Trong lập trình Python, ‘module’ (mô-đun) là gì?
A. Một biến toàn cục.
B. Một chuỗi ký tự đơn lẻ.
C. Một tệp chứa mã Python có thể được nhập và sử dụng lại.
D. Một cấu trúc dữ liệu đặc biệt.
29. Vòng lặp ‘for’ trong Python thường được sử dụng khi nào?
A. Khi cần thực hiện một khối lệnh một lần duy nhất.
B. Khi cần thực hiện một khối lệnh với số lần lặp đã biết trước.
C. Khi cần thực hiện một khối lệnh cho đến khi một điều kiện cụ thể bị sai.
D. Khi cần định nghĩa một hàm có tham số.
30. Để thêm một phần tử mới vào cuối danh sách ‘my_list’ trong Python, ta sử dụng phương thức nào?
A. my_list.insert(element)
B. my_list.add(element)
C. my_list.append(element)
D. my_list.extend(element)
31. Câu lệnh nào dùng để đọc một giá trị từ bàn phím và lưu vào biến ‘diem’ trong Pascal?
A. Write(diem);
B. Readln(diem);
C. Assign(diem);
D. Print(diem);
32. Phát biểu nào sau đây KHÔNG đúng về biến trong lập trình?
A. Biến có thể thay đổi giá trị trong quá trình thực hiện chương trình.
B. Mỗi biến cần được khai báo kiểu dữ liệu trước khi sử dụng.
C. Tên biến phải luôn bắt đầu bằng một chữ cái.
D. Tên biến có thể chứa chữ cái, chữ số và dấu gạch dưới.
33. Trong Pascal, câu lệnh `x := x + 1;` tương đương với việc thực hiện hành động gì?
A. Giảm giá trị của biến ‘x’ đi 1.
B. Nhân giá trị của biến ‘x’ với 1.
C. Tăng giá trị của biến ‘x’ lên 1.
D. Gán giá trị 1 cho biến ‘x’.
34. Nếu một biến được khai báo là kiểu ‘Boolean’, nó có thể nhận những giá trị nào?
A. 0 hoặc 1
B. True hoặc False
C. A hoặc B
D. Có hoặc Không
35. Nếu một chương trình cần xử lý dữ liệu là ngày tháng, kiểu dữ liệu nào thường được sử dụng?
A. Integer
B. Real
C. String
D. Kiểu dữ liệu đặc biệt cho ngày tháng (ví dụ: Date, DateTime).
36. Trong lập trình, ‘gỡ lỗi’ (debugging) là quá trình gì?
A. Viết mã nguồn cho chương trình.
B. Tìm kiếm, xác định và sửa các lỗi (bugs) trong chương trình.
C. Tối ưu hóa hiệu suất của chương trình.
D. Thiết kế giao diện người dùng.
37. Phát biểu nào sau đây mô tả đúng về vai trò của ‘trình biên dịch’ (compiler)?
A. Là nơi người dùng nhập lệnh để thực thi chương trình.
B. Là phần mềm dịch mã nguồn (viết bằng ngôn ngữ lập trình bậc cao) thành mã máy (nhị phân) mà máy tính có thể hiểu và thực thi.
C. Là công cụ để gỡ lỗi (debug) chương trình.
D. Là nơi lưu trữ tất cả các biến và hằng số của chương trình.
38. Nếu bạn muốn viết một chương trình đếm số lần xuất hiện của một ký tự trong một chuỗi, bạn sẽ cần sử dụng cấu trúc lặp nào?
A. Cấu trúc rẽ nhánh (if-else).
B. Cấu trúc lặp (ví dụ: FOR, WHILE, REPEAT).
C. Chỉ cần khai báo biến.
D. Một hàm tính toán đơn giản.
39. Phát biểu nào sau đây KHÔNG phải là đặc điểm của ‘thuật toán’?
A. Tính dừng (finiteness): thuật toán phải kết thúc sau một số hữu hạn bước.
B. Tính rõ ràng (definiteness): mỗi bước của thuật toán phải được xác định rõ ràng, không mơ hồ.
C. Tính tùy biến (flexibility): thuật toán có thể thay đổi tùy ý trong quá trình thực hiện.
D. Tính đúng đắn (correctness): thuật toán phải cho ra kết quả đúng với yêu cầu bài toán.
40. Nếu biến ‘a’ có kiểu Integer và biến ‘b’ có kiểu Real, phép toán ‘a + b’ sẽ cho kết quả có kiểu dữ liệu gì?
A. Integer
B. Real
C. Boolean
D. Char
41. Trong Pascal, để khai báo một hằng số có tên là ‘PI’ với giá trị 3.14159, ta viết:
A. Var PI: Real = 3.14159;
B. Const PI = 3.14159;
C. Define PI = 3.14159;
D. Constant PI is 3.14159;
42. Đâu là một tên biến hợp lệ trong ngôn ngữ lập trình C++?
A. 2bien
B. bien_moi
C. bien-moi
D. for
43. Câu lệnh nào sau đây dùng để hiển thị giá trị của biến ‘ten’ lên màn hình trong Pascal?
A. Read(ten);
B. Write(‘ten’);
C. Writeln(ten);
D. Input(ten);
44. Trong Pascal, từ khóa ‘BEGIN’ và ‘END’ được dùng để làm gì?
A. Khai báo biến.
B. Định nghĩa một hàm.
C. Đánh dấu sự bắt đầu và kết thúc của một khối lệnh.
D. Tạo một vòng lặp.
45. Trong Pascal, vòng lặp `FOR i := 1 TO 10 DO …` sẽ thực hiện khối lệnh bên trong bao nhiêu lần?
A. 9 lần
B. 10 lần
C. 11 lần
D. Vô số lần
46. Trong ngôn ngữ lập trình Python, toán tử nào dùng để thực hiện phép chia lấy phần nguyên?
47. Trong Pascal, ký tự dùng để kết thúc một câu lệnh là gì?
48. Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây dùng để khai báo một biến kiểu số thực?
A. Var a: Integer;
B. Var b: Char;
C. Var c: Real;
D. Var d: Boolean;
49. Phát biểu nào sau đây mô tả đúng nhất về ‘mã nguồn’ (source code)?
A. Là tệp thực thi của chương trình.
B. Là một tập hợp các lệnh được viết bằng một ngôn ngữ lập trình mà con người có thể đọc và hiểu được.
C. Là tập hợp các dữ liệu mà chương trình sử dụng.
D. Là kết quả đầu ra của chương trình.
50. Nếu một chương trình cần thực hiện một phép tính toán học phức tạp, ví dụ như tính diện tích hình tròn, biến nào là cần thiết để lưu trữ giá trị của số Pi?
A. Một biến kiểu Integer.
B. Một biến kiểu Char.
C. Một hằng số kiểu Real hoặc Double.
D. Một biến kiểu Boolean.
51. Phát biểu nào sau đây mô tả đúng nhất về ‘kiểu dữ liệu’?
A. Là tên của một biến.
B. Là tập hợp các giá trị mà biến có thể nhận và các phép toán có thể thực hiện trên biến đó.
C. Là giá trị hiện tại của một biến.
D. Là một câu lệnh trong chương trình.
52. Kiểu dữ liệu nào phù hợp nhất để lưu trữ số lượng học sinh trong một lớp học?
A. Real
B. Char
C. Boolean
D. Integer
53. Phát biểu nào sau đây là đúng về vai trò của ‘trình thông dịch’ (interpreter)?
A. Trình thông dịch dịch toàn bộ chương trình thành mã máy trước khi thực thi.
B. Trình thông dịch thực thi mã nguồn từng dòng một, không tạo ra tệp mã máy độc lập.
C. Trình thông dịch chỉ dùng cho các ngôn ngữ biên dịch như C++.
D. Trình thông dịch không cần thiết cho các ngôn ngữ lập trình hiện đại.
54. Trong lập trình, ‘hằng’ (constant) khác với ‘biến’ (variable) ở điểm nào cơ bản nhất?
A. Hằng không cần khai báo kiểu dữ liệu.
B. Giá trị của hằng không thể thay đổi sau khi được gán.
C. Hằng chỉ có thể lưu trữ số.
D. Biến luôn có giá trị lớn hơn hằng.
55. Trong Pascal, cấu trúc `if … then … else …` được sử dụng cho mục đích gì?
A. Lặp lại một khối lệnh nhiều lần.
B. Thực hiện một câu lệnh hoặc một khối lệnh dựa trên một điều kiện.
C. Đọc dữ liệu từ tệp.
D. Khai báo kiểu dữ liệu mới.
56. Phép toán nào sau đây trong Pascal dùng để nối hai chuỗi ký tự?
57. Phát biểu nào sau đây mô tả đúng nhất về mục đích của việc khai báo biến?
A. Để làm cho chương trình chạy nhanh hơn.
B. Để máy tính biết cần bao nhiêu bộ nhớ để lưu trữ dữ liệu và loại dữ liệu đó là gì.
C. Để chương trình có thể đọc dữ liệu từ bàn phím.
D. Để kiểm tra lỗi cú pháp của chương trình.
58. Nếu cần lưu trữ một chuỗi ký tự như ‘Hello World’, kiểu dữ liệu nào là phù hợp nhất?
A. Integer
B. Real
C. String
D. Boolean
59. Cho đoạn mã Pascal sau: `x := 5; y := x + 2;`. Giá trị của biến ‘y’ sau khi thực hiện đoạn mã này là bao nhiêu?
60. Phát biểu nào sau đây là SAI về quy tắc đặt tên biến trong hầu hết các ngôn ngữ lập trình?
A. Tên biến có thể chứa ký tự đặc biệt như ‘@’, ‘#’.
B. Tên biến phải bắt đầu bằng chữ cái hoặc dấu gạch dưới.
C. Tên biến không được trùng với từ khóa của ngôn ngữ.
D. Tên biến phân biệt chữ hoa và chữ thường (case-sensitive) trong nhiều ngôn ngữ.
61. Trong Python, để tạo một comment (chú thích) trong mã nguồn, bạn sử dụng ký tự nào?
62. Trong Python, nếu bạn muốn lưu trữ một tập hợp các phần tử duy nhất và không có thứ tự, bạn nên sử dụng cấu trúc dữ liệu nào?
A. List
B. Tuple
C. Set
D. Dictionary
63. Phát biểu nào sau đây mô tả đúng nhất về ‘câu lệnh điều kiệ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 liên tiếp, và chỉ thực thi khối lệnh của điều kiện đúng đầu tiên.
C. Luôn luôn thực thi tất cả các khối lệnh.
D. Chỉ thực thi khối lệnh nếu không có điều kiện nào đúng.
64. Trong Python, làm thế nào để bạn thực hiện một phép toán số học mà không có phần dư (chia lấy phần nguyên)?
A. Sử dụng toán tử ‘/’.
B. Sử dụng toán tử ‘%’.
C. Sử dụng toán tử ‘//’.
D. Sử dụng toán tử ‘**’.
65. Phát biểu nào sau đây mô tả đúng về ‘phạm vi của biến’ (variable scope) trong Python?
A. Nó xác định loại dữ liệu mà biến có thể lưu trữ.
B. Nó chỉ định nơi trong chương trình mà biến có thể được truy cập và sử dụng.
C. Nó quyết định tốc độ xử lý của biến.
D. Nó là tên duy nhất để định danh một biến.
66. Trong Python, khi bạn muốn kiểm tra xem một biến có tồn tại trong một danh sách hay không, phương thức nào là hiệu quả nhất?
A. Sử dụng vòng lặp ‘for’ để duyệt qua từng phần tử.
B. Sử dụng toán tử ‘in’.
C. Sử dụng phương thức ‘.index()’.
D. Sử dụng phương thức ‘.count()’.
67. Phát biểu nào sau đây mô tả đúng về ‘lập trình hướng đối tượng’ (Object-Oriented Programming – OOP) trong Python?
A. Tập trung vào việc viết các câu lệnh tuần tự.
B. Tổ chức mã nguồn thành các ‘đối tượng’ (objects), mỗi đối tượng có thuộc tính (attributes) và phương thức (methods).
C. Chỉ sử dụng các hàm để xử lý dữ liệu.
D. Yêu cầu tất cả dữ liệu phải được lưu trữ trong các tệp tin.
68. Phát biểu nào sau đây là đúng về khái niệm ‘vòng lặp while’ trong Python?
A. Lặp qua một chuỗi các phần tử đã biết trước.
B. Thực hiện một khối lệnh lặp đi lặp lại miễn là một điều kiện cho trước còn đúng.
C. Yêu cầu người dùng nhập dữ liệu trước khi bắt đầu vòng lặp.
D. Thực hiện vòng lặp một số lần cố định.
69. Trong Python, làm thế nào để bạn thực hiện phép toán lấy phần dư (remainder) của một phép chia?
A. Sử dụng toán tử ‘//’.
B. Sử dụng toán tử ‘%’.
C. Sử dụng toán tử ‘/’.
D. Sử dụng toán tử ‘&’.
70. Trong lập trình Python, ‘biến’ (variable) được định nghĩa là gì?
A. Một câu lệnh điều kiện để kiểm soát luồng chương trình.
B. Một tên đại diện cho một giá trị hoặc dữ liệu trong bộ nhớ.
C. Một khối mã thực thi một nhiệm vụ cụ thể.
D. Một chuỗi ký tự dùng để tạo chú thích cho mã nguồn.
71. Phát biểu nào sau đây mô tả đúng nhất về khái niệm ‘vòng lặp for’ trong Python?
A. Thực hiện một khối lệnh nhiều lần cho đến khi một điều kiện nhất định trở thành sai.
B. Lặp qua một chuỗi các phần tử (như danh sách, chuỗi ký tự) và thực hiện một khối lệnh cho mỗi phần tử.
C. Hỏi người dùng một câu hỏi và thực hiện một khối lệnh dựa trên câu trả lời của họ.
D. Thực hiện một khối lệnh chỉ một lần duy nhất.
72. Trong Python, làm thế nào để bạn lấy độ dài của một chuỗi ký tự hoặc một danh sách?
A. Sử dụng phương thức ‘.size()’.
B. Sử dụng hàm ‘len()’.
C. Sử dụng phương thức ‘.length()’.
D. Sử dụng toán tử ‘+’.
73. Phát biểu nào sau đây là đúng về vai trò của hàm ‘print()’ trong Python?
A. Hàm này dùng để nhận dữ liệu nhập từ bàn phím.
B. Hàm này dùng để thực hiện các phép tính toán học.
C. Hàm này dùng để hiển thị thông tin ra màn hình console.
D. Hàm này dùng để lưu trữ dữ liệu vào biến.
74. Trong Python, để tạo một chú thích nhiều dòng, bạn có thể sử dụng tổ hợp ký tự nào?
A. Sử dụng dấu ‘#’ ở đầu mỗi dòng.
B. Sử dụng ba dấu nháy đơn (”’) hoặc ba dấu nháy kép (“””) bao quanh khối văn bản.
C. Sử dụng dấu ‘–‘ ở đầu mỗi dòng.
D. Sử dụng thẻ ‘comment’ tương tự HTML.
75. Trong Python, để định nghĩa một hàm, từ khóa nào được sử dụng?
A. var
B. function
C. def
D. define
76. Phát biểu nào sau đây mô tả đúng về ‘phương thức’ (method) của một đối tượng trong lập trình hướng đối tượng Python?
A. Là các biến lưu trữ dữ liệu của đối tượng.
B. Là các hàm được liên kết với một đối tượng, thực hiện các hành động hoặc thao tác trên đối tượng đó.
C. Là tên duy nhất để xác định một đối tượng.
D. Là một cấu trúc dữ liệu để lưu trữ nhiều đối tượng.
77. 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)?
A. Tuple
B. Set
C. List
D. Dictionary
78. Phát biểu nào sau đây mô tả đúng về ‘biến toàn cục’ (global variable) trong Python?
A. Chỉ có thể truy cập bên trong một hàm cụ thể.
B. Có thể truy cập và sửa đổi từ bất kỳ đâu trong phạm vi của chương trình.
C. Phải được khai báo bằng từ khóa ‘local’.
D. Tự động bị xóa khi hàm chứa nó kết thúc.
79. Phát biểu nào sau đây mô tả đúng về ‘buộc kiểu dữ liệu’ (type casting) trong Python?
A. Là quá trình thay đổi tên của một biến.
B. Là quá trình chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác.
C. Là quá trình xóa bỏ một biến khỏi bộ nhớ.
D. Là quá trình kiểm tra xem một biến có tồn tại hay không.
80. Trong Python, khi bạn muốn truy cập một phần tử của danh sách dựa trên vị trí của nó, bạn sử dụng cấu trúc nào?
A. Tên_biến[giá_trị]
B. Tên_biến(chỉ_số)
C. Tên_biến[chỉ_số]
D. Tên_biến{chỉ_số}
81. Phát biểu nào sau đây mô tả đúng về ‘lỗi cú pháp’ (Syntax Error) trong Python?
A. Xảy ra khi chương trình thực hiện sai logic.
B. Xảy ra khi trình thông dịch gặp một đoạn mã không tuân theo quy tắc ngữ pháp của Python.
C. 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ệ.
D. Xảy ra khi chương trình hết bộ nhớ.
82. Trong Python, để định nghĩa một lớp (class), bạn sử dụng từ khóa nào?
A. object
B. class
C. struct
D. define
83. Trong Python, khi bạn muốn tạo một bản sao độc lập của một đối tượng (ví dụ: một danh sách), bạn nên sử dụng phương thức nào?
A. Gán trực tiếp: new_list = original_list
B. Sử dụng phương thức ‘.copy()’.
C. Sử dụng phương thức ‘.duplicate()’.
D. Sử dụng hàm ‘create_copy()’.
84. Phát biểu nào sau đây mô tả đúng về ‘hàm’ (function) trong lập trình Python?
A. Một biến lưu trữ dữ liệu.
B. Một khối mã có thể tái sử dụng, thực hiện một nhiệm vụ cụ thể.
C. Một câu lệnh để dừng chương trình.
D. Một cấu trúc dữ liệu để lưu trữ nhiều giá trị.
85. Phát biểu nào sau đây mô tả đúng về ‘hàm input()’ trong Python?
A. Hàm này dùng để hiển thị dữ liệu ra màn hình.
B. Hàm này dùng để nhận dữ liệu nhập từ bàn phím của người dùng.
C. Hàm này dùng để thực hiện phép chia lấy dư.
D. Hàm này dùng để kiểm tra xem một số có phải là số nguyên tố hay không.
86. Phát biểu nào sau đây mô tả đúng về ‘thuộc tính’ (attribute) của một đối tượng trong lập trình hướng đối tượng Python?
A. Là hành động mà đối tượng có thể thực hiện.
B. Là các biến được liên kết với một đối tượng, mô tả trạng thái của nó.
C. Là tên của lớp mà đối tượng thuộc về.
D. Là một hàm để tạo ra đối tượng.
87. Phát biểu nào sau đây mô tả đúng về ‘từ khóa’ (keyword) trong Python?
A. Là các tên biến do người dùng tự đặt.
B. Là các định danh được bảo lưu có ý nghĩa đặc biệt trong ngôn ngữ lập trình.
C. Là các tên hàm có sẵn trong thư viện chuẩn.
D. Là các ký tự đặc biệt dùng để phân tách các câu lệnh.
88. Phát biểu nào sau đây mô tả đúng về ‘lỗi logic’ (Logic Error) trong Python?
A. Xảy ra khi bạn quên đóng ngoặc đơn.
B. Xảy ra khi chương trình chạy nhưng cho ra kết quả không đúng như mong đợi do sai sót trong thuật toán hoặc cách triển khai.
C. Xảy ra khi bạn sử dụng sai tên biến.
D. Xảy ra khi bạn cố gắng chia cho số không.
89. Trong Python, cấu trúc dữ liệu nào được sử dụng để lưu trữ các cặp khóa-giá trị (key-value pairs)?
A. List
B. Tuple
C. Set
D. Dictionary
90. Trong Python, khi làm việc với chuỗi ký tự (string), toán tử ‘+’ được sử dụng cho mục đích gì?
A. Thực hiện phép cộng số học giữa hai chuỗi số.
B. Nối hai hoặc nhiều chuỗi ký tự lại với nhau.
C. So sánh sự giống nhau giữa hai chuỗi ký tự.
D. Chuyển đổi một chuỗi ký tự thành số.
91. Đâu là sự khác biệt cơ bản giữa vòng lặp `FOR` và `WHILE` trong việc xác định số lần lặp?
A. `FOR` luôn lặp nhiều hơn `WHILE`.
B. `WHILE` yêu cầu số lần lặp phải được xác định trước, `FOR` thì không.
C. `FOR` phù hợp khi biết trước số lần lặp, `WHILE` phù hợp khi điều kiện lặp không xác định trước.
D. Không có sự khác biệt cơ bản nào.
92. Trong Pascal, câu lệnh `i := i – 1;` bên trong vòng lặp `WHILE i > 0 DO` có ý nghĩa gì đối với việc kết thúc vòng lặp?
A. Giúp vòng lặp tiến về điều kiện dừng (i <= 0).
B. Làm cho vòng lặp không bao giờ dừng.
C. Tăng tốc độ thực hiện của vòng lặp.
D. Chỉ ảnh hưởng đến giá trị của i, không ảnh hưởng đến vòng lặp.
93. Xét đoạn chương trình Pascal: `var x: integer; begin x := 0; repeat x := x + 2; until x > 10; writeln(x); end.`. Giá trị của x sau khi chạy chương trình là bao nhiêu?
94. Cấu trúc REPEAT-UNTIL khác với WHILE-DO ở điểm nào cơ bản nhất?
A. WHILE-DO lặp ít nhất một lần, REPEAT-UNTIL có thể không lặp lần nào.
B. REPEAT-UNTIL lặp ít nhất một lần, WHILE-DO có thể không lặp lần nào.
C. WHILE-DO kiểm tra điều kiện sau khi thực hiện khối lệnh.
D. REPEAT-UNTIL kiểm tra điều kiện trước khi thực hiện khối lệnh.
95. Trong Pascal, câu lệnh `FOR i := 10 DOWNTO 1 DO writeln(i);` sẽ thực hiện lệnh `writeln(i)` bao nhiêu lần?
A. 9 lần
B. 10 lần
C. 11 lần
D. 1 lần
96. Đâu là mục đích chính của việc sử dụng vòng lặp trong lập trình?
A. Để thực hiện một hành động một lần.
B. Để thực hiện một khối lệnh nhiều lần một cách tự động.
C. Để lưu trữ dữ liệu.
D. Để hiển thị thông báo lỗi.
97. Trong Pascal, câu lệnh `REPEAT … UNTIL condition;` đảm bảo điều kiện được kiểm tra khi nào?
A. Trước khi khối lệnh được thực hiện lần đầu.
B. Sau khi khối lệnh được thực hiện ít nhất một lần.
C. Chỉ sau khi khối lệnh được thực hiện nhiều lần.
D. Chỉ khi khối lệnh có câu lệnh `break`.
98. Để tính tổng các số chẵn từ 2 đến 100 trong Pascal, cách tiếp cận nào sau đây là phù hợp nhất bằng vòng lặp?
A. Sử dụng vòng lặp FOR với bước nhảy là 2.
B. Sử dụng vòng lặp WHILE và kiểm tra chia hết cho 2.
C. Sử dụng vòng lặp REPEAT-UNTIL và kiểm tra chia hết cho 2.
D. Cả ba cách trên đều phù hợp.
99. Trong Pascal, cấu trúc `FOR i := StartValue TO EndValue DO Statement;` sẽ lặp bao nhiêu lần nếu `StartValue` lớn hơn `EndValue` và bước nhảy mặc định là 1?
A. 1 lần
B. 0 lần
C. Nhiều lần, tùy thuộc vào giá trị của EndValue.
D. Báo lỗi biên dịch.
100. Cấu trúc lặp nào trong Pascal có thể dẫn đến vòng lặp vô hạn nếu điều kiện luôn đúng và không có sự thay đổi trạng thái bên trong khối lệnh?
A. FOR
B. WHILE-DO
C. CASE
D. IF-THEN
101. Cú pháp nào sau đây là đúng cho vòng lặp FOR trong Pascal khi lặp từ 1 đến 10?
A. FOR i = 1 TO 10 DO
B. FOR i FROM 1 TO 10 DO
C. FOR i := 1 TO 10 DO
D. FOR i = 1 DOWNTO 10 DO
102. Trong Pascal, vòng lặp nào thường được ưu tiên sử dụng khi biết trước số lần lặp?
A. WHILE-DO
B. REPEAT-UNTIL
C. FOR
D. IF-THEN
103. Trong lập trình, khi nào nên sử dụng vòng lặp vô hạn (infinite loop)?
A. Khi muốn chương trình chạy mãi mãi, ví dụ trong các hệ thống nhúng hoặc server.
B. Khi muốn tránh lỗi tràn bộ nhớ.
C. Khi cần thực hiện một hành động duy nhất.
D. Không bao giờ nên sử dụng vòng lặp vô hạn.
104. Cấu trúc lặp nào trong Pascal kiểm tra điều kiện ở cuối mỗi lần lặp?
A. WHILE-DO
B. FOR
C. REPEAT-UNTIL
D. CASE
105. Trong ngôn ngữ lập trình Pascal, cấu trúc điều khiển nào cho phép thực hiện một khối lệnh nhiều lần, với số lần lặp được xác định trước?
A. Câu lệnh IF-THEN-ELSE
B. Câu lệnh FOR
C. Câu lệnh WHILE-DO
D. Câu lệnh REPEAT-UNTIL
106. Trong Pascal, câu lệnh `i := i + 1;` bên trong một vòng lặp có vai trò gì?
A. Tăng giá trị biến đếm, giúp vòng lặp tiến tới điều kiện dừng.
B. Giảm giá trị biến đếm, làm vòng lặp chậm lại.
C. Đặt lại giá trị biến đếm về 0.
D. Ngừng vòng lặp ngay lập tức.
107. Nếu một vòng lặp `FOR i := 1 TO 5 DO` có một câu lệnh `break` (hoặc tương đương) bên trong, khi nào vòng lặp có thể dừng sớm hơn dự kiến?
A. Khi biến đếm ‘i’ đạt đến một giá trị nhất định.
B. Khi điều kiện kiểm tra ‘break’ trở thành đúng.
C. Khi vòng lặp thực hiện đủ 5 lần.
D. Câu lệnh ‘break’ không ảnh hưởng đến vòng lặp FOR.
108. Khi sử dụng vòng lặp `WHILE condition DO BEGIN … END;`, nếu `condition` không bao giờ thay đổi từ `TRUE` sang `FALSE` bên trong khối lệnh, hậu quả là gì?
A. Chương trình sẽ chạy chậm lại.
B. Chương trình sẽ kết thúc bình thường.
C. Chương trình sẽ bị treo (vòng lặp vô hạn).
D. Chương trình sẽ báo lỗi biên dịch.
109. Cấu trúc lặp nào trong Pascal có thể được mô tả là ‘thực hiện cho đến khi điều kiện là đúng’?
A. FOR
B. WHILE-DO
C. REPEAT-UNTIL
D. IF-THEN
110. Nếu bạn muốn tính tổng của một dãy số mà không biết trước số lượng phần tử, cấu trúc lặp nào là phù hợp nhất?
A. FOR
B. WHILE-DO hoặc REPEAT-UNTIL
C. IF-THEN
D. CASE
111. Xét đoạn chương trình Pascal sau: `var i: integer; begin for i := 5 downto 1 do writeln(i); end.`. Kết quả in ra màn hình là gì?
A. 1 2 3 4 5
B. 5 4 3 2 1
C. 1 2 3 4 5 6
D. 5 4 3 2 1 0
112. Xét vòng lặp `FOR i := 1 TO 5 DO BEGIN … END;`. Biến `i` sẽ có giá trị bao nhiêu sau khi vòng lặp kết thúc?
A. 5
B. 6
C. 1
D. Giá trị của `i` không xác định sau vòng lặp FOR.
113. Đoạn mã Pascal sau đây sẽ in ra bao nhiêu dòng? `var i: integer; begin for i := 1 to 5 do begin writeln(‘Hello’); end; end.`
A. 4 dòng
B. 5 dòng
C. 6 dòng
D. 1 dòng
114. Để thực hiện một hành động khi một điều kiện là đúng, ta sử dụng cấu trúc điều khiển nào?
A. Vòng lặp FOR
B. Câu lệnh IF-THEN
C. Câu lệnh REPEAT-UNTIL
D. Câu lệnh WHILE-DO
115. Trong Pascal, vòng lặp WHILE-DO sẽ dừng khi nào?
A. Khi điều kiện lặp trở thành sai (false).
B. Khi điều kiện lặp trở thành đúng (true).
C. Sau khi thực hiện đúng 5 lần lặp.
D. Khi người dùng nhập lệnh dừng.
116. Nếu điều kiện trong vòng lặp WHILE-DO ban đầu đã sai, điều gì sẽ xảy ra?
A. Khối lệnh bên trong vòng lặp sẽ được thực hiện một lần.
B. Khối lệnh bên trong vòng lặp sẽ không được thực hiện lần nào.
C. Chương trình sẽ báo lỗi.
D. Vòng lặp sẽ thực hiện 10 lần.
117. Trong Pascal, để thực hiện một hành động khi một điều kiện là sai, ta có thể sử dụng cách nào?
A. IF-THEN-ELSE với điều kiện đảo ngược.
B. Vòng lặp WHILE với điều kiện sai.
C. Vòng lặp REPEAT-UNTIL với điều kiện sai.
D. Chỉ có thể dùng IF-THEN.
118. Trong Pascal, để lặp lại một khối lệnh 100 lần, ta nên sử dụng cấu trúc nào?
A. WHILE-DO với biến đếm tăng dần.
B. REPEAT-UNTIL với biến đếm tăng dần.
C. FOR với số lần lặp là 100.
D. IF-THEN với điều kiện đếm.
119. Khi sử dụng vòng lặp FOR trong Pascal với bước nhảy là 1, nếu muốn lặp từ N về 1, ta dùng từ khóa nào?
A. TO
B. DOWNTO
C. STEP
D. WHILE
120. Xét đoạn mã Pascal: `var i: integer; begin i := 1; while i <= 5 do begin writeln(i); i := i + 1; end; end.`. Lựa chọn nào mô tả đúng nhất kết quả đầu ra?
A. In ra số 1, 5 lần.
B. In ra các số từ 1 đến 5, mỗi số trên một dòng.
C. In ra số 6.
D. Không in gì cả.
121. Phát biểu nào sau đây mô tả đúng về toán tử ‘OR’ trong Pascal?
A. Trả về True chỉ khi cả hai toán hạng đều là True.
B. Trả về False chỉ khi cả hai toán hạng đều là False.
C. Trả về True nếu một trong hai toán hạng là True.
D. Trả về False bất kể giá trị của toán hạng.
122. Trong Pascal, từ khóa nào được sử dụng để bắt đầu khối lệnh của một chương trình?
A. BEGIN
B. START
C. PROGRAM
D. INIT
123. Phát biểu nào sau đây là đúng về toán tử ‘AND’ trong Pascal?
A. Trả về True nếu ít nhất một trong hai toán hạng là True.
B. Trả về True chỉ khi cả hai toán hạng đều là True.
C. Trả về True nếu cả hai toán hạng đều là False.
D. Trả về False bất kể giá trị của toán hạng.
124. Trong Pascal, để đọc giá trị từ bàn phím vào biến ‘inputVal’, ta sử dụng câu lệnh nào?
A. Writeln(inputVal);
B. Read(inputVal);
C. Scan(inputVal);
D. Input(inputVal);
125. Trong vòng lặp WHILE của Pascal, điều kiện kiểm tra được thực hiện ở đâu?
A. Chỉ sau khi vòng lặp thực hiện xong.
B. Trước mỗi lần lặp.
C. Sau mỗi lần lặp, trước khi kiểm tra lại.
D. Điều kiện không được kiểm tra.
126. Trong Pascal, để thực hiện phép chia lấy phần dư với hai số nguyên ‘a’ và ‘b’, ta sử dụng biểu thức nào?
A. a DIV b
B. a / b
C. a MOD b
D. a % b
127. Trong Pascal, toán tử nào được dùng để thực hiện phép chia lấy phần nguyên?
128. Phát biểu nào sau đây mô tả đúng nhất về kiểu dữ liệu ‘boolean’ trong lập trình?
A. Chỉ lưu trữ các ký tự.
B. Lưu trữ các số thực có dấu phẩy động.
C. Lưu trữ hai giá trị ‘True’ hoặc ‘False’.
D. Lưu trữ chuỗi ký tự có độ dài thay đổi.
129. Trong Pascal, câu lệnh nào dùng để gán giá trị của biến ‘b’ cho biến ‘a’?
A. a == b;
B. a = b;
C. a := b;
D. copy(a, b);
130. Trong Pascal, để truy cập phần tử thứ 5 của mảng ‘myArray’, ta viết:
A. myArray(5);
B. myArray[5];
C. myArray.5;
D. myArray{5};
131. Phát biểu nào sau đây là đúng về kiểu dữ liệu ‘string’ trong Pascal?
A. Chỉ lưu trữ một ký tự.
B. Lưu trữ một chuỗi ký tự.
C. Lưu trữ số nguyên.
D. Lưu trữ giá trị logic.
132. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘char’ trong Pascal?
A. Lưu trữ số nguyên.
B. Lưu trữ một ký tự đơn.
C. Lưu trữ chuỗi ký tự.
D. Lưu trữ giá trị đúng/sai.
133. Trong Pascal, câu lệnh nào dùng để kết thúc một chương trình?
A. END.
B. FINISH.
C. STOP.
D. CLOSE.
134. Câu lệnh nào sau đây trong Pascal sẽ in ra màn hình giá trị của biến ‘x’ kèm theo một dòng trống xuống dưới?
A. Write(x);
B. Writeln(x);
C. Print(x);
D. Display(x);
135. Phát biểu nào sau đây mô tả đúng về vai trò của phần khai báo trong chương trình Pascal?
A. Chứa các lệnh thực thi chính.
B. Nơi định nghĩa các biến, hằng, kiểu dữ liệu, thủ tục, hàm.
C. Chỉ chứa tên chương trình.
D. Dùng để hiển thị kết quả ra màn hình.
136. Toán tử nào trong Pascal được dùng để tính phần dư của phép chia?
137. Trong Pascal, câu lệnh nào được dùng để so sánh hai giá trị và trả về giá trị logic (True hoặc False)?
A. Toán tử gán (:=)
B. Toán tử số học (+, -, *, /)
C. Toán tử quan hệ (=, , , =)
D. Toán tử logic (AND, OR, NOT)
138. Phát biểu nào sau đây mô tả đúng về cách sử dụng cặp dấu ngoặc nháy đơn (‘ ‘) trong Pascal?
A. Dùng để khai báo biến.
B. Dùng để bao quanh chuỗi ký tự.
C. Dùng để thực hiện phép tính.
D. Dùng để chú thích mã.
139. Đâu là cách khai báo hằng số đúng trong ngôn ngữ lập trình Pascal?
A. VAR PI = 3.14;
B. CONST PI: 3.14;
C. CONST PI = 3.14;
D. DEFINE PI = 3.14;
140. Câu lệnh nào sau đây trong Pascal dùng để gán giá trị 5 cho biến ‘age’ kiểu số nguyên?
A. age = 5;
B. age := 5;
C. age == 5;
D. SET age = 5;
141. Phát biểu nào sau đây mô tả đúng về kiểu dữ liệu ‘real’ trong Pascal?
A. Chỉ lưu trữ số nguyên.
B. Lưu trữ các số có phần thập phân.
C. Lưu trữ hai giá trị Đúng/Sai.
D. Lưu trữ ký tự.
142. Phát biểu nào sau đây về vai trò của ‘BEGIN’ và ‘END.’ trong chương trình Pascal là chính xác?
A. Đánh dấu bắt đầu và kết thúc của phần khai báo.
B. Đánh dấu bắt đầu và kết thúc của một khối lệnh hoặc chương trình.
C. Dùng để định nghĩa tên chương trình.
D. Dùng để khai báo biến.
143. Đâu là cách khai báo một biến mảng trong Pascal?
A. VAR arr: ARRAY [1..10] OF INTEGER;
B. VAR arr: INTEGER ARRAY [10];
C. VAR arr: INTEGER[10];
D. VAR arr: INTEGER OF ARRAY(10);
144. Trong Pascal, câu lệnh nào sẽ thực hiện lặp lại khối lệnh cho đến khi điều kiện trở thành sai?
A. FOR … DO
B. WHILE … DO
C. IF … THEN
D. CASE … OF
145. Phát biểu nào sau đây về vòng lặp FOR trong Pascal là chính xác nhất?
A. Chỉ có thể lặp với số lần xác định trước.
B. Thực hiện lặp vô hạn.
C. Vòng lặp kết thúc dựa trên một điều kiện logic.
D. Vòng lặp chỉ chạy một lần.
146. Phát biểu nào sau đây là đúng về cấu trúc của một chương trình Pascal?
A. Chỉ bao gồm phần khai báo.
B. Chỉ bao gồm phần thân chương trình.
C. Bao gồm phần khai báo và phần thân chương trình.
D. Phần khai báo phải đứng sau phần thân chương trình.
147. Trong Pascal, câu lệnh nào dùng để lặp lại một khối lệnh một số lần xác định trước, ví dụ từ 1 đến 10?
A. WHILE
B. IF
C. FOR
D. CASE
148. Trong cấu trúc CASE của Pascal, nếu không có mệnh đề ‘ELSE’ (hoặc ‘OTHERWISE’ tùy phiên bản) và không có giá trị nào khớp với ‘selector’, điều gì sẽ xảy ra?
A. Chương trình sẽ thực hiện một lệnh mặc định.
B. Chương trình sẽ dừng lại và báo lỗi.
C. Chương trình sẽ tiếp tục thực thi lệnh sau khối CASE.
D. Một giá trị ngẫu nhiên sẽ được gán.
149. Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây được sử dụng để khai báo một biến kiểu số nguyên?
A. VAR a: real;
B. VAR a: char;
C. VAR a: string;
D. VAR a: integer;
150. Trong cấu trúc IF-THEN-ELSE của Pascal, khi điều kiện là sai và có mệnh đề ELSE, hành động nào sẽ được thực hiện?
A. Không có hành động nào được thực hiện.
B. Mệnh đề THEN sẽ được thực hiện.
C. Mệnh đề ELSE sẽ được thực hiện.
D. Chương trình sẽ báo lỗi.