Font size
WorksheetsĐề Cương Ôn Tin Học 11
Total questions: 95
Worksheet time: 50mins
Trong Python, các phần tử của mảng cách nhau bởi dấu
dấu chấm (.)
dấu phẩy (,)
dấu cách ( )
dấu trừ (-)
Trong Python, chỉ số của mảng bắt đầu từ số?
0
1
2
3
Trong Python, để kiểm tra một đối tượng có nằm trong mảng hay không ta dùng toán tử nào?
not
or
in
and
Trong Python, kiểu mảng là
array
float
str
list
Trong Python, để bổ sung phần tử có giá trị bằng m vào cuối mảng A, ta dùng lệnh nào?
A.insert(m)
m.insert(A)
A.append(m)
m.append(A)
Trong Python, để xóa toàn bộ các phần tử của mảng B ta dùng lệnh?
B.append( )
B.remove( )
B.insert( )
B.clear( )
Trong Python, để biết số phần tử của mảng A dùng lệnh?
append(A)
len(A)
str(A)
del(A)
Trong Python, để bổ sung phần tử vào vị trí bất kì của mảng arr ta dùng lệnh?
arr.append( )
arr.remove( )
arr.insert( )
arr.clear()
Trong Python, chọn lệnh khởi tạo mảng A gồm 03 phần tử có giá trị 1, 3 và 5?
A = (1, 3, 5)
A = {1, 3, 5}
A = [1, 3, 5]
A = [1; 3; 5]
Trong Python, để tham chiếu đến phần tử thứ ba của mảng arr ta dùng lệnh?
arr[2]
arr[1]
arr[0]
arr[-1]
Trong Python, để truy cập phần tử cuối cùng của một mảng, bạn sử dụng chỉ số nào?
-1
0
1
không xác định
Trong Python, lệnh nào sau đây để lấy ra phần tử cuối cùng trong danh sách A?
pop(A)
A.pop()
pop(len(A))
pop()
Trong Python, để xuất phần tử kế phần tử cuối cùng trong danh sách A, phương án nào sau đây đúng?
print(len(A) - 2)
print(A[len(A) – 2])
print(A[len(A) - 1])
print(A[len(A)])
Trong Python, cho một mảng numbers = [3, 7, 9, 2, 5], giá trị của numbers[2] là gì ?
3
7
9
2
Trong Python, cho một mảng colors = [‘red’, ‘blue’, ‘green’, ‘yellow’], cách để truy cập phần tử ‘green’ là?
colors[0]
colors[1]
colors[2]
colors[3]
Trong Python, cho một mảng numbers = [1, 2, 3, 4, 5], cách để thêm phần tử 6 vào cuối mảng là?
numbers.add(6)
numbers.insert(6)
numbers.push(6)
numbers.append(6)
Cho một mảng numbers = [2, 4, 6, 8, 10], giá trị phần tử numbers[2] trong mảng là?
4
2
3
6
Cho một mảng numbers = [2, 4, 6, 8, 10], cách để tính tổng các phần tử trong mảng là?
total(numbers)
add(numbers)
sum(numbers)
calculate(numbers)
Cho một mảng numbers = [5, 2, 8, 3, 9], cách để tìm giá trị lớn nhất trong mảng là?
largest(numbers)
max(numbers)
maximum(numbers)
find_max(numbers)
Trong Python, cho đoạn lệnh sau, sau khi thực hiện thì được dãy số A nào?
[7, 26, 48, 9, 35, 46, 5, 9, 83]
[7, 26, 48, 9, 22, 35, 5, 9, 82]
[7, 3, 26, 48, 9, 22, 46, 5, 9, 83]
[7, 26, 48, 9, 22, 35, 46, 9, 83]
Để xuất phần tử phần tử cuối cùng trong danh sách A, phương án nào sau đây đúng?
print(A[len(A) - 1])
print(A[len(A)])
print(A[len(A) – 2])
print(len(A) - 1)
Cho đoạn lệnh sau, dãy số Arr thu được là dãy số nào?
[5, 9, 7, 3, 4, 1]
[5, 7, 9, 3, 4, 1]
[5 ,7, 3, 4, 1, 2, 9]
[5, 7, 3, 4, 1, 2]
Cho một mảng 2 chiều:
A = [[42, 76, 92], [11, 45, 20], [65, 38, 57], [19, 96, 45], [92, 88, 191]]
Vậy giá trị của phần tử tại hàng 3 cột 1 là bao nhiêu ?
11
96
92
65
Cho một mảng 2 chiều:
arr = [[10, 20, 30], [40, 50, 60], [70, 80, 90]].
Để in ra hàng thứ 2 của mảng trên, bạn sử dụng câu lệnh nào?
print(arr[:,-1])
print(arr[2])
print(arr[2, :])
print(arr[1])
Tạo trực tiếp mảng hai chiều, cho các câu sau, câu nào đúng?
A = [1, 2, 3, 4]
B = [“Hà”; “Quang”; “Lan”]
D = [[1,3,5], [2,5,9], [5,9,20]]
C = [1,3,5],[2,5,9],[5,9,20]
Cho các câu sau thao tác với mảng một chiều A, chọn câu sai?
A.append( ): bổ sung phần tử vào cuối A
A.remove( ): xóa một phần tử trong A
A.remove( ): xóa toàn bộ phần tử trong A
A.clear( ): xóa toàn phần tử trong A
Để xóa 3 phần tử đầu tiên trong danh sách a, phương án nào sau đây đúng?
del(a[3])
del(a[0:3])
del(a[0:2])
del(a[1:3])
Cho đoạn lệnh sau, danh sách A thu được sau khi chạy đoạn lệnh là
[7, 3, 1, 9]
[7, 3, 8, 9]
[7,8,1,9]
[7,3,8,1]
Cho các câu sau, chọn câu đúng?
Xuất mảng theo hàng ngang, mỗi số cách nhau dấu cách: for m in B: print(m , end = " ")
Xuất mảng theo hàng dọc: for m in B: print(m, end = " ")
C = [1, 3, 5], [2, 5, 9], [5, 9, 20] là mảng hai chiều
Xuất mảng B theo chiều ngược lại: for m in B[: : 1]: print(m, end = " ")
Dùng lệnh nào sau đây để xóa phần tử cuối cùng trong danh sách A?
pop(A)
A.remove(A[-1])
A.pop(A[len(A)])
pop(len(A))
Thuật toán tìm kiếm nào dưới đây yêu cầu mảng đã được sắp xếp trước khi thực hiện?
Tìm kiếm tuần tự
Tìm kiếm nội suy
Tìm kiếm nhị phân
Tìm kiếm trong cây
Trong thuật toán tìm kiếm nhị phân, mảng được chia nhỏ mỗi lần tìm kiếm dựa trên?
Giá trị của phần tử đầu tiên.
Giá trị trung bình của mảng.
Giá trị nhỏ nhất của mảng.
Giá trị tại chỉ số trung tâm của mảng.
Chọn câu diễn đạt đúng hoạt động của thuật toán tìm kiếm tuần tự?
Tìm trên danh sách đã sắp xếp, bắt đầu từ đầu danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.
Tìm trên danh sách đã sắp xếp, bắt đầu từ giữa danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.
Tìm trên danh sách bất kì, bắt đầu từ giữa danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.
Tìm trên danh sách bất kì, bắt đầu từ đầu danh sách, chừng nào chưa tìm thấy hoặc chưa tìm hết thì còn tìm tiếp.
Trong tìm kiếm tuần tự thì điều kiện cần kiểm tra để dừng vòng lặp là gì?
Tìm thấy vị trí i của phần tử K.
Đã duyệt hết các phần tử khi tìm thấy vị trí của K.
Tìm thấy vị trí i của phần tử K hoặc duyệt đến phần tử cuối cùng mà vẫn chưa thấy vị trí có giá trị bằng phần tử K.
Duyệt lần lượt các phần tử từ đầu đến cuối dãy.
Trong tìm kiếm tuần tự thì có mấy điều kiện cần kiểm tra để dừng vòng lặp?
1.
2.
3.
4.
Trong thuật toán tìm kiếm nhị phân, chỉ số mid được tính theo công thức nào?
mid = (left + right) // 2.
mid = (left + right) % 2.
mid = (left + right) % 3.
mid = (left + right // 3.
Thuật toán tìm kiếm tuần tự cần bao nhiêu bước để tìm thấy số 7 trong danh sách
A = [1, 4, 8, 7, 10, 28]
2.
3.
4.
5.
Thuật toán tìm kiếm tuần tự cần bao nhiêu bước để tìm thấy số 25 trong danh sách B = [3, 5, 41, 7, 11, 46, 58, 79, 93, 25]?
9
10
11
8
Cho các câu sau, chọn câu SAI?
Với K = 11, thuật toán tìm kiếm tuần tự sẽ thực hiện 5 bước chạy.
Với K = 8, thuật toán tìm kiếm tuần tự thì chỉ số của K trong mảng A là 3.
Với K = 12, thuật toán tìm kiếm nhị phân sẽ thực hiện 4 bước chạy.
Với K = 11, thuật toán nhị phân sau khi chạy xong bước 1 thì phạm vi tìm kiếm được giới hạn thành [11, 12, 18, 21].
Thuật toán tìm kiếm nhị phân cần bao nhiêu bước để tìm thấy số 34 trong danh sách dãy gồm các số sau:
A = [ 0, 4, 9, 10, 12, 14, 17, 18, 20, 31, 34, 67]
3
4
5
6
Cho dãy số A = [ 1, 5, 8, 11, 16, 22, 34, 46, 57, 61, 83, 94, 102, 305, 457, 633, 755]. Với thuật toán tìm kiếm nhị phân thì tại bước số 3, giá trị của giới hạn bên trái, bên phải và giá trị giữa khi tìm kiếm giá trị bằng 755 là bao nhiêu ?
9, 16, 12
13, 16, 14
15, 16, 15
16, 16, 16
Cho dãy số A = [ 1, 5, 8, 11, 16, 22, 34, 46, 57, 61, 83, 94, 102, 305, 457, 633, 755]. Với thuật toán tìm kiếm nhị phân thì tại bước số 2, giá trị của giới hạn bên trái, bên phải và giá trị giữa khi tìm kiếm giá trị bằng 755 là bao nhiêu?
9, 16, 12
13, 16, 14
15, 16, 15
0, 8, 16
Trong thuật toán tìm kiếm nhị phân với dãy số A tăng dần thì khi A[mid] < K trong bước 1, ta có
Left = 0, Right = mid - 1.
Left = mid + 1, Right = mid - 1.
Left = mid + 1, Right = len(A) - 1.
Left = 0, Right = mid + 1.
Trong thuật toán tìm kiếm nhị phân với dãy số A tăng dần thì khi A[mid] > K trong bước 1, ta có
Left = 0, Right = mid - 1.
Left = mid + 1, Right = mid - 1.
Left = mid + 1, Right = len(A) - 1.
Left = 0, Right = mid + 1.
Trong thuật toán tìm kiếm nhị phân với dãy số A giảm dần thì khi A[mid] < K trong bước 1, ta có
Left = 0, Right = mid - 1.
Left = mid + 1, Right = mid - 1.
Left = mid + 1, Right = len(A) - 1.
Left = 0, Right = mid + 1.
Trong thuật toán tìm kiếm nhị phân với dãy số A giảm dần thì khi A[mid] > K trong bước 1, ta có
Left = 0, Right = mid - 1.
Left = mid + 1, Right = mid - 1.
Left = mid + 1, Right = len(A) - 1.
Left = 0, Right = mid + 1.
Thuật toán tìm kiếm nhị phân cần bao nhiêu bước để tìm thấy số 170 trong danh sách dãy số gồm [1, 2, 3, 12, 14, 17, 19, 20, 25, 30, 36, 52, 56, 163, 170]?
3.
4.
5.
6.
Thuật toán tìm kiếm nhị phân cần bao nhiêu bước để tìm thấy số 20 trong danh sách dãy gồm các số sau: [ 0, 4, 9, 10, 12, 14, 17, 18, 20, 31, 34, 67 ]?
5.
4.
3.
2.
Cho các câu sau, chọn câu SAI?
Với K = 17, thuật toán tìm kiếm tuần tự sẽ thực hiện 5 bước chạy
Với K = 18, thuật toán tìm kiếm tuần tự thì chỉ số của K trong mảng A là 6
Với K = 12, thuật toán tìm kiếm nhị phân sẽ thực hiện 3 bước chạy
Với K = 11, thuật toán nhị phân sau khi chạy xong bước 1 thì phạm vi tìm kiếm được giới hạn thành [12, 17, 18, 21]
Thuật toán tìm kiếm nhị phân cần bao nhiêu bước để tìm thấy số 163 trong danh sách dãy số gồm [1, 2, 3, 12, 14, 17, 19, 20, 25, 30, 36, 52, 56, 163]?
3.
4.
5.
14.
Thuật toán sắp xếp nào hoạt động bằng cách so sánh từng cặp phần tử liên tiếp và đổi chỗ nếu chúng không đúng thứ tự?
Sắp xếp chèn.
Sắp xếp lựa chọn.
Sắp xếp nổi bọt.
Sắp xếp nhanh.
Đâu là lệnh mở tệp để đọc?
f = open(
f = open(
f = open(
f.close().
Đâu là lệnh đọc một dòng tiếp theo từ f ?
f.readlines( ).
L = list(f).
f.lose( ).
f.readline( ).
Bổ sung đoạn lệnh sau để xuất ra mảng Diem từ tệp Data.txt sau
L = line.split( ).
Ten.append(L[0]).
return Diem.
Không có đáp án.
Giả sử có hai mảng Ten và Diem tương ứng với dữ liệu tên và điểm của học sinh trong lớp. Chương trình sau ghi những dòng thông tin này ra tệp ʺoutput.txtʺ sau đây lỗi ở mấy dòng?
0.
1.
2.
3.
Các nhiệm vụ để thực hiện việc sắp xếp gồm?
Đổi chỗ.
So sánh và đổi chỗ.
So sánh.
Xóa và đổi chỗ.
Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách nào?
Hoán đổi.
Thay thế.
Thay đổi.
Sửa đổi.
Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là gì ?
Vẫn còn cặp phần tử liền kề không đúng thứ tự mong muốn.
Dãy chưa được sắp xếp tăng dần.
Dãy chưa được sắp xếp giảm dần.
Cả A, B và C.
Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách hoán đổi các phần tử liền kề khi chúng chưa đúng vị trí bao nhiêu lần?
Hai lần.
Nhiều lần.
Một lần.
Mười lần.
Cho dãy số 7, 9, 12, 5, 4. Nếu sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy tăng dần thì sau bao nhiêu vòng lặp thì thuật toán kết thúc?
3.
4.
5.
6.
Cho dãy số 7, 9, 12, 5, 4. Nếu sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy tăng dần thì sau vòng lặp thứ 3 ta được dãy số nào?
[7, 9, 5, 4, 12]
[7, 5, 4, 9, 12]
[4, 5, 7, 9, 12]
[5, 4, 7, 9, 12]
Cho dãy số 3, 12, 4, 15, 9. Nếu sử dụng thuật toán sắp xếp chọn để sắp xếp dãy tăng dần thì sau vòng lặp thứ 2 ta được dãy số nào?
[3, 4, 12, 15, 9]
[3, 12, 4, 15, 9]
[3, 4, 9, 15, 12]
[3, 4, 9, 12, 15]
Bạn Vy thực hiện thuật toán sắp xếp chọn để sắp xếp dãy chữ cái A = ["c", "g", "q", "a", "h", "m"] theo thứ tự tăng dần. Ở vòng lặp đầu tiên ta sẽ đổi vị trí của hai chữ cái nào với nhau?
g, c
q, g
a, c
q, h
Bạn An thực hiện thuật toán sắp xếp chọn để sắp xếp dãy số sau theo thứ tự tăng dần, kết thúc bước thứ 3 ta thu được dãy số nào? Biết dãy số ban đầu gồm [64, 35, 17, 23, 11]?
[11, 35, 17, 23, 64]
[11, 17, 23, 35, 64]
[11, 17, 35, 23, 64]
[11, 23, 17, 35, 64]
Cho dãy số 9, 7, 12, 5, 4. Nếu sử dụng thuật toán sắp xếp chèn để sắp xếp dãy tăng dần thì sau vòng lặp thứ 2 ta được dãy số nào?
[4, 5, 7, 9, 12]
[5, 7, 9, 12, 4]
[7, 9, 12, 5, 4]
[7, 9, 12, 4, 5]
Cho dãy số 9, 7, 12, 5, 4. Nếu sử dụng thuật toán sắp xếp chèn để sắp xếp dãy tăng dần thì sau vòng lặp thứ 3 ta được dãy số nào?
[4, 5, 7, 9, 12]
[5, 7, 9, 12, 4]
[7, 9, 12, 5, 4]
[7, 9, 12, 5, 4]
Có bao nhiêu phương pháp để kiểm thử chương trình?
1
2
3
4
Đâu không là công cụ để kiểm thử chương trình?
Công cụ in biến trung gian
Công cụ thống kê dữ liệu
Công cụ sinh các bộ dữ liệu test
Công cụ điểm dừng trong phần mềm soạn thảo lập trình
Hoàn thành phát biểu sau: “Có rất nhiều công cụ và phương pháp khác nhau để kiểm thử chương trình. Các công cụ có mục đích ... của chương trình và ..., ... các lỗi phát sinh trong tương lai”?
Tìm ra lỗi, phòng ngừa, ngăn chặn.
Tìm ra lỗi, phòng ngừa, xử lí.
Phòng ngừa, ngăn chặn, xử lí lỗi.
Xử lí lỗi, phòng ngừa, ngăn chặn.
Phát biểu nào sau đây đúng?
Kiểm thử sẽ giảm độ tin cậy của chương trình và chưa chứng minh được tính đúng của thuật toán và chương trình.
Kiểm thử sẽ tăng độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của thuật toán và chương trình.
Kiểm thử sẽ tăng độ tin cậy của chương trình và chứng minh được tính đúng của thuật toán và chương trình.
Kiểm thử sẽ giảm độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của thuật toán và chương trình.
Tính đúng của thuật toán đươc chứng minh bằng?
Thuật toán.
Suy luận logic.
Bộ dữ liệu kiểm thử.
Lập luận toán học.
Hiệu quả hay tính tối ưu của chương trình thường được xem xét trên cơ sở đánh giá nào?
Độ phức tạp thời gian.
Độ phức tạp không gian.
Độ phức tạp tính toán.
Độ phức tạp của tập tin.
Hai tiêu chí đánh giá độ phức tạp tính toán quan trọng nhất là gì?
Thời gian thực hiện và không gian bộ nhớ.
Tính đúng và không gian bộ nhớ.
Thuật toán và lập luận bài toán.
Thời gian và tính tối ưu.
Độ phức tạp thời gian của một chương trình đo lường?
Không gian bộ nhớ được sử dụng bởi chương trình.
Thời gian mà chương trình mất để hoàn thành một nhiệm vụ, dựa trên kích thước của dữ liệu đầu vào.
Số lần thực hiện các phép toán cơ bản bởi chương trình.
Tất cả các phương án trên.
Độ phức tạp không gian của một chương trình đo lường?
Không gian bộ nhớ được sử dụng bởi chương trình.
Thời gian mà chương trình mất để hoàn thành một nhiệm vụ, dựa trên kích thước của dữ liệu đầu vào.
Số lần thực hiện các phép toán cơ bản bởi chương trình.
Tất cả phương án trên.
Một chương trình/ thuật toán là hiệu quả nếu chương trình thực hiện phải?
Tốn ít thời gian nhưng nhiều bộ nhớ.
Tốn nhiều thời gian và nhiều bộ nhớ.
Tốn ít thời gian và ít bộ nhớ.
Tốn nhiều thời gian nhưng ít bộ nhớ.
Tìm kết quả ở vòng lặp 3 trong đoạn chương trình sau khi ta nhập day số = 5 8 0 10 4 3.
Sau vòng 3 thì A = [5, 8, 0, 10, 4, 3] => điểm dừng j = 0
Sau vòng 3 thì A = [0, 5, 8, 10, 4, 3] => điểm dừng j = -1
Sau vòng 3 thì A = [0, 5, 8, 10, 4, 3] => điểm dừng j = 2
Sau vòng 3 thì A = [0, 4, 5, 8, 10, 3] => điểm dừng j = 0
Yêu cầu nhập số tự nhiên n và tính tổng 1 + 2 + ...+ n. Sắp xếp thứ tự các bước chứng minh bằng phương pháp qui nạp để kiểm tra tính đúng của chương trình sau?
B1: Vậy chương trình đúng với mọi i
B2: Chương trình đúng ở bước thứ nhất (i = 0): S = 0 + 0 =0
B3: Chương trình cũng đúng ở bước thứ i+1 (i=6): S=0+1+2+3+4+5+6
B4: Giả sử chương trình đúng ở bước thứ i (i=5): S=0+1+2+3+4+5
B2, B1, B3, B4.
B1, B4, B3, B2.
B3, B1, B2, B4.
B2, B4, B3, B1.
Chương trình giải bài toán đếm số các ước số thực sự của số tự nhiên n này đúng hay sai? Nếu sai thì sửa như sau:
Sai, sửa dòng 3 là k = 1.
Sai, sửa dòng 4 là k < n.
Sai, sửa dòng 3 là k = 1 và dòng 4 là k < n.
Đúng.
Tìm lệnh còn thiếu trong chương trình xuất thời gian của thuật toán tìm kiếm tuần tự phần tử K = 9 của dãy số A sau.
TKTT(A,9).
LinearSearch(A).
LinearSearch(A,9).
linearsearch(A,9).
Nhóm học sinh cần viết chương trình tính tổng các phần tử trong một mảng hai chiều (ma trận) và đã viết đoạn mã sau:
Chọn ý ĐÚNG
matrix[i][j] đại diện cho phần tử nằm ở hàng i, cột j trong ma trận.
Cần dùng hai vòng lặp lồng nhau để duyệt toàn bộ phần tử trong ma trận.
Nếu ma trận có kích thước m x n, số lần lặp tối đa của thuật toán này là m + n.
Tổng của các phần tử trong mảng hai chiều được tính theo từng cột, rồi cộng các cột lại với nhau.
Đoạn mã chương trình tìm kiếm một số trong mảng sử dụng tìm kiếm nhị phân (Binary Search) có các nhận xét sau:
Chọn nhận xét ĐÚNG
Thuật toán này chỉ hoạt động đúng nếu mảng đầu vào đã được sắp xếp.
Trong thuật toán này, số lần so sánh của thuật toán này là số phần tử của mảng A.
Nếu A[mid] > K, thì việc tìm kiếm sẽ tiếp tục trong nửa bên phải của mảng.
Dòng mid = (left + right) // 2 có ý nghĩa chia lấy phần nguyên của kết quả gán vào cho biến mid.
Nhận xét chương trình sắp xếp mảng số nguyên theo thứ tự tăng dần bằng thuật toán sắp xếp chọn (Selection Sort) trong Python như sau:
Chọn ý SAI
Thuật toán sắp xếp chọn lúc đầu chọn phần tử đầu tiên làm min.
Biến min_idx lưu vị trí phần tử lớn nhất trong dãy chưa sắp xếp.
Thuật toán này đưa lần lượt phần tử bé nhất về đúng vị trí đầu dãy.
Trong vòng lặp for j in range(i+1, n), j chạy từ 2 đến n - 1.
Nhóm học sinh muốn phân tích độ phức tạp của thuật toán tìm kiếm số lớn nhất trong ma trận sử dụng đoạn mã sau:
Chọn ý ĐÚNG
Biến max_val được dùng để lưu giá trị lớn nhất tìm thấy trong ma trận.
Thuật toán sử dụng hai vòng lặp lồng nhau để duyệt qua từng phần tử của ma trận.
Dòng lệnh t1 = perf_counter() và t2 = perf_counter() là thời gian kết thúc chương trình.
Dòng lệnh print (t2-t1) là in ra thời gian chạy của chương trình.
Đoạn mã sau dùng để tính tổng các số chẵn trong một danh sách:
Chọn ý Đúng
Hàm sum_even(lst) duyệt qua tất cả các phần tử trong danh sách để kiểm tra số chẵn.
Biến total được dùng để lưu tổng các số lẻ trong danh sách.
Toán tử % được dùng để kiểm tra số chia hết cho 2.
Nếu danh sách chỉ chứa số lẻ, hàm sẽ trả về giá trị None.
Đoạn mã dưới đây thực hiện đảo ngược một chuỗi ký tự:
Chọn ý ĐÚNG
Hàm reverse_string (s) trả về chuỗi đảo ngược của s.
Biểu thức s [ : : - 1 ] là cú pháp dùng để duyệt chuỗi từ cuối lên đầu.
Hàm này chỉ hoạt động với chuỗi có độ dài chẵn.
Nếu s là một chuỗi rỗng, hàm vẫn hoạt động bình thường.
Đoạn mã sau dùng để kiểm tra xem một số có phải là số nguyên tố không:
Chọn ý SAI
Hàm is_prime(n) trả về True nếu n là số nguyên tố, ngược lại trả về False.
Nếu n = 1, hàm sẽ trả về True.
Vòng lặp chạy từ 2 đến căn bậc hai của n để kiểm tra tính nguyên tố.
Hàm này có độ phức tạp thời gian là O(n).
Đoạn mã sau thực hiện kiểm tra một chuỗi có đối xứng (palindrome) không:
Chọn ý ĐÚNG
Nếu s = "madam", hàm sẽ trả về True.
Nếu s = "hello", hàm sẽ trả về True.
Hàm sử dụng phép so sánh trực tiếp giữa chuỗi gốc và chuỗi đảo ngược để kiểm tra đối xứng.
Độ phức tạp của thuật toán là O(n), với n là độ dài chuỗi.
Đoạn mã sau sử dụng đệ quy để tính giai thừa:
Chọn ý SAI
Nếu n = 5, kết quả trả về sẽ là 120.
Nếu n = 0, hàm sẽ trả về 0.
Hàm này sử dụng kỹ thuật đệ quy để tính giai thừa.
Độ phức tạp của thuật toán là O(n!).
Đoạn mã sau dùng để đếm số lượng chữ cái trong một chuỗi:
Chọn ý ĐÚNG
Hàm count_letters(s) trả về số lượng chữ cái (a-z, A-Z) trong chuỗi s.
Phương thức .isalpha() kiểm tra xem một ký tự có phải là chữ cái không.
Nếu s = "Ver Python 3.10.2!", kết quả trả về là 8.
Hàm này không đếm khoảng trắng và các ký tự số trong chuỗi.
Đoạn mã sau kiểm tra xem một danh sách có chứa phần tử trùng lặp hay không:
Chọn ý ĐÚNG
Nếu danh sách có phần tử trùng lặp, hàm trả về True.
Hàm set(lst) chuyển danh sách thành một tập hợp (loại bỏ các phần tử trùng lặp).
Nếu danh sách không có phần tử trùng, độ dài danh sách và tập hợp là bằng nhau.
Độ phức tạp của thuật toán là O(1).
Đoạn mã sau sử dụng thuật toán đếm số lần xuất hiện của từng phần tử trong
danh sách:
Chọn ý SAI
Hàm count_elements(lst) trả về một từ điển chứa số lần xuất hiện của mỗi phần tử trong danh sách.
Phương thức .get(item, 0) được sử dụng để lấy giá trị của item, mặc định là 0 nếu item chưa tồn tại.
Nếu danh sách chứa n phần tử, số lượng khóa trong từ điển luôn bằng n.
Độ phức tạp của thuật toán này trung bình là O(n).
Đoạn mã sau kiểm tra xem hai danh sách có chứa phần tử chung hay không:
Chọn ý ĐÚNG
Hàm set(lst1) & set(lst2) tạo ra một tập hợp chứa các phần tử chung giữa hai danh sách.
Nếu lst1 = [1, 2, 3] và lst2 = [4, 5, 6], hàm sẽ trả về True.
Hàm trả về True nếu có ít nhất một phần tử chung giữa lst1 và lst2.
Độ phức tạp của thuật toán là O(n + m), với n, m là độ dài của lst1 và lst2.
Đoạn mã sau sử dụng phương thức .sort() để sắp xếp danh sách:
Chọn ý SAI
Sau khi thực hiện lst.sort(), danh sách sẽ được sắp xếp tăng dần.
Phương thức .sort() trả về một danh sách mới, không làm thay đổi danh sách gốc.
.sort() sử dụng thuật toán Timsort với độ phức tạp trung bình là O(n log n).
.sort() có thể sắp xếp danh sách chứa cả số và chuỗi ký tự.
Đoạn mã sau kiểm tra xem một số có phải là số chẵn hay không:
Chọn ý ĐÚNG
Hàm is_even(n) trả về True nếu n là số chẵn, ngược lại trả về False.
Toán tử % (chia lấy dư) được dùng để kiểm tra số chẵn bằng cách kiểm tra n % 2 == 0.
Nếu n = 7, kết quả trả về là True.
Nếu n = -4, hàm vẫn trả về True.
