Bài 32 Ôn tập lập trình Python

Lớp 10Tin Học25 câu hỏiBài tập

Phần 1

Câu 1

(Câu 32.1 trang 66 SBT Tin học 10) Cần viết chương trình nhập họ tên đầy đủ từ bàn phím, ví dụ “Nguyễn Thị Mai Hương”, sau đó tách riêng phần tên, họ, đệm và thông báo ra màn hình. Phương án nào mô tả đúng cách làm?
ADùng split() để tách họ tên thành danh sách các từ; lấy họ là phần tử đầu, tên là phần tử cuối, phần đệm là các phần tử ở giữa ghép lại bằng join().
BDùng len() để đếm số kí tự rồi lấy họ, đệm, tên theo số lượng kí tự cố định.
CDùng find() để tìm mọi chữ cái viết hoa rồi tách họ, đệm, tên theo các chữ cái đó.
DChỉ cần dùng input() là Python tự động tách được họ, đệm, tên.

Câu 2

(Câu 32.2 trang 66 SBT Tin học 10) Sản lượng tiêu thụ điện theo tháng được cho bởi dãy A = [a₀, a₁, ..., aₙ₋₁]. Tháng được gọi là đột biến nếu sản lượng tiêu thụ của tháng đó lớn hơn cả tháng trước và tháng sau. Điều kiện nào kiểm tra đúng tháng có chỉ số k là tháng đột biến?
AA[k - 1] < A[k] and A[k] > A[k + 1].
BA[k - 1] < A[k] and A[k] < A[k + 1].
CA[k - 1] > A[k] and A[k] > A[k + 1].
DA[k] == A[k - 1] and A[k] == A[k + 1].

Câu 3

(Câu 32.3 trang 66 SBT Tin học 10) Cho xâu gốc S = "12121341212100" và xâu mẫu str = "121". Khi tìm số lần lặp không chồng lấn của xâu mẫu str trong xâu S, kết quả là bao nhiêu?
A2.
B4.
C3.
D0.

Câu 4

(Câu 32.4 trang 66 SBT Tin học 10) Cho dãy số A = [1, 1, 2, 3, 0, 0, 0, 7, 10, 10, 5, 1, 1, 6]. Dãy con liên tục có độ dài lớn nhất gồm các số bằng nhau là dãy nào và bắt đầu từ chỉ số nào?
ADãy 0, 0, 0 bắt đầu từ chỉ số 4.
BDãy 1, 1 bắt đầu từ chỉ số 0.
CDãy 10, 10 bắt đầu từ chỉ số 8.
DDãy 1, 1 bắt đầu từ chỉ số 11.

Câu 5

(Câu 32.5 trang 66 SBT Tin học 10) Trong bài toán đổi số ngày tính từ mốc ngày 1-1-1900 sang ngày, tháng, năm tương ứng, hàm nhuan(year) có tác dụng gì?
AKiểm tra year có phải là năm nhuận hay không.
BTính số tháng của một năm.
CTính số ngày của một tháng bất kì.
DChuyển ngày, tháng, năm thành xâu kí tự.

Câu 6

(Câu 32.7 trang 67 SBT Tin học 10) Cần nhập danh sách học sinh trong lớp rồi sắp xếp theo thứ tự từ điển của Unicode. Phương án nào mô tả đúng cách làm trong chương trình?
ATạo bản sao của danh sách rồi dùng thuật toán sắp xếp chèn để sắp xếp tăng dần theo thứ tự so sánh xâu của Python.
BChỉ cần nhập danh sách học sinh rồi in lại, Python tự động sắp xếp theo thứ tự từ điển.
CChỉ cần sắp xếp theo độ dài họ tên, họ tên ngắn hơn luôn đứng trước.
DXoá tất cả dấu cách trong họ tên rồi in ra danh sách ban đầu.

Câu 7

