Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 28 Thiết kế chương trình theo mô đun
1. Việc thiết kế một mô đun "kiểm tra số nguyên tố" có thể nhận một số nguyên làm đầu vào và trả về giá trị boolean (True nếu là số nguyên tố, False nếu không). Đây là ví dụ về mô đun có:
A. Chỉ có đầu vào, không có đầu ra.
B. Chỉ có đầu ra, không có đầu vào.
C. Cả đầu vào và đầu ra rõ ràng.
D. Không có đầu vào hoặc đầu ra.
2. Nếu một mô đun thực hiện một tác vụ phức tạp, việc chia nhỏ tác vụ đó thành các hàm hoặc thủ tục con bên trong mô đun đó nhằm mục đích gì?
A. Làm cho mã nguồn khó đọc hơn do có quá nhiều hàm.
B. Tăng khả năng tái sử dụng của từng phần nhỏ của tác vụ.
C. Giảm khả năng kiểm thử từng phần của tác vụ.
D. Tăng sự phụ thuộc giữa các phần của tác vụ.
3. Khi một mô đun được thiết kế để thực hiện chức năng "in danh sách", điều gì là quan trọng nhất để đảm bảo mô đun này có thể được sử dụng với các loại danh sách khác nhau (ví dụ: danh sách số, danh sách chuỗi)?
A. Mô đun phải được viết bằng ngôn ngữ lập trình cụ thể cho từng loại danh sách.
B. Mô đun cần chấp nhận danh sách như một tham số và xử lý các phần tử bên trong một cách tổng quát, không phụ thuộc vào kiểu dữ liệu cụ thể của phần tử.
C. Mô đun phải có khả năng tự động phát hiện kiểu dữ liệu của danh sách.
D. Mô đun chỉ nên hoạt động với một kiểu dữ liệu danh sách cố định đã được định nghĩa trước.
4. Trong việc thiết kế chương trình theo mô đun, "độ gắn kết" (cohesion) của một mô đun được hiểu là gì?
A. Mức độ mà mô đun đó phụ thuộc vào các mô đun khác.
B. Mức độ mà các yếu tố bên trong mô đun liên quan chặt chẽ với nhau và cùng hướng đến một mục tiêu chung.
C. Số lượng các chức năng mà mô đun thực hiện.
D. Kích thước của tệp mã nguồn chứa mô đun đó.
5. Theo nguyên tắc "đóng gói" (encapsulation) trong thiết kế mô đun, thông tin chi tiết về cách thức hoạt động bên trong của một mô đun nên được:
A. Công khai hoàn toàn để mọi mô đun khác có thể truy cập và sửa đổi.
B. Ẩn đi, chỉ để lộ giao diện tương tác cần thiết cho các mô đun khác.
C. Sao chép sang tất cả các mô đun sử dụng nó.
D. Lưu trữ trong một tệp cấu hình riêng biệt.
6. Khi thiết kế một mô đun để xử lý dữ liệu từ một tệp văn bản, mô đun này nên yêu cầu tham số đầu vào là gì để đảm bảo tính linh hoạt?
A. Nội dung toàn bộ tệp văn bản dưới dạng một chuỗi lớn.
B. Tên hoặc đường dẫn đến tệp văn bản.
C. Một biến đại diện cho nội dung của từng dòng trong tệp.
D. Số dòng cần đọc từ tệp.
7. Khi một mô đun được thiết kế để thực hiện nhiều chức năng con khác nhau, việc sử dụng các hàm hoặc thủ tục riêng biệt bên trong mô đun đó giúp đạt được mục tiêu gì?
A. Làm cho mã nguồn khó đọc hơn.
B. Tăng cường tính module hóa và dễ bảo trì trong phạm vi mô đun.
C. Yêu cầu mô đun phải gọi đến các mô đun bên ngoài.
D. Giảm số lượng tham số cần truyền vào mô đun.
8. Trong quá trình thiết kế theo mô đun, nếu một mô đun A gọi một mô đun B, thì mô đun A được gọi là gì?
A. Mô đun phụ thuộc.
B. Mô đun gọi.
C. Mô đun được gọi.
D. Mô đun độc lập.
9. Khái niệm "giao diện" (interface) của một mô đun đề cập đến điều gì trong ngữ cảnh thiết kế chương trình theo mô đun?
A. Toàn bộ mã nguồn chi tiết bên trong mô đun.
B. Cách thức mà các mô đun khác có thể tương tác với mô đun đó, bao gồm các hàm, thủ tục và kiểu dữ liệu có thể truy cập.
C. Tên của tệp chứa mã nguồn của mô đun.
D. Các biến toàn cục được sử dụng bên trong mô đun.
10. Khi thiết kế một mô đun để thực hiện phép tính tổng hai số nguyên, tham số đầu vào cần thiết cho mô đun này là gì?
A. Một biến để lưu trữ kết quả tổng.
B. Hai biến hoặc hằng số đại diện cho hai số nguyên cần cộng.
C. Một biến đếm số lần thực hiện phép cộng.
D. Một tham số để xác định kiểu dữ liệu của kết quả.
11. Trong thiết kế chương trình theo mô đun, việc đặt tên cho mô đun và các thành phần bên trong nó (hàm, biến) nên tuân theo nguyên tắc nào?
A. Ngắn gọn và khó hiểu để bảo mật.
B. Dễ hiểu, mô tả rõ ràng chức năng hoặc mục đích của nó.
C. Sử dụng các ký tự đặc biệt để làm nổi bật.
D. Chỉ sử dụng các từ khóa của ngôn ngữ lập trình.
12. Nếu một mô đun được thiết kế để xử lý dữ liệu từ nhiều nguồn khác nhau (ví dụ: tệp, cơ sở dữ liệu, mạng), thì mô đun này nên có một giao diện như thế nào để đảm bảo tính linh hoạt?
A. Chỉ chấp nhận dữ liệu từ một nguồn cụ thể.
B. Chấp nhận một tham số để chỉ định nguồn dữ liệu và có các phương thức xử lý tương ứng.
C. Tự động chuyển đổi giữa các nguồn dữ liệu mà không cần tham số.
D. Sử dụng các biến toàn cục để lưu trữ dữ liệu từ mọi nguồn.
13. Trong lập trình hướng đối tượng, một lớp (class) có thể được xem như là một "bản thiết kế" cho đối tượng. Theo ngữ cảnh thiết kế theo mô đun, mối quan hệ giữa khái niệm "lớp" và "mô đun" là gì?
A. Mô đun là một tập hợp các lớp, còn lớp là một mô đun nhỏ hơn.
B. Mô đun có thể chứa các lớp, và các lớp cũng có thể được coi là một dạng mô đun đóng gói chức năng.
C. Lớp và mô đun là hai khái niệm hoàn toàn khác biệt, không liên quan đến nhau.
D. Mô đun chỉ áp dụng cho lập trình thủ tục, còn lớp chỉ áp dụng cho lập trình hướng đối tượng.
14. Trong các ngôn ngữ lập trình hiện đại, một "thư viện" (library) thường chứa tập hợp các mô đun được đóng gói sẵn để cung cấp các chức năng chung. Việc sử dụng thư viện là một biểu hiện rõ nét của nguyên tắc nào trong thiết kế chương trình theo mô đun?
A. Độ gắn kết cao.
B. Tính đóng gói và khả năng tái sử dụng.
C. Độ khớp nối cao.
D. Sự phụ thuộc vào biến toàn cục.
15. Trong thiết kế chương trình theo mô đun, việc tạo ra các mô đun có "độ gắn kết cao" (high cohesion) và "độ khớp nối thấp" (low coupling) nhằm mục đích chính là gì?
A. Tăng sự phức tạp của chương trình.
B. Giảm khả năng tái sử dụng và bảo trì chương trình.
C. Tăng tính mô đun hóa, giúp chương trình dễ hiểu, dễ phát triển, dễ sửa lỗi và dễ tái sử dụng.
D. Buộc tất cả các mô đun phải có cùng một cấu trúc.
16. Nếu một mô đun có nhiều trách nhiệm khác nhau, ví dụ vừa tính toán, vừa định dạng kết quả, vừa lưu kết quả vào tệp, thì mô đun này có thể bị đánh giá là có:
A. Độ gắn kết cao.
B. Độ khớp nối thấp.
C. Độ gắn kết thấp.
D. Giao diện rõ ràng.
17. Khi thiết kế một mô đun xử lý đầu vào từ người dùng, điều quan trọng là mô đun đó phải có khả năng xử lý các trường hợp nhập sai hoặc không hợp lệ. Điều này liên quan đến khía cạnh nào của thiết kế mô đun?
A. Chỉ cần xử lý trường hợp nhập đúng.
B. Tính mạnh mẽ (robustness) và xử lý ngoại lệ (exception handling).
C. Tăng số lượng tham số đầu vào.
D. Giảm số lượng dòng code.
18. Việc thiết kế một mô đun có "độ gắn kết cao" có nghĩa là các chức năng bên trong mô đun đó:
A. Hoàn toàn độc lập và không liên quan đến nhau.
B. Liên quan chặt chẽ với nhau và cùng thực hiện một mục tiêu duy nhất.
C. Phụ thuộc vào nhiều mô đun bên ngoài.
D. Chỉ thực hiện các thao tác nhập/xuất.
19. Trong thiết kế chương trình theo mô đun, khi một mô đun cần truy cập dữ liệu từ một mô đun khác, cách thức an toàn và được khuyến khích nhất là gì?
A. Truy cập trực tiếp vào các biến nội bộ của mô đun kia.
B. Sử dụng các hàm hoặc thủ tục cung cấp bởi mô đun kia để lấy dữ liệu.
C. Sao chép toàn bộ dữ liệu từ mô đun kia sang mô đun hiện tại.
D. Sử dụng các biến toàn cục được chia sẻ.
20. Theo SGK Tin học 11 Kết nối tri thức, KHMT, bài 28, khi thiết kế chương trình theo mô đun, thành phần nào sau đây là bắt buộc phải có để mô đun có thể hoạt động độc lập và tái sử dụng hiệu quả?
A. Chỉ cần khai báo các hàm và biến toàn cục.
B. Cần có các thủ tục hoặc hàm nhận vào các tham số và trả về giá trị.
C. Phải bao gồm các câu lệnh nhập/xuất trực tiếp với người dùng.
D. Cần có một khối mã chính để thực thi toàn bộ logic.
21. Khi bạn cần thực hiện một phép toán phức tạp bao gồm nhiều bước, việc tạo ra một mô đun riêng cho mỗi bước nhỏ sẽ giúp:
A. Làm cho chương trình chậm hơn.
B. Tăng khả năng tái sử dụng và dễ dàng kiểm thử từng bước.
C. Yêu cầu nhiều dòng code hơn một cách không cần thiết.
D. Giảm khả năng hiểu logic của toàn bộ phép toán.
22. Ngược lại với độ gắn kết cao, "độ khớp nối" (coupling) thấp giữa các mô đun được xem là yếu tố mong muốn trong thiết kế chương trình theo mô đun. Điều này có nghĩa là:
A. Các mô đun nên có nhiều sự phụ thuộc lẫn nhau để hoạt động hiệu quả.
B. Mức độ phụ thuộc và tương tác giữa các mô đun nên được giảm thiểu.
C. Mỗi mô đun nên thực hiện càng nhiều chức năng càng tốt để giảm số lượng mô đun.
D. Các mô đun nên chia sẻ càng nhiều biến toàn cục càng tốt.
23. Một mô đun được thiết kế để tính diện tích hình chữ nhật. Nếu sau này muốn mô đun này có thể tính diện tích các hình khác (ví dụ: hình tròn, hình tam giác), cách tiếp cận tốt nhất theo nguyên tắc thiết kế mô đun là gì?
A. Sửa đổi trực tiếp mô đun hiện có để bao gồm logic cho các hình khác.
B. Tạo ra các mô đun riêng biệt cho từng loại hình.
C. Thiết kế một mô đun tổng quát hơn có thể nhận thêm tham số để xác định loại hình và áp dụng logic tương ứng.
D. Xóa mô đun cũ và viết lại hoàn toàn.
24. Một mô đun được thiết kế để thực hiện chức năng sắp xếp một danh sách các số theo thứ tự tăng dần. Nếu mô đun này cần thay đổi thuật toán sắp xếp bên trong (ví dụ: từ sắp xếp nổi bọt sang sắp xếp nhanh), điều gì sẽ xảy ra với các mô đun khác đang gọi nó, giả sử giao diện (đầu vào/đầu ra) không đổi?
A. Các mô đun khác sẽ bị lỗi và cần phải sửa lại hoàn toàn.
B. Các mô đun khác sẽ không bị ảnh hưởng nếu giao diện của mô đun sắp xếp không thay đổi.
C. Các mô đun khác sẽ tự động cập nhật thuật toán sắp xếp theo.
D. Cần phải biên dịch lại toàn bộ chương trình để áp dụng thay đổi.
25. Trong thiết kế chương trình theo mô đun, lợi ích chính của việc chia nhỏ chương trình thành các mô đun độc lập là gì?
A. Giảm thiểu số lượng dòng code trong toàn bộ chương trình.
B. Tăng cường khả năng sửa lỗi và bảo trì, đồng thời dễ dàng tái sử dụng code.
C. Tự động hóa quá trình kiểm thử chương trình.
D. Cho phép người dùng tùy chỉnh giao diện chương trình dễ dàng hơn.