Trắc Nghiệm Tin Học 11 KHMT Kết Nối Tri Thức Chủ Đề 6 Bài 30: Thiết Lập Thư Viện Cho Chương Trình là bộ câu hỏi thuộc môn Tin học, được xây dựng nhằm hỗ trợ học sinh lớp 11 nắm vững kiến thức về cấu trúc chương trình và cách tổ chức thư viện trong lập trình. Đây là đề tham khảo của Trường THPT Lê Quý Đôn (TP. Đà Nẵng), do cô Trần Minh Hạnh – giáo viên Tin học của trường biên soạn năm 2024. Bộ đề bám sát nội dung SGK và được trình bày theo dạng trắc nghiệm Tin học 11 KHMT, phù hợp cho học sinh luyện tập hiệu quả thông qua hệ thống học tập trực tuyến detracnghiem.edu.vn.
Trắc nghiệm Tin học 11 ở chủ đề này giúp học sinh rèn luyện kỹ năng thiết lập, quản lý và sử dụng thư viện trong chương trình, từ đó tăng khả năng tư duy lập trình và giải quyết vấn đề. Mỗi câu hỏi đều có đáp án kèm giải thích chi tiết, hỗ trợ học sinh tự học tại nhà hoặc ôn tập trước bài kiểm tra định kỳ. Bộ câu hỏi cũng giúp củng cố tư duy thuật toán, nâng cao tính chính xác khi viết mã và hiểu rõ cấu trúc chương trình theo chuẩn KHMT. Đây là tài liệu cần thiết dành cho học sinh đang theo học chương trình Tin học 11. 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 30: Thiết lập thư viện cho chương trình
Câu 1: Trong Python, một “thư viện” (library) hay “mô-đun” (module) do người dùng tự tạo thực chất là gì?
A. Một thư mục chứa các tệp tin thực thi .exe.
B. Một phần mềm chuyên dụng để quản lý mã nguồn.
C. Một tệp tin mã nguồn Python (có đuôi .py) chứa các hàm và biến.
D. Một đoạn mã lệnh đặc biệt được mã hóa để bảo mật thông tin người dùng.
Câu 2: Để sử dụng các hàm đã viết trong tệp my_lib.py vào chương trình chính, ta sử dụng từ khóa nào?
A. include
B. using
C. attach
D. import
Câu 3: Giả sử bạn có một tệp thư viện tên là hinh_hoc.py chứa hàm tinh_dien_tich(). Cách nào sau đây là SAI khi muốn sử dụng hàm này?
A. import hinh_hoc sau đó gọi hinh_hoc.tinh_dien_tich().
B. from hinh_hoc import tinh_dien_tich sau đó gọi tinh_dien_tich().
C. import hinh_hoc sau đó gọi tinh_dien_tich() trực tiếp mà không có tiền tố.
D. import hinh_hoc as hh sau đó gọi hh.tinh_dien_tich().
Câu 4: Lợi ích lớn nhất của việc thiết lập thư viện cho chương trình là gì?
A. Giúp chương trình chạy nhanh hơn gấp đôi so với viết bình thường.
B. Giúp tái sử dụng mã nguồn, quản lý chương trình dễ dàng và chia nhỏ bài toán phức tạp.
C. Giúp ẩn mã nguồn để người khác không thể đọc trộm được thuật toán của bạn.
D. Giúp máy tính tự động sửa các lỗi cú pháp mà lập trình viên mắc phải.
Câu 5: Khi đặt tên cho tệp thư viện (module) trong Python, quy tắc nào sau đây cần tuân thủ?
A. Tên tệp phải bắt đầu bằng số để dễ phân loại.
B. Tên tệp phải chứa khoảng trắng để dễ đọc (ví dụ: thu vien.py).
C. Tên tệp phải tuân thủ quy tắc đặt tên định danh (không chứa khoảng trắng, không bắt đầu bằng số).
D. Tên tệp bắt buộc phải viết hoa toàn bộ các ký tự (ví dụ: MYLIB.PY).
Câu 6: Bạn có tệp math_tools.py chứa hàm sum_list(L). Trong chương trình chính, bạn viết:
import math_tools as mt
Câu lệnh nào sau đây dùng để gọi hàm sum_list đúng nhất?
A. math_tools.sum_list([1, 2, 3])
B. sum_list([1, 2, 3])
C. mt.sum([1, 2, 3])
D. mt.sum_list([1, 2, 3])
Câu 7: Nếu bạn muốn sử dụng hàm sqrt từ thư viện math mà không muốn phải gõ math. mỗi lần gọi, bạn nên dùng câu lệnh nhập nào?
A. import math
B. from math import sqrt
C. import math as m
D. include
Câu 8: Câu lệnh from my_lib import * có ý nghĩa gì?
A. Nhập tệp thư viện nhưng không sử dụng hàm nào cả.
B. Chỉ nhập các hàm bắt đầu bằng ký tự *.
C. Xóa tất cả nội dung trong thư viện my_lib.
D. Nhập tất cả các hàm, biến, lớp từ thư viện my_lib vào không gian tên hiện tại.
Câu 9: Cho đoạn mã trong tệp lib.py:
code
Python
def chao(ten):
return “Hello ” + ten
Trong tệp main.py cùng thư mục:
code
Python
import lib
print(lib.chao(“Nam”))
Kết quả in ra màn hình là:
A. Lỗi cú pháp.
B. Hello
C. Nam
D. Hello Nam
Câu 10: Điều kiện bắt buộc về vị trí lưu trữ để chương trình chính có thể import được thư viện tự tạo (đơn giản nhất) là gì?
A. Thư viện phải được lưu ở ổ đĩa C:.
B. Thư viện phải nằm cùng thư mục với tệp chương trình chính.
C. Thư viện phải được tải lên Internet.
D. Thư viện phải được nén vào tệp .zip.
Câu 11: Trong tệp tien_ich.py có biến PI = 3.14. Để sử dụng biến này trong chương trình chính sau khi import tien_ich, ta viết:
A. print(PI)
B. print(tien_ich -> PI)
C. print(tien_ich.PI)
D. print(tien_ich[PI])
Câu 12: Khi chỉnh sửa nội dung một hàm trong tệp thư viện, điều gì sẽ xảy ra với chương trình chính đang sử dụng thư viện đó?
A. Chương trình chính sẽ tự động bị xóa.
B. Chương trình chính không thay đổi gì cả, vẫn chạy theo mã cũ mãi mãi.
C. Phải đổi tên tệp thư viện thì chương trình chính mới cập nhật.
D. Chương trình chính sẽ hoạt động theo logic mới của hàm đó ở lần chạy tiếp theo.
Câu 13: Một chương trình lớn được chia thành nhiều tệp nhỏ, mỗi tệp đảm nhiệm một chức năng riêng biệt (nhập liệu, xử lý, xuất báo cáo). Phương pháp này được gọi là gì?
A. Lập trình hướng đối tượng.
B. Lập trình theo mô-đun.
C. Lập trình tuyến tính.
D. Lập trình hợp ngữ.
Câu 14: Cho đoạn lệnh sau:
code
Python
import calculator
a = calculator.add(5, 10)
b = calculator.sub(10, 2)
Điều này chứng tỏ trong tệp calculator.py phải có:
A. Một biến tên là add và một biến tên là sub.
B. Một lớp tên là calculator.
C. Định nghĩa của hai hàm tên là add và sub.
D. Hai tệp con tên là add.py và sub.py.
Câu 15: Nếu tệp thư viện my_lib.py bị xóa hoặc đổi tên, khi chạy chương trình chính có lệnh import my_lib, Python sẽ báo lỗi gì?
A. SyntaxError
B. NameError
C. ModuleNotFoundError
D. TypeError
Câu 16: Giả sử trong cùng một chương trình, bạn cần dùng 2 hàm đều tên là tinh_tong nhưng nằm ở 2 thư viện khác nhau là lib_A.py và lib_B.py. Cách giải quyết nào sau đây là đúng đắn và tránh xung đột nhất?
A. Gộp nội dung 2 tệp thư viện làm một.
B. Đổi tên hàm trong thư viện gốc (nếu được phép).
C. Sử dụng import lib_A và import lib_B, sau đó gọi lib_A.tinh_tong() và lib_B.tinh_tong().
D. Dùng from lib_A import * và from lib_B import * để máy tự chọn.
Câu 17: Phát biểu nào sau đây KHÔNG đúng về thư viện trong Python?
A. Thư viện có thể chứa các câu lệnh thực thi (không nằm trong hàm).
B. Thư viện có thể import một thư viện khác.
C. Thư viện bắt buộc phải có hàm main().
D. Một chương trình có thể import nhiều thư viện khác nhau.
Câu 18: Khi sử dụng câu lệnh import toan_hoc as th, từ th được gọi là gì?
A. Tên gốc.
B. Tên bí danh (alias).
C. Tên hàm.
D. Tên biến môi trường.
Câu 19: Để kiểm tra xem một tệp thư viện xu_ly.py có hoạt động đúng hay không trước khi tích hợp vào chương trình lớn, ta nên làm gì?
A. Viết mã kiểm thử (test) ngay trong tệp xu_ly.py và sử dụng cấu trúc if __name__ == “__main__”:.
B. Nhờ người khác đọc mã nguồn bằng mắt thường.
C. Cứ import vào chương trình chính, sai đâu sửa đó.
D. Gửi email cho tác giả ngôn ngữ Python để nhờ kiểm tra.
Câu 20: Việc chia nhỏ chương trình thành các thư viện riêng biệt có tác dụng gì đối với làm việc nhóm?
A. Làm cho công việc phức tạp hơn vì có quá nhiều tệp tin.
B. Không có tác dụng gì, chỉ làm nặng máy.
C. Giúp các thành viên có thể copy bài của nhau dễ hơn.
D. Giúp phân chia công việc rõ ràng, mỗi người có thể viết và kiểm thử một mô-đun độc lập rồi ghép lại.
Câu 21: Tệp du_lieu.py chứa danh sách DS_HS = [“An”, “Bình”].
Tệp main.py thực hiện:
code
Python
from du_lieu import DS_HS
DS_HS.append(“Chi”)
print(DS_HS)
Kết quả là gì?
A. [“An”, “Bình”]
B. Lỗi vì không thể sửa đổi biến từ thư viện.
C. [“Chi”, “An”, “Bình”]
D. [“An”, “Bình”, “Chi”]
Câu 22: Vận dụng cao: Bạn đang viết thư viện my_sort.py. Bạn muốn khi người dùng import my_sort thì không có gì in ra màn hình, nhưng khi bạn chạy trực tiếp tệp my_sort.py để kiểm tra thì nó sẽ in ra kết quả test. Bạn cần dùng cấu trúc nào?
A. def main(): …
B. try: … except: …
C. if __name__ == “__main__”: …
D. while True: …
Câu 23: Vận dụng cao: Giả sử bạn có cấu trúc thư mục như sau:
Project/
├── main.py
└── libs/
└── my_tools.py
Từ main.py, để import được my_tools.py, cách viết nào thường được sử dụng (giả sử libs được coi là một package)?
A. import my_tools
B. from libs import my_tools
C. import libs.my_tools.py
D. include libs/my_tools
Câu 24: Vận dụng cao: Tại sao không nên lạm dụng việc dùng from library import * trong các dự án lớn?
A. Vì nó làm máy tính chạy chậm đi rất nhiều do phải tải tất cả mọi thứ.
B. Vì nó làm tệp tin chương trình chính bị tăng dung lượng lưu trữ trên ổ cứng.
C. Vì nó khiến chương trình trông không chuyên nghiệp.
D. Vì nó dễ gây xung đột tên (name collision) giữa các biến/hàm của thư viện và chương trình chính, gây ra các lỗi khó phát hiện.
Câu 25: Vận dụng cao: Khi thiết kế một thư viện cho chương trình quản lý học sinh, các hàm nào sau đây nên được gom vào một mô-đun có tên io_utils.py (Input/Output Utilities)?
A. Các hàm tính điểm trung bình và xếp loại học lực.
B. Các hàm sắp xếp danh sách học sinh theo tên.
C. Các hàm tìm kiếm học sinh theo mã số.
D. Các hàm đọc danh sách học sinh từ tệp văn bản và ghi kết quả báo cáo ra tệp.