(Câu 32.8 trang 67 SBT Tin học 10) Khi sắp xếp danh sách học sinh theo thứ tự tiếng Việt, ưu tiên theo tên trước, rồi đến họ, rồi đến đệm, chương trình cần thêm thành phần nào?
AMột bảng chữ cái tiếng Việt theo đúng thứ tự và hàm so sánh hai xâu theo bảng chữ cái đó.
BMột danh sách số nguyên ngẫu nhiên để gán cho từng học sinh.
CMột hàm chỉ đếm số kí tự của mỗi họ tên.
DMột lệnh print để in danh sách ban đầu nhiều lần.

Câu 8

(Câu 32.9 trang 67 SBT Tin học 10) Nếu n là hợp số thì n phải có ước số nguyên tố nhỏ hơn hoặc bằng n . Ý tưởng này giúp tối ưu chương trình phân tích số n như thế nào?
AKhi tìm ước nguyên tố nhỏ nhất của n, chỉ cần kiểm tra các số từ 2 đến n ; nếu không có ước nào thì kết luận n là số nguyên tố.
BKhi tìm ước nguyên tố nhỏ nhất của n, cần kiểm tra mọi số từ 2 đến n².
CNếu n không chia hết cho 2 thì chắc chắn n là số nguyên tố.
DMọi hợp số đều chỉ có đúng một ước nguyên tố.

Câu 9

(Câu 32.10 trang 67 SBT Tin học 10) Bài toán mô tả đường bay của hòn đá khi được ném xiên trong điều kiện lí tưởng. Các thông tin ban đầu cần nhập từ bàn phím gồm những gì?
AGóc ném α, độ cao ban đầu h và vận tốc ban đầu v.
BChỉ cần nhập khối lượng của hòn đá.
CChỉ cần nhập thời gian bay và khoảng cách bay.
DChỉ cần nhập độ cao cực đại và gia tốc trọng trường.

Câu 10

(Câu 32.10 trang 67 SBT Tin học 10) Trong chương trình mô tả chuyển động của hòn đá, cần dùng các hàm toán học sqrt, radians, sin, cos. Lệnh import nào phù hợp?
Afrom math import sqrt, radians, sin, cos
Bfrom random import sqrt, radians, sin, cos
Cimport string
Dimport turtle

Phần 2

Câu 1

(Câu 32.1 trang 66 SBT Tin học 10) Về chương trình tách họ, đệm, tên từ một họ tên đầy đủ, nhận định nào sau đây đúng hoặc sai?
a)Có thể nhập họ tên đầy đủ bằng lệnh hoten = input("Nhập họ tên đầy đủ của bạn: ").
b)Có thể dùng slist = hoten.split() để tách họ tên thành danh sách các từ.
c)Nếu n = len(slist), họ có thể lấy bằng slist[0], tên có thể lấy bằng slist[n - 1].
d)Phần đệm luôn là phần tử cuối cùng của danh sách slist.

Câu 2

(Câu 32.1 trang 66 SBT Tin học 10) Về cách tách phần đệm trong họ tên đầy đủ, nhận định nào sau đây đúng hoặc sai?
a)Phần đệm là phần nằm giữa họ và tên.
b)Có thể lấy phần đệm bằng lệnh dem = " ".join(slist[1:n - 1]).
c)Nếu họ tên chỉ có hai từ thì có thể không có phần đệm.
d)Muốn lấy phần đệm, bắt buộc phải biết trước họ tên có đúng 4 từ.

Câu 3

(Câu 32.2 trang 66 SBT Tin học 10) Về chương trình tìm tháng có sản lượng tiêu thụ điện đột biến, nhận định nào sau đây đúng hoặc sai?
a)Có thể nhập dãy sản lượng tiêu thụ điện trên một dòng, các số cách nhau bởi dấu cách.
b)Có thể chuyển xâu nhập vào thành danh sách số nguyên bằng A = [int(k) for k in slist.split()].
c)Chỉ cần xét các chỉ số k từ 1 đến len(A) - 2 vì tháng đầu và tháng cuối không có đủ cả tháng trước và tháng sau.
d)Một tháng đột biến là tháng có sản lượng nhỏ hơn cả tháng trước và tháng sau.

