Trắc nghiệm Tin học 11 KHMT Kết nối tri thức Chủ đề 6 Bài 28

Môn Học: Tin học 11
Trường: THPT Phan Chu Trình (TP Đà Nẵng)
Năm thi: 2024
Hình thức thi: Trắc nghiệm
Người ra đề thi: Thầy Lê Minh Trường
Đối tượng thi: Học sinh lớp 11
Loại đề thi: Đề ôn luyện
Trong bộ sách: Kết nối tri thức
Số lượng câu hỏi: 25
Thời gian thi: 45
Độ khó: Trung bình

Trắc Nghiệm Tin Học 11 KHMT Kết Nối Tri Thức Chủ Đề 6 Bài 28: Thiết Kế Chương Trình Theo Mô Đun là bộ câu hỏi thuộc môn Tin học, được biên soạn nhằm hỗ trợ học sinh làm quen với phương pháp thiết kế chương trình hiện đại theo mô đun. Đây là đề ôn tập của Trường THPT Phan Chu Trinh (Đà Nẵng), do thầy Lê Minh Trường – giáo viên Tin học của trường biên soạn năm 2024. Bộ câu hỏi được xây dựng theo cấu trúc trắc nghiệm Tin học 11 KHMT, bám sát chương trình Kết nối tri thức và được tích hợp trên nền tảng detracnghiem.edu.vn giúp học sinh luyện tập khoa học, dễ tiếp cận và hiệu quả.

Trắc nghiệm Tin học 11 trong chủ đề này tập trung vào việc rèn luyện kỹ năng phân tách bài toán, xác định mô đun, tổ chức mã nguồn và xây dựng chương trình theo hướng cấu trúc hóa. Mỗi câu hỏi đều đi kèm đáp án và giải thích cụ thể, giúp học sinh hiểu sâu nguyên lý thiết kế mô đun và biết vận dụng vào bài tập thực hành. Đây là tài liệu hữu ích dành cho học sinh đang chuẩn bị kiểm tra chương hoặc ôn tập tăng cường kỹ năng lập trình theo chuẩn KHMT. Trắc nghiệm ôn tập lớp 11

Trắc nghiệm Tin học 11 KHMT Kết nối tri thức

Chủ đề 6: Kỹ thuật lập trình

Bài 28: Thiết kế chương trình theo mô đun

Câu 1: Tư tưởng cốt lõi của việc thiết kế chương trình theo mô đun là gì?
A. Viết tất cả các lệnh vào một khối duy nhất để máy tính xử lý nhanh hơn.
B. Sử dụng nhiều ngôn ngữ lập trình khác nhau trong cùng một chương trình.
C. Chia bài toán lớn thành các bài toán nhỏ hơn, độc lập để giải quyết.
D. Tăng độ phức tạp của thuật toán để chương trình trở nên chuyên nghiệp hơn.

Câu 2: Trong Python, mỗi mô đun (module) con của chương trình thường được cài đặt dưới dạng cấu trúc nào?
A. Một biến toàn cục (Global variable).
B. Một hàm (Function).
C. Một vòng lặp (Loop).
D. Một danh sách (List).

Câu 3: Trong bài toán quản lý bán hàng ở sách giáo khoa, bước đầu tiên khi thiết kế chương trình là gì?
A. Viết ngay hàm sắp xếp dữ liệu.
B. Tạo tệp dữ liệu đầu ra.
C. Khai báo các biến mảng để chứa tên hàng.
D. Xác định các công việc chính và thiết kế chung (chia bài toán thành các phần việc độc lập).

Câu 4: Giả sử bài toán yêu cầu: Đọc dữ liệu, Sắp xếp dữ liệu, và Ghi báo cáo. Chúng ta nên thiết kế tối thiểu bao nhiêu hàm (không kể chương trình chính)?
A. 1 hàm duy nhất làm hết mọi việc.
B. 2 hàm (Đọc và Ghi).
C. 3 hàm (Đọc, Sắp xếp, Ghi).
D. 4 hàm (Tách việc mở tệp và đóng tệp ra riêng).

