Trắc nghiệm Tin học 11 Kết nối tri thức Bài 28: 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 28: Thiết kế chương trình theo mô đun - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!
Câu 1: Khi thiết kế một chương trình quản lý bán hàng phức tạp theo phương pháp mô đun, việc chia nhỏ chương trình thành các mô đun như "Quản lý kho hàng", "Xử lý đơn hàng", "Lập báo cáo doanh thu" mang lại lợi ích chính nào sau đây?
- A. Giảm đáng kể thời gian chạy của chương trình.
- B. Chỉ cần một lập trình viên duy nhất để hoàn thành toàn bộ dự án.
- C. Giúp quản lý độ phức tạp, dễ dàng bảo trì và nâng cấp chương trình.
- D. Loại bỏ hoàn toàn khả năng xảy ra lỗi trong quá trình lập trình.
Câu 2: Một nhóm lập trình viên đang cùng phát triển một ứng dụng web lớn. Phương pháp thiết kế chương trình theo mô đun hỗ trợ hiệu quả công việc nhóm như thế nào?
- A. Buộc tất cả lập trình viên phải làm việc trên cùng một đoạn mã duy nhất.
- B. Cho phép các thành viên trong nhóm làm việc song song trên các mô đun khác nhau một cách độc lập.
- C. Yêu cầu mỗi lập trình viên phải hiểu chi tiết toàn bộ mã nguồn của chương trình.
- D. Giảm nhu cầu giao tiếp và phối hợp giữa các thành viên.
Câu 3: Giả sử chương trình xử lý doanh số ban đầu chỉ tạo báo cáo văn bản. Công ty muốn bổ sung chức năng tạo báo cáo dưới dạng biểu đồ hình cột. Công việc này thuộc nhóm nào trong bối cảnh thiết kế theo mô đun?
- A. Công việc mới hoàn toàn (cần xây dựng mô đun mới).
- B. Công việc nâng cấp một mô đun cũ (chỉnh sửa mô đun báo cáo hiện có).
- C. Công việc không liên quan đến thuật toán và lập trình.
- D. Công việc chỉ cần thay đổi dữ liệu đầu vào.
Câu 4: Khi một lỗi được phát hiện trong một chương trình được thiết kế theo mô đun, việc xác định và sửa lỗi thường dễ dàng hơn so với chương trình nguyên khối (monolithic). Lợi ích này chủ yếu đến từ đặc điểm nào của mô đun?
- A. Các mô đun có kích thước rất lớn.
- B. Các mô đun chia sẻ chung tất cả dữ liệu.
- C. Các mô đun phụ thuộc chặt chẽ vào nhau.
- D. Mỗi mô đun thực hiện một chức năng cụ thể và tương đối độc lập.
Câu 5: Chương trình phân tích doanh số có mô đun "Sapxep" dùng để sắp xếp mặt hàng theo doanh số. Nếu sau này muốn thay thuật toán sắp xếp hiện tại bằng một thuật toán hiệu quả hơn (ví dụ từ Bubble Sort sang Quick Sort), việc này sẽ dễ dàng thực hiện nhờ đặc điểm nào của thiết kế mô đun?
- A. Mô đun "Sapxep" không tương tác với các mô đun khác.
- B. Thuật toán sắp xếp không phải là phần cốt lõi của mô đun.
- C. Có thể thay đổi nội bộ mô đun "Sapxep" mà ít ảnh hưởng đến giao diện và hoạt động của các mô đun gọi nó.
- D. Việc thay đổi thuật toán luôn yêu cầu viết lại toàn bộ chương trình.
Câu 6: Một chương trình được thiết kế mô đun, nhưng khi định dạng tệp dữ liệu đầu vào thay đổi, hầu hết các mô đun từ nhập liệu, xử lý đến báo cáo đều phải sửa đổi. Điều này cho thấy chương trình đang vi phạm nghiêm trọng nguyên tắc nào trong thiết kế mô đun?
- A. Tính tái sử dụng (Reusability).
- B. Tính liên kết lỏng lẻo (Loose Coupling).
- C. Tính gắn kết cao (High Cohesion).
- D. Tính dễ đọc (Readability).
Câu 7: Mô đun xác thực người dùng (kiểm tra tên đăng nhập, mật khẩu) nên được thiết kế để chỉ trả về kết quả xác thực (Đúng/Sai hoặc mã lỗi) thay vì tự in thông báo "Đăng nhập thành công" hoặc "Sai mật khẩu" ra màn hình. Điều này tuân thủ nguyên tắc thiết kế mô đun nào?
- A. Giảm tính tái sử dụng.
- B. Tăng tính liên kết chặt chẽ.
- C. Vi phạm tính gắn kết cao.
- D. Tách biệt trách nhiệm (Separation of Concerns) và có giao diện rõ ràng.
Câu 8: Trong một hệ thống quản lý thư viện được thiết kế theo mô đun, chức năng nào sau đây thường là một phần nhỏ bên trong một mô đun lớn hơn, chứ ít khi là một mô đun độc lập hoàn chỉnh?
- A. Kiểm tra xem một chuỗi có rỗng hay không.
- B. Mô đun Quản lý độc giả.
- C. Mô đun Xử lý mượn/trả sách.
- D. Mô đun Tìm kiếm sách.
Câu 9: Công ty muốn bổ sung chức năng phân tích nâng cao dữ liệu doanh số, như dự báo xu hướng bán hàng trong quý tới, sử dụng các mô hình thống kê phức tạp. Công việc này trong bối cảnh thiết kế mô đun thuộc nhóm nào?
- A. Công việc mới hoàn toàn, có thể cần thêm mô đun xử lý dữ liệu hoặc báo cáo mới.
- B. Chỉ cần chỉnh sửa mô đun "NhapDL".
- C. Chỉ cần chỉnh sửa mô đun "GhiDL".
- D. Công việc không liên quan đến lập trình, chỉ cần cập nhật dữ liệu.
Câu 10: Trong ví dụ chương trình xử lý doanh số (NhapDL, Sapxep, GhiDL), nếu yêu cầu thay đổi từ "sắp xếp mặt hàng theo doanh số từ cao đến thấp" thành "sắp xếp mặt hàng theo tên từ A-Z", mô đun nào chắc chắn cần được chỉnh sửa?
- A. NhapDL.
- B. GhiDL.
- C. Sapxep.
- D. Cả ba mô đun NhapDL, Sapxep, và GhiDL.
Câu 11: Một mô đun tiện ích (utility module) cung cấp các hàm toán học cơ bản (cộng, trừ, nhân, chia). Tại sao mô đun này không nên chứa các lệnh in trực tiếp kết quả ra màn hình hoặc đọc dữ liệu từ bàn phím?
- A. Vì các hàm toán học sẽ chạy chậm hơn nếu có lệnh I/O.
- B. Để đảm bảo tính gắn kết cao (chỉ làm một việc là tính toán) và dễ tái sử dụng trong các ngữ cảnh khác nhau (không chỉ giao diện dòng lệnh).
- C. Vì các mô đun tiện ích không được phép tương tác với người dùng.
- D. Vì việc in kết quả là trách nhiệm của mô đun nhập liệu.
Câu 12: Một mô đun được coi là có "tính gắn kết cao" (high cohesion) khi:
- A. Các thành phần bên trong mô đun thực hiện các chức năng có liên quan chặt chẽ với nhau và cùng phục vụ một mục đích duy nhất.
- B. Mô đun phụ thuộc vào rất nhiều mô đun khác.
- C. Mô đun không phụ thuộc vào bất kỳ mô đun nào khác.
- D. Mô đun có kích thước rất lớn và chứa nhiều chức năng khác nhau.
Câu 13: Tính "liên kết lỏng lẻo" (loose coupling) giữa các mô đun là một mục tiêu quan trọng trong thiết kế. Lợi ích chính của việc giảm sự phụ thuộc giữa các mô đun là gì?
- A. Làm cho chương trình chạy nhanh hơn.
- B. Tăng kích thước tổng thể của chương trình.
- C. Giảm khả năng tái sử dụng của các mô đun.
- D. Giúp thay đổi một mô đun mà ít gây ảnh hưởng đến các mô đun khác.
Câu 14: Chương trình xử lý doanh số hiện đọc dữ liệu từ tệp văn bản. Nếu muốn mở rộng để đọc dữ liệu trực tiếp từ một cơ sở dữ liệu, mô đun nào trong cấu trúc NhapDL, Sapxep, GhiDL có khả năng cao nhất cần được chỉnh sửa hoặc thay thế bằng một mô đun mới?
- A. NhapDL.
- B. Sapxep.
- C. GhiDL.
- D. Không mô đun nào cần thay đổi, chỉ cần cấu hình.
Câu 15: Giao diện (interface) của một mô đun là tập hợp các hàm, thủ tục hoặc biến mà mô đun đó "công khai" cho các mô đun khác sử dụng. Mục đích chính của việc định nghĩa rõ ràng giao diện này là gì?
- A. Che giấu hoàn toàn mọi thông tin về mô đun.
- B. Buộc các mô đun khác phải truy cập trực tiếp vào dữ liệu nội bộ của mô đun.
- C. Xác định cách các mô đun tương tác với nhau mà không cần biết chi tiết bên trong của nhau.
- D. Chỉ cho phép mô đun đó gọi đến các mô đun khác.
Câu 16: Mô đun "XuLyDL" (Xử lý dữ liệu) trong chương trình phân tích doanh số có thể bao gồm các bước như lọc dữ liệu, tính toán tổng doanh số, xác định mặt hàng bán chạy. Trong thiết kế mô đun, các bước này thường được tổ chức như thế nào bên trong "XuLyDL"?
- A. Viết tất cả các bước vào một hàm duy nhất rất dài.
- B. Chia nhỏ thành các hàm hoặc thủ tục con, mỗi cái thực hiện một bước xử lý cụ thể.
- C. Để các mô đun khác tự thực hiện các bước xử lý này.
- D. Bỏ qua các bước xử lý chi tiết và chỉ làm việc với dữ liệu thô.
Câu 17: Nếu một lỗi được phát hiện là nằm trong mô đun "GhiDL" (Ghi dữ liệu/Báo cáo) của chương trình phân tích doanh số, bạn có thể suy luận gì về bản chất của lỗi đó?
- A. Lỗi chắc chắn liên quan đến việc đọc dữ liệu từ tệp đầu vào.
- B. Lỗi liên quan đến thuật toán sắp xếp dữ liệu.
- C. Lỗi do dữ liệu đầu vào bị sai định dạng.
- D. Lỗi có khả năng liên quan đến việc định dạng kết quả, ghi dữ liệu ra tệp báo cáo, hoặc chọn dữ liệu để in báo cáo.
Câu 18: Khi một lập trình viên được giao nhiệm vụ xây dựng mô đun "Sapxep", thông tin quan trọng nhất mà họ cần biết từ các mô đun khác (đặc biệt là mô đun "NhapDL") là gì để đảm bảo mô đun "Sapxep" hoạt động đúng?
- A. Chi tiết mã nguồn của mô đun "NhapDL".
- B. Định dạng và cấu trúc của dữ liệu (ví dụ: kiểu dữ liệu, thứ tự các trường) mà mô đun "NhapDL" cung cấp.
- C. Tên của tất cả các mặt hàng trong tệp dữ liệu.
- D. Lịch sử sửa đổi của mô đun "GhiDL".
Câu 19: Trong lập trình, sự khác biệt cơ bản nhất giữa một "hàm" (function) và một "mô đun" (module) trong bối cảnh thiết kế chương trình lớn là gì?
- A. Hàm luôn trả về giá trị, còn mô đun thì không.
- B. Hàm chỉ thực hiện một lệnh duy nhất, còn mô đun thực hiện nhiều lệnh.
- C. Mô đun là đơn vị tổ chức mã nguồn lớn hơn (thường là một tệp hoặc thư mục), chứa các hàm, biến và lớp liên quan, trong khi hàm là một khối lệnh thực hiện một nhiệm vụ cụ thể.
- D. Mô đun không thể gọi hàm khác, còn hàm có thể gọi mô đun.
Câu 20: Mặc dù chia nhỏ chương trình thành mô đun có nhiều lợi ích, nhưng nếu chia thành quá nhiều mô đun quá nhỏ, không đáng kể, có thể dẫn đến nhược điểm nào?
- A. Làm cho mã nguồn dễ đọc hơn một cách đáng kể.
- B. Tăng tính gắn kết của mỗi mô đun.
- C. Giảm số lượng tệp trong dự án.
- D. Tăng độ phức tạp trong việc quản lý các mô đun và mối quan hệ giữa chúng.
Câu 21: Công ty yêu cầu bổ sung tính năng tự động gửi báo cáo doanh số qua email hàng ngày. Công việc này liên quan đến việc tích hợp chương trình hiện tại với một hệ thống gửi email. Đây là loại công việc nào trong bối cảnh thiết kế mô đun?
- A. Công việc mới hoàn toàn, có thể cần xây dựng mô đun gửi email mới và chỉnh sửa mô đun báo cáo hoặc điều phối.
- B. Chỉ cần chỉnh sửa mô đun "NhapDL".
- C. Chỉ cần thay đổi dữ liệu trong tệp đầu vào.
- D. Công việc này không cần bất kỳ thay đổi nào về mã nguồn.
Câu 22: Khi thiết kế giao diện giữa hai mô đun, tại sao nên cố gắng giảm thiểu số lượng tham số được truyền qua lại giữa các hàm của chúng?
- A. Để làm cho chương trình chạy nhanh hơn.
- B. Để tăng tính gắn kết của mô đun.
- C. Để giảm tính liên kết (coupling) giữa hai mô đun, giúp chúng độc lập hơn và dễ thay đổi hơn.
- D. Để làm cho mã nguồn khó hiểu hơn, tránh bị sao chép.
Câu 23: Một mô đun chỉ chứa các hàm để thực hiện các phép tính thống kê trên một tập dữ liệu, không có chức năng đọc/ghi tệp hay tương tác người dùng. Mô đun này thể hiện rõ đặc điểm nào?
- A. Tính gắn kết cao (High Cohesion), cụ thể là gắn kết chức năng.
- B. Tính liên kết chặt chẽ (Tight Coupling).
- C. Thiếu tính tái sử dụng.
- D. Phụ thuộc nhiều vào giao diện người dùng.
Câu 24: Trong ví dụ chương trình xử lý doanh số, nếu tệp dữ liệu đầu vào Data.inp thay đổi định dạng từ "tên_mặt_hàng,doanh_số" sang "mã_mặt_hàng;tên_mặt_hàng;doanh_số", mô đun nào sẽ chịu ảnh hưởng trực tiếp và cần được chỉnh sửa?
- A. NhapDL.
- B. Sapxep.
- C. GhiDL.
- D. Tất cả các mô đun.
Câu 25: Một hàm trong chương trình vừa đọc dữ liệu từ tệp, vừa xử lý dữ liệu đó (tính toán, lọc), và cuối cùng in kết quả ra màn hình. Hàm này đang vi phạm nguyên tắc thiết kế mô đun nào?
- A. Tính dễ đọc.
- B. Tính tái sử dụng.
- C. Tính gắn kết cao (High Cohesion) và Tách biệt trách nhiệm (Separation of Concerns).
- D. Tính liên kết lỏng lẻo (Loose Coupling).
Câu 26: Khi nhiều lập trình viên cùng làm việc trên một dự án lớn, thiết kế theo mô đun giúp giảm thiểu xung đột mã nguồn (code conflicts) như thế nào?
- A. Buộc tất cả lập trình viên phải code trên cùng một máy tính.
- B. Cho phép mỗi lập trình viên làm việc chủ yếu trong phạm vi các mô đun cụ thể mà ít phải chỉnh sửa mã của các mô đun do người khác phụ trách.
- C. Tự động phát hiện và sửa lỗi cú pháp.
- D. Loại bỏ nhu cầu sử dụng hệ thống quản lý phiên bản (như Git).
Câu 27: Khả năng "tái sử dụng mã nguồn" (code reusability) là một lợi ích quan trọng của thiết kế mô đun. Điều này có nghĩa là gì?
- A. Mỗi mô đun chỉ được sử dụng một lần trong chương trình.
- B. Chỉ có thể sao chép và dán mã nguồn của mô đun sang các dự án khác.
- C. Các mô đun được thiết kế tốt, thực hiện chức năng chung có thể dễ dàng được sử dụng lại trong các chương trình hoặc dự án khác mà không cần viết lại.
- D. Mã nguồn của mô đun tự động cập nhật khi được sử dụng ở nhiều nơi.
Câu 28: Một phần mềm quản lý người dùng có mô đun "XacThuc" (Authentication) xử lý việc đăng nhập bằng tên người dùng và mật khẩu. Nếu công ty quyết định thay thế phương thức đăng nhập bằng cách sử dụng chứng chỉ số, mô đun nào có khả năng cao nhất cần được thay đổi hoặc xây dựng lại?
- A. Mô đun "XacThuc".
- B. Mô đun "QuanLyDuLieuNguoiDung".
- C. Mô đun "GiaoDienNguoiDung".
- D. Tất cả các mô đun đều phải thay đổi như nhau.
Câu 29: Mục tiêu chính và bao trùm nhất của việc áp dụng phương pháp thiết kế chương trình theo mô đun là gì?
- A. Làm cho chương trình chạy nhanh hơn trên mọi phần cứng.
- B. Giảm số lượng dòng mã trong chương trình.
- C. Loại bỏ hoàn toàn nhu cầu kiểm thử chương trình.
- D. Quản lý hiệu quả sự phức tạp của các chương trình lớn, giúp chúng dễ phát triển, hiểu, kiểm thử và bảo trì hơn.
Câu 30: Trong chương trình xử lý doanh số, bạn nhận thấy báo cáo cuối cùng luôn hiển thị mặt hàng bán chạy nhất và ít chạy nhất không chính xác, nhưng dữ liệu đầu vào và định dạng báo cáo ra tệp đều đúng. Dựa trên thiết kế mô đun (NhapDL, Sapxep, GhiDL), lỗi này khả năng cao nằm ở đâu?
- A. Trong mô đun "NhapDL" khi đọc dữ liệu.
- B. Trong mô đun "GhiDL" khi ghi báo cáo ra tệp.
- C. Trong mô đun "Sapxep" khi thực hiện sắp xếp dữ liệu.
- D. Lỗi nằm ngoài chương trình, có thể do hệ điều hành.