Câu 4

(Câu 32.3 trang 66 SBT Tin học 10) Về bài toán đếm số lần lặp không chồng lấn của xâu mẫu trong xâu gốc, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng hàm find() để tìm vị trí xuất hiện của xâu mẫu trong xâu gốc.
b)Sau mỗi lần tìm thấy xâu mẫu tại vị trí Indx, nếu không cho phép chồng lấn thì vị trí tìm tiếp theo có thể là Indx + m, trong đó m là độ dài xâu mẫu.
c)Biến count có thể dùng để đếm số lần tìm thấy xâu mẫu.
d)Khi không cho phép chồng lấn, sau khi tìm thấy xâu mẫu cần tìm tiếp từ vị trí Indx + 1.

Câu 5

(Câu 32.4 trang 66 SBT Tin học 10) Về chương trình tìm dãy con liên tục dài nhất gồm các số bằng nhau, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng Indx để lưu chỉ số bắt đầu của dãy con dài nhất tìm được.
b)Có thể dùng lenMax để lưu độ dài lớn nhất hiện thời.
c)Với mỗi vị trí i, có thể tăng j khi A[j] == A[i] để xác định đoạn các phần tử bằng nhau liên tiếp.
d)Dãy con cần tìm có thể gồm các phần tử không liên tiếp trong dãy ban đầu.

Câu 6

(Câu 32.5 trang 66 SBT Tin học 10) Về chương trình đổi số ngày thành ngày, tháng, năm, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng danh sách month để lưu số ngày của từng tháng trong năm thường.
b)Hàm day_of_year(year) có thể trả về 366 nếu year là năm nhuận và 365 nếu không phải năm nhuận.
c)Khi xét năm nhuận, tháng Hai có thể được đổi thành 29 ngày.
d)Mọi năm đều có đúng 365 ngày nên không cần xét năm nhuận.

Câu 7

(Câu 32.6 trang 67 SBT Tin học 10) Về bài toán nhập thời gian theo khuôn dạng ngày - tháng - năm rồi tính giá trị ngày theo cách lưu trữ của phần mềm bảng tính, nhận định nào sau đây đúng hoặc sai?
a)Cần tách ngày, tháng, năm từ dữ liệu nhập vào.
b)Cần kiểm tra ngày, tháng, năm nhập vào có hợp lệ hay không.
c)Cần cộng số ngày của các năm trước năm đã nhập và số ngày của các tháng trước tháng đã nhập.
d)Không cần xét năm nhuận vì dữ liệu ngày tháng trong mọi năm đều giống nhau.

Câu 8

(Câu 32.7 trang 67 SBT Tin học 10) Về chương trình nhập và sắp xếp danh sách học sinh theo thứ tự từ điển Unicode, nhận định nào sau đây đúng hoặc sai?
a)Có thể khởi tạo danh sách A rỗng trước khi nhập tên học sinh.
b)Có thể nhập số học sinh bằng lệnh n = int(input("Nhập số học sinh của lớp: ")).
c)Có thể thêm họ tên học sinh vào danh sách bằng A.append(hoten).
d)Hàm sap_xep(A) trong lời giải làm thay đổi trực tiếp danh sách A ban đầu và không thể tạo bản sao.

Câu 9

(Câu 32.8 trang 67 SBT Tin học 10) Về chương trình sắp xếp học sinh theo tên, họ, đệm và theo bảng chữ cái tiếng Việt, nhận định nào sau đây đúng hoặc sai?
a)Có thể xây dựng biến Alphabet chứa các chữ cái tiếng Việt theo đúng thứ tự.
b)Hàm so_sanh(s1, s2) có thể trả về -1, 0 hoặc 1 tuỳ quan hệ thứ tự giữa hai xâu.
c)Hàm tach_ten(hoten) có thể lấy tên là từ cuối cùng trong họ tên.
d)Muốn sắp xếp theo tên trước, không cần tách tên hoặc biến đổi dữ liệu.

