Bài 30 Thiết lập thư viện cho chương trình
Lớp 11Tin Học18 câu hỏiBài tập
Phần 1
Câu 1
(Câu 30.1 trang 85 SBT Tin học 11) Hàm lấy căn bậc hai sqrt() có trong thư viện nào của Python?
AThư viện math.
BThư viện random.
CThư viện time.
DThư viện turtle.
Câu 2
(Câu 30.2 trang 85 SBT Tin học 11) Hàm perf_counter() được lấy từ thư viện nào của Python?
AThư viện time.
BThư viện math.
CThư viện random.
DThư viện os.
Câu 3
(Câu 30.3 trang 85 SBT Tin học 11) Hàm random() từ thư viện random có chức năng sinh một số thực ngẫu nhiên x trong khoảng [0, 1). Câu lệnh nào sau đây tạo đúng một dãy gồm n số thực ngẫu nhiên trong khoảng [0, 1)?
AA = [random() for i in range(n)]
BA = [randint(0, 1) for i in range(n)]
CA = random(n)
DA = [sqrt(i) for i in range(n)]
Câu 4
(Câu 30.4 trang 85 SBT Tin học 11) Hàm randint(a, b) từ thư viện random có chức năng sinh số nguyên ngẫu nhiên trong đoạn [a, b]. Câu lệnh nào sau đây tạo đúng một dãy gồm n số nguyên ngẫu nhiên trong đoạn [a, b]?
AA = [randint(a, b) for i in range(n)]
BA = [random(a, b) for i in range(n)]
CA = randint(n, a, b)
DA = [sqrt(a, b) for i in range(n)]
Câu 5
(Câu 30.5 trang 85 SBT Tin học 11) Giả sử L là đối tượng danh sách liên kết có cấu trúc giống như sách giáo khoa. Hàm length(L) dùng để làm gì?
ATính số phần tử của danh sách liên kết L.
BTìm khoá đầu tiên của danh sách liên kết L.
CBổ sung một node mới vào cuối danh sách liên kết L.
DXoá toàn bộ danh sách liên kết L.
Câu 6
(Câu 30.6 trang 85 SBT Tin học 11) Giả sử L là đối tượng danh sách liên kết. Hàm find(L, k) có tính chất nào sau đây?
ANếu L có node với khoá k thì trả về số thứ tự của node đó trong L, nếu không có thì trả về -1.
BNếu L có node với khoá k thì xoá node đó khỏi L.
CNếu L không có node với khoá k thì thêm k vào đầu danh sách.
DNếu L có node với khoá k thì trả về toàn bộ danh sách L.
Câu 7
(Câu 30.7 trang 85 SBT Tin học 11) Giả sử L là đối tượng danh sách liên kết. Hàm key_find(L, k) cần trả về kết quả nào?
ATrả về khoá của node ở vị trí thứ k; nếu k < 1 hoặc k > length(L) thì trả về None.
BTrả về số phần tử của danh sách liên kết L.
CTrả về vị trí đầu tiên của node có khoá bằng k.
DTrả về danh sách liên kết sau khi xoá node thứ k.
Câu 8
(Câu 30.10 trang 85 SBT Tin học 11) Giả sử L là đối tượng danh sách liên kết. Hàm insert_last(L, k) có chức năng gì?
ABổ sung một node với khoá k vào cuối danh sách liên kết L.
BBổ sung một node với khoá k vào đầu danh sách liên kết L.
CTìm vị trí đầu tiên có khoá k trong danh sách liên kết L.
DTính số phần tử của danh sách liên kết L.
Phần 2
Câu 1
(Câu 30.3 trang 85 SBT Tin học 11) Viết hàm sinh_day(n) trả lại một dãy gồm n số thực ngẫu nhiên trong khoảng [0, 1).
a)Cần import hàm random từ thư viện random.
b)Có thể tạo danh sách A ban đầu là danh sách rỗng.
c)Có thể dùng vòng lặp for i in range(n) và thêm random() vào A bằng append().
d)Hàm random() sinh số nguyên ngẫu nhiên trong đoạn [a, b].
Câu 2
(Câu 30.4 trang 85 SBT Tin học 11) Viết hàm sinh_day_nguyen(n, a, b) sinh một dãy gồm n số nguyên ngẫu nhiên trong đoạn [a, b].
a)Cần import randint từ thư viện random.
b)Hàm randint(a, b) sinh một số nguyên ngẫu nhiên trong đoạn [a, b].
c)Có thể dùng biểu thức [randint(a, b) for i in range(n)] để tạo dãy kết quả.
d)Hàm sinh_day_nguyen(n, a, b) chỉ có thể sinh số thực trong khoảng [0, 1).
Câu 3
(Câu 30.5 trang 85 SBT Tin học 11) Tìm hiểu hàm length(L) tính số phần tử của danh sách liên kết L.
a)Có thể bắt đầu duyệt từ node đầu tiên của danh sách, tức L.head.
b)Có thể dùng biến đếm stt ban đầu bằng 0.
c)Mỗi khi đi qua một node, tăng biến đếm thêm 1 rồi chuyển sang node tiếp theo.
d)Hàm length(L) chỉ cần trả về L.head mà không cần duyệt danh sách.
Câu 4
(Câu 30.6 trang 85 SBT Tin học 11) Tìm hiểu hàm find(L, k) trên danh sách liên kết.
a)Có thể bắt đầu tìm kiếm từ node đầu tiên của danh sách, tức L.head.
b)Khi node hiện tại khác None và khoá của node khác k, cần chuyển sang node tiếp theo.
c)Nếu tìm thấy node có khoá k thì hàm trả về số thứ tự của node đó trong danh sách.
d)Nếu không tìm thấy node có khoá k thì hàm trả về None theo yêu cầu của bài.
Câu 5
(Câu 30.7 trang 85 SBT Tin học 11) Tìm hiểu hàm key_find(L, k) trả về khoá tại vị trí thứ k trong danh sách liên kết.
a)Nếu k < 1 thì hàm cần trả về None.
b)Có thể duyệt danh sách từ L.head và đếm vị trí các node.
c)Nếu duyệt đến vị trí thứ k thì hàm trả về x.key của node đó.
d)Nếu k lớn hơn độ dài danh sách, hàm vẫn phải trả về khoá của node cuối cùng.
Câu 6
(Câu 30.8 trang 85 SBT Tin học 11) Thiết lập một danh sách liên kết với các phần tử có thông tin là họ tên các bạn lớp em, dữ liệu lấy từ tệp HS.inp.
a)Có thể thiết lập riêng phần thư viện trong tệp LinkedList.py và tệp chương trình chính.
b)Trong thư viện, có thể khai báo lớp Node để lưu thông tin tên và liên kết tới node tiếp theo.
c)Hàm NhapDL(fi) có thể mở tệp HS.inp, đọc từng dòng và đưa tên học sinh vào danh sách dữ liệu.
d)Muốn tạo danh sách liên kết từ tệp HS.inp thì bắt buộc phải nhập lại từng tên từ bàn phím.
Câu 7
(Câu 30.8 trang 85 SBT Tin học 11) Tìm hiểu chương trình chính tạo danh sách liên kết từ tệp HS.inp.
a)Chương trình chính có thể import các thành phần từ thư viện LinkedList.
b)Có thể đọc dữ liệu từ tệp HS.inp rồi tạo đối tượng danh sách liên kết L.
c)Với mỗi tên trong dữ liệu đã đọc, có thể gọi insert(L, ten) để đưa tên vào danh sách liên kết.
d)Sau khi tạo danh sách liên kết, không thể in các tên đã có trong danh sách ra màn hình.
Câu 8
(Câu 30.9 trang 85 SBT Tin học 11) Mở rộng Câu 30.8, mỗi node cần lưu tên học sinh và điểm trung bình của học sinh đó.
a)Lớp Node có thể có các thuộc tính name, diem và next.
b)Hàm insert(L, ten, diem) có thể tạo node mới chứa tên và điểm trung bình rồi đưa vào danh sách.
c)Hàm show(L) có thể in thông tin theo dạng “Tên: ... Điểm TB: ...”.
d)Khi cần lưu cả tên và điểm trung bình, chỉ cần lưu điểm trung bình, không cần lưu tên học sinh.
Câu 9
(Câu 30.9 trang 85 SBT Tin học 11) Tìm hiểu hàm NhapDL(fi) trong bài toán lưu tên học sinh và điểm trung bình bằng danh sách liên kết.
a)Có thể mở tệp dữ liệu với encoding = "UTF-8".
b)Mỗi dòng dữ liệu có thể được tách bằng split() để lấy họ tên và điểm trung bình.
c)Điểm trung bình cần được chuyển sang kiểu số thực bằng float().
d)Nếu mỗi dòng gồm họ tên và điểm trung bình thì phần họ tên luôn chỉ gồm đúng một từ.
Câu 10
(Câu 30.10 trang 85 SBT Tin học 11) Tìm hiểu hàm insert_last(L, k) bổ sung một node với khoá k vào cuối danh sách liên kết L.
a)Cần tạo node mới chứa khoá k.
b)Nếu danh sách L đang rỗng, có thể gán L.head = node.
c)Nếu danh sách L không rỗng, cần duyệt đến node cuối cùng rồi gán node cuối cùng trỏ tới node mới.
d)Để thêm node vào cuối danh sách, chỉ cần gán L.head = node trong mọi trường hợp.