1. Cho đoạn mã sau (giả định):
sum = 0
for i = 1 to 5 do
sum = sum + i
Giá trị cuối cùng của biến ‘sum’ là bao nhiêu?
2. Đoạn mã C++ sau đây sẽ in ra gì?
int count = 0;
while (count < 3) {
cout << "Hello";
count++;
}
A. HelloHelloHello
B. Hello
C. HelloHello
D. Vòng lặp vô hạn.
3. Đâu là một ví dụ về việc sử dụng vòng lặp lồng nhau để tạo ra một mẫu hình?
A. In một hình vuông bằng ký tự ‘*’.
B. Tính tổng các số từ 1 đến 10.
C. Tìm số lớn nhất trong một mảng.
D. Đọc dữ liệu từ một tệp tin.
4. Câu lệnh nào sau đây trong lập trình sẽ bỏ qua phần còn lại của lần lặp hiện tại và tiếp tục với lần lặp tiếp theo?
A. continue
B. break
C. exit
D. goto
5. Trong một vòng lặp, nếu điều kiện ban đầu là sai, vòng lặp nào sẽ không thực thi khối lệnh lần nào?
A. WHILE…DO
B. REPEAT…UNTIL
C. DO…WHILE (hoặc tương đương)
D. Cả ba loại vòng lặp trên đều sẽ thực thi ít nhất một lần.
6. Câu lệnh nào sau đây trong hầu hết các ngôn ngữ lập trình được sử dụng để lặp lại một khối mã cho đến khi một điều kiện cụ thể trở thành sai?
A. WHILE
B. FOR
C. CASE
D. IF
7. Nếu bạn muốn in ra các số từ 1 đến 5, nhưng dừng lại nếu gặp số 3, bạn sẽ sử dụng cấu trúc nào?
A. Vòng lặp FOR với IF và BREAK khi gặp số 3.
B. Vòng lặp WHILE với IF và CONTINUE khi gặp số 3.
C. Vòng lặp REPEAT…UNTIL với IF và BREAK khi gặp số 3.
D. Chỉ sử dụng vòng lặp FOR không cần điều kiện.
8. Đâu là một ví dụ về ‘vòng lặp vô hạn’ (infinite loop)?
A. WHILE TRUE DO BEGIN … END
B. FOR i := 1 TO 10 DO BEGIN … END
C. REPEAT … UNTIL i = 10 (với i tăng dần)
D. WHILE i < 10 DO BEGIN … END (với i giảm dần)
9. Trong lập trình, mục đích chính của việc sử dụng vòng lặp là gì?
A. Để thực thi một khối lệnh nhiều lần mà không cần viết lại code.
B. Để lưu trữ dữ liệu tạm thời.
C. Để kiểm tra lỗi trong chương trình.
D. Để định nghĩa các hàm mới.
10. Nếu bạn có một danh sách các số và muốn in ra tất cả các số chẵn trong danh sách đó, bạn sẽ sử dụng cấu trúc điều kiện nào bên trong vòng lặp?
A. IF (số % 2 == 0)
B. IF (số % 2 != 0)
C. IF (số == 0)
D. IF (số > 0)
11. Khi nào thì việc sử dụng vòng lặp ‘DO-WHILE’ (hoặc tương đương như REPEAT-UNTIL) là phù hợp nhất?
A. Khi cần đảm bảo khối lệnh được thực thi ít nhất một lần.
B. Khi số lần lặp đã biết chính xác trước.
C. Khi điều kiện dừng vòng lặp được kiểm tra ở đầu mỗi lần lặp.
D. Khi cần lặp lại một số lần cố định, ví dụ 100 lần.
12. Đoạn mã Python sau đây sẽ in ra gì?
for i in range(5):
if i == 2:
continue
print(i, end=’ ‘)
A. 0 1 3 4
B. 0 1 2 3 4
C. 0 1 3 4
D. 1 2 3 4
13. Một lập trình viên muốn tạo một chương trình đếm ngược từ 10 xuống 1. Cấu trúc lặp nào là phù hợp nhất?
A. FOR i := 10 DOWNTO 1 DO
B. WHILE i >= 1 DO (với i khởi tạo là 10)
C. REPEAT … UNTIL i = 0 (với i giảm dần)
D. Tất cả các phương án trên đều phù hợp.
14. Khi sử dụng vòng lặp REPEAT…UNTIL trong Pascal, khối lệnh bên trong vòng lặp sẽ được thực thi ít nhất bao nhiêu lần?
A. Một lần.
B. Hai lần.
C. Số lần xác định trước bởi điều kiện.
D. Không lần nào nếu điều kiện sai ngay từ đầu.
15. Đoạn mã Python sau đây sẽ cho kết quả gì?
numbers = [2, 4, 6, 8]
for num in numbers:
if num % 2 == 0:
print(num, end=’ ‘)
else:
break
A. 2 4 6 8
B. 2 4 6
C. 2
D. Không có gì được in ra.
16. Trong việc xử lý dữ liệu, nếu bạn cần thực hiện một thao tác trên mỗi phần tử của một mảng, cấu trúc lặp nào thường được ưu tiên sử dụng?
A. Vòng lặp FOR hoặc FOREACH (tùy ngôn ngữ) để duyệt qua từng phần tử.
B. Vòng lặp WHILE với điều kiện đếm số phần tử của mảng.
C. Vòng lặp REPEAT…UNTIL để duyệt qua mảng.
D. Tất cả các loại vòng lặp đều phù hợp như nhau.
17. Trong lập trình, một vòng lặp ‘lồng nhau’ được sử dụng để thực hiện các tác vụ nào sau đây?
A. Thao tác trên cấu trúc dữ liệu hai chiều như ma trận.
B. Tính tổng các số nguyên tố.
C. Tìm kiếm một giá trị trong danh sách.
D. Đọc dữ liệu từ một tệp văn bản đơn giản.
18. Trong ngôn ngữ lập trình C++, câu lệnh nào sau đây được dùng để thoát hoàn toàn khỏi vòng lặp?
A. break
B. continue
C. return
D. goto
19. Trong lập trình, ‘lặp lồng nhau’ (nested loops) là gì?
A. Một vòng lặp nằm bên trong một vòng lặp khác.
B. Hai vòng lặp chạy song song.
C. Một vòng lặp chỉ chạy một lần.
D. Một vòng lặp được gọi từ một hàm khác.
20. Trong lập trình, khái niệm ‘vòng lặp’ (loop) được sử dụng để thực hiện một khối lệnh nhiều lần. Câu lệnh nào sau đây trong Pascal thường được sử dụng cho vòng lặp với số lần lặp đã biết trước?
A. FOR…DO
B. WHILE…DO
C. REPEAT…UNTIL
D. IF…THEN
21. Xét đoạn mã giả:
count = 0
while count < 3:
print('Hello')
count = count + 1
Đầu ra của đoạn mã này sẽ là gì?
A. Hello Hello Hello
B. Hello Hello
C. Hello
D. Hello Hello Hello Hello
22. Khi bạn cần thực hiện một hành động cho đến khi một điều kiện cụ thể được đáp ứng, và bạn không chắc chắn liệu hành động đó có cần thực hiện lần nào hay không, bạn nên sử dụng loại vòng lặp nào?
A. WHILE…DO
B. REPEAT…UNTIL
C. DO…WHILE
D. FOR…DO
23. Đâu là một ví dụ về lỗi logic phổ biến khi sử dụng vòng lặp?
A. Quên tăng biến đếm trong vòng lặp WHILE, dẫn đến vòng lặp vô hạn.
B. Sử dụng sai kiểu dữ liệu cho biến đếm.
C. Viết sai cú pháp câu lệnh lặp.
D. Sử dụng quá nhiều biến trong vòng lặp.
24. Đoạn mã Python sau đây sẽ in ra gì?
for row in range(3):
for col in range(2):
print(‘*’, end=”)
print()
A. **
**
**
B. ***
***
C. *
*
*
D. **
**
**
**
**
25. Xét đoạn mã giả sau:
WHILE điều kiện đúng DO
Thực hiện khối lệnh.
Khi nào vòng lặp này sẽ dừng?
A. Khi điều kiện trở thành sai.
B. Khi thực hiện đủ 10 lần lặp.
C. Khi gặp câu lệnh BREAK.
D. Khi gặp câu lệnh CONTINUE.
26. Cho đoạn mã Pascal:
VAR
i: Integer;
BEGIN
FOR i := 1 TO 5 DO
BEGIN
IF i MOD 2 = 0 THEN
Write(i);
END;
END.
Đầu ra của chương trình này là gì?
27. Nếu bạn cần tính tổng các phần tử của một danh sách mà không biết trước số lượng phần tử, bạn nên sử dụng loại vòng lặp nào?
A. WHILE hoặc FOREACH, dựa trên việc duyệt qua từng phần tử của danh sách.
B. FOR với một số lần lặp cố định, ví dụ 100.
C. Chỉ có thể sử dụng REPEAT…UNTIL.
D. Không thể thực hiện nếu không biết số lượng phần tử.
28. Trong ngôn ngữ lập trình Pascal, cấu trúc lặp nào cho phép bạn kiểm soát chính xác số lần lặp thông qua một biến đếm có giới hạn?
A. FOR
B. WHILE
C. REPEAT
D. CASE
29. Trong lập trình, khi nào nên sử dụng vòng lặp ‘WHILE’ thay vì ‘FOR’?
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.
B. Khi số lần lặp đã biết chính xác trước khi vòng lặp bắt đầu.
C. Khi cần thực hiện khối lệnh ít nhất một lần.
D. Khi cần xử lý một mảng dữ liệu có kích thước cố định.
30. Một chương trình cần tính tổng của các số tự nhiên từ 1 đến 100. Phương pháp nào sau đây là hiệu quả nhất để thực hiện việc này bằng vòng lặp?
A. Sử dụng vòng lặp FOR với biến đếm từ 1 đến 100 và cộng dồn vào một biến tổng.
B. Sử dụng vòng lặp WHILE với điều kiện đếm nhỏ hơn hoặc bằng 100 và cộng dồn.
C. Sử dụng công thức toán học n*(n+1)/2 với n=100.
D. Cả ba phương pháp trên đều có hiệu quả tương đương.
31. Trong Python, câu lệnh `my_list.pop()` sẽ thực hiện hành động gì?
A. Xóa và trả về phần tử cuối cùng của danh sách.
B. Xóa và trả về phần tử đầu tiên của danh sách.
C. Xóa một phần tử tại chỉ số được chỉ định và trả về nó.
D. Xóa tất cả các phần tử khỏi danh sách.
32. Câu lệnh ‘continue’ trong một vòng lặp có tác dụng gì?
A. Bỏ qua phần còn lại của khối lệnh trong lần lặp hiện tại và chuyển sang lần lặp tiếp theo.
B. Thoát hoàn toàn khỏi vòng lặp.
C. Tăng giá trị của biến đếm vòng lặp lên 1.
D. In ra thông báo lỗi và dừng chương trình.
33. Câu lệnh nào trong Python được sử dụng để lấy độ dài (số lượng phần tử) của một danh sách?
A. len()
B. size()
C. count()
D. length()
34. Phân tích các trường hợp sau, trường hợp nào **KHÔNG** cần sử dụng cấu trúc lặp?
A. Tính tổng của 100 số nguyên đầu tiên.
B. Tìm kiếm một phần tử trong danh sách lớn.
C. In ra tên của người dùng một lần duy nhất.
D. Thực hiện một tác vụ lặp đi lặp lại cho đến khi người dùng nhập ‘quit’.
35. Khi làm việc với danh sách (list) trong Python, thao tác nào sau đây thêm một phần tử vào cuối danh sách?
A. append()
B. insert()
C. extend()
D. add()
36. Phát biểu nào sau đây mô tả chính xác nhất chức năng của câu lệnh ‘break’ trong một vòng lặp?
A. Thoát ngay lập tức khỏi vòng lặp hiện tại, bất kể điều kiện lặp còn đúng hay không.
B. Bỏ qua lần lặp hiện tại và chuyển sang lần lặp tiếp theo.
C. Tạm dừng vòng lặp và chờ một sự kiện từ người dùng.
D. Thực hiện lại lần lặp hiện tại.
37. Để xóa một phần tử tại một chỉ số cụ thể trong danh sách Python mà không cần trả về giá trị của phần tử đó, ta nên sử dụng lệnh nào?
A. del my_list[index]
B. remove(my_list[index])
C. pop(index)
D. clear(my_list[index])
38. Khi nào thì ta nên cân nhắc sử dụng đệ quy thay vì vòng lặp để giải quyết một bài toán?
A. Khi bài toán có thể được chia thành các bài toán con giống nhau và có cấu trúc tự lặp.
B. Khi cần tối ưu hóa hiệu suất và tránh sử dụng bộ nhớ quá nhiều.
C. Khi cần thực hiện một hành động lặp lại một số lần xác định trước.
D. Khi cần truy cập trực tiếp vào các phần tử của mảng theo chỉ số.
39. Trong ngôn ngữ lập trình Python, câu lệnh ‘for i in range(5):’ sẽ thực thi khối lệnh bên trong bao nhiêu lần?
A. 5 lần, với ‘i’ nhận các giá trị từ 0 đến 4.
B. 6 lần, với ‘i’ nhận các giá trị từ 0 đến 5.
C. 4 lần, với ‘i’ nhận các giá trị từ 1 đến 4.
D. 5 lần, với ‘i’ nhận các giá trị từ 1 đến 5.
40. Việc sử dụng vòng lặp lồng nhau để duyệt qua tất cả các cặp phần tử trong một danh sách có kích thước N thường dẫn đến độ phức tạp thời gian là bao nhiêu?
A. O(N^2).
B. O(N).
C. O(log N).
D. O(1).
41. Nếu ta có một danh sách Python là `my_list = [10, 20, 30, 40, 50]` và thực hiện `my_list[1:4]`, kết quả trả về sẽ là gì?
A. [20, 30, 40]
B. [10, 20, 30, 40]
C. [20, 30]
D. [10, 20, 30, 40, 50]
42. Phát biểu nào sau đây mô tả đúng nhất về slicing (cắt lát) trong Python đối với danh sách?
A. Tạo ra một danh sách con mới bằng cách chỉ định một phạm vi các chỉ số.
B. Xóa tất cả các phần tử khỏi danh sách.
C. Đảo ngược thứ tự của danh sách.
D. Tính toán độ dài của danh sách.
43. Khi thực hiện một phép toán trên tất cả các phần tử của một danh sách lớn, việc sử dụng các thư viện tối ưu hóa như NumPy trong Python so với vòng lặp ‘for’ thuần túy thường mang lại lợi ích gì?
A. Hiệu suất cao hơn đáng kể do các phép toán được thực hiện bằng mã C/Fortran hiệu quả.
B. Dễ đọc và dễ hiểu hơn.
C. Giảm thiểu việc sử dụng bộ nhớ.
D. Cho phép xử lý các kiểu dữ liệu phức tạp hơn.
44. Phát biểu nào sau đây mô tả đúng nhất về một ‘mảng’ (array) trong lập trình?
A. Là một tập hợp các phần tử cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ và có thể truy cập bằng chỉ số.
B. Là một tập hợp các phần tử có kiểu dữ liệu khác nhau, không có thứ tự.
C. Là một tập hợp các cặp khóa-giá trị.
D. Là một chuỗi các ký tự được bao quanh bởi dấu nháy đơn hoặc nháy kép.
45. So sánh hai thuật toán sau: Thuật toán A có độ phức tạp thời gian O(n^2) và Thuật toán B có độ phức tạp thời gian O(n). Thuật toán nào thường được coi là hiệu quả hơn khi xử lý lượng dữ liệu lớn?
A. Thuật toán B vì độ phức tạp tuyến tính O(n) tăng chậm hơn so với O(n^2).
B. Thuật toán A vì O(n^2) luôn nhanh hơn O(n).
C. Cả hai thuật toán có hiệu quả như nhau.
D. Hiệu quả phụ thuộc vào ngôn ngữ lập trình.
46. Tại sao các ngôn ngữ lập trình hiện đại thường cung cấp cả cấu trúc ‘list’ và ‘array’?
A. Để cung cấp sự linh hoạt: ‘list’ thường động và có thể thay đổi kích thước, còn ‘array’ thường tĩnh và hiệu quả hơn cho các phép toán số học.
B. Chúng là hai tên gọi khác nhau cho cùng một cấu trúc dữ liệu.
C. Để hỗ trợ các kiểu dữ liệu khác nhau cho mỗi phần tử.
D. Để chỉ có thể lưu trữ số nguyên trong ‘array’ và các kiểu khác trong ‘list’.
47. Trong lập trình, một vòng lặp lồng nhau (nested loop) là gì?
A. Một vòng lặp nằm bên trong khối lệnh của một vòng lặp khác.
B. Hai vòng lặp được thực thi song song.
C. Một vòng lặp chỉ có một câu lệnh duy nhất.
D. Một vòng lặp chỉ thực hiện đúng một lần.
48. Phát biểu nào sau đây mô tả đúng về cách hoạt động của câu lệnh ‘break’ trong vòng lặp ‘while’?
A. Làm cho điều kiện của vòng lặp ‘while’ trở thành ‘False’ ngay lập tức.
B. Chỉ đơn giản là 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. Thoát khỏi vòng lặp ‘while’ ngay lập tức và chuyển quyền điều khiển cho câu lệnh tiếp theo sau vòng lặp.
D. Tạm dừng vòng lặp cho đến khi một sự kiện bên ngoài xảy ra.
49. Khi phân tích hiệu quả thuật toán, độ phức tạp thời gian ‘O(n)’ (độ phức tạp tuyến tính) mô tả điều gì?
A. Thời gian thực thi tăng tỷ lệ thuận với kích thước của đầu vào (n).
B. Thời gian thực thi không đổi bất kể kích thước đầu vào.
C. Thời gian thực thi tăng theo bình phương kích thước đầu vào.
D. Thời gian thực thi giảm khi kích thước đầu vào tăng.
50. Để chèn một phần tử vào một vị trí cụ thể trong danh sách Python, ta nên sử dụng phương thức nào?
A. insert(index, element)
B. append(element)
C. add(element, index)
D. push(element, index)
51. Xét đoạn mã Python sau:
“`python
for i in range(3):
for j in range(2):
print(f’i={i}, j={j}’)
“`
Đoạn mã này sẽ in ra bao nhiêu dòng?
A. 6 dòng.
B. 5 dòng.
C. 3 dòng.
D. 2 dòng.
52. Một lập trình viên muốn in ra màn hình tất cả các số chẵn từ 2 đến 10. Cấu trúc lặp ‘for’ nào sau đây là phù hợp nhất và hiệu quả nhất để thực hiện điều này?
A. for i in range(2, 11, 2): print(i)
B. for i in range(1, 11): if i % 2 == 0: print(i)
C. for i in range(10): if i % 2 == 0: print(i + 2)
D. for i in range(1, 6): print(i * 2)
53. Theo phân tích phổ biến, việc sử dụng các cấu trúc điều khiển lặp như ‘while’ và ‘for’ trong lập trình nhằm mục đích gì là chủ yếu?
A. Thực hiện một khối lệnh nhiều lần cho đến khi điều kiện được thỏa mãn hoặc trong một số lần xác định. Kết luận Lý giải
B. Cho phép chương trình đưa ra các quyết định dựa trên các điều kiện khác nhau.
C. Thay đổi luồng thực thi của chương trình dựa trên giá trị của một biến.
D. Tổ chức mã nguồn thành các khối có thể tái sử dụng.
54. Khi thực thi vòng lặp lồng nhau, vòng lặp bên trong sẽ thực hiện bao nhiêu lần lặp cho mỗi lần lặp của vòng lặp bên ngoài?
A. Toàn bộ số lần lặp của vòng lặp bên trong sẽ được thực thi đầy đủ.
B. Chỉ một lần lặp duy nhất.
C. Số lần lặp bằng với số lần lặp của vòng lặp bên ngoài.
D. Số lần lặp phụ thuộc vào điều kiện của vòng lặp bên ngoài.
55. Cấu trúc dữ liệu nào thường được sử dụng để lưu trữ một tập hợp các phần tử có thứ tự và có thể truy cập bằng chỉ số?
A. Danh sách (List) hoặc Mảng (Array).
B. Tập hợp (Set).
C. Từ điển (Dictionary).
D. Chuỗi ký tự (String).
56. Câu lệnh ‘while True:’ trong Python sẽ tạo ra một vòng lặp như thế nào?
A. Một vòng lặp vô hạn, trừ khi có một câu lệnh ‘break’ hoặc điều kiện thoát khác bên trong khối lệnh.
B. Một vòng lặp chỉ chạy đúng một lần.
C. Một vòng lặp chạy đúng 100 lần theo mặc định.
D. Một vòng lặp sẽ tự động dừng sau khi thực hiện 1000 lần lặp.
57. Giả sử có một vòng lặp ‘for i in range(10):’ và bên trong vòng lặp có câu lệnh ‘if i == 5: continue’. Điều gì sẽ xảy ra khi ‘i’ bằng 5?
A. Các lệnh sau ‘continue’ trong lần lặp đó sẽ bị bỏ qua, và vòng lặp sẽ tiếp tục với giá trị ‘i’ tiếp theo (là 6).
B. Vòng lặp sẽ kết thúc ngay lập tức.
C. Chương trình sẽ in ra giá trị 5 và sau đó dừng.
D. Giá trị ‘i’ sẽ tăng lên 6 ngay lập tức mà không thực thi các lệnh khác.
58. Phát biểu nào sau đây mô tả đúng về sự khác biệt cơ bản giữa vòng lặp ‘for’ và ‘while’ trong việc xử lý danh sách?
A. ‘for’ thường dùng khi biết trước số lần lặp hoặc muốn duyệt qua từng phần tử, ‘while’ dùng khi điều kiện dừng không xác định trước.
B. ‘for’ chỉ dùng cho mảng tĩnh, ‘while’ dùng cho danh sách động.
C. ‘for’ luôn nhanh hơn ‘while’.
D. ‘while’ chỉ có thể dùng với điều kiện đúng/sai, ‘for’ dùng với chỉ số.
59. Khi nào thì việc sử dụng vòng lặp ‘while’ được ưu tiên hơn vòng lặp ‘for’ trong lập trình?
A. Khi số lần lặp không được xác định trước mà phụ thuộc vào một điều kiện thay đổi trong quá trình thực thi.
B. Khi cần lặp qua một dãy các phần tử có thứ tự rõ ràng.
C. Khi cần thực hiện một khối lệnh một số lần cố định đã biết trước.
D. Khi cần truy cập chỉ số của phần tử đang được xử lý.
60. Phát biểu nào sau đây **KHÔNG** phải là một ứng dụng phổ biến của vòng lặp trong lập trình?
A. Xử lý từng dòng trong một tệp văn bản.
B. Tìm kiếm giá trị lớn nhất trong một mảng số.
C. In ra một thông báo duy nhất khi chương trình bắt đầu.
D. Thực hiện các phép tính lặp đi lặp lại trong một thuật toán số học.
61. Tại sao phần mềm ứng dụng cần có sự hỗ trợ của phần mềm hệ thống để hoạt động?
A. Phần mềm ứng dụng không có khả năng tự quản lý tài nguyên.
B. Phần mềm ứng dụng cần hệ điều hành để truy cập phần cứng.
C. Phần mềm ứng dụng cần môi trường do hệ điều hành cung cấp để chạy.
D. Tất cả các lý do trên đều đúng.
62. Trong một hệ thống máy tính, đơn vị xử lý trung tâm (CPU) thực hiện chức năng gì là chủ yếu?
A. Lưu trữ dữ liệu lâu dài trên ổ cứng.
B. Hiển thị hình ảnh và đồ họa lên màn hình.
C. Thực hiện tính toán và điều khiển hoạt động của máy tính.
D. Kết nối máy tính với mạng Internet.
63. Đâu là một ví dụ về ‘phần mềm ứng dụng’ được sử dụng cho mục đích giao tiếp?
A. Trình điều khiển máy in.
B. Phần mềm quản lý tài nguyên.
C. Ứng dụng nhắn tin tức thời (Instant messaging app) như Zalo, Messenger.
D. Hệ điều hành.
64. Tại sao việc sao lưu dữ liệu (data backup) lại quan trọng đối với người dùng máy tính?
A. Để làm tăng tốc độ xử lý của máy tính.
B. Để đảm bảo an toàn dữ liệu trong trường hợp mất mát, hỏng hóc hoặc tấn công mạng.
C. Để thay đổi giao diện của hệ điều hành.
D. Để cài đặt các phần mềm không tương thích.
65. Khái niệm ‘phần mềm hệ thống’ (system software) bao gồm những loại chương trình nào sau đây?
A. Các ứng dụng văn phòng như Word, Excel.
B. Trình duyệt web như Chrome, Firefox.
C. Hệ điều hành và các tiện ích hệ thống.
D. Các trò chơi điện tử và phần mềm giải trí.
66. Đâu là một ví dụ về phần mềm tiện ích (utility software)?
A. Microsoft Word.
B. Google Chrome.
C. Phần mềm diệt virus (Antivirus software).
D. Adobe Photoshop.
67. Khi bạn muốn soạn thảo một văn bản, bạn sẽ sử dụng loại phần mềm nào?
A. Phần mềm hệ thống.
B. Phần mềm ứng dụng.
C. Trình biên dịch.
D. Hệ điều hành.
68. Tại sao các lập trình viên thường sử dụng ngôn ngữ lập trình bậc cao (high-level programming language) thay vì mã máy (machine code)?
A. Ngôn ngữ bậc cao khó học hơn.
B. Ngôn ngữ bậc cao dễ đọc, dễ viết và dễ bảo trì hơn.
C. Ngôn ngữ bậc cao chạy trực tiếp trên phần cứng mà không cần dịch.
D. Mã máy hiệu quả hơn về bộ nhớ.
69. Khi một chương trình ứng dụng gặp lỗi và dừng hoạt động đột ngột, thường là do vấn đề gì?
A. Do hệ điều hành bị lỗi.
B. Do phần mềm ứng dụng có lỗi trong mã lệnh hoặc xung đột với các phần mềm khác.
C. Do phần cứng của máy tính bị hỏng hoàn toàn.
D. Do người dùng không bật máy tính.
70. Chương trình nào có nhiệm vụ dịch mã nguồn chương trình máy tính sang mã máy để máy tính có thể hiểu và thực thi?
A. Trình soạn thảo văn bản.
B. Trình biên dịch (Compiler) hoặc Trình thông dịch (Interpreter).
C. Trình duyệt web.
D. Trình điều khiển thiết bị (Device Driver).
71. Khi bạn tải xuống một tệp tin từ Internet, hệ điều hành có vai trò gì trong quá trình này?
A. Chỉ hiển thị tệp tin đó trên màn hình.
B. Quản lý việc lưu trữ tệp tin đã tải xuống vào bộ nhớ.
C. Thực hiện việc tải tệp tin từ máy chủ xuống.
D. Chỉ cho phép xem nội dung tệp tin.
72. Mục đích chính của việc sử dụng ‘hệ thống quản lý cơ sở dữ liệu’ (Database Management System – DBMS) là gì?
A. Để chạy các chương trình đơn giản như Notepad.
B. Để tạo và quản lý các tệp tin văn bản lớn.
C. Để lưu trữ, truy xuất, cập nhật và quản lý dữ liệu một cách hiệu quả và an toàn.
D. Để kết nối máy tính với mạng Wi-Fi.
73. Khi nói về ‘phần mềm ứng dụng’, điều nào sau đây là đúng nhất?
A. Nó là nền tảng cho mọi hoạt động của máy tính.
B. Nó giúp người dùng thực hiện các công việc cụ thể.
C. Nó quản lý trực tiếp phần cứng của máy.
D. Nó không cần thiết để máy tính hoạt động.
74. Chức năng nào sau đây KHÔNG thuộc về hệ điều hành?
A. Quản lý tệp tin và thư mục.
B. Phân công CPU cho các tiến trình.
C. Thực hiện tính toán các công thức phức tạp trong bảng tính.
D. Quản lý bộ nhớ truy cập ngẫu nhiên (RAM).
75. Trong mô hình phân lớp phần mềm, ‘lớp ứng dụng’ (application layer) bao gồm những gì?
A. Chỉ các trình điều khiển thiết bị.
B. Các chương trình mà người dùng tương tác trực tiếp để thực hiện công việc.
C. Phần cứng của máy tính.
D. Chỉ hệ điều hành.
76. Đâu là một ví dụ về ‘trình thông dịch’ (interpreter)?
A. Trình điều khiển máy in.
B. Phần mềm diệt virus.
C. Python interpreter (khi chạy mã Python trực tiếp).
D. Ứng dụng xem phim VLC.
77. Tại sao việc cập nhật hệ điều hành thường xuyên lại quan trọng?
A. Để thay đổi giao diện người dùng hoàn toàn.
B. Để vá các lỗ hổng bảo mật và cải thiện hiệu suất.
C. Để cài đặt thêm các trò chơi mới.
D. Để xóa bỏ các tệp tin tạm thời.
78. Đâu là một ví dụ về phần mềm mã nguồn mở?
A. Microsoft Windows.
B. Adobe Photoshop.
C. Linux.
D. Microsoft Office.
79. Đâu là một ví dụ về ‘phần mềm lập trình’ (programming software)?
A. Trình duyệt web.
B. Phần mềm diệt virus.
C. Trình soạn thảo mã nguồn (Code editor) như VS Code.
D. Ứng dụng xem video.
80. Đâu là một ví dụ về ‘trình điều khiển thiết bị’ (Device Driver)?
A. Hệ điều hành Windows.
B. Phần mềm diệt virus Norton.
C. Trình điều khiển cho card đồ họa (Graphics card driver).
D. Ứng dụng chỉnh sửa ảnh Paint.
81. Chức năng ‘quản lý tiến trình’ (process management) của hệ điều hành liên quan đến việc gì?
A. Quản lý việc lưu trữ dữ liệu trên ổ cứng.
B. Điều phối việc sử dụng CPU của các chương trình đang chạy.
C. Kiểm soát kết nối mạng Internet.
D. Quản lý các thiết bị ngoại vi như máy in.
82. Khi bạn muốn truy cập một trang web, chương trình nào chịu trách nhiệm lấy dữ liệu từ máy chủ và hiển thị trên máy tính của bạn?
A. Hệ điều hành.
B. Trình duyệt web (Web Browser).
C. Phần mềm diệt virus.
D. Trình soạn thảo văn bản.
83. Khái niệm ‘phần mềm mã nguồn mở’ (open-source software) đề cập đến loại phần mềm mà:
A. Chỉ có thể sử dụng trên một hệ điều hành duy nhất.
B. Mã nguồn của nó được công khai và có thể được xem, sửa đổi, phân phối.
C. Luôn yêu cầu trả phí bản quyền.
D. Chỉ có thể chạy trên các máy chủ mạnh mẽ.
84. Đâu là một ví dụ về ‘trình biên dịch’ (compiler)?
A. Trình duyệt web Google Chrome.
B. Phần mềm diệt virus Avast.
C. Microsoft Visual Studio (trong vai trò biên dịch mã C++).
D. Phần mềm quản lý tệp tin File Explorer.
85. Đâu là vai trò chính của hệ điều hành (Operating System) trong một máy tính?
A. Tạo ra các tài liệu văn bản và bảng tính.
B. Quản lý tài nguyên phần cứng và điều phối hoạt động của các chương trình ứng dụng.
C. Truy cập và tìm kiếm thông tin trên mạng Internet.
D. Thiết kế đồ họa và chỉnh sửa ảnh.
86. Khi bạn cài đặt một chương trình mới vào máy tính, bạn đang thêm vào loại phần mềm nào?
A. Hệ điều hành.
B. Phần mềm hệ thống.
C. Phần mềm ứng dụng.
D. Trình biên dịch.
87. Sự khác biệt cơ bản giữa phần mềm hệ thống và phần mềm ứng dụng là gì?
A. Phần mềm hệ thống chỉ chạy trên máy chủ, phần mềm ứng dụng chạy trên máy cá nhân.
B. Phần mềm hệ thống quản lý phần cứng và điều phối hoạt động, phần mềm ứng dụng phục vụ nhu cầu người dùng.
C. Phần mềm hệ thống luôn miễn phí, phần mềm ứng dụng luôn có phí.
D. Phần mềm hệ thống viết bằng ngôn ngữ bậc cao, phần mềm ứng dụng viết bằng mã máy.
88. Khái niệm ‘hệ thống tệp’ (file system) do bộ phận nào của máy tính quản lý?
A. Chỉ CPU.
B. Chỉ RAM.
C. Chủ yếu là hệ điều hành.
D. Chỉ các thiết bị ngoại vi.
89. Đâu là một ví dụ về ‘phần mềm quản lý cơ sở dữ liệu’ (DBMS)?
A. Microsoft Word.
B. Google Chrome.
C. MySQL hoặc Microsoft SQL Server.
D. Adobe Photoshop.
90. Trong lĩnh vực phần mềm, ‘bản quyền’ (copyright) thường bảo vệ điều gì?
A. Chỉ bảo vệ mã nguồn của phần mềm.
B. Bảo vệ quyền sở hữu trí tuệ đối với tác phẩm phần mềm, bao gồm cả mã nguồn và giao diện.
C. Chỉ bảo vệ tên thương hiệu của phần mềm.
D. Không áp dụng cho phần mềm máy tính.
91. Trong lập trình hướng đối tượng, ‘lớp’ (class) là gì?
A. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
B. Một đối tượng cụ thể đã được tạo ra.
C. Một biến toàn cục.
D. Một chuỗi các lệnh thực thi.
92. Trong lập trình, ‘cấu trúc lặp lồng nhau’ (nested loops) là gì?
A. Một vòng lặp nằm bên trong một vòng lặp khác.
B. Hai vòng lặp chạy song song.
C. Một vòng lặp chỉ chạy một lần.
D. Một vòng lặp bị khóa và không thể thoát ra.
93. Để truy cập vào phần tử đầu tiên của một mảng có tên ‘myArray’ trong hầu hết các ngôn ngữ lập trình, ta sử dụng chỉ số nào?
A. Chỉ số 0.
B. Chỉ số 1.
C. Chỉ số ‘first’.
D. Chỉ số ‘begin’.
94. Phát biểu nào sau đây mô tả đúng về ‘mảng’ (array) trong lập trình?
A. Là một tập hợp các phần tử cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ và có thể truy cập thông qua chỉ số (index).
B. Là một cấu trúc dữ liệu chỉ có thể lưu trữ một giá trị duy nhất tại một thời điểm.
C. Luôn có kích thước thay đổi linh hoạt trong quá trình chạy chương trình.
D. Chỉ được sử dụng để lưu trữ chuỗi ký tự.
95. Khi sử dụng ‘cấu trúc switch-case’ để xử lý nhiều trường hợp, nó thường được coi là lựa chọn thay thế tốt hơn cho chuỗi ‘if-else if-else’ dài khi nào?
A. Khi việc so sánh dựa trên một biến hoặc biểu thức với nhiều giá trị hằng số cụ thể.
B. Khi điều kiện so sánh là các phép toán phức tạp.
C. Khi cần thực hiện một hành động duy nhất.
D. Khi chương trình cần chạy nhanh nhất có thể.
96. Phát biểu nào sau đây mô tả đúng nhất về ‘hằng số’ trong lập trình?
A. Là một giá trị không thể thay đổi trong suốt quá trình thực thi chương trình.
B. Là một biến có thể được gán lại giá trị nhiều lần.
C. Là một hàm được gọi tự động khi chương trình bắt đầu.
D. Là một cấu trúc dữ liệu dùng để lưu trữ danh sách các phần tử.
97. Trong cấu trúc điều khiển ‘lặp’, vòng lặp ‘for’ thường được sử dụng khi nào?
A. Khi số lần lặp đã biết trước hoặc có thể xác định.
B. Khi điều kiện lặp phụ thuộc vào một biến không xác định.
C. Khi cần thực hiện một khối lệnh ít nhất một lần.
D. Khi muốn thoát khỏi vòng lặp ngay lập tức.
98. Lệnh ‘break’ trong một vòng lặp được sử dụng để làm gì?
A. Thoát ngay lập tức khỏi vòng lặp hiện tại.
B. Chuyển sang lần lặp tiếp theo của vòng lặp.
C. Bắt đầu một vòng lặp mới.
D. Khởi tạo lại biến điều khiển vòng lặp.
99. Khi nói về ‘cấu trúc dữ liệu’ (data structure), ý nghĩa của thuật ngữ này là gì?
A. Một cách tổ chức, quản lý và lưu trữ dữ liệu để có thể truy cập và thao tác hiệu quả.
B. Một loại lỗi thường gặp trong lập trình.
C. Ngôn ngữ lập trình được sử dụng.
D. Một thuật toán tìm kiếm.
100. Phát biểu nào sau đây là đúng về ‘kiểu dữ liệu chuỗi’ (string) trong lập trình?
A. Là một dãy các ký tự được bao bọc bởi dấu nháy đơn (‘) hoặc nháy kép (“).
B. Chỉ có thể chứa các ký tự số.
C. Luôn được lưu trữ dưới dạng số thực.
D. Không thể thực hiện các phép toán trên chuỗi.
101. Trong lập trình, ‘thuật toán’ (algorithm) là gì?
A. Một tập hợp các bước hoặc quy tắc được xác định rõ ràng để giải quyết một vấn đề cụ thể hoặc thực hiện một tác vụ.
B. Là tên gọi của một chương trình máy tính.
C. Một lỗi trong mã nguồn chương trình.
D. Giao diện người dùng của một ứng dụng.
102. Trong lập trình hướng đối tượng, ‘đối tượng’ (object) là gì?
A. Là một thể hiện (instance) cụ thể của một lớp, có các thuộc tính và phương thức riêng.
B. Là định nghĩa của lớp.
C. Một hàm hoặc phương thức.
D. Một hằng số.
103. Trong lập trình, ‘biến toàn cục’ (global variable) khác với ‘biến cục bộ’ (local variable) ở điểm nào?
A. Biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình, còn biến cục bộ chỉ truy cập được trong phạm vi nó được khai báo.
B. Biến cục bộ có thể được truy cập từ bất kỳ đâu, còn biến toàn cục chỉ truy cập được trong một hàm.
C. Biến toàn cục luôn có giá trị cố định, còn biến cục bộ thì không.
D. Không có sự khác biệt nào giữa hai loại biến này.
104. 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)?
A. Một mô hình lập trình dựa trên khái niệm ‘đối tượng’, bao gồm dữ liệu (thuộc tính) và phương thức (hành vi).
B. Là phương pháp lập trình chỉ sử dụng các vòng lặp.
C. Tập trung vào việc viết các hàm độc lập.
D. Là cách duy nhất để tạo ra giao diện người dùng.
105. Khái niệm ‘kế thừa’ (inheritance) trong lập trình hướng đối tượng cho phép?
A. Một lớp con (child class) có thể nhận các thuộc tính và phương thức từ một lớp cha (parent class).
B. Một lớp cha không thể có thuộc tính.
C. Mọi lớp đều phải kế thừa từ một lớp ‘root’.
D. Kế thừa chỉ áp dụng cho biến, không áp dụng cho phương thức.
106. Phát biểu nào sau đây mô tả đúng về ‘kiểu dữ liệu boolean’?
A. Chỉ có hai giá trị là đúng (true) hoặc sai (false).
B. Có thể lưu trữ bất kỳ ký tự nào.
C. Dùng để biểu diễn số nguyên lớn.
D. Là một loại mảng đặc biệt.
107. Khi một hàm nhận vào các giá trị để xử lý, các giá trị đó được gọi là gì?
A. Tham số (parameters) hoặc đối số (arguments).
B. Biến cục bộ (local variables).
C. Hằng số toàn cục (global constants).
D. Kết quả trả về (return value).
108. Vòng lặp ‘while’ trong lập trình sẽ tiếp tục thực thi khối lệnh bên trong nó chừng nào?
A. Miễn là điều kiện kiểm tra của vòng lặp còn đúng (true).
B. Chỉ thực thi đúng một lần.
C. Sau khi thực hiện đúng 10 lần lặp.
D. Cho đến khi gặp lệnh ‘break’.
109. Phát biểu nào sau đây là đúng về ‘phép gán’ (assignment operator) trong lập trình (ví dụ: `=`)?
A. Dùng để gán giá trị của biểu thức ở vế phải cho biến ở vế trái.
B. Dùng để so sánh hai giá trị.
C. Dùng để thực hiện phép cộng.
D. Dùng để khai báo một biến mới.
110. Phát biểu nào sau đây đúng về ‘phạm vi’ (scope) của biến trong lập trình?
A. Là khu vực trong chương trình mà tại đó biến có thể được truy cập và sử dụng.
B. Là kích thước của biến trong bộ nhớ.
C. Là tên gọi duy nhất của biến.
D. Là thời gian tồn tại của biến trong chương trình.
111. Phát biểu nào sau đây mô tả đúng về ‘đa hình’ (polymorphism) trong lập trình hướng đối tượng?
A. Khả năng các đối tượng khác nhau phản ứng theo cách riêng của chúng với cùng một thông điệp (lời gọi phương thức).
B. Khả năng một biến lưu trữ nhiều loại dữ liệu khác nhau cùng lúc.
C. Khả năng tạo ra nhiều bản sao của một đối tượng.
D. Khả năng một lớp có nhiều tên gọi khác nhau.
112. Trong lập trình, ‘toán tử so sánh’ (comparison operators) dùng để làm gì?
A. So sánh hai giá trị và trả về kết quả là đúng (true) hoặc sai (false).
B. Thực hiện các phép toán số học.
C. Gán giá trị cho biến.
D. Nối hai chuỗi ký tự lại với nhau.
113. Phát biểu nào sau đây mô tả đúng nhất về ‘cấu trúc rẽ nhánh’ (conditional statements) như ‘if-else’?
A. Cho phép chương trình thực hiện các khối lệnh khác nhau dựa trên một điều kiện.
B. Đảm bảo chương trình luôn thực hiện tất cả các lệnh theo thứ tự.
C. Chỉ dùng để khai báo biến.
D. Tạo ra các vòng lặp vô hạn.
114. Khi làm việc với kiểu dữ liệu số nguyên (integer), toán tử nào sau đây được sử dụng để thực hiện phép chia lấy phần dư?
A. Toán tử modulo (%).
B. Toán tử chia (/).
C. Toán tử cộng (+).
D. Toán tử trừ (-).
115. Lệnh ‘continue’ trong một vòng lặp có tác dụng gì?
A. 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.
B. Thoát hoàn toàn khỏi vòng lặp.
C. Thực hiện lại lần lặp hiện tại từ đầu.
D. Dừng chương trình.
116. Đâu là đặc điểm quan trọng nhất của một thuật toán tốt?
A. Tính hiệu quả (về thời gian và bộ nhớ sử dụng) và tính đúng đắn.
B. Độ dài của mã nguồn ngắn nhất có thể.
C. Sử dụng nhiều vòng lặp nhất có thể.
D. Dễ dàng gây nhầm lẫn cho người đọc.
117. Trong lập trình, khái niệm ‘biến’ được sử dụng để làm gì?
A. Lưu trữ dữ liệu tạm thời trong quá trình thực thi chương trình.
B. Định nghĩa cấu trúc dữ liệu phức tạp.
C. Kiểm soát luồng thực thi của chương trình.
D. Đảm bảo tính bảo mật của mã nguồn.
118. Phát biểu nào sau đây mô tả đúng về ‘kiểu dữ liệu số thực’ (floating-point number)?
A. Có thể biểu diễn các số nguyên và số thập phân, thường có độ chính xác nhất định.
B. Chỉ có thể biểu diễn các số nguyên dương.
C. Luôn là một giá trị cố định không thay đổi.
D. Chỉ dùng để lưu trữ văn bản.
119. Mục đích chính của việc sử dụng ‘hàm’ (function) trong lập trình là gì?
A. Tổ chức mã nguồn thành các khối có thể tái sử dụng, giúp quản lý và đọc hiểu dễ dàng hơn.
B. Tăng tốc độ xử lý của chương trình một cách tuyệt đối.
C. Xóa bỏ hoàn toàn các lỗi cú pháp trong mã.
D. Buộc người dùng nhập dữ liệu theo định dạng cụ thể.
120. Trong lập trình, ‘biểu thức’ (expression) là gì?
A. Là một tổ hợp các toán tử, toán hạng và lời gọi hàm tạo ra một giá trị.
B. Là một câu lệnh hoàn chỉnh kết thúc chương trình.
C. Là một biến chưa được gán giá trị.
D. Là một chú thích trong mã nguồn.
121. Phát biểu nào sau đây mô tả đúng cú pháp khai báo hằng trong Pascal?
A. var ten_hang = gia_tri;
B. const ten_hang = gia_tri;
C. define ten_hang gia_tri;
D. let ten_hang := gia_tri;
122. Phát biểu nào sau đây mô tả đúng vai trò của một ‘mảng’ (array) trong lập trình?
A. Mảng 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. Mảng là một cấu trúc dữ liệu cho phép lưu trữ một tập hợp các phần tử cùng kiểu, có thể truy cập thông qua chỉ số.
C. Mảng chỉ có thể lưu trữ một phần tử duy nhất.
D. Mảng được sử dụng để lưu trữ các chuỗi ký tự có độ dài thay đổi.
123. Phát biểu nào sau đây là đúng về cách truy cập phần tử của mảng trong Pascal?
A. Truy cập bằng tên biến và giá trị của phần tử.
B. Truy cập bằng tên mảng và chỉ số của phần tử cần lấy.
C. Truy cập bằng tên mảng và giá trị của phần tử.
D. Truy cập bằng tên biến và chỉ số của phần tử.
124. Phát biểu nào sau đây mô tả đúng vai trò của một ‘chuỗi ký tự’ (string) trong Pascal?
A. Chuỗi ký tự chỉ có thể chứa các chữ cái.
B. Chuỗi ký tự là một dãy các ký tự, thường được dùng để biểu diễn văn bản.
C. Chuỗi ký tự chỉ có thể chứa một ký tự duy nhất.
D. Chuỗi ký tự là một kiểu dữ liệu số nguyên.
125. 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)?
A. Tập trung vào các thủ tục và hàm riêng lẻ.
B. Tổ chức chương trình xung quanh các ‘đối tượng’ (objects), là các thực thể chứa cả dữ liệu (thuộc tính) và hành vi (phương thức).
C. Chỉ sử dụng ngôn ngữ máy.
D. Ưu tiên sử dụng các câu lệnh điều kiện phức tạp.
126. Trong Pascal, một ‘thủ tục’ (procedure) khác với một ‘hàm’ (function) ở điểm cơ bản nào?
A. Thủ tục không thể có tham số, còn hàm thì có.
B. Thủ tục chỉ thực hiện hành động, còn hàm có thể trả về một giá trị.
C. Thủ tục luôn được gọi bằng từ khóa ‘call’, còn hàm thì không.
D. Hàm không thể có khối lệnh, còn thủ tục thì có.
127. Trong ngôn ngữ Pascal, cú pháp khai báo mảng ‘var mang_so: array[1..10] of integer;’ có ý nghĩa gì?
A. Khai báo một biến ‘mang_so’ kiểu số nguyên, có thể lưu 10 giá trị khác nhau.
B. Khai báo một biến ‘mang_so’ kiểu mảng, chứa 10 phần tử, mỗi phần tử là một số nguyên, với chỉ số từ 1 đến 10.
C. Khai báo một biến ‘mang_so’ kiểu mảng, chứa 10 phần tử, mỗi phần tử là một số thực.
D. Khai báo một biến ‘mang_so’ kiểu chuỗi ký tự có độ dài 10.
128. Phát biểu nào sau đây mô tả đúng vai trò của ‘trình biên dịch’ (compiler) trong quá trình phát triển phần mềm?
A. Trình biên dịch dùng để chạy chương trình.
B. Trình biên dịch dịch mã nguồn viết bằng ngôn ngữ lập trình bậc cao thành mã máy mà máy tính có thể hiểu và thực thi.
C. Trình biên dịch giúp người dùng nhập dữ liệu.
D. Trình biên dịch tạo giao diện đồ họa cho chương trình.
129. Nếu một chương trình Pascal cần thực hiện một khối lệnh lặp lại cho đến khi một điều kiện nào đó không còn đúng nữa, cấu trúc vòng lặp nào phù hợp nhất?
A. For…do
B. While…do
C. Case…of
D. Repeat…until
130. Trong lĩnh vực mạng máy tính, ‘địa chỉ IP’ (Internet Protocol Address) có vai trò gì?
A. Xác định tên của người dùng trên mạng.
B. Cung cấp một định danh duy nhất cho mỗi thiết bị kết nối với mạng.
C. Mã hóa dữ liệu truyền tải trên mạng.
D. Kiểm tra tốc độ kết nối mạng.
131. Nếu một chương trình Pascal cần thực hiện một khối lệnh với số lần lặp không xác định trước mà phụ thuộc vào một điều kiện, cấu trúc vòng lặp nào là phù hợp nhất?
A. For…do
B. Repeat…until
C. While…do
D. Case…of
132. Trong kiến trúc máy tính, ‘bộ nhớ truy cập ngẫu nhiên’ (RAM) có vai trò chính là gì?
A. Lưu trữ hệ điều hành và các phần mềm cài đặt.
B. Lưu trữ tạm thời dữ liệu và chương trình đang được sử dụng để CPU có thể truy cập nhanh chóng.
C. Lưu trữ vĩnh viễn các tập tin người dùng.
D. Kết nối máy tính với mạng internet.
133. Trong Pascal, câu lệnh ‘clrscr;’ được sử dụng để làm gì?
A. In một dòng ký tự đặc biệt.
B. Xóa toàn bộ nội dung trên màn hình console.
C. Đổi màu chữ trên màn hình.
D. Dừng chương trình trong một khoảng thời gian nhất định.
134. Phát biểu nào sau đây mô tả đúng về ‘thuật toán’ (algorithm) trong khoa học máy tính?
A. Thuật toán là một thiết bị phần cứng đặc biệt.
B. Thuật toán là một tập hợp các bước hữu hạn, rõ ràng và có thứ tự để giải quyết một bài toán hoặc thực hiện một nhiệm vụ.
C. Thuật toán chỉ dùng để vẽ đồ họa.
D. Thuật toán là một loại virus máy tính.
135. Phát biểu nào sau đây mô tả đúng nhất chức năng của câu lệnh ‘write’ trong Pascal?
A. Dùng để đọc dữ liệu từ bàn phím vào biến.
B. Dùng để in kết quả hoặc thông báo ra màn hình.
C. Dùng để khai báo kiểu dữ liệu mới.
D. Dùng để thực hiện phép toán so sánh.
136. Phát biểu nào sau đây là sai về cách khai báo kiểu dữ liệu người dùng định nghĩa (user-defined types) trong Pascal?
A. Kiểu dữ liệu người dùng định nghĩa giúp mã nguồn dễ đọc và tổ chức tốt hơn.
B. Các kiểu dữ liệu như ‘array’ và ‘record’ là ví dụ của kiểu dữ liệu người dùng định nghĩa.
C. Kiểu dữ liệu người dùng định nghĩa không thể kết hợp với các kiểu dữ liệu có sẵn.
D. Khai báo kiểu dữ liệu người dùng định nghĩa thường được thực hiện trong phần ‘type’.
137. Phát biểu nào sau đây mô tả đúng vai trò của ‘bộ xử lý’ (processor) trong một hệ thống máy tính?
A. Lưu trữ dữ liệu lâu dài.
B. Thực hiện các phép tính toán và điều khiển hoạt động của máy tính.
C. Hiển thị thông tin ra màn hình.
D. Nhập dữ liệu từ bàn phím.
138. Khi lập trình với ngôn ngữ Pascal, cấu trúc điều kiện ‘if…then…else’ được sử dụng với mục đích chính là gì?
A. Thực hiện lặp lại một khối lệnh nhiều lần.
B. Thực hiện một khối lệnh hoặc một khối lệnh khác tùy thuộc vào điều kiện đúng hay sai.
C. Khai báo một thủ tục hoặc hàm.
D. Gán giá trị cho biến.
139. Khi sử dụng vòng lặp ‘repeat…until’ trong Pascal, điều kiện dừng lặp được đặt ở đâu?
A. Ở đầu khối lệnh.
B. Ở giữa khối lệnh.
C. Ở cuối khối lệnh.
D. Không cần đặt điều kiện dừng.
140. Khi nói về ‘ngôn ngữ lập trình bậc cao’ (high-level programming language), điều này có nghĩa là gì?
A. Ngôn ngữ gần gũi với ngôn ngữ máy.
B. Ngôn ngữ sử dụng các từ khóa và cú pháp gần gũi với ngôn ngữ tự nhiên của con người, dễ đọc và viết.
C. Ngôn ngữ chỉ dành cho các nhà khoa học máy tính chuyên nghiệp.
D. Ngôn ngữ chỉ có thể chạy trên các siêu máy tính.
141. Trong Pascal, cấu trúc ‘case…of’ được sử dụng để làm gì?
A. Thực hiện lặp lại một khối lệnh nhiều lần.
B. Chọn thực thi một trong nhiều khối lệnh dựa trên giá trị của một biểu thức.
C. Khai báo một mảng đa chiều.
D. Định nghĩa một hàm đệ quy.
142. Phát biểu nào sau đây về vòng lặp ‘for…do’ trong Pascal là đúng?
A. Vòng lặp ‘for…do’ thực hiện lặp vô hạn.
B. Vòng lặp ‘for…do’ yêu cầu biết trước số lần lặp.
C. Vòng lặp ‘for…do’ chỉ sử dụng cho các biến kiểu ‘real’.
D. Vòng lặp ‘for…do’ chỉ có một dạng duy nhất là tăng dần.
143. Trong Pascal, để nối hai chuỗi ký tự với nhau, ta sử dụng toán tử nào?
144. Trong Pascal, câu lệnh ‘readln;’ được sử dụng để thực hiện hành động gì?
A. In một dòng trống ra màn hình.
B. Dừng chương trình cho đến khi người dùng nhấn Enter.
C. Đọc một chuỗi ký tự từ bàn phím.
D. Thực hiện phép gán.
145. Trong Pascal, nếu muốn tạo một vòng lặp thực hiện đúng 100 lần, cấu trúc nào là phù hợp và hiệu quả nhất?
A. While i <= 100 do
B. Repeat until i > 100
C. For i := 1 to 100 do
D. Case i of 1..100:
146. Trong Pascal, khi sử dụng vòng lặp ‘for i := 10 downto 1 do’, biến ‘i’ sẽ thay đổi như thế nào qua mỗi lần lặp?
A. Tăng dần từ 1 đến 10.
B. Giảm dần từ 10 xuống 1.
C. Tăng dần từ 10 xuống 1.
D. Giảm dần từ 1 đến 10.
147. Phát biểu nào sau đây là sai về cách sử dụng biến trong Pascal?
A. Biến phải được khai báo kiểu dữ liệu trước khi sử dụng.
B. Giá trị của biến có thể thay đổi trong quá trình chạy chương trình.
C. Tên biến có thể chứa ký tự đặc biệt như ‘$’ hoặc ‘@’.
D. Biến cần được khai báo trong phần ‘var’ của chương trình.
148. Trong lập trình Pascal, ‘hằng’ (constant) được định nghĩa với mục đích gì?
A. Để lưu trữ các giá trị thay đổi trong quá trình chạy chương trình.
B. Để đặt tên cho một giá trị không thay đổi trong suốt quá trình thực thi chương trình.
C. Để khai báo kiểu dữ liệu mới.
D. Để thực hiện các phép toán phức tạp.
149. Phát biểu nào sau đây mô tả đúng chức năng của ‘hệ điều hành’ (Operating System)?
A. Chỉ có chức năng hiển thị giao diện đồ họa.
B. Quản lý tài nguyên phần cứng, phần mềm và cung cấp giao diện cho người dùng.
C. Chỉ dùng để soạn thảo văn bản.
D. Thực hiện các phép tính toán khoa học phức tạp.
150. Trong ngôn ngữ lập trình Pascal, khai báo biến ‘var diem: real;’ có ý nghĩa gì đối với kiểu dữ liệu của biến ‘diem’?
A. Biến ‘diem’ có thể lưu trữ các số nguyên.
B. Biến ‘diem’ có thể lưu trữ các ký tự đơn.
C. Biến ‘diem’ có thể lưu trữ các số thực, bao gồm cả phần thập phân.
D. Biến ‘diem’ có thể lưu trữ các chuỗi ký tự.