Trắc nghiệm Tin học 11 Kết nối tri thức Bài 31: Thực hành thiết lập thư viện chương trình - Đề 10
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 31: Thực hành thiết lập thư viện chương trình - Đề 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: Mục đích chính của việc tạo và sử dụng thư viện chương trình trong lập trình là gì?
- A. Tăng tốc độ thực thi chương trình.
- B. Tái sử dụng mã nguồn và tổ chức chương trình một cáchModular.
- C. Giảm kích thước file chương trình.
- D. Bảo mật mã nguồn chương trình khỏi bị sao chép.
Câu 2: Trong Python, để sử dụng một thư viện bên ngoài (ví dụ: thư viện "math"), ta cần thực hiện thao tác nào sau đây trước khi có thể gọi các hàm từ thư viện đó?
- A. Cài đặt lại Python.
- B. Sao chép thư viện vào cùng thư mục với chương trình chính.
- C. Sử dụng câu lệnh "import" để nhập thư viện vào chương trình.
- D. Biên dịch thư viện thành mã máy.
Câu 3: Xét đoạn mã Python sau:
```python
import my_library
result = my_library.calculate_sum(5, 3)
print(result)
```
Để đoạn mã này chạy đúng, điều kiện tiên quyết nào sau đây là cần thiết?
- A. Phải có một file hoặc thư mục tên "my_library" chứa hàm "calculate_sum" và nằm trong đường dẫn tìm kiếm của Python.
- B. Hàm "calculate_sum" phải được định nghĩa sẵn trong Python.
- C. Biến "my_library" phải được khai báo trước khi import.
- D. Chỉ cần có kết nối Internet để tải thư viện "my_library".
Câu 4: Trong thư viện "cong_thuc_ly" (ví dụ trong bài 31), hàm "machNoiTiep" được thiết kế để tính điện trở tương đương của mạch nối tiếp. Điều gì xảy ra nếu bạn truyền vào hàm này một danh sách chứa giá trị điện trở âm?
- A. Hàm sẽ tự động bỏ qua giá trị âm và tính toán với các giá trị dương còn lại.
- B. Hàm sẽ trả về giá trị điện trở tương đương là một số âm.
- C. Chương trình sẽ báo lỗi cú pháp.
- D. Hàm sẽ trả về một giá trị đặc biệt (ví dụ: -1) hoặc thông báo lỗi để chỉ ra dữ liệu không hợp lệ.
Câu 5: Giả sử bạn muốn tạo một thư viện Python mới có tên "xu_ly_chuoi" để chứa các hàm xử lý chuỗi (ví dụ: đảo ngược chuỗi, đếm từ). Bạn sẽ tạo file Python với tên nào để định nghĩa thư viện này?
- A. xu_ly_chuoi.py
- B. library_xu_ly_chuoi.py
- C. xu_ly_chuoi_library.py
- D. module_xu_ly_chuoi.py
Câu 6: Trong thư viện "hinh_tron" (ví dụ trong bài 31), hàm "tinhDienTich" tính diện tích hình tròn dựa trên bán kính. Nếu bạn gọi hàm này với bán kính là một chuỗi ký tự (ví dụ: "abc"), điều gì có thể xảy ra?
- A. Hàm sẽ tự động chuyển đổi chuỗi "abc" thành số 0 và tính diện tích.
- B. Chương trình sẽ gặp lỗi运行时 (RuntimeError) do không thể thực hiện phép toán trên chuỗi.
- C. Hàm sẽ trả về diện tích là 0.
- D. Hàm sẽ bỏ qua tham số và tính diện tích với bán kính mặc định là 1.
Câu 7: Bạn muốn sử dụng hàm "phuongTrinhBac2" từ thư viện "phuong_trinh" (ví dụ trong bài 31) trong chương trình chính của mình. Giả sử bạn đã import thư viện thành công. Cú pháp nào sau đây là đúng để gọi hàm "phuongTrinhBac2" với các hệ số a=1, b=-3, c=2?
- A. phuongTrinhBac2(1, -3, 2)
- B. phuong_trinh.phuongTrinhBac2
- C. phuong_trinh.phuongTrinhBac2(1, -3, 2)
- D. call phuong_trinh.phuongTrinhBac2(1, -3, 2)
Câu 8: Trong thư viện "quan_ly_cd" (ví dụ trong bài 31), hàm "nhapDL" được dùng để nhập dữ liệu cho đĩa CD. Theo mô tả trong bài, hàm này có thể trả về kiểu dữ liệu nào để lưu trữ danh sách các bài hát?
- A. Một số nguyên (integer) đại diện cho số lượng bài hát.
- B. Một danh sách liên kết (LinkedList) chứa thông tin của từng bài hát.
- C. Một chuỗi ký tự (string) chứa tên các bài hát, phân tách bằng dấu phẩy.
- D. Một file văn bản (.txt) lưu trữ thông tin bài hát.
Câu 9: Thư viện "my_math" trong ví dụ bài 31 chủ yếu tập trung vào việc cung cấp hằng số PI. Tại sao việc tạo một thư viện riêng chỉ cho hằng số này vẫn có thể hữu ích trong một số trường hợp?
- A. Để tăng tốc độ tính toán với số PI.
- B. Để giảm dung lượng bộ nhớ sử dụng cho số PI.
- C. Để tạo sự rõ ràng, dễ quản lý và có thể tùy chỉnh giá trị PI (nếu cần) trong các dự án cụ thể.
- D. Để tránh xung đột tên biến với các thư viện khác.
Câu 10: Xét tình huống: Bạn có một dự án lớn cần sử dụng nhiều hàm toán học phức tạp và các công thức vật lý. Theo kiến thức về thư viện chương trình, bạn nên tổ chức mã nguồn của mình như thế nào để đạt hiệu quả và dễ bảo trì nhất?
- A. Viết tất cả các hàm và công thức trực tiếp trong file chương trình chính.
- B. Chia các hàm toán học và vật lý thành các thư viện riêng biệt (ví dụ: "math_utils", "physics_formulas") và import khi cần.
- C. Sử dụng các thư viện toán học và vật lý có sẵn trên Internet và chỉnh sửa mã nguồn của chúng cho phù hợp.
- D. Sao chép mã nguồn của các hàm và công thức từ các nguồn khác nhau và dán vào chương trình chính.
Câu 11: Trong thư viện "cong_thuc_hoa", hàm "tinhNtkTB" tính nguyên tử khối trung bình. Điều kiện nào sau đây khiến hàm này trả về giá trị 0 theo ví dụ trong bài 31?
- A. Khi tổng tất cả các nguyên tử khối đầu vào bằng 0.
- B. Khi tổng tất cả các tỷ lệ phần trăm đồng vị bằng 0.
- C. Khi số lượng phần tử trong danh sách nguyên tử khối không khớp với số lượng phần tử trong danh sách tỷ lệ phần trăm.
- D. Khi tất cả các giá trị tỷ lệ phần trăm đều là số âm.
Câu 12: Hàm "machSongSong" trong thư viện "cong_thuc_ly" tính điện trở tương đương mạch song song. Nếu bạn truyền vào danh sách điện trở [10, 20, 0, 30], kết quả trả về của hàm sẽ là gì?
- A. Điện trở tương đương sẽ được tính bình thường, coi 0 Ohm là một giá trị hợp lệ.
- B. Hàm sẽ trả về giá trị 0 Ohm.
- C. Hàm sẽ bỏ qua giá trị 0 và tính toán với [10, 20, 30].
- D. Hàm sẽ trả về -1 hoặc thông báo lỗi do phát hiện giá trị điện trở không hợp lệ (0 Ohm).
Câu 13: Giả sử bạn muốn mở rộng thư viện "hinh_tron" để thêm hàm tính chu vi và diện tích hình vuông. Bạn sẽ sửa đổi file "hinh_tron.py" như thế nào?
- A. Thêm định nghĩa các hàm "tinhChuViHinhVuong" và "tinhDienTichHinhVuong" vào file "hinh_tron.py".
- B. Tạo một file mới "hinh_vuong.py" và định nghĩa các hàm cho hình vuông ở đó.
- C. Không thể mở rộng thư viện "hinh_tron" cho hình vuông, cần tạo thư viện mới.
- D. Sửa tên file "hinh_tron.py" thành "hinh_hoc.py" và thêm các hàm cho hình vuông.
Câu 14: Trong quá trình phát triển phần mềm, việc sử dụng thư viện chương trình mang lại lợi ích nào về mặt thời gian và công sức cho lập trình viên?
- A. Làm cho chương trình chạy nhanh hơn.
- B. Tiết kiệm thời gian viết mã vì có thể tái sử dụng các hàm đã được xây dựng sẵn.
- C. Giảm thiểu nguy cơ mắc lỗi lập trình.
- D. Tăng tính bảo mật cho chương trình.
Câu 15: Bạn muốn tạo một thư viện chứa các hàm tiện ích chung, không đặc thù cho lĩnh vực nào (ví dụ: hàm kiểm tra số nguyên tố, hàm tính giai thừa). Tên thư viện nào sau đây là phù hợp nhất theo quy ước đặt tên module trong Python?
- A. my_project_library.py
- B. utility_functions_lib.py
- C. utilities.py
- D. general_lib_module.py
Câu 16: Trong thư viện "phuong_trinh", hàm "phuongTrinhBac2" giải phương trình bậc hai. Nếu phương trình bậc hai vô nghiệm, hàm này nên trả về kết quả như thế nào là hợp lý nhất?
- A. Trả về nghiệm là 0.
- B. Trả về một danh sách rỗng.
- C. In ra thông báo "Phương trình vô nghiệm" và trả về None.
- D. Trả về một giá trị đặc biệt (ví dụ: None) hoặc một thông báo lỗi để chỉ ra phương trình vô nghiệm.
Câu 17: So sánh việc sử dụng thư viện chương trình với việc viết lại mã nguồn tương tự mỗi khi cần. Ưu điểm chính của việc sử dụng thư viện là gì?
- A. Chương trình chạy nhanh hơn đáng kể.
- B. Giảm sự trùng lặp mã nguồn, làm cho code gọn gàng và dễ bảo trì hơn.
- C. Tăng cường tính bảo mật cho chương trình.
- D. Giúp chương trình tương thích với nhiều hệ điều hành hơn.
Câu 18: Xét đoạn mã:
```python
from hinh_tron import tinhChuVi
radius = 5
circumference = tinhChuVi(radius)
print(circumference)
```
Cách import thư viện ở đây khác gì so với "import hinh_tron"?
- A. Không có sự khác biệt, cả hai cách đều tương đương.
- B. Cách "from ... import ..." chỉ dùng được cho các thư viện tự tạo, không dùng cho thư viện có sẵn.
- C. Với "from hinh_tron import tinhChuVi", bạn có thể gọi hàm "tinhChuVi" trực tiếp mà không cần tiền tố "hinh_tron." trước tên hàm.
- D. Cách "from ... import ..." giúp chương trình chạy nhanh hơn so với "import module".
Câu 19: Trong ngữ cảnh của "Bài 31 - Thực hành thiết lập thư viện chương trình", mục tiêu chính của việc thực hành này là gì?
- A. Nắm vững kỹ năng tạo và sử dụng thư viện chương trình để tổ chức và tái sử dụng mã nguồn.
- B. Học cách sử dụng các thư viện toán học, vật lý và hóa học có sẵn.
- C. Trở thành chuyên gia lập trình thư viện.
- D. Thiết kế các thư viện chương trình phức tạp và đa năng.
Câu 20: Giả sử bạn muốn tạo một thư viện "tien_ich_mang" chứa các hàm xử lý mạng (ví dụ: gửi/nhận dữ liệu, kiểm tra kết nối). Bạn nên đặt file "tien_ich_mang.py" ở đâu để Python có thể tìm thấy thư viện này khi import?
- A. Trong bất kỳ thư mục nào trên máy tính, Python sẽ tự động tìm thấy.
- B. Trong cùng thư mục với chương trình chính hoặc trong các thư mục được Python chỉ định trong sys.path.
- C. Chỉ có thể đặt trong thư mục cài đặt gốc của Python.
- D. Phải tải lên một kho lưu trữ trực tuyến để Python có thể truy cập.
Câu 21: Để tài liệu hóa (document) một hàm trong thư viện Python để người khác có thể dễ dàng hiểu và sử dụng, phương pháp nào sau đây là chuẩn và hiệu quả nhất?
- A. Viết comment trên mỗi dòng code trong hàm.
- B. Tạo một file văn bản riêng mô tả chức năng của hàm.
- C. Sử dụng docstring - chuỗi văn bản đặt trong cặp dấu ``````` ngay sau dòng định nghĩa hàm.
- D. Đặt tên biến và hàm thật rõ ràng để tự giải thích chức năng.
Câu 22: Trong thư viện "quan_ly_cd", giả sử hàm "inTT" dùng để in thông tin đĩa CD và các bài hát. Nếu đĩa CD chưa có bài hát nào, hàm "inTT" nên xử lý tình huống này như thế nào?
- A. Gây ra lỗi và dừng chương trình.
- B. In ra thông báo "Đĩa CD hiện chưa có bài hát nào." một cách rõ ràng.
- C. In ra thông tin mặc định của một bài hát trống.
- D. Không in ra gì cả.
Câu 23: Xét tình huống: Bạn muốn chia sẻ thư viện "xu_ly_anh" của mình cho đồng nghiệp sử dụng. Cách chia sẻ nào sau đây là phù hợp nhất để đảm bảo đồng nghiệp có thể dễ dàng cài đặt và sử dụng thư viện của bạn?
- A. Gửi file "xu_ly_anh.py" qua email.
- B. Sao chép thư mục chứa thư viện vào USB và đưa cho đồng nghiệp.
- C. Yêu cầu đồng nghiệp tự viết lại thư viện dựa trên mô tả của bạn.
- D. Đóng gói thư viện thành package và hướng dẫn đồng nghiệp cài đặt bằng pip (nếu là Python package).
Câu 24: Trong lập trình, thuật ngữ "module" thường được dùng để chỉ điều gì?
- A. Một biến toàn cục được sử dụng trong chương trình.
- B. Một file chứa các định nghĩa hàm, lớp và biến, có thể được import vào chương trình khác (tương đương với thư viện hoặc một phần của thư viện).
- C. Một đoạn code thực hiện một chức năng cụ thể trong chương trình chính.
- D. Một giao diện đồ họa người dùng (GUI) của chương trình.
Câu 25: Ưu điểm của việc sử dụng thư viện chương trình không bao gồm điều nào sau đây?
- A. Tăng tốc độ phát triển phần mềm.
- B. Nâng cao khả năng tái sử dụng mã nguồn.
- C. Luôn làm cho chương trình chạy nhanh hơn trong mọi trường hợp.
- D. Giúp chương trình dễ đọc và dễ bảo trì hơn.
Câu 26: Để xem danh sách các hàm và biến có trong một thư viện đã import trong Python (ví dụ: thư viện "math"), bạn có thể sử dụng hàm hoặc lệnh nào?
- A. help(math)
- B. dir(math)
- C. list(math)
- D. print(math)
Câu 27: Trong thư viện "hinh_tron", giả sử bạn muốn thêm một hằng số "PI_EXACT" với giá trị PI chính xác hơn so với "math.pi". Bạn sẽ định nghĩa hằng số này ở đâu?
- A. Ngay trong file "hinh_tron.py", bên ngoài các định nghĩa hàm.
- B. Trong file chương trình chính, trước khi import thư viện "hinh_tron".
- C. Trong một file cấu hình riêng (.config) của thư viện.
- D. Không thể thêm hằng số vào thư viện đã có.
Câu 28: Bạn đang xây dựng một thư viện lớn và phức tạp. Để quản lý mã nguồn hiệu quả, bạn nên chia thư viện thành các phần nhỏ hơn, mỗi phần đảm nhiệm một nhóm chức năng liên quan. Cách tổ chức này được gọi là gì?
- A. Monolithic library.
- B. Single-file library.
- C. Flat library structure.
- D. Modular library structure (sử dụng sub-modules hoặc packages).
Câu 29: Trong Python, khi bạn import một thư viện, ví dụ "import my_library", điều gì thực sự xảy ra ở mức độ cơ bản?
- A. Python tải toàn bộ mã nguồn của thư viện từ Internet về máy tính.
- B. Python tìm file "my_library.py" (hoặc tương tự) trong các đường dẫn tìm kiếm và thực thi mã trong file đó để tạo ra một module object.
- C. Python biên dịch thư viện "my_library" thành mã máy trước khi sử dụng.
- D. Python chỉ tạo một tham chiếu đến thư viện, mã nguồn chỉ được tải khi cần thiết.
Câu 30: Nếu bạn muốn tạo một thư viện "do_hoa_2d" để vẽ các hình 2D cơ bản (đường thẳng, hình tròn, hình chữ nhật), ngôn ngữ lập trình nào sau đây là phù hợp nhất để xây dựng thư viện này, xét đến tính phổ biến và các thư viện hỗ trợ sẵn có cho đồ họa 2D?
- A. Assembly.
- B. C.
- C. Python.
- D. HTML.