Trắc nghiệm Tin học 10 Kết nối tri thức Bài 22: Kiểu dữ liệu danh sách - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!
Câu 1: Bạn được giao nhiệm vụ lưu trữ danh sách tên của 5 học sinh trong lớp. Kiểu dữ liệu nào trong Python là phù hợp nhất để thực hiện việc này, cho phép bạn dễ dàng thêm, xóa hoặc truy cập từng tên theo thứ tự?
- A. Xâu kí tự (string)
- B. Số nguyên (int)
- C. Danh sách (list)
- D. Kiểu logic (boolean)
Câu 2: Cho đoạn mã Python sau:
diem_so = [7, 8.5, 6, 9, 5.5]
Phần tử đầu tiên của danh sách diem_so
có giá trị là bao nhiêu? (Kiểm tra kiến thức truy cập phần tử bằng chỉ số)
Câu 3: Bạn muốn thêm điểm số "9.0" vào cuối danh sách diem_so = [7, 8.5, 6, 9, 5.5]
. Lệnh Python nào sau đây thực hiện đúng yêu cầu này?
- A.
diem_so.insert(9.0)
- B.
diem_so.append(9.0)
- C.
diem_so.add(9.0)
- D.
diem_so[len(diem_so)] = 9.0
Câu 4: Cho danh sách vat_nuoi = ["chó", "mèo", "cá", "chim", "chuột"]
. Bạn muốn xóa phần tử "cá" khỏi danh sách này. Lệnh nào sau đây là cách đúng để thực hiện điều đó dựa trên giá trị của phần tử?
- A.
vat_nuoi.remove("cá")
- B.
del vat_nuoi[2]
- C.
vat_nuoi.pop(2)
- D.
vat_nuoi.delete("cá")
Câu 5: Xét đoạn mã sau:
my_list = [10, 20, 30, 40, 50]
my_list[1] = 25
my_list.insert(3, 35)
my_list.append(60)
Danh sách my_list
sau khi thực hiện các lệnh trên sẽ có nội dung là gì? (Kiểm tra khả năng theo dõi thay đổi của danh sách)
- A. [10, 25, 30, 40, 50, 35, 60]
- B. [10, 20, 30, 35, 40, 50, 60]
- C. [10, 25, 30, 35, 40, 50, 60]
- D. [10, 25, 35, 30, 40, 50, 60]
Câu 6: Cho danh sách so_nguyen = [1, 2, 3, 4, 5]
. Bạn muốn lấy ra một danh sách con chứa các phần tử từ chỉ số 1 đến chỉ số 3 (không bao gồm chỉ số 3). Cú pháp cắt (slicing) nào sau đây là đúng?
- A.
so_nguyen[1:2]
- B.
so_nguyen[1:3]
- C.
so_nguyen[1:4]
- D.
so_nguyen[2:3]
Câu 7: Xét danh sách letters = ["a", "b", "c", "d", "e"]
. Lệnh print(letters[-2])
sẽ in ra kết quả gì? (Kiểm tra kiến thức về chỉ số âm)
- A. "a"
- B. "b"
- C. "d"
- D. "e"
Câu 8: Cho đoạn mã sau:
data = [10, 20, 30, 40, 50, 60]
subset = data[1:5:2]
Giá trị của biến subset
sau khi thực hiện lệnh trên là gì? (Kiểm tra cắt danh sách với bước nhảy)
- A. [20, 40]
- B. [10, 30, 50]
- C. [20, 30, 40, 50]
- D. [20, 40, 60]
Câu 9: Bạn có danh sách items = ["apple", "banana", "cherry"]
. Lệnh Python nào sau đây sẽ thêm "orange" vào vị trí thứ hai (chỉ số 1) của danh sách?
- A.
items.append(1, "orange")
- B.
items.add(1, "orange")
- C.
items[1] = "orange"
- D.
items.insert(1, "orange")
Câu 10: Cho danh sách numbers = [1, 2, 3, 4, 5]
. Sau khi thực hiện lệnh popped_value = numbers.pop(2)
, giá trị của popped_value
là gì và danh sách numbers
trở thành như thế nào?
- A.
popped_value
là 2, numbers
là [1, 3, 4, 5]
- B.
popped_value
là 3, numbers
là [1, 2, 4, 5]
- C.
popped_value
là 3, numbers
là [1, 2, 3, 4, 5]
- D.
popped_value
là 2, numbers
là [1, 3, 4, 5]
Câu 11: Bạn muốn tạo một danh sách rỗng để lưu trữ dữ liệu sau này. Cách khai báo nào sau đây là đúng trong Python?
- A.
my_list = ()
- B.
my_list = {}
- C.
my_list = []
- D.
my_list = none
Câu 12: Cho danh sách data = [1, "two", 3.0, True]
. Phát biểu nào sau đây là đúng về danh sách này?
- A. Danh sách này chứa các phần tử có kiểu dữ liệu khác nhau.
- B. Danh sách này chỉ có thể chứa các phần tử cùng kiểu dữ liệu.
- C. Đây không phải là một danh sách hợp lệ trong Python.
- D. Các phần tử trong danh sách không có thứ tự cụ thể.
Câu 13: Xét đoạn mã sau:
numbers = [10, 5, 8, 12, 3]
numbers.sort()
print(numbers)
Kết quả in ra màn hình là gì?
- A. [10, 5, 8, 12, 3]
- B. [12, 10, 8, 5, 3]
- C. [3, 5, 12, 8, 10]
- D. [3, 5, 8, 10, 12]
Câu 14: Cho danh sách scores = [85, 92, 78, 95, 88]
. Bạn muốn tìm điểm cao nhất trong danh sách này. Hàm sẵn có nào của Python giúp thực hiện điều đó một cách hiệu quả?
- A.
sum()
- B.
max()
- C.
min()
- D.
len()
Câu 15: Bạn có danh sách tasks = ["Mua sắm", "Học bài", "Tập thể dục", "Nấu ăn"]
. Bạn muốn tạo một danh sách mới chứa các công việc này theo thứ tự ngược lại mà không làm thay đổi danh sách gốc tasks
. Hàm hoặc phương thức nào nên sử dụng?
- A.
tasks.reverse()
- B.
tasks.sort(reverse=True)
- C.
list(reversed(tasks))
- D.
tasks[::-1]
Câu 16: Cho danh sách data = [1, 2, 3, 2, 4, 2, 5]
. Bạn muốn đếm xem số 2 xuất hiện bao nhiêu lần trong danh sách. Phương thức nào của danh sách giúp thực hiện việc này?
- A.
data.index(2)
- B.
len(data)
- C.
data.find(2)
- D.
data.count(2)
Câu 17: Xét đoạn mã sau:
numbers = [1, 2, 3]
numbers2 = numbers
numbers2.append(4)
Giá trị của danh sách numbers
sau các lệnh trên là gì? (Kiểm tra hiểu biết về tính mutable và gán biến)
- A. [1, 2, 3, 4]
- B. [1, 2, 3]
- C. [1, 2, 3], numbers2 là [1, 2, 3, 4]
- D. Báo lỗi
Câu 18: Cho danh sách my_list = [10, 20, 30]
. Lệnh del my_list[1]
sẽ làm gì?
- A. Xóa phần tử có giá trị 1 khỏi danh sách.
- B. Xóa phần tử tại chỉ số 1 (giá trị 20) khỏi danh sách.
- C. Xóa toàn bộ danh sách.
- D. Thêm giá trị 1 vào danh sách.
Câu 19: Đoạn mã nào sau đây sử dụng vòng lặp for
để in ra từng phần tử của danh sách colors = ["red", "green", "blue"]
?
- A.
for color in colors:
print(color)
- B.
for i in range(len(colors)):
print(i)
- C.
while colors:
print(colors.pop())
- D.
for color in range(colors):
print(color)
Câu 20: Bạn muốn tạo một danh sách chứa các số chẵn từ 0 đến 10 (bao gồm cả 0 và 10). Cách tạo danh sách nào sau đây sử dụng list comprehension là hiệu quả nhất?
- A.
even_numbers = []
for i in range(11):
if i % 2 == 0:
even_numbers.append(i)
- B.
even_numbers = list(range(0, 11, 2))
- C.
even_numbers = [i for i in range(11) if i % 2 == 0]
- D.
even_numbers = [0, 2, 4, 6, 8, 10]
Câu 21: Xét đoạn mã sau, giả sử danh sách grades
đã được tạo:
grades = [75, 88, 90, 65, 92, 70]
tong_diem = 0
for diem in grades:
tong_diem += diem
diem_trung_binh = tong_diem / len(grades)
Đoạn mã này thực hiện công việc gì?
- A. Tìm điểm cao nhất trong danh sách.
- B. Tính tổng và điểm trung bình của các điểm trong danh sách.
- C. Sắp xếp danh sách điểm theo thứ tự tăng dần.
- D. Đếm số lượng điểm đạt yêu cầu (> 80).
Câu 22: Cho hai danh sách list1 = [1, 2, 3]
và list2 = [4, 5, 6]
. Lệnh combined_list = list1 + list2
sẽ tạo ra danh sách combined_list
có nội dung là gì?
- A. [1, 2, 3, 4, 5, 6]
- B. [5, 7, 9]
- C. [1, 2, 3], [4, 5, 6]
- D. Báo lỗi do kiểu dữ liệu không khớp.
Câu 23: Bạn có một danh sách data = [10, 20, 30, 40, 50]
. Bạn muốn thay thế các phần tử từ chỉ số 1 đến chỉ số 3 (không bao gồm chỉ số 3) bằng các giá trị mới là [25, 35]
. Lệnh nào sau đây thực hiện đúng điều này?
- A.
data.replace(data[1:3], [25, 35])
- B.
data[1:3].assign([25, 35])
- C.
data[1:3] = [25, 35]
- D.
data.insert(1, [25, 35])
Câu 24: Xét đoạn mã sau:
letters = ["a", "b", "c"]
letters.append(["d", "e"])
Giá trị của danh sách letters
sau khi thực hiện lệnh trên là gì? (Kiểm tra cách append
xử lý danh sách)
- A. ["a", "b", "c", "d", "e"]
- B. ["a", "b", "c", ["d", "e"]]
- C. ["a", "b", "c", "d", "e", ["d", "e"]]
- D. Báo lỗi do kiểu dữ liệu không khớp.
Câu 25: Cho danh sách numbers = [1, 2, 3, 4, 5]
. Lệnh nào sau đây sẽ tạo ra một danh sách mới squared_numbers
chứa bình phương của các số trong numbers
, tức là [1, 4, 9, 16, 25]
?
- A.
squared_numbers = [i**2 for i in numbers]
- B.
squared_numbers = numbers**2
- C.
squared_numbers = []
for i in numbers:
squared_numbers.append(numbers[i]**2)
- D.
squared_numbers = numbers.map(lambda x: x**2)
Câu 26: Một danh sách trong Python được gọi là "mutable" (có thể thay đổi) có nghĩa là gì?
- A. Các phần tử của nó phải cùng kiểu dữ liệu.
- B. Thứ tự của các phần tử không cố định.
- C. Bạn có thể thêm, xóa hoặc sửa đổi các phần tử của nó sau khi tạo.
- D. Nó chỉ có thể được sử dụng trong các hàm.
Câu 27: Cho danh sách data = [10, 20, 30, 40, 50]
. Lệnh data.extend([60, 70])
sẽ làm gì?
- A. Thêm danh sách
[60, 70]
như một phần tử duy nhất vào cuối data
.
- B. Thay thế các phần tử trong
data
bằng [60, 70]
.
- C. Trả về một danh sách mới là sự kết hợp của
data
và [60, 70]
.
- D. Thêm từng phần tử 60 và 70 vào cuối danh sách
data
.
Câu 28: Xét đoạn mã sau:
numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers)
numbers.sort()
Giá trị của sorted_numbers
và numbers
sau các lệnh trên là gì? (So sánh sorted()
và sort()
)
- A.
sorted_numbers
là [1, 2, 5, 8, 9]
, numbers
là [1, 2, 5, 8, 9]
- B.
sorted_numbers
là [1, 2, 5, 8, 9]
, numbers
là [5, 2, 8, 1, 9]
- C.
sorted_numbers
là [5, 2, 8, 1, 9]
, numbers
là [1, 2, 5, 8, 9]
- D. Cả hai đều là
[5, 2, 8, 1, 9]
Câu 29: Bạn cần lưu trữ thông tin về các sản phẩm trong kho, mỗi sản phẩm có tên và số lượng tồn kho. Bạn quyết định sử dụng một danh sách. Cấu trúc nào sau đây là cách tiếp cận hợp lý để lưu trữ thông tin này trong một danh sách duy nhất?
- A. Một danh sách chỉ chứa tên sản phẩm và một danh sách khác chỉ chứa số lượng tồn kho.
- B. Một danh sách mà mỗi phần tử là một danh sách con chứa
[tên sản phẩm, số lượng]
, ví dụ: [["Áo", 50], ["Quần", 30]]
.
- C. Một danh sách chứa xen kẽ tên sản phẩm và số lượng, ví dụ:
["Áo", 50, "Quần", 30]
.
- D. Một danh sách chỉ chứa tên sản phẩm, và giả định số lượng tồn kho là cố định cho tất cả.
Câu 30: Xét đoạn mã sau:
numbers = [1, 2, 3, 4, 5]
for i in range(len(numbers)):
if numbers[i] % 2 == 0:
numbers[i] = 0
Giá trị của danh sách numbers
sau khi thực hiện vòng lặp là gì?
- A. [1, 2, 3, 4, 5]
- B. [0, 0, 0, 0, 0]
- C. [1, 0, 3, 0, 5]
- D. [0, 2, 0, 4, 0]