Câu 10

(Câu 32.8 trang 67 SBT Tin học 10) Về cách biến đổi họ tên trước khi sắp xếp trong bài sắp xếp theo tên, họ, đệm, nhận định nào sau đây đúng hoặc sai?
a)Có thể tạo xâu mới gồm tên, một số dấu cách đệm, rồi đến họ tên đầy đủ.
b)Việc đưa tên lên trước giúp phép so sánh ưu tiên tên trước khi xét họ và đệm.
c)Khi hoán đổi các xâu dùng để so sánh, cần hoán đổi đồng thời họ tên gốc để giữ kết quả đúng.
d)Danh sách kết quả chỉ cần gồm các xâu biến đổi, không cần giữ lại họ tên ban đầu.

Câu 11

(Câu 32.9 trang 67 SBT Tin học 10) Về chương trình tối ưu hoá việc tìm ước số nguyên tố nhỏ nhất và phân tích số n, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng from math import sqrt để sử dụng hàm căn bậc hai.
b)Khi tìm ước của m, có thể tăng k cho đến khi k vượt quá căn bậc hai của m.
c)Nếu không tìm thấy ước nhỏ hơn hoặc bằng căn bậc hai của m thì có thể xem m là số nguyên tố.
d)Để phân tích n, bắt buộc phải thử tất cả các số từ 2 đến n².

Câu 12

(Câu 32.9 trang 67 SBT Tin học 10) Về kết quả phân tích số n thành các thừa số nguyên tố, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng danh sách NT để lưu các thừa số nguyên tố tìm được.
b)Sau khi tìm được một ước nguyên tố k, có thể cập nhật m = m//k.
c)Nếu số thừa số nguyên tố trong NT bằng 1 thì n là số nguyên tố.
d)Nếu n = 12 thì chương trình cần kết luận 12 là số nguyên tố.

Câu 13

(Câu 32.10 trang 67 SBT Tin học 10) Về mô hình chuyển động ném xiên của hòn đá, nhận định nào sau đây đúng hoặc sai?
a)Vận tốc ban đầu v có thể phân tích thành thành phần ngang và thành phần thẳng đứng.
b)Thành phần ngang có thể tính bằng vx = v*cos(alpha).
c)Thành phần thẳng đứng có thể tính bằng vy = v*sin(alpha).
d)Trong Python, các hàm sin và cos mặc định nhận góc theo độ nên không cần đổi sang radian.

Câu 14

(Câu 32.10 trang 67 SBT Tin học 10) Về chương trình tính thời gian bay, độ cao cực đại và khoảng cách ném xa của hòn đá, nhận định nào sau đây đúng hoặc sai?
a)Có thể viết hàm Timing(v, alpha, h) để tính thời gian bay của hòn đá.
b)Có thể viết hàm Height(v, alpha, h) để tính độ cao cực đại.
c)Có thể viết hàm Length(v, alpha, h) để tính khoảng cách ném xa.
d)Các hàm Timing, Height và Length không cần tham số đầu vào vì mọi giá trị đều tự động có sẵn trong Python.

Câu 15

(Câu 32.10 trang 67 SBT Tin học 10) Về việc nhập dữ liệu và in kết quả trong chương trình mô tả đường bay của hòn đá, nhận định nào sau đây đúng hoặc sai?
a)Có thể nhập vận tốc ban đầu v bằng float(input(...)).
b)Có thể nhập góc ném alpha rồi dùng radians(alpha) trước khi tính sin, cos.
c)Có thể làm tròn kết quả bằng hàm round() trước khi in ra màn hình.
d)Độ cao ban đầu h phải luôn nhỏ hơn 0 thì chương trình mới đúng với yêu cầu bài toán.