Câu 5: Lợi ích nào sau đây KHÔNG phải là ưu điểm của thiết kế theo mô đun?
A. Dễ dàng kiểm tra và gỡ lỗi từng phần.
B. Các thành viên trong nhóm có thể làm việc song song.
C. Dễ dàng nâng cấp hoặc thay thế một mô đun mà không ảnh hưởng toàn bộ chương trình.
D. Làm giảm dung lượng bộ nhớ RAM mà chương trình chiếm dụng xuống mức tối thiểu tuyệt đối.

Câu 6: Trong bài toán “Quản lý bán hàng”, hàm NhapDL(fin) có nhiệm vụ đọc tệp Data.inp. Hàm này cần trả về (return) giá trị gì để các mô đun khác sử dụng?
A. Chỉ trả về số lượng mặt hàng.
B. Trả về tên tệp tin đầu vào.
C. Không cần trả về gì cả, chỉ cần in ra màn hình.
D. Trả về các danh sách (list) chứa tên mặt hàng và số lượng bán được.

Câu 7: Để chương trình chính có thể hoạt động, các mô đun con cần được liên kết với nhau như thế nào?
A. Các mô đun tự động chạy ngẫu nhiên không cần gọi.
B. Chương trình chính sẽ gọi các hàm theo trình tự logic của bài toán và truyền tham số phù hợp.
C. Các mô đun phải được gộp chung vào một tệp văn bản .txt rồi mới chạy.
D. Người dùng phải gõ lệnh thủ công để chạy từng hàm một.

Câu 8: Khi thiết kế hàm Sapxep(A, B) để sắp xếp danh sách mặt hàng bán chạy, tại sao cần truyền cả danh sách tên hàng (A) và danh sách số lượng (B)?
A. Để chương trình chạy chậm lại cho dễ quan sát.
B. Vì Python bắt buộc mọi hàm phải có 2 tham số.
C. Để đảm bảo sự tương ứng: khi đổi chỗ số lượng bán, tên mặt hàng cũng phải đổi chỗ theo.
D. Để so sánh xem tên hàng dài hay ngắn.

Câu 9: Nếu bạn muốn thay đổi định dạng báo cáo đầu ra (ví dụ: từ in ra tệp .out sang in ra màn hình console), bạn chỉ cần chỉnh sửa mô đun nào?
A. Mô đun nhập dữ liệu.
B. Mô đun xử lý (sắp xếp).
C. Chương trình chính.
D. Mô đun xuất dữ liệu (báo cáo).

Câu 10: Trong chương trình chính, các biến chứa dữ liệu (như danh sách tên hàng, danh sách doanh số) đóng vai trò gì?
A. Là các hằng số không thể thay đổi.
B. Là trung gian chuyển giao dữ liệu giữa các mô đun (đầu ra của hàm này là đầu vào của hàm kia).
C. Là các biến cục bộ chỉ tồn tại trong hàm nhập liệu.
D. Là các tệp tin được lưu trên ổ cứng.

Câu 11: Việc kiểm thử (test) chương trình được thiết kế theo mô đun có đặc điểm gì thuận lợi?
A. Không cần kiểm thử vì chia nhỏ thì chắc chắn đúng.
B. Phải đợi viết xong toàn bộ chương trình mới kiểm thử được.
C. Có thể kiểm thử độc lập từng hàm (Unit Test) để đảm bảo từng phần việc đúng trước khi ghép nối.
D. Chỉ cần kiểm thử chương trình chính, không cần quan tâm chi tiết bên trong các hàm.

Câu 12: Trong hàm GhiDL(P, S, fout), tham số P và S đại diện cho điều gì?
A. Tên tệp đầu vào và tên tệp đầu ra.
B. Danh sách tên mặt hàng và danh sách số lượng tương ứng cần ghi.
C. Số dòng và số cột của dữ liệu.
D. Biến đếm vòng lặp.

