Trắc nghiệm Tin học 11 Kết nối tri thức Bài 29: Thực hành thiết kế chương trình theo mô đun - Đề 10
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 29: Thực hành thiết kế chương trình theo mô đun - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Trong lập trình mô đun, khái niệm "mô đun" (module) dùng để chỉ điều gì?
- A. Một biến toàn cục được sử dụng trong toàn bộ chương trình.
- B. Một khối chương trình con độc lập, thực hiện một chức năng cụ thể.
- C. Một dòng lệnh đơn lẻ thực hiện một phép tính.
- D. Toàn bộ chương trình chính được viết trong một tệp duy nhất.
Câu 2: Thiết kế chương trình theo mô đun mang lại lợi ích nào sau đây KHÔNG phải là chủ yếu?
- A. Tăng khả năng tái sử dụng mã nguồn.
- B. Giảm độ phức tạp của chương trình tổng thể.
- C. Nâng cao tính dễ bảo trì và sửa đổi chương trình.
- D. Tăng tốc độ biên dịch chương trình.
Câu 3: Trong một chương trình quản lý thư viện, mô đun nào sau đây có thể chịu trách nhiệm chính cho việc xử lý các thao tác liên quan đến sách (ví dụ: thêm sách, tìm kiếm sách, mượn/trả sách)?
- A. NhapXuatDuLieu
- B. ThongKeBaoCao
- C. QuanLySach
- D. XuLyNguoiDung
Câu 4: Điều gì sau đây mô tả đúng nhất về "tính độc lập" giữa các mô đun trong một chương trình được thiết kế tốt?
- A. Các mô đun ít phụ thuộc vào nhau, thay đổi ở một mô đun ít ảnh hưởng đến các mô đun khác.
- B. Các mô đun phải được viết bởi các lập trình viên khác nhau để đảm bảo tính khách quan.
- C. Mỗi mô đun phải có kích thước code lớn và phức tạp để đảm bảo tính toàn diện.
- D. Các mô đun phải sử dụng chung biến toàn cục để dễ dàng chia sẻ dữ liệu.
Câu 5: Xét một chương trình tính toán điểm trung bình môn học. Mô đun "TinhDiem" nhận đầu vào là danh sách điểm kiểm tra và trả về điểm trung bình. Nếu công thức tính điểm trung bình thay đổi (ví dụ, thêm trọng số cho các loại điểm), bạn cần sửa đổi ở đâu?
- A. Mô đun nhập dữ liệu điểm.
- B. Mô đun "TinhDiem" (mô đun tính điểm).
- C. Mô đun hiển thị kết quả điểm.
- D. Tất cả các mô đun trong chương trình.
Câu 6: Trong lập trình mô đun, "tính liên kết" (cohesion) cao trong một mô đun có nghĩa là gì?
- A. Mô đun phụ thuộc chặt chẽ vào nhiều mô đun khác.
- B. Mô đun thực hiện nhiều chức năng khác nhau, không liên quan đến nhau.
- C. Các thành phần bên trong mô đun phối hợp chặt chẽ để thực hiện một chức năng cụ thể, rõ ràng.
- D. Mô đun có giao diện phức tạp với nhiều tham số đầu vào và đầu ra.
Câu 7: Bạn được yêu cầu xây dựng chương trình quản lý bán hàng cho một siêu thị nhỏ. Hãy sắp xếp các bước sau theo thứ tự hợp lý của quy trình thiết kế chương trình theo mô đun:
A. Xác định các chức năng chính của chương trình (ví dụ: quản lý sản phẩm, quản lý đơn hàng, báo cáo).
B. Viết mã chi tiết cho từng mô đun.
C. Chia chương trình thành các mô đun dựa trên các chức năng đã xác định.
D. Kiểm thử từng mô đun và toàn bộ chương trình.
- A. A - B - C - D
- B. C - A - B - D
- C. A - C - B - D
- D. D - C - B - A
Câu 8: Trong ngôn ngữ lập trình Python, cách thức chính để tạo ra một mô đun là gì?
- A. Tạo một tệp Python mới (.py) và viết các hàm, lớp, biến liên quan bên trong tệp đó.
- B. Sử dụng từ khóa "module" trước mỗi khối lệnh cần nhóm lại.
- C. Viết các hàm và lớp trong cùng một tệp chính và sử dụng quy ước đặt tên đặc biệt.
- D. Python không hỗ trợ rõ ràng khái niệm mô đun, mà sử dụng lớp để tổ chức code.
Câu 9: Giả sử bạn có một mô đun "XuLyChuoi" chứa hàm "chuan_hoa(van_ban)" để chuẩn hóa văn bản (ví dụ: loại bỏ khoảng trắng thừa, chuyển về chữ thường). Trong một mô đun khác, bạn muốn sử dụng hàm "chuan_hoa". Bạn cần thực hiện thao tác gì?
- A. Sao chép và dán mã nguồn của hàm "chuan_hoa" vào mô đun hiện tại.
- B. Sử dụng lệnh "import XuLyChuoi" ở đầu mô đun hiện tại để nhập mô đun "XuLyChuoi".
- C. Đổi tên hàm "chuan_hoa" thành một tên khác để tránh xung đột tên.
- D. Không cần thao tác gì, các hàm trong mọi mô đun đều có thể được gọi trực tiếp.
Câu 10: Trong một chương trình lớn, việc chia chương trình thành các mô đun nhỏ, dễ quản lý sẽ giúp ích nhiều nhất cho công việc nào sau đây?
- A. Tăng tốc độ thực thi chương trình.
- B. Giảm dung lượng bộ nhớ chương trình sử dụng.
- C. Bảo trì và sửa lỗi chương trình dễ dàng hơn.
- D. Viết code nhanh hơn ở giai đoạn phát triển ban đầu.
Câu 11: Khi thiết kế mô đun, bạn nên ưu tiên điều gì để đảm bảo tính "dễ tái sử dụng" của mô đun?
- A. Mô đun nên thực hiện càng nhiều chức năng càng tốt để tăng tính đa năng.
- B. Mô đun nên phụ thuộc chặt chẽ vào các mô đun khác để tận dụng tối đa code đã có.
- C. Mô đun nên sử dụng biến toàn cục để dễ dàng chia sẻ dữ liệu với các phần khác của chương trình.
- D. Mô đun nên có giao diện rõ ràng, thực hiện một chức năng cụ thể và ít phụ thuộc vào ngữ cảnh bên ngoài.
Câu 12: Trong một dự án phần mềm lớn, việc phân chia công việc cho nhiều lập trình viên làm việc song song trở nên hiệu quả hơn nhờ vào yếu tố nào của thiết kế mô đun?
- A. Tính phức tạp của từng mô đun.
- B. Tính độc lập tương đối giữa các mô đun.
- C. Số lượng dòng code trong mỗi mô đun.
- D. Ngôn ngữ lập trình được sử dụng để viết các mô đun.
Câu 13: Xét tình huống bạn cần viết một chương trình xử lý ảnh. Bạn quyết định chia thành các mô đun: "DocAnh", "XuLyAnh", "GhiAnh". Mô đun nào sẽ chịu trách nhiệm chính trong việc thay đổi độ sáng, tương phản, hoặc áp dụng bộ lọc cho ảnh?
- A. DocAnh
- B. XuLyAnh
- C. GhiAnh
- D. Cả ba mô đun trên cùng tham gia vào xử lý ảnh.
Câu 14: Điều gì xảy ra nếu bạn thay đổi cách thức hoạt động bên trong một mô đun (ví dụ, thuật toán được sử dụng), nhưng vẫn giữ nguyên giao diện (tham số đầu vào, đầu ra) của nó? Các mô đun khác trong chương trình sẽ bị ảnh hưởng như thế nào?
- A. Các mô đun khác sẽ không bị ảnh hưởng nếu chúng chỉ tương tác với mô đun này thông qua giao diện đã định nghĩa.
- B. Các mô đun khác có thể bị lỗi nếu chúng phụ thuộc vào cách thức hoạt động cũ của mô đun này.
- C. Chương trình sẽ cần phải biên dịch lại toàn bộ để thích ứng với thay đổi.
- D. Hiệu suất của toàn bộ chương trình chắc chắn sẽ giảm xuống.
Câu 15: Trong thiết kế chương trình theo mô đun, "giao diện" của một mô đun đóng vai trò gì?
- A. Giao diện chỉ đơn giản là tên của mô đun.
- B. Giao diện mô tả chi tiết cách thức hoạt động bên trong của mô đun.
- C. Giao diện xác định cách các mô đun khác có thể tương tác và sử dụng chức năng của mô đun này, mà không cần biết chi tiết bên trong.
- D. Giao diện chỉ quan trọng khi mô đun được viết bằng ngôn ngữ lập trình khác.
Câu 16: Để kiểm thử một mô đun "TinhToanThue" (tính thuế) một cách độc lập, bạn có thể sử dụng phương pháp nào sau đây?
- A. Chỉ kiểm thử mô đun "TinhToanThue" sau khi đã tích hợp nó vào toàn bộ chương trình.
- B. Thay đổi mã nguồn của mô đun "TinhToanThue" để phù hợp với môi trường kiểm thử.
- C. Bỏ qua bước kiểm thử mô đun độc lập để tiết kiệm thời gian.
- D. Sử dụng các dữ liệu kiểm thử đầu vào và kiểm tra đầu ra của mô đun "TinhToanThue" trong một môi trường cô lập.
Câu 17: Trong một chương trình mô đun hóa, nếu một mô đun gặp lỗi và cần được thay thế bằng một phiên bản mới, quy trình thay thế sẽ như thế nào so với chương trình không mô đun?
- A. Khó khăn hơn, vì cần phải thay đổi giao diện của mô đun mới để tương thích.
- B. Dễ dàng hơn, vì chỉ cần thay thế mô đun bị lỗi mà không ảnh hưởng đến các mô đun khác (nếu giao diện không đổi).
- C. Tương tự nhau, vì lỗi có thể xảy ra ở bất kỳ đâu trong chương trình.
- D. Không thể thay thế mô đun một khi chương trình đã được triển khai.
Câu 18: Trong lập trình hướng đối tượng, khái niệm "lớp" (class) có thể được xem như một hình thức của mô đun hóa ở mức độ nào?
- A. Lớp không liên quan gì đến mô đun hóa.
- B. Lớp chỉ là một cách đặt tên code, không có chức năng mô đun hóa.
- C. Lớp là một hình thức mô đun hóa, đóng gói dữ liệu (thuộc tính) và hành vi (phương thức) liên quan đến một đối tượng.
- D. Mô đun hóa chỉ áp dụng cho lập trình thủ tục, không dùng trong lập trình hướng đối tượng.
Câu 19: Trong một chương trình xử lý dữ liệu lớn, việc chia chương trình thành các mô đun nhỏ, thực hiện các công việc song song (ví dụ: đọc dữ liệu, xử lý, ghi dữ liệu) có thể giúp cải thiện điều gì?
- A. Giảm dung lượng lưu trữ dữ liệu.
- B. Tăng hiệu suất xử lý dữ liệu (ví dụ: tận dụng đa nhân/đa luồng).
- C. Đơn giản hóa giao diện người dùng.
- D. Cải thiện tính bảo mật của dữ liệu.
Câu 20: Xét một chương trình điều khiển robot. Mô đun nào sau đây có khả năng cao nhất chứa các hàm để điều khiển chuyển động của robot (ví dụ: tiến, lùi, xoay trái, xoay phải)?
- A. CamBienRobot
- B. XuLyDuLieu
- C. DieuKhienRobot
- D. KetNoiMang
Câu 21: Khi thiết kế giao diện cho một mô đun, bạn nên ưu tiên yếu tố nào để đảm bảo tính dễ sử dụng cho các mô đun khác?
- A. Giao diện nên đơn giản, rõ ràng và dễ hiểu, với số lượng tham số vừa phải.
- B. Giao diện nên phức tạp và linh hoạt, cung cấp nhiều tùy chọn cấu hình.
- C. Giao diện nên thay đổi thường xuyên để thích ứng với yêu cầu mới.
- D. Không cần thiết kế giao diện, các mô đun có thể truy cập trực tiếp vào dữ liệu của nhau.
Câu 22: Trong quá trình phát triển phần mềm theo mô đun, giai đoạn "tích hợp mô đun" (module integration) có mục đích chính là gì?
- A. Thiết kế giao diện cho từng mô đun.
- B. Kết hợp các mô đun đã được kiểm thử riêng lẻ thành một hệ thống hoàn chỉnh và kiểm tra sự tương tác giữa chúng.
- C. Viết tài liệu hướng dẫn sử dụng cho từng mô đun.
- D. Tối ưu hóa hiệu suất của từng mô đun riêng lẻ.
Câu 23: Nếu một mô đun "BaoCaoThongKe" cần sử dụng dữ liệu đã được xử lý bởi mô đun "XuLyDuLieu", cách thức tốt nhất để "BaoCaoThongKe" nhận dữ liệu là gì?
- A. Mô đun "BaoCaoThongKe" trực tiếp truy cập vào biến toàn cục chứa dữ liệu của "XuLyDuLieu".
- B. Sao chép mã nguồn của "XuLyDuLieu" vào bên trong "BaoCaoThongKe".
- C. Mô đun "XuLyDuLieu" cung cấp một hàm hoặc giao diện để "BaoCaoThongKe" có thể yêu cầu và nhận dữ liệu đã xử lý.
- D. Lưu dữ liệu đã xử lý vào tệp và để "BaoCaoThongKe" đọc lại từ tệp.
Câu 24: Trong một chương trình game, mô đun "DoHoa" (đồ họa) chịu trách nhiệm hiển thị hình ảnh, hoạt ảnh. Nếu bạn muốn thay đổi thư viện đồ họa sử dụng (ví dụ, từ thư viện A sang thư viện B), việc thiết kế chương trình theo mô đun sẽ giúp ích như thế nào?
- A. Không giúp ích gì, vì việc thay đổi thư viện đồ họa luôn phức tạp.
- B. Giúp đơn giản hóa quá trình thay đổi, vì chỉ cần sửa đổi mô đun "DoHoa" mà không cần thay đổi nhiều ở các mô đun khác.
- C. Làm cho việc thay đổi trở nên khó khăn hơn, vì cần phải cập nhật giao diện của nhiều mô đun.
- D. Chỉ có thể thay đổi thư viện đồ họa ở giai đoạn đầu phát triển, không thể thay đổi sau khi chương trình đã hoàn thành.
Câu 25: Trong lập trình mô đun, khái niệm "ẩn thông tin" (information hiding) có liên quan mật thiết đến điều gì?
- A. Tăng cường tính bảo mật của dữ liệu.
- B. Giảm kích thước mã nguồn chương trình.
- C. Che giấu các chi tiết thực hiện bên trong mô đun và chỉ công khai giao diện tương tác.
- D. Giúp chương trình chạy nhanh hơn.
Câu 26: Điều gì KHÔNG phải là một tiêu chí đánh giá chất lượng của thiết kế mô đun?
- A. Tính liên kết (cohesion) cao.
- B. Tính độc lập (coupling) thấp.
- C. Tính tái sử dụng.
- D. Số lượng dòng code trong mô đun.
Câu 27: Trong một chương trình quản lý nhân sự, mô đun "TinhLuong" (tính lương) cần thông tin về giờ làm việc và mức lương cơ bản của nhân viên. Thông tin này nên được cung cấp cho mô đun "TinhLuong" như thế nào?
- A. Mô đun "TinhLuong" tự động tìm kiếm và lấy thông tin từ cơ sở dữ liệu nhân sự.
- B. Thông tin giờ làm việc và mức lương cơ bản được truyền vào mô đun "TinhLuong" như là tham số đầu vào.
- C. Sử dụng biến toàn cục để chia sẻ thông tin giữa các mô đun.
- D. Thông tin được mã hóa cứng trực tiếp bên trong mô đun "TinhLuong".
Câu 28: Trong lập trình mô đun, việc kiểm thử đơn vị (unit testing) thường được thực hiện ở cấp độ nào?
- A. Kiểm thử từng mô đun riêng lẻ để đảm bảo mỗi mô đun hoạt động đúng chức năng.
- B. Kiểm thử toàn bộ chương trình sau khi đã tích hợp tất cả các mô đun.
- C. Kiểm thử giao diện người dùng của chương trình.
- D. Kiểm thử hiệu suất của chương trình trên các môi trường khác nhau.
Câu 29: Khi chương trình phát triển lớn mạnh và phức tạp hơn, lợi ích của việc thiết kế theo mô đun trở nên như thế nào?
- A. Giảm đi, vì việc quản lý nhiều mô đun trở nên phức tạp.
- B. Càng trở nên quan trọng và rõ ràng hơn, giúp quản lý độ phức tạp và bảo trì chương trình.
- C. Không thay đổi, lợi ích của mô đun hóa là như nhau bất kể kích thước chương trình.
- D. Trở nên ít liên quan, vì các kỹ thuật lập trình hiện đại khác hiệu quả hơn.
Câu 30: Bạn đang xây dựng một chương trình xử lý văn bản. Mô đun "PhanTichVanBan" có chức năng phân tích cú pháp và ngữ nghĩa của văn bản đầu vào. Mô đun này KHÔNG nên trực tiếp thực hiện chức năng nào sau đây?
- A. Xác định các thành phần câu (chủ ngữ, vị ngữ, bổ ngữ).
- B. Phân tích quan hệ giữa các từ và cụm từ trong câu.
- C. Giải nghĩa của câu và đoạn văn bản.
- D. Hiển thị kết quả phân tích ra màn hình hoặc tệp.