1. Đâu là một ví dụ về ‘toán tử so sánh’ trong lập trình?
A. > (lớn hơn)
B. + (cộng)
C. * (nhân)
D. – (trừ)
2. Đâu là phát biểu đúng về vai trò của biến (variable) trong lập trình?
A. Biến dùng để lưu trữ dữ liệu tạm thời trong quá trình chương trình chạy.
B. Biến chỉ có thể lưu trữ số nguyên.
C. Biến là một phần cứng cố định trong máy tính.
D. Biến dùng để hiển thị kết quả trực tiếp trên màn hình.
3. Đâu là ví dụ về một cấu trúc điều khiển rẽ nhánh?
A. Khối lệnh ‘if…then…else’
B. Khối lệnh ‘repeat’
C. Khối lệnh ‘wait’
D. Khối lệnh ‘glide’
4. Trong Scratch, khối lệnh ‘repeat until ‘ dùng để làm gì?
A. Lặp lại các lệnh cho đến khi một điều kiện cụ thể trở thành đúng.
B. Lặp lại các lệnh một số lần xác định.
C. Lặp lại các lệnh mãi mãi.
D. Thực hiện một lệnh duy nhất khi điều kiện đúng.
5. Trong Scratch, khối lệnh ‘turn right 15 degrees’ làm gì?
A. Quay nhân vật theo chiều kim đồng hồ 15 độ.
B. Quay nhân vật ngược chiều kim đồng hồ 15 độ.
C. Di chuyển nhân vật 15 bước.
D. Thay đổi hướng của nhân vật sang 15 độ.
6. Trong Scratch, làm thế nào để tạo ra một chương trình tương tác khi người dùng nhấn vào phím ‘Space’?
A. Sử dụng khối lệnh ‘when space key pressed’
B. Sử dụng khối lệnh ‘when green flag clicked’
C. Sử dụng khối lệnh ‘wait’
D. Sử dụng khối lệnh ‘broadcast message’
7. Trong Scratch, làm thế nào để làm cho một nhân vật (sprite) di chuyển theo đường chéo?
A. Kết hợp thay đổi tọa độ X và tọa độ Y trong một khối lệnh ‘move’
B. Chỉ sử dụng khối lệnh ‘move 10 steps’
C. Sử dụng khối lệnh ‘turn left’ hoặc ‘turn right’ liên tục
D. Thay đổi hướng của nhân vật và sau đó sử dụng ‘move 10 steps’
8. Phát biểu nào sau đây mô tả đúng về ‘lập trình tuần tự’?
A. Các lệnh được thực hiện lần lượt theo đúng thứ tự chúng xuất hiện trong chương trình.
B. Các lệnh có thể được thực hiện ngẫu nhiên.
C. Các lệnh chỉ thực hiện khi có điều kiện nhất định.
D. Các lệnh được lặp lại nhiều lần.
9. Trong Scratch, làm thế nào để nhân vật nói một câu trong 5 giây?
A. Sử dụng khối ‘say [Hello] for 5 secs’
B. Sử dụng khối ‘say [Hello]’ kết hợp ‘wait 5 secs’
C. Sử dụng khối ‘say [Hello]’
D. Sử dụng khối ‘broadcast message’
10. Trong lập trình Scratch, khối lệnh ‘say’ được sử dụng để làm gì?
A. Hiển thị một bong bóng thoại chứa văn bản.
B. Thay đổi màu sắc của nhân vật.
C. Di chuyển nhân vật đến một vị trí ngẫu nhiên.
D. Phát ra một âm thanh.
11. Trong Scratch, để làm cho một nhân vật thay đổi trang phục (costume), bạn sẽ sử dụng khối lệnh nào?
A. Khối lệnh ‘next costume’
B. Khối lệnh ‘change color effect’
C. Khối lệnh ‘move’
D. Khối lệnh ‘switch backdrop’
12. Trong Scratch, khối lệnh ‘wait 1 seconds’ có chức năng gì?
A. Tạm dừng chương trình trong khoảng thời gian chỉ định.
B. Di chuyển nhân vật một khoảng.
C. Thay đổi kích thước nhân vật.
D. Phát lại một âm thanh.
13. Trong Scratch, làm thế nào để nhân vật di chuyển về phía trước 50 bước?
A. Sử dụng khối lệnh ‘move 50 steps’
B. Sử dụng khối lệnh ‘go to x: y:’
C. Sử dụng khối lệnh ‘turn right’
D. Sử dụng khối lệnh ‘change x by 50’
14. Trong Scratch, làm thế nào để nhân vật quay trái 90 độ?
A. Sử dụng khối lệnh ‘turn left 90 degrees’
B. Sử dụng khối lệnh ‘turn right 90 degrees’
C. Sử dụng khối lệnh ‘go to x: y:’
D. Sử dụng khối lệnh ‘move 90 steps’
15. Một thuật toán được coi là ‘hiệu quả’ khi nào?
A. Khi nó thực hiện ít phép tính và sử dụng ít bộ nhớ nhất có thể.
B. Khi nó có thể chạy trên mọi loại máy tính.
C. Khi nó có nhiều bước thực hiện.
D. Khi nó sử dụng ngôn ngữ lập trình phức tạp nhất.
16. Phát biểu nào sau đây mô tả đúng về ‘biên dịch’ (compilation) trong lập trình?
A. Là quá trình chuyển đổi mã nguồn viết bằng ngôn ngữ bậc cao thành ngôn ngữ máy.
B. Là quá trình thực thi trực tiếp mã nguồn.
C. Là quá trình tìm lỗi trong chương trình.
D. Là quá trình thiết kế thuật toán.
17. Đâu là một ví dụ về ‘biến đếm’ (counter variable) trong lập trình?
A. Một biến được sử dụng để đếm số lần lặp của một vòng lặp.
B. Một biến chỉ lưu trữ giá trị true hoặc false.
C. Một biến lưu trữ tên của người dùng.
D. Một biến lưu trữ kết quả của một phép tính phức tạp.
18. Trong Scratch, làm thế nào để tạo ra một vòng lặp thực hiện mãi mãi?
A. Sử dụng khối lệnh ‘forever’
B. Sử dụng khối lệnh ‘repeat 10’
C. Sử dụng khối lệnh ‘if … then’
D. Sử dụng khối lệnh ‘wait’
19. Trong Scratch, khối lệnh ‘go to x: y:’ dùng để làm gì?
A. Di chuyển nhân vật đến một vị trí có tọa độ X và Y xác định trên sân khấu.
B. Thay đổi hướng của nhân vật.
C. Làm cho nhân vật biến mất.
D. Phát ra âm thanh.
20. Phát biểu nào sau đây là đúng về ‘ngôn ngữ máy’?
A. Là ngôn ngữ chỉ bao gồm các chỉ thị nhị phân (0 và 1) mà bộ xử lý có thể hiểu trực tiếp.
B. Là ngôn ngữ gần gũi với con người và dễ viết.
C. Là ngôn ngữ dùng để tạo các ứng dụng web.
D. Là ngôn ngữ cần có trình biên dịch để chạy.
21. Trong Scratch, để nhân vật nói ‘Xin chào!’ trong 2 giây, bạn dùng khối lệnh nào?
A. say ‘Xin chào!’ for 2 secs
B. say ‘Xin chào!’
C. wait 2 secs
D. think ‘Xin chào!’ for 2 secs
22. Đâu là một ví dụ về ‘lệnh’ trong lập trình?
A. x = 10
B. 5 + 3
C. x > 10
D. True
23. Phát biểu nào sau đây mô tả đúng về ‘thuật toán’?
A. Là 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 đề.
B. Là một chương trình máy tính hoàn chỉnh.
C. Là một loại phần cứng đặc biệt.
D. Là một ngôn ngữ lập trình.
24. Phát biểu nào sau đây là đúng về ‘vòng lặp vô hạn’ trong lập trình?
A. Là vòng lặp không có điều kiện dừng hoặc điều kiện dừng không bao giờ đạt được.
B. Là vòng lặp chỉ chạy đúng một lần.
C. Là vòng lặp yêu cầu người dùng nhập dữ liệu để tiếp tục.
D. Là vòng lặp chỉ thực hiện khi có sự kiện từ bên ngoài.
25. Đâu là bước đầu tiên quan trọng nhất trong quá trình giải một bài toán bằng máy tính?
A. Phân tích và xác định rõ ràng yêu cầu của bài toán.
B. Viết mã lệnh bằng ngôn ngữ lập trình.
C. Chọn ngôn ngữ lập trình phù hợp.
D. Kiểm tra và gỡ lỗi chương trình.
26. Trong lập trình Scratch, khối lệnh nào được sử dụng để lặp lại một chuỗi các lệnh một số lần xác định?
A. Khối lệnh ‘repeat’
B. Khối lệnh ‘forever’
C. Khối lệnh ‘if … then’
D. Khối lệnh ‘wait’
27. Khi thiết kế một thuật toán, điều kiện dừng của một vòng lặp là gì?
A. Điều kiện để vòng lặp kết thúc việc thực hiện các lệnh bên trong.
B. Điều kiện để bắt đầu vòng lặp.
C. Điều kiện để thay đổi giá trị của biến đếm.
D. Điều kiện để thực hiện một lệnh duy nhất.
28. Phát biểu nào sau đây là đúng về ‘gỡ lỗi’ (debugging) trong lập trình?
A. Là quá trình tìm và sửa lỗi trong chương trình.
B. Là quá trình viết mã lệnh.
C. Là quá trình biên dịch chương trình.
D. Là quá trình thiết kế giao diện.
29. Đâu là một ví dụ về ‘biểu thức’ trong lập trình?
A. 5 + 3
B. print(‘Hello’)
C. if x > 10
D. x = 5
30. Phát biểu nào sau đây mô tả chính xác nhất về ‘ngôn ngữ lập trình bậc cao’?
A. Ngôn ngữ gần với cách con người giao tiếp và dễ hiểu hơn so với ngôn ngữ máy.
B. Ngôn ngữ chỉ bao gồm các mã nhị phân (0 và 1).
C. Ngôn ngữ yêu cầu người lập trình phải hiểu sâu về kiến trúc phần cứng của máy tính.
D. Ngôn ngữ chỉ có thể chạy trực tiếp trên bộ xử lý trung tâm (CPU).
31. Khi bạn thực hiện một yêu cầu GET trong giao thức HTTP, điều gì sẽ xảy ra với dữ liệu bạn gửi đi?
A. Dữ liệu được đính kèm vào URL dưới dạng các cặp khóa-giá trị (query parameters) và có thể nhìn thấy được. Kết luận Lý giải
B. Dữ liệu được gửi trong phần thân (body) của yêu cầu và được mã hóa.
C. Dữ liệu sẽ không được gửi đi cùng với yêu cầu GET.
D. Dữ liệu được lưu trữ tạm thời trong bộ nhớ cache của trình duyệt.
32. Khi xem xét các phương pháp bảo mật cho trang web, tại sao việc sử dụng HTTPS thay vì HTTP lại được khuyến khích mạnh mẽ?
A. HTTPS mã hóa dữ liệu truyền giữa trình duyệt và máy chủ, bảo vệ thông tin nhạy cảm khỏi bị nghe lén hoặc can thiệp. Kết luận Lý giải
B. HTTPS làm cho trang web tải nhanh hơn HTTP.
C. HTTPS chỉ cần thiết cho các trang web thương mại điện tử.
D. HTTP đã lỗi thời và không còn được hỗ trợ bởi các trình duyệt hiện đại.
33. Tại sao các nhà phát triển web thường sử dụng các thư viện (libraries) hoặc framework cho JavaScript (ví dụ: jQuery, React)?
A. Để tái sử dụng các đoạn mã đã được kiểm chứng, giải quyết các tác vụ phổ biến một cách hiệu quả, tiết kiệm thời gian và công sức lập trình. Kết luận Lý giải
B. Để làm cho trang web phức tạp và khó hiểu hơn.
C. Chỉ để thêm các hiệu ứng hình ảnh đơn giản.
D. Vì các trình duyệt không hỗ trợ JavaScript thuần túy.
34. Khi nói về ‘Caching’ (Bộ nhớ đệm) trong phát triển web, mục đích chính của nó là gì?
A. Lưu trữ tạm thời các tài nguyên web (như tệp HTML, CSS, JavaScript, hình ảnh) để giảm thời gian tải cho các lần truy cập sau và giảm tải cho máy chủ. Kết luận Lý giải
B. Tăng cường bảo mật cho trang web.
C. Phân tích hành vi người dùng.
D. Tạo ra các hiệu ứng động phức tạp.
35. Khái niệm ‘SEO On-page’ (Tối ưu hóa trên trang) bao gồm những hoạt động nào là chủ yếu?
A. Tối ưu hóa các yếu tố trực tiếp trên trang web như tiêu đề (title tag), mô tả meta, từ khóa trong nội dung, thẻ ALT cho hình ảnh và cấu trúc liên kết nội bộ. Kết luận Lý giải
B. Xây dựng liên kết ngược (backlinks) từ các trang web khác.
C. Quảng cáo trên mạng xã hội.
D. Cải thiện tốc độ máy chủ.
36. Khi nói về ‘UX’ (User Experience – Trải nghiệm người dùng) trong thiết kế web, yếu tố nào là trung tâm của mọi quyết định thiết kế?
A. Cảm nhận và sự hài lòng tổng thể của người dùng khi tương tác với trang web, bao gồm tính dễ sử dụng, hiệu quả và sự thú vị. Kết luận Lý giải
B. Số lượng màu sắc và hiệu ứng đồ họa được sử dụng.
C. Khả năng trang web hiển thị trên các thiết bị có màn hình lớn.
D. Tính năng kỹ thuật phức tạp mà trang web sở hữu.
37. Khi một người dùng nhập địa chỉ web vào trình duyệt, quá trình nào diễn ra đầu tiên để tìm ra địa chỉ IP của máy chủ web?
A. Trình duyệt gửi yêu cầu đến hệ thống DNS (Domain Name System) để phân giải tên miền thành địa chỉ IP. Kết luận Lý giải
B. Trình duyệt tự động kết nối đến máy chủ web mà không cần phân giải tên miền.
C. Máy chủ web gửi địa chỉ IP trực tiếp cho trình duyệt.
D. Trình duyệt kiểm tra bộ nhớ cache của hệ điều hành trước tiên.
38. Trong phát triển web, khái niệm ‘Client-Side Scripting’ (ví dụ: JavaScript) chủ yếu đề cập đến việc thực thi mã lệnh ở đâu?
A. Trên trình duyệt của người dùng (máy khách). Kết luận Lý giải
B. Trên máy chủ web.
C. Trên các máy chủ trung gian (proxy servers).
D. Trong cơ sở dữ liệu.
39. Trong thiết kế giao diện người dùng (UI) cho một trang web, nguyên tắc ‘nhất quán’ có ý nghĩa gì và tại sao nó lại quan trọng?
A. Đảm bảo các yếu tố thiết kế như màu sắc, font chữ, bố cục và cách thức tương tác được duy trì đồng nhất trên toàn bộ trang web, giúp người dùng dễ dàng làm quen và điều hướng. Kết luận Lý giải
B. Chỉ áp dụng cho việc sử dụng cùng một logo trên tất cả các trang.
C. Khuyến khích sự đa dạng trong thiết kế để tạo điểm nhấn.
D. Quan trọng nhất là làm cho trang web trông hiện đại và bắt mắt nhất có thể.
40. Trong phát triển web, ‘CMS’ (Content Management System) như WordPress, Joomla, Drupal có vai trò gì?
A. Cung cấp một nền tảng cho phép người dùng tạo, quản lý và sửa đổi nội dung trang web một cách dễ dàng mà không cần kiến thức sâu về lập trình. Kết luận Lý giải
B. Chỉ dùng để thiết kế giao diện.
C. Là một loại máy chủ web.
D. Chỉ dùng để phân tích lưu lượng truy cập.
41. Trong thiết kế web, khái niệm ‘Wireframe’ được sử dụng để làm gì?
A. Tạo ra bản phác thảo cấu trúc và bố cục cơ bản của trang web, tập trung vào chức năng và vị trí các thành phần, bỏ qua yếu tố hình ảnh chi tiết. Kết luận Lý giải
B. Thiết kế đồ họa chi tiết với màu sắc và hình ảnh.
C. Viết mã HTML và CSS.
D. Kiểm tra khả năng tương thích trình duyệt.
42. Khi nói về ‘Domain Name’ (Tên miền) của một trang web, nó đóng vai trò gì?
A. Là địa chỉ dễ nhớ, đại diện cho địa chỉ IP của máy chủ chứa trang web đó, giúp người dùng truy cập. Kết luận Lý giải
B. Chỉ là một chuỗi ký tự trang trí.
C. Quyết định tốc độ tải của trang web.
D. Là tên gọi của ngôn ngữ lập trình sử dụng.
43. Trong HTML, thẻ “ có vai trò gì khi người dùng nhập thông tin?
A. Tạo ra một khu vực nhập liệu mà người dùng có thể điền thông tin, sau đó gửi dữ liệu đó đến máy chủ. Kết luận Lý giải
B. Chỉ dùng để hiển thị văn bản.
C. Tạo liên kết đến các trang khác.
D. Định nghĩa cấu trúc của bảng.
44. Khi phát triển một ứng dụng web, tại sao việc sử dụng một hệ quản trị cơ sở dữ liệu (DBMS) như MySQL, PostgreSQL là cần thiết?
A. Để lưu trữ, tổ chức, truy xuất và quản lý dữ liệu một cách có hệ thống, đảm bảo tính toàn vẹn và hiệu quả. Kết luận Lý giải
B. Chỉ để tạo các trang web tĩnh.
C. Để xử lý các hiệu ứng đồ họa phức tạp.
D. Để thay thế hoàn toàn ngôn ngữ lập trình phía máy khách.
45. Tại sao việc định dạng bằng CSS lại được tách biệt khỏi cấu trúc HTML trong quá trình phát triển web?
A. Tách biệt giúp mã nguồn gọn gàng, dễ bảo trì, cho phép thay đổi giao diện mà không ảnh hưởng đến cấu trúc nội dung, đồng thời cải thiện khả năng truy cập. Kết luận Lý giải
B. Để làm cho việc viết mã trở nên phức tạp hơn.
C. CSS không thể hoạt động nếu không được tách biệt.
D. Chỉ là một quy tắc được đặt ra bởi các trình duyệt cũ.
46. Khi xây dựng một trang web, tại sao việc sử dụng thẻ ‘alt’ cho các thẻ ‘img’ (hình ảnh) lại quan trọng đối với SEO và khả năng truy cập (accessibility)?
A. Cung cấp mô tả văn bản cho hình ảnh, giúp công cụ tìm kiếm hiểu nội dung và hỗ trợ người dùng khiếm thị hoặc khi hình ảnh không tải được. Kết luận Lý giải
B. Chỉ đơn thuần là để làm đẹp cho mã nguồn.
C. Giúp tăng kích thước file của trang web, làm nó tải chậm hơn.
D. Chỉ có tác dụng khi người dùng sử dụng trình duyệt cũ.
47. Trong ngữ cảnh của HTML, thẻ “ có chức năng chính là gì?
A. Chứa các thông tin meta về trang web, liên kết đến các tệp CSS, JavaScript, tiêu đề trang (title) và các thiết lập khác không hiển thị trực tiếp trên nội dung trang. Kết luận Lý giải
B. Chứa nội dung chính sẽ hiển thị cho người dùng.
C. Dùng để tạo các bảng biểu dữ liệu.
D. Chỉ dùng để định nghĩa các thẻ tiêu đề lớn.
48. Trong HTML, thẻ `` với thuộc tính `href` được sử dụng để làm gì?
A. Tạo liên kết đến một trang web khác, một tệp tin hoặc một vị trí khác trong cùng một trang. Kết luận Lý giải
B. Chỉ dùng để nhúng hình ảnh.
C. Định dạng văn bản in đậm.
D. Tạo các đoạn văn bản mới.
49. Khi xây dựng một trang web, tại sao việc tuân thủ các tiêu chuẩn web (web standards) như W3C lại được khuyến khích?
A. Đảm bảo tính nhất quán, khả năng tương thích trên các trình duyệt và thiết bị, cải thiện khả năng truy cập và SEO. Kết luận Lý giải
B. Để làm cho trang web chỉ hoạt động trên một trình duyệt duy nhất.
C. Tăng cường bảo mật bằng cách sử dụng các tiêu chuẩn độc quyền.
D. Chỉ quan trọng đối với các trang web có giao diện phức tạp.
50. So sánh giữa ngôn ngữ đánh dấu HTML và ngôn ngữ định kiểu CSS, vai trò chính của mỗi loại là gì?
A. HTML dùng để định cấu trúc và nội dung của trang web, còn CSS dùng để định dạng và trình bày giao diện. Kết luận Lý giải
B. HTML dùng để tạo hiệu ứng động, còn CSS dùng để xử lý logic phía máy chủ.
C. Cả hai đều có vai trò giống nhau trong việc định dạng văn bản.
D. HTML dùng để kết nối cơ sở dữ liệu, còn CSS dùng để hiển thị dữ liệu đó.
51. Theo phân tích phổ biến, khi nói về các bước cơ bản để xây dựng một trang web, việc xác định mục tiêu và đối tượng người dùng đóng vai trò quan trọng như thế nào trong quá trình thiết kế và phát triển?
A. Giúp định hướng toàn bộ quá trình, đảm bảo sản phẩm cuối cùng đáp ứng đúng nhu cầu và mục đích đề ra. Kết luận Lý giải
B. Chỉ mang tính hình thức, không ảnh hưởng lớn đến kết quả cuối cùng.
C. Chủ yếu liên quan đến việc lựa chọn màu sắc và font chữ.
D. Chỉ quan trọng khi xây dựng các trang web phức tạp, có nhiều tính năng.
52. Khi phát triển một ứng dụng web, việc sử dụng ngôn ngữ lập trình phía máy chủ (server-side) như PHP, Python hay Node.js có mục đích chính là gì?
A. Xử lý logic nghiệp vụ, tương tác với cơ sở dữ liệu, quản lý phiên làm việc và gửi dữ liệu động đến máy khách. Kết luận Lý giải
B. Tạo hiệu ứng đồ họa và hoạt ảnh trên trình duyệt của người dùng.
C. Đảm bảo trang web hiển thị tốt trên mọi loại thiết bị, từ máy tính đến điện thoại.
D. Chỉ dùng để viết mã HTML và CSS.
53. Khi một trang web sử dụng kỹ thuật ‘Lazy Loading’ cho hình ảnh, điều này có ý nghĩa gì đối với hiệu suất tải trang?
A. Hình ảnh chỉ được tải khi người dùng cuộn đến khu vực hiển thị chúng, giúp giảm thời gian tải ban đầu của trang và tiết kiệm băng thông. Kết luận Lý giải
B. Tất cả hình ảnh sẽ được tải ngay lập tức khi trang mở.
C. Chỉ áp dụng cho các định dạng hình ảnh đặc biệt.
D. Làm tăng kích thước tệp tin của trang web.
54. Tại sao việc tối ưu hóa tốc độ tải trang web (page load speed) lại là một yếu tố cực kỳ quan trọng trong phát triển web hiện đại?
A. Tốc độ tải nhanh cải thiện trải nghiệm người dùng, giảm tỷ lệ bỏ trang (bounce rate) và ảnh hưởng tích cực đến thứ hạng tìm kiếm (SEO). Kết luận Lý giải
B. Chỉ giúp tiết kiệm băng thông cho người dùng có kết nối yếu.
C. Làm cho trang web trông chuyên nghiệp hơn, nhưng không ảnh hưởng đến hành vi người dùng.
D. Chỉ quan trọng đối với các trang web có nhiều hình ảnh và video.
55. Khi nói về Responsive Web Design (Thiết kế web đáp ứng), điều cốt lõi nhất mà nó hướng tới là gì?
A. Đảm bảo trang web hiển thị và hoạt động tốt trên mọi kích thước màn hình và thiết bị khác nhau, từ máy tính để bàn đến điện thoại thông minh. Kết luận Lý giải
B. Chỉ tập trung vào việc làm cho trang web trông đẹp trên màn hình lớn.
C. Yêu cầu người dùng phải tự điều chỉnh kích thước cửa sổ trình duyệt.
D. Sử dụng duy nhất một layout cho tất cả các thiết bị.
56. Khi gửi một yêu cầu HTTP, ‘User-Agent’ header thường chứa thông tin gì?
A. Thông tin về trình duyệt, hệ điều hành và thiết bị mà người dùng đang sử dụng. Kết luận Lý giải
B. Địa chỉ IP của người dùng.
C. Nội dung của trang web được yêu cầu.
D. Thông tin xác thực của người dùng.
57. Trong quy trình phát triển web, giai đoạn ‘Testing’ (Kiểm thử) đóng vai trò quan trọng như thế nào?
A. Đảm bảo trang web hoạt động đúng như mong đợi, phát hiện và sửa lỗi, kiểm tra tính tương thích trên các trình duyệt và thiết bị khác nhau. Kết luận Lý giải
B. Chỉ là bước cuối cùng để hoàn thiện giao diện.
C. Là giai đoạn duy nhất cần thiết.
D. Chỉ dành cho việc kiểm tra bảo mật.
58. Trong phát triển web, ‘Framework’ (khung làm việc) như React, Angular, Vue.js thường mang lại lợi ích gì cho lập trình viên?
A. Cung cấp một cấu trúc sẵn có, các thư viện và công cụ giúp tăng tốc độ phát triển, chuẩn hóa quy trình và quản lý mã nguồn hiệu quả hơn. Kết luận Lý giải
B. Chỉ đơn thuần là một bộ sưu tập các mã HTML.
C. Yêu cầu người dùng cài đặt phần mềm bổ sung phức tạp.
D. Làm chậm quá trình phát triển do phải học cách sử dụng.
59. Trong lĩnh vực phát triển web, khái niệm ‘API’ (Application Programming Interface) thường được hiểu là gì?
A. Một tập hợp các quy tắc và định nghĩa cho phép các ứng dụng phần mềm khác nhau giao tiếp và trao đổi dữ liệu với nhau. Kết luận Lý giải
B. Một loại ngôn ngữ lập trình mới được sử dụng để xây dựng giao diện.
C. Là tên gọi của một công ty chuyên cung cấp dịch vụ lưu trữ web.
D. Chỉ là một khái niệm lý thuyết, không có ứng dụng thực tế trong phát triển web.
60. Trong các phương thức gửi dữ liệu qua HTTP, phương thức POST khác với GET ở điểm nào quan trọng nhất?
A. POST gửi dữ liệu trong phần thân của yêu cầu, không hiển thị trên URL, phù hợp cho việc gửi dữ liệu nhạy cảm hoặc có dung lượng lớn. Kết luận Lý giải
B. POST không gửi dữ liệu đi cùng yêu cầu.
C. POST chỉ dùng để truy xuất thông tin.
D. POST không thể được sử dụng để gửi dữ liệu đến máy chủ.
61. Khái niệm ‘hàm’ (function) trong lập trình giúp giải quyết vấn đề gì?
A. Tạo ra các giao diện đồ họa người dùng phức tạp.
B. Tổ chức mã thành các khối có thể tái sử dụng, giúp quản lý và hiểu mã dễ dàng hơn.
C. Thực hiện các phép toán số học phức tạp.
D. Xử lý lỗi một cách tự động khi chương trình gặp sự cố.
62. Trong các kiểu dữ liệu cơ bản, ‘Boolean’ dùng để biểu diễn giá trị nào?
A. Một số nguyên bất kỳ.
B. Một ký tự đơn lẻ.
C. Chỉ có hai giá trị: Đúng (True) hoặc Sai (False).
D. Một số thực có độ chính xác cao.
63. Câu lệnh ‘for’ trong lập trình thường được 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 một số lần xác định trước.
C. Khi cần lặp lại cho đến khi một điều kiện phức tạp được đáp ứng.
D. Khi cần lưu trữ một tập hợp dữ liệu.
64. Trong lập trình, ‘hằng số’ (constant) là gì?
A. Một biến mà giá trị của nó có thể thay đổi bất cứ lúc nào.
B. Một giá trị không thể thay đổi trong suốt quá trình thực thi chương trình.
C. Một hàm thực hiện phép tính phức tạp.
D. Một cấu trúc dữ liệu để lưu trữ nhiều phần tử.
65. Câu lệnh ‘if-else’ trong ngôn ngữ lập trình là cấu trúc điều khiển dùng để làm gì?
A. Lặp lại một khối lệnh cho đến khi một điều kiện sai.
B. Thực hiện một khối lệnh nếu điều kiện đúng, và một khối lệnh khác nếu điều kiện sai.
C. Lưu trữ nhiều giá trị trong một biến duy nhất.
D. Chuyển đổi giữa nhiều trường hợp dựa trên giá trị của một biến.
66. Khái niệm ‘mã giả’ (pseudocode) trong lập trình được dùng để làm gì?
A. Viết mã nguồn cuối cùng cho máy tính.
B. Mô tả thuật toán hoặc logic của chương trình bằng ngôn ngữ tự nhiên dễ hiểu, không phụ thuộc vào cú pháp cụ thể của ngôn ngữ lập trình nào.
C. Biên dịch mã nguồn thành mã máy.
D. Gỡ lỗi tự động cho chương trình.
67. Trong lập trình, ‘cú pháp’ (syntax) đề cập đến điều gì?
A. Ý nghĩa và logic của các câu lệnh.
B. Các quy tắc về cách viết mã lệnh để trình biên dịch/thông dịch hiểu được.
C. Cách chương trình tương tác với người dùng.
D. Hiệu suất hoạt động của chương trình.
68. Câu lệnh ‘switch-case’ (hoặc tương đương) trong lập trình thường được sử dụng khi nào?
A. Khi cần lặp lại một hành động nhiều lần mà không biết trước số lần lặp.
B. Khi cần so sánh một biến với nhiều giá trị khác nhau và thực hiện các hành động tương ứng.
C. Khi cần kết hợp hai hoặc nhiều điều kiện logic.
D. Khi cần lưu trữ một chuỗi ký tự.
69. Tại sao việc kiểm tra đầu vào của người dùng là quan trọng trong thiết kế phần mềm?
A. Để làm cho chương trình hiển thị đẹp hơn.
B. Để ngăn chặn các lỗi do dữ liệu không hợp lệ hoặc độc hại gây ra, đảm bảo chương trình hoạt động ổn định.
C. Để tăng tốc độ xử lý của chương trình.
D. Để giảm thiểu số lượng câu lệnh cần viết.
70. Trong lập trình, ‘biến’ (variable) có vai trò quan trọng nhất là gì?
A. Định nghĩa một hàm để thực hiện một tác vụ cụ thể.
B. Lưu trữ và đại diện cho dữ liệu mà chương trình có thể thao tác.
C. Kiểm soát luồng thực thi của chương trình.
D. Hiển thị kết quả ra màn hình cho người dùng.
71. Một ‘biên dịch’ (compiler) làm gì với mã nguồn?
A. Thực thi mã nguồn trực tiếp theo từng dòng.
B. Dịch toàn bộ mã nguồn thành mã máy hoặc mã trung gian trước khi thực thi.
C. Kiểm tra lỗi ngữ pháp và sửa chúng tự động.
D. Chỉ chạy một phần của mã nguồn.
72. Ngược lại với biên dịch, ‘thông dịch’ (interpreter) hoạt động như thế nào?
A. Dịch toàn bộ mã nguồn thành một tệp thực thi duy nhất.
B. Thực thi mã nguồn từng dòng hoặc từng khối nhỏ một cách trực tiếp.
C. Chỉ dịch các phần mã được đánh dấu đặc biệt.
D. Chỉ kiểm tra cú pháp mà không thực thi.
73. Trong lập trình, ‘chuỗi’ (string) là kiểu dữ liệu dùng để biểu diễn loại thông tin nào?
A. Các số nguyên.
B. Các giá trị đúng/sai (Boolean).
C. Tập hợp các ký tự liên tiếp, thường là văn bản.
D. Các số thực có phần thập phân.
74. Khái niệm ‘lập trình hướng đối tượng’ (Object-Oriented Programming – OOP) tập trung vào việc tổ chức mã xung quanh các yếu tố nào?
A. Các biến và hằng số.
B. Các hàm và thủ tục.
C. Các đối tượng (objects), bao gồm dữ liệu (thuộc tính) và hành vi (phương thức).
D. Các vòng lặp và câu lệnh điều kiện.
75. Nếu một chương trình cần thực hiện một hành động **nhiều lần**, mỗi lần **với một giá trị khác nhau** lấy từ một tập hợp có sẵn, cấu trúc nào là phù hợp nhất?
A. Câu lệnh ‘if’.
B. Vòng lặp ‘while’.
C. Vòng lặp ‘for’ hoặc cấu trúc lặp tương tự trên tập hợp.
D. Câu lệnh ‘switch-case’.
76. Khi thiết kế một chương trình, việc chia nhỏ vấn đề lớn thành các vấn đề nhỏ hơn, độc lập (ví dụ: dùng hàm) được gọi là gì?
A. Biên dịch mã nguồn.
B. Gỡ lỗi.
C. Phân rã (Decomposition).
D. Tối ưu hóa hiệu suất.
77. Khi lập trình, ‘mảng’ (array) thường được sử dụng để làm gì?
A. Thực hiện các phép so sánh logic giữa các điều kiện.
B. Lưu trữ một tập hợp các phần tử cùng kiểu dữ liệu dưới một tên duy nhất.
C. Gọi lại một đoạn mã nhiều lần theo một điều kiện nhất định.
D. Tạo ra các biến tạm thời cho các phép tính trung gian.
78. Khái niệm ‘môi trường phát triển tích hợp’ (Integrated Development Environment – IDE) cung cấp những công cụ gì cho lập trình viên?
A. Chỉ trình duyệt web để xem kết quả.
B. Một bộ công cụ tích hợp bao gồm trình soạn thảo mã, trình biên dịch/thông dịch, trình gỡ lỗi và các công cụ hỗ trợ khác.
C. Chỉ công cụ để thiết kế giao diện đồ họa.
D. Công cụ để quản lý cơ sở dữ liệu.
79. Khi bạn muốn chương trình thực hiện một khối mã **nhiều lần cho đến khi** một điều kiện không còn đúng nữa, bạn sẽ sử dụng cấu trúc nào?
A. Câu lệnh ‘if-else’.
B. Vòng lặp ‘for’.
C. Vòng lặp ‘while’.
D. Câu lệnh ‘return’.
80. Tại sao việc đặt tên biến và hàm một cách rõ ràng, có ý nghĩa lại quan trọng trong lập trình?
A. Để chương trình chạy nhanh hơn.
B. Giúp các lập trình viên khác (và cả chính mình sau này) dễ dàng hiểu, đọc và bảo trì mã nguồn.
C. Giảm dung lượng của chương trình cuối cùng.
D. Tự động sửa lỗi cú pháp trong mã.
81. Trong lập trình, ‘toán tử’ (operator) là gì?
A. Một biến lưu trữ giá trị.
B. Một từ khóa định nghĩa cấu trúc điều khiển.
C. Một ký hiệu hoặc từ khóa thực hiện một phép toán trên một hoặc nhiều toán hạng.
D. Một kiểu dữ liệu để lưu trữ văn bản.
82. Chức năng chính của ‘ngôn ngữ lập trình’ là gì?
A. Trình bày nội dung văn bản trên máy tính.
B. Cho phép con người giao tiếp và ra lệnh cho máy tính thực hiện các tác vụ.
C. Lưu trữ thông tin dưới dạng tệp tin.
D. Quản lý hệ điều hành của máy tính.
83. Một ‘biến đếm’ (counter variable) trong vòng lặp thường được sử dụng để làm gì?
A. Lưu trữ kết quả cuối cùng của vòng lặp.
B. Theo dõi số lần lặp đã thực hiện hoặc số lần một sự kiện xảy ra.
C. Xác định điều kiện dừng của vòng lặp.
D. Lưu trữ tất cả các giá trị trung gian trong vòng lặp.
84. Khi một chương trình máy tính yêu cầu người dùng nhập dữ liệu, đó là ví dụ về tương tác theo chiều nào?
A. Đầu ra (Output).
B. Xử lý (Processing).
C. Đầu vào (Input).
D. Lưu trữ (Storage).
85. Khái niệm ‘gỡ lỗi’ (debugging) trong lập trình đề cập đến hoạt động nào?
A. Viết mã nguồn mới cho một chức năng.
B. Tìm kiếm, xác định và sửa các lỗi (bugs) trong mã nguồn.
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.
86. Trong lập trình, khái niệm ‘vòng lặp’ (loop) được sử dụng chủ yếu cho mục đích gì?
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 không thỏa mãn.
B. Lưu trữ một tập hợp các giá trị có liên quan với nhau.
C. Kiểm tra một điều kiện và thực hiện một khối lệnh nếu điều kiện đúng.
D. Thực hiện một hành động dựa trên giá trị của một biến.
87. Trong lập trình, ‘thuật toán’ (algorithm) là gì?
A. Một chương trình máy tính hoàn chỉnh.
B. Một tập hợp các bước rõ ràng, hữu hạn để giải quyết một vấn đề hoặc thực hiện một nhiệm vụ.
C. Ngôn ngữ mà máy tính có thể hiểu trực tiếp.
D. Cấu trúc dữ liệu dùng để lưu trữ thông tin.
88. Trong lập trình, ‘kiểu dữ liệu số nguyên’ (integer) dùng để biểu diễn loại thông tin nào?
A. Các số có phần thập phân.
B. Các số không có phần thập phân (số nguyên dương, âm và 0).
C. Các ký tự chữ cái.
D. Các giá trị logic (Đúng/Sai).
89. Khi bạn thực thi một hàm và cung cấp các giá trị cho nó, những giá trị đó được gọi là gì?
A. Biến cục bộ (Local variables).
B. Tham số (Parameters).
C. Hằng số (Constants).
D. Mã trả về (Return code).
90. Nếu bạn muốn chương trình thực hiện một hành động **chỉ khi** một điều kiện cụ thể là đúng, bạn sẽ sử dụng cấu trúc nào?
A. Vòng lặp ‘while’.
B. Câu lệnh ‘if’.
C. Cấu trúc ‘switch-case’.
D. Mảng dữ liệu.
91. Để dừng tất cả các script đang chạy trong một dự án Scratch, nên sử dụng khối lệnh nào?
A. Khối ‘stop this script’.
B. Khối ‘wait’.
C. Khối ‘stop all’.
D. Khối ‘go to start’.
92. Khối lệnh ‘set [variable] to [value]’ trong Scratch dùng để làm gì?
A. Tạo ra một biến số mới.
B. Gán một giá trị cụ thể cho một biến số đã tồn tại.
C. Tăng giá trị của biến số lên 1 đơn vị.
D. Xóa một biến số khỏi chương trình.
93. Trong Scratch, để tạo hiệu ứng ‘tàng hình’ hoặc ‘hiển thị’ cho một nhân vật, bạn sẽ sử dụng nhóm khối lệnh nào?
A. Khối ‘Motion’.
B. Khối ‘Looks’.
C. Khối ‘Sound’.
D. Khối ‘Events’.
94. Trong Scratch, khi muốn một nhân vật thay đổi hướng một góc cụ thể, khối lệnh nào là phù hợp nhất?
A. Khối ‘go to x: y:’.
B. Khối ‘change size by’.
C. Khối ‘turn left/right degrees’.
D. Khối ‘say for seconds:’.
95. Mục đích của việc sử dụng khối ‘ask and wait’ trong Scratch là gì?
A. Để nhân vật tự động nói một câu.
B. Để chương trình hỏi người dùng một câu hỏi và chờ đợi câu trả lời.
C. Để phát một đoạn nhạc.
D. Để thay đổi phông nền của sân khấu.
96. Mục đích chính của việc sử dụng các khối lệnh điều kiện ‘if’ và ‘if-then-else’ trong Scratch là gì?
A. Tăng tốc độ xử lý của chương trình.
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. Tạo ra đồ họa chuyển động mượt mà hơn.
D. Giảm dung lượng của dự án Scratch.
97. Trong Scratch, khối ‘go to random position’ được sử dụng để làm gì?
A. Di chuyển nhân vật đến một vị trí cố định đã xác định trước.
B. Di chuyển nhân vật đến một vị trí bất kỳ trên sân khấu.
C. Thay đổi kích thước của nhân vật.
D. Phát một âm thanh ngẫu nhiên.
98. Trong Scratch, để tạo ra một hiệu ứng ‘nhấp nháy’ cho một nhân vật, cách tiếp cận phổ biến nhất là gì?
A. Sử dụng khối ‘say’ và ‘think’.
B. Kết hợp khối ‘wait’ với việc thay đổi trang phục (costume) hoặc sử dụng khối ‘show’ và ‘hide’ trong một vòng lặp ‘forever’.
C. Sử dụng khối ‘change size by’.
D. Sử dụng khối ‘play sound’.
99. Trong lập trình Scratch, sự kiện ‘when this sprite clicked’ được kích hoạt khi nào?
A. Khi chương trình bắt đầu chạy.
B. Khi người dùng nhấp chuột vào chính nhân vật (sprite) đó.
C. Khi một nhân vật khác gửi một thông điệp.
D. Khi một điều kiện logic được thỏa mãn.
100. Để tạo ra một chuỗi các hành động liên tiếp nhau theo một trình tự thời gian xác định trong Scratch, bạn thường sử dụng kết hợp những khối lệnh nào?
A. Khối ‘forever’ và ‘repeat until’.
B. Khối ‘change x by’ và ‘change y by’.
C. Khối ‘wait’ và các khối hành động (như ‘move’, ‘say’, ‘switch costume’).
D. Khối ‘broadcast’ và ‘when I receive’.
101. Khi sử dụng khối ‘glide to x: y: duration:’ trong Scratch, nếu giá trị ‘duration’ là 0, hành động sẽ xảy ra như thế nào?
A. Nhân vật sẽ di chuyển rất chậm.
B. Nhân vật sẽ di chuyển ngay lập tức đến đích.
C. Chương trình sẽ bị treo.
D. Nhân vật sẽ di chuyển theo đường cong.
102. Trong Scratch, làm thế nào để nhân vật có thể lặp lại một hành động cho đến khi một điều kiện cụ thể được đáp ứng?
A. Sử dụng khối ‘repeat 10’.
B. Sử dụng khối ‘forever’.
C. Sử dụng khối ‘repeat until’.
D. Sử dụng khối ‘wait 1 seconds’.
103. Trong Scratch, làm thế nào để một nhân vật phát ra âm thanh khi một sự kiện xảy ra?
A. Sử dụng khối ‘change x by’ và ‘change y by’.
B. Sử dụng khối ‘start sound’ hoặc ‘play sound until done’.
C. Sử dụng khối ‘say’.
D. Sử dụng khối ‘repeat’.
104. Trong Scratch, ‘Cảm biến’ (Sensing) bao gồm những loại thông tin nào mà chương trình có thể thu thập?
A. Chỉ các giá trị số từ biến số.
B. Vị trí của con trỏ chuột, trạng thái phím bấm, khoảng cách giữa các nhân vật, thời gian.
C. Chỉ các câu hỏi đã được nhập bởi người dùng.
D. Tên của dự án Scratch.
105. Mục đích chính của việc sử dụng biến số ‘answer’ trong Scratch là gì?
A. Lưu trữ điểm số của người chơi.
B. Chứa câu trả lời mà người dùng nhập vào sau khi khối ‘ask and wait’ được kích hoạt.
C. Ghi lại thời gian hiện tại của hệ thống.
D. Lưu trữ tên của nhân vật.
106. Trong lập trình Scratch, khối lệnh ‘repeat’ được sử dụng để thực hiện một chuỗi lệnh:
A. Một số lần xác định trước.
B. Cho đến khi một điều kiện nhất định được thỏa mãn.
C. Vô hạn lần.
D. Chỉ một lần duy nhất.
107. Trong Scratch, khi muốn một nhân vật di chuyển theo đường cong hoặc tạo hiệu ứng xoay tròn, khối lệnh nào thường được kết hợp sử dụng?
A. Khối ‘go to x: y:’ và ‘change size by’.
B. Khối ‘turn left/right’ và ‘move steps’.
C. Khối ‘say’ và ‘wait’.
D. Khối ‘switch backdrop’.
108. Để tạo ra một hiệu ứng chuyển động của nhân vật từ vị trí này sang vị trí khác một cách mượt mà trong một khoảng thời gian nhất định tại Scratch, khối lệnh nào là phù hợp nhất?
A. Khối ‘change x by’ kết hợp với ‘wait’.
B. Khối ‘glide to x: y: duration:’.
C. Khối ‘go to x: y:’ ngay lập tức.
D. Khối ‘turn left/right’.
109. Câu lệnh ‘repeat until ‘ và ‘wait until ‘ trong Scratch có điểm tương đồng là gì?
A. Cả hai đều thực hiện hành động một số lần cố định.
B. Cả hai đều chờ đợi một điều kiện được thỏa mãn để tiếp tục hoặc lặp lại.
C. Cả hai đều được sử dụng để phát âm thanh.
D. Cả hai đều dùng để thay đổi màu sắc của nhân vật.
110. Trong Scratch, khối lệnh ‘change [variable] by [value]’ có chức năng gì?
A. Đặt một giá trị cố định cho biến số.
B. Tăng hoặc giảm giá trị của biến số một lượng xác định.
C. Tạo một biến số mới với tên cho trước.
D. Xóa tất cả các biến số.
111. Khi tạo một trò chơi trong Scratch, việc sử dụng các khối ‘if on edge, bounce’ có ý nghĩa gì đối với chuyển động của nhân vật?
A. Nhân vật sẽ nảy lên khỏi mặt đất.
B. Nhân vật sẽ tự động thay đổi hướng khi chạm vào các cạnh của sân khấu.
C. Nhân vật sẽ dừng lại khi chạm vào cạnh sân khấu.
D. Nhân vật sẽ thay đổi màu sắc khi chạm vào cạnh sân khấu.
112. Mục đích của việc sử dụng khối ‘forever’ trong Scratch là gì?
A. Thực hiện một hành động đúng một lần duy nhất.
B. Thực hiện một hành động nhiều lần nhưng có giới hạn.
C. Thực hiện một chuỗi hành động lặp đi lặp lại liên tục cho đến khi chương trình dừng.
D. Dừng tất cả các hành động đang diễn ra.
113. Để làm cho một nhân vật trong Scratch nói một câu thoại trong một khoảng thời gian nhất định, khối lệnh nào là phù hợp?
A. Khối ‘show’ và ‘hide’.
B. Khối ‘say for seconds:’ hoặc ‘think for seconds:’.
C. Khối ‘change size by’.
D. Khối ‘switch costume to’.
114. Khi lập trình một nhân vật di chuyển trong Scratch, khối lệnh nào thường được sử dụng để thay đổi vị trí theo trục X và Y?
A. Khối ‘say’ và khối ‘think’.
B. Khối ‘change color effect’ và khối ‘ghost effect’.
C. Khối ‘go to x: y:’ hoặc ‘change x by’ và ‘change y by’.
D. Khối ‘play sound’ và khối ‘stop all sounds’.
115. Trong Scratch, làm thế nào để thay đổi trang phục (costume) của một nhân vật để tạo hiệu ứng hoạt hình?
A. Sử dụng khối ‘change x by’ và ‘change y by’.
B. Sử dụng khối ‘switch costume to’ hoặc ‘next costume’.
C. Sử dụng khối ‘play sound’.
D. Sử dụng khối ‘broadcast’.
116. Khối lệnh ‘broadcast’ và ‘when I receive’ trong Scratch có vai trò gì trong việc tạo ra các tương tác giữa các nhân vật hoặc đối tượng?
A. Chúng chỉ được sử dụng để thay đổi màu sắc của nhân vật.
B. Chúng cho phép một nhân vật gửi tín hiệu để kích hoạt các hành động ở các nhân vật khác.
C. Chúng dùng để phát nhạc nền cho toàn bộ dự án.
D. Chúng chỉ dùng để hiển thị thông báo trên màn hình.
117. Mục đích của khối lệnh ‘clone’ (bản sao) trong Scratch là gì?
A. Tạo ra một nhân vật hoàn toàn mới với các thuộc tính khác biệt.
B. Tạo ra các bản sao của chính nhân vật đó để thực hiện các hành động đồng thời hoặc lặp lại.
C. Lưu trữ dữ liệu của nhân vật vào biến số.
D. Thay đổi kích thước của nhân vật.
118. Trong ngữ cảnh lập trình Scratch, ‘biến số’ (variable) được sử dụng để làm gì?
A. Lưu trữ và thay đổi dữ liệu trong suốt quá trình chạy chương trình.
B. Chỉ dùng để hiển thị văn bản trên sân khấu.
C. Tạo ra các hiệu ứng âm thanh.
D. Điều khiển hướng di chuyển của nhân vật.
119. Khi lập trình một trò chơi đua xe trong Scratch, nếu muốn chiếc xe di chuyển tiến về phía trước, khối lệnh nào là cơ bản nhất cần sử dụng?
A. Khối ‘turn left’ và ‘turn right’.
B. Khối ‘move steps’.
C. Khối ‘say’.
D. Khối ‘change color effect’.
120. Câu lệnh ‘wait until’ trong Scratch có chức năng gì?
A. Chờ một khoảng thời gian cố định đã được chỉ định.
B. Chờ cho đến khi một điều kiện cảm biến hoặc logic trở thành đúng.
C. Dừng chương trình hoàn toàn cho đến khi người dùng nhấp chuột.
D. Phát một âm thanh và sau đó tiếp tục chạy.
121. Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây dùng để hiển thị thông tin ra màn hình?
A. readln
B. writeln
C. assign
D. close
122. Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây mô tả đúng nhất về cấu trúc ‘repeat … until’?
A. Khối lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Lặp lại cho đến khi điều kiện đúng.
B. Khối lệnh được thực hiện cho đến khi điều kiện sai. Lặp lại cho đến khi điều kiện sai.
C. Khối lệnh được thực hiện cho đến khi điều kiện đúng. Lặp lại cho đến khi điều kiện đúng.
D. Khối lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Lặp lại cho đến khi điều kiện sai.
123. Phát biểu nào sau đây là sai về vòng lặp ‘repeat … until’ trong Pascal?
A. Vòng lặp này đảm bảo thực hiện khối lệnh ít nhất một lần.
B. Điều kiện kiểm tra được đặt sau từ khóa ‘until’.
C. Vòng lặp tiếp tục khi điều kiện là đúng.
D. Vòng lặp dừng lại khi điều kiện là đúng.
124. Phát biểu nào sau đây về kiểu dữ liệu ‘boolean’ trong lập trình là đúng nhất?
A. Lưu trữ các ký tự đơn lẻ.
B. Lưu trữ các số thực có phần thập phân.
C. Lưu trữ hai giá trị là ‘true’ (đúng) hoặc ‘false’ (sai).
D. Lưu trữ các chuỗi ký tự.
125. Phát biểu nào sau đây mô tả đúng nhất về vai trò của trình biên dịch (compiler) trong quá trình phát triển phần mềm?
A. Chuyển đổi mã nguồn thành ngôn ngữ máy để máy tính có thể hiểu và thực thi.
B. Giúp người lập trình tìm và sửa lỗi cú pháp trong mã nguồn.
C. Cho phép chạy từng dòng lệnh để kiểm tra chức năng.
D. Quản lý các tệp tin dự án và phiên bản mã nguồn.
126. Phát biểu nào sau đây mô tả đúng nhất về mục đích của thủ tục hay hàm trong lập trình?
A. Để lưu trữ dữ liệu tạm thời.
B. Để giảm thiểu việc lặp lại mã nguồn và tăng tính module hóa cho chương trình.
C. Để định nghĩa các biến toàn cục.
D. Để kiểm tra lỗi cú pháp.
127. Mục đích chính của việc sử dụng ‘hằng’ (constant) trong lập trình là gì?
A. Để lưu trữ các giá trị có thể thay đổi một cách linh hoạt.
B. Để làm cho chương trình dễ đọc hơn và dễ dàng cập nhật giá trị cố định.
C. Để khai báo các biến tạm thời trong các vòng lặp.
D. Để định nghĩa các kiểu dữ liệu mới.
128. Phát biểu nào sau đây mô tả đúng nhất về sự khác biệt giữa ‘hàm’ (function) và ‘thủ tục’ (procedure) trong Pascal?
A. Hàm luôn trả về một giá trị, thủ tục thì không.
B. Thủ tục luôn trả về một giá trị, hàm thì không.
C. Cả hai đều trả về một giá trị.
D. Không có sự khác biệt rõ rệt, chúng có thể thay thế cho nhau.
129. Khi làm việc với vòng lặp ‘for’ trong Pascal, phát biểu nào sau đây là sai?
A. Biến đếm của vòng lặp ‘for’ không thể thay đổi giá trị trong thân vòng lặp.
B. Vòng lặp ‘for’ chỉ phù hợp cho các vòng lặp có số lần lặp xác định trước.
C. Điều kiện kết thúc vòng lặp ‘for’ được kiểm tra trước mỗi lần lặp.
D. Biến đếm của vòng lặp ‘for’ tự động tăng hoặc giảm sau mỗi lần thực hiện khối lệnh.
130. Trong lập trình Pascal, nếu ta muốn khai báo một biến có thể lưu trữ cả số nguyên và số thực, ta nên chọn kiểu dữ liệu nào?
A. integer
B. char
C. string
D. real
131. Trong Pascal, từ khóa ‘begin’ và ‘end’ được sử dụng để làm gì?
A. Định nghĩa một hàm hoặc thủ tục.
B. Khai báo biến.
C. Đánh dấu sự bắt đầu và kết thúc của một khối lệnh hoặc toàn bộ chương trình.
D. Khởi tạo giá trị cho biến.
132. Phát biểu nào sau đây là đúng về cách kiểm tra điều kiện trong vòng lặp ‘while’?
A. Điều kiện được kiểm tra sau mỗi lần thực hiện khối lệnh.
B. Điều kiện được kiểm tra trước mỗi lần thực hiện khối lệnh.
C. Điều kiện chỉ được kiểm tra một lần duy nhất trước khi bắt đầu vòng lặp.
D. Điều kiện được kiểm tra sau khi vòng lặp kết thúc.
133. Trong lập trình, một ‘biểu thức’ (expression) là gì?
A. Một câu lệnh để thực hiện một hành động cụ thể.
B. Một tổ hợp các toán tử, toán hạng và có thể là các lời gọi hàm, mà kết quả là một giá trị.
C. Một khối lệnh được định nghĩa để thực thi một nhiệm vụ.
D. Một khai báo biến.
134. Trong Pascal, khi khai báo một biến để lưu trữ một ký tự đơn lẻ, ta sử dụng từ khóa nào?
A. string
B. char
C. byte
D. boolean
135. Phát biểu nào sau đây mô tả đúng nhất về cấu trúc rẽ nhánh ‘if-then’ trong Pascal?
A. Nếu điều kiện đúng, thực hiện một khối lệnh. Nếu sai, thực hiện một khối lệnh khác.
B. Nếu điều kiện đúng, thực hiện một khối lệnh. Nếu sai, bỏ qua khối lệnh đó.
C. Thực hiện một khối lệnh và sau đó kiểm tra điều kiện.
D. Thực hiện một khối lệnh cho đến khi điều kiện sai.
136. Trong lập trình Pascal, để thoát khỏi vòng lặp ‘while’ ngay lập tức, ta sử dụng từ khóa nào?
A. continue
B. return
C. break
D. exit
137. Trong Pascal, nếu muốn khai báo một biến có thể lưu trữ giá trị đúng hoặc sai, ta sử dụng kiểu dữ liệu nào?
A. integer
B. real
C. boolean
D. char
138. Phát biểu nào sau đây mô tả đúng nhất về mục đích của việc sử dụng cấu trúc ‘case’ trong Pascal?
A. Để lặp lại một khối lệnh một số lần xác định.
B. Để thực hiện một trong nhiều khối lệnh khác nhau dựa trên giá trị của một biểu thức.
C. Để kiểm tra hai điều kiện cùng một lúc.
D. Để thoát khỏi vòng lặp ngay lập tức.
139. Trong Pascal, để khai báo một chuỗi ký tự có độ dài tối đa là 255 ký tự, ta sử dụng kiểu dữ liệu nào?
A. char[255]
B. string
C. text
D. array[1..255] of char
140. Trong Pascal, khi khai báo một biến kiểu số nguyên, ta sử dụng từ khóa nào sau đây?
A. real
B. char
C. integer
D. boolean
141. Phát biểu nào sau đây là đúng về vòng lặp ‘for’ trong Pascal khi sử dụng ‘downto’?
A. Biến đếm tăng dần từ giá trị đầu đến giá trị cuối.
B. Biến đếm giảm dần từ giá trị đầu đến giá trị cuối.
C. Vòng lặp chỉ thực hiện một lần.
D. Vòng lặp tiếp tục cho đến khi điều kiện là sai.
142. Phát biểu nào sau đây mô tả đúng nhất về mục đích của việc sử dụng biến trong lập trình?
A. Để lưu trữ các hằng số không thay đổi trong quá trình chạy chương trình.
B. Để định nghĩa các cấu trúc dữ liệu phức tạp như mảng hoặc bản ghi.
C. Để lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi chương trình.
D. Để biểu diễn các toán tử logic và số học.
143. Trong lập trình Pascal, để đọc một dòng văn bản từ bàn phím, ta sử dụng thủ tục nào?
A. write
B. read
C. readln
D. writeln
144. Nếu ta muốn thực hiện một khối lệnh chỉ khi một điều kiện là sai, ta nên sử dụng cấu trúc nào?
A. if condition then …
B. if not condition then …
C. if condition else …
D. while condition do …
145. Nếu một chương trình cần thực hiện một hành động cụ thể nhiều lần với các giá trị khác nhau, thì cấu trúc điều khiển nào là phù hợp nhất?
A. Cấu trúc rẽ nhánh (if-then-else)
B. Cấu trúc lặp (while, for, repeat-until)
C. Cấu trúc tuần tự
D. Cấu trúc gọi hàm
146. Trong lập trình, một ‘lỗi cú pháp’ (syntax error) là gì?
A. Lỗi logic trong thuật toán dẫn đến kết quả sai.
B. Lỗi xảy ra khi cấu trúc câu lệnh không tuân thủ quy tắc của ngôn ngữ lập trình.
C. Lỗi xảy ra khi chương trình cố gắng truy cập vào vùng nhớ không hợp lệ.
D. Lỗi xảy ra khi chương trình bị treo hoặc chạy quá chậm.
147. Trong Pascal, vòng lặp ‘while’ tiếp tục thực hiện khối lệnh chừng nào?
A. Chừng nào điều kiện là sai.
B. Chừng nào điều kiện là đúng.
C. Cho đến khi gặp từ khóa ‘break’.
D. Đúng một lần.
148. Trong Pascal, để thực hiện một hành động lặp lại cho mỗi phần tử trong một tập hợp dữ liệu có cấu trúc (ví dụ: mảng), ta thường sử dụng vòng lặp nào?
A. while
B. repeat
C. for
D. if
149. Phát biểu nào sau đây là đúng về việc sử dụng cấu trúc ‘if-then-else’?
A. Luôn có ít nhất hai khối lệnh được thực thi.
B. Chỉ thực hiện một khối lệnh nếu điều kiện đúng, bỏ qua nếu sai.
C. Thực hiện một khối lệnh nếu điều kiện đúng, nếu sai thì thực hiện một khối lệnh khác.
D. Luôn có một điều kiện được kiểm tra sau khi khối lệnh thực thi.
150. Trong Pascal, câu lệnh nào dùng để đọc nhiều giá trị từ một dòng và phân tách chúng bằng dấu cách?
A. readln(var1, var2);
B. read(var1, var2);
C. writeln(var1, var2);
D. assign(var1, var2);