Câu 13: Khi thiết kế hàm xử lý (ví dụ: tìm 3 mặt hàng bán chạy nhất), nguyên tắc nào giúp đảm bảo tính “độc lập” của mô đun?
A. Hàm xử lý nên tự mở tệp, tự đọc lại dữ liệu từ đầu.
B. Hàm xử lý nên gọi ngược lại hàm nhập liệu bên trong nó.
C. Hàm xử lý chỉ nên làm việc trên dữ liệu được truyền vào qua tham số và trả về kết quả, không nên can thiệp vào việc nhập/xuất.
D. Hàm xử lý phải sử dụng biến toàn cục (global) để giao tiếp với bên ngoài.

Câu 14: Giả sử tệp dữ liệu đầu vào thay đổi cấu trúc (ví dụ: dấu phẩy thay bằng dấu chấm phẩy). Khi đó:
A. Ta phải viết lại toàn bộ chương trình từ đầu.
B. Ta phải sửa lại hàm sắp xếp và hàm xuất dữ liệu.
C. Ta chỉ cần sửa lại cách tách chuỗi (split) trong hàm nhập dữ liệu (NhapDL).
D. Ta không cần sửa gì cả, máy tính tự hiểu.

Câu 15: Một nhóm gồm 3 học sinh cùng làm bài tập lớn “Quản lý bán hàng”. Cách phân chia công việc nào sau đây là hiệu quả nhất theo tư duy mô đun?
A. Cả 3 người cùng ngồi chung 1 máy tính và viết code lần lượt từng dòng từ trên xuống dưới.
B. Một người viết code, hai người còn lại ngồi cổ vũ.
C. Mỗi người phụ trách viết và kiểm thử một hàm chức năng riêng biệt (Nhập, Xử lý, Xuất), sau đó ghép lại.
D. Chia tệp code thành 3 phần bằng nhau theo số dòng (ví dụ: dòng 1-10, 11-20, 21-30), mỗi người viết một đoạn.

Câu 16: Trong Python, để đọc dữ liệu từ tệp có chứa tiếng Việt, lệnh open cần thêm tham số nào?
A. mode=”vn”
B. encoding=”utf-8″
C. type=”text”
D. lang=”vi”

Câu 17: Nếu hàm NhapDL bị lỗi logic khiến danh sách số lượng S bị rỗng, điều gì sẽ xảy ra khi gọi hàm Sapxep(P, S)?
A. Hàm sắp xếp sẽ tự động sinh ra dữ liệu ngẫu nhiên để chạy.
B. Chương trình sẽ tự động sửa lỗi hàm nhập.
C. Hàm sắp xếp có thể bị lỗi hoặc không làm gì cả vì không có dữ liệu để xử lý.
D. Chương trình sẽ chuyển sang chế độ in dữ liệu ra màn hình.

Câu 18: Đoạn lệnh sau trong chương trình chính có ý nghĩa gì?

Python
P, S = NhapDL(“Data.inp”)
Sapxep(P, S)
GhiDL(P, S, “Data.out”)
A. Định nghĩa 3 hàm mới.
B. Khai báo các biến hằng số.
C. Sao chép dữ liệu từ tệp inp sang tệp out mà không làm gì cả.
D. Thực hiện lời gọi các mô đun theo trình tự: Nhập -> Xử lý -> Xuất.

Câu 19: Tại sao nên đặt tên hàm gợi nhớ (ví dụ: NhapDL, Sapxep) thay vì đặt tên A, B, C?
A. Để chương trình chạy nhanh hơn.
B. Để máy tính không bị nhầm lẫn giữa các hàm.
C. Để người lập trình (và người đọc code) dễ dàng hiểu chức năng của mô đun, thuận lợi cho việc bảo trì.
D. Vì Python không cho phép đặt tên hàm chỉ có 1 ký tự.

Câu 20: Khi thiết kế mô đun, “tham số hóa” (parameterization) có ý nghĩa gì?
A. Làm cho hàm trở nên cố định, chỉ chạy được với một giá trị duy nhất.
B. Giúp hàm xử lý được nhiều bộ dữ liệu khác nhau tùy thuộc vào giá trị truyền vào khi gọi.
C. Giúp hàm tự động kết nối Internet để lấy dữ liệu.
D. Làm tăng số lượng dòng lệnh của chương trình.

Câu 21: Trong bài toán bán hàng, nếu yêu cầu bổ sung thêm chức năng “Tìm mặt hàng bán ít nhất”, ta nên:
A. Xóa hàm sắp xếp cũ đi và viết lại từ đầu.
B. Sửa trực tiếp vào hàm Nhập dữ liệu.
C. Viết thêm một hàm xử lý mới hoặc tận dụng hàm sắp xếp đã có (nếu hàm sắp xếp hỗ trợ đổi chiều tăng/giảm).
D. Viết một chương trình hoàn toàn mới, không liên quan đến chương trình cũ.

Câu 22: Kết quả của hàm split(“,”) khi xử lý dòng dữ liệu “Cam, 9800” là gì?
A. Một chuỗi duy nhất “Cam 9800”.
B. Một danh sách gồm hai phần tử chuỗi: [“Cam”, ” 9800″].
C. Hai biến riêng biệt a = “Cam” và b = 9800.
D. Một số nguyên 9800.

Câu 23: Vận dụng cao: Nếu dữ liệu đầu vào rất lớn (hàng triệu dòng), việc thiết kế mô đun NhapDL đọc toàn bộ dữ liệu vào một danh sách (List) có thể gặp vấn đề gì?
A. Chương trình không thể biên dịch được.
B. Tốc độ đọc ổ cứng bị chậm lại.
C. Tràn bộ nhớ (Memory Error) nếu RAM không đủ chứa hết danh sách.
D. Không thể đặt tên biến cho danh sách.

Câu 24: Vận dụng cao: Bạn muốn thiết kế mô đun Sapxep sao cho nó có thể sắp xếp bất kỳ danh sách mặt hàng nào, không chỉ của cửa hàng hiện tại. Bạn nên làm gì?
A. Đặt tên biến bên trong hàm là Cua_Hang_Nha_Minh.
B. Sử dụng đường dẫn tuyệt đối tới tệp C:\Data.inp bên trong hàm.
C. Gắn chặt hàm với số lượng phần tử là 10.
D. Thiết kế hàm nhận tham số là danh sách cần sắp xếp, không phụ thuộc vào tên biến toàn cục hay nguồn dữ liệu cụ thể.

Câu 25: Vận dụng cao: Trong thiết kế theo mô đun, khái niệm “Abstraction” (Trừu tượng hóa) thể hiện ở chỗ nào khi viết chương trình chính?
A. Chương trình chính phải biết chi tiết từng dòng lệnh if, for bên trong các hàm con.
B. Chương trình chính phải viết bằng mã nhị phân.
C. Chương trình chính chỉ cần quan tâm hàm đó làm gì (Input là gì, Output là gì) mà không cần quan tâm hàm đó thực hiện chi tiết như thế nào.
D. Chương trình chính phải dài hơn tất cả các hàm con cộng lại.

×
Lấy mã và nhập vào ô dưới đây

Bạn ơi!! Ủng hộ tụi mình bằng cách làm nhiệm vụ nha <3

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã:

×

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi làm nhiệm vụ

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã:

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi làm nhiệm vụ

Bước 1: Click vào liên kết kế bên để đến trang review maps.google.com

Bước 2: Copy tên mà bạn sẽ đánh giá giống như hình dưới:

Bước 3: Đánh giá 5 sao và viết review: Từ khóa

Bước 4: Điền tên vừa đánh giá vào ô nhập tên rồi nhấn nút Xác nhận