logo

30 + Trắc nghiệm Tin học 10 Bài 22 kết nối tri thức (có đáp án) giải thích chi tiết

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 22 (có đáp án): Kiểu dữ liệu danh sách


Lý thuyết - Trắc nghiệm Tin học 10 Kết nối tri thức Bài 22

Câu 1: Có mấy kiểu duyệt phần tử của danh sách?
A. 1.
B. 2.
C. 3.
D. 4.

Đáp án đúng là B

Có hai kiểu duyệt phần tử của danh sách là:

Duyệt danh sách theo thứ tự tuần tự từ đầu đến cuối (sequential traversal): bắt đầu từ phần tử đầu tiên và duyệt lần lượt qua các phần tử cho đến phần tử cuối cùng.
Duyệt danh sách theo thứ tự ngược lại từ cuối đến đầu (reverse traversal): bắt đầu từ phần tử cuối cùng và duyệt lần lượt qua các phần tử cho đến phần tử đầu tiên.

Câu 2: Lệnh nào sau đây được dùng để tính độ dài của phần tử?

A. del().
B. len().
C. append().
D. đáp án khác.

Đáp án đúng là B

Lệnh được sử dụng để tính độ dài của phần tử là len().

len() là hàm tính độ dài của một đối tượng, bao gồm danh sách (list), chuỗi (string), tuple, và các loại đối tượng có thể đếm được khác. Hàm này trả về số lượng phần tử trong đối tượng đó.

Ví dụ, len([1, 2, 3]) trả về giá trị 3, bởi vì danh sách này có 3 phần tử.

Câu 3: Danh sách A sẽ như thế nào sau các lệnh sau?

>>> A = [2, 3, 5, 6]
>>> A. append(4)
>>> del (A[2])
A. 2, 3, 4, 5, 6, 4.
B. 2, 3, 4, 5, 6.
C. 2, 4, 5, 6.
D. 2, 3, 6, 4.

Đáp án đúng là D

Sau khi thực hiện các lệnh đó, danh sách A sẽ là:

[2, 3, 6, 4]

Giải thích:

Sau lệnh A.append(4), danh sách A sẽ là [2, 3, 5, 6, 4].

Sau lệnh del (A[2]), phần tử thứ 2 (tính từ 0) của danh sách A sẽ bị xóa, do đó danh sách A sẽ trở thành [2, 3, 6, 4].

Câu 4: Dùng lệnh nào để có thể duyệt lần lượt các phần tử của danh sách?

A. Lệnh for kết hợp với vùng giá trị của lệnh range().
B. Lệnh append().
C. Lệnh for .... in.
D. Lệnh len().

Đáp án đúng là A

Câu 5: Để khai báo một danh sách rỗng ta dùng cú pháp sau
A. < tên danh sách > ==[].
B. < tên danh sách > = 0.
C. < tên danh sách > = [].
D. < tên danh sách > = [0].

Đáp án đúng là C

Để khai báo một danh sách rỗng trong Python, ta sử dụng cú pháp sau:

< tên danh sách > = []
Vì vậy, đáp án là C. < tên danh sách > = [].

Lưu ý rằng, nếu sử dụng cú pháp < tên danh sách > = [0] thì danh sách sẽ chứa một phần tử là số 0, chứ không phải là danh sách rỗng.

Câu 6: Để xóa 2 phần tử ở vị trí 1 và 2 trong danh sách a hiện tại ta dùng lệnh nào?
A. del a[1:2].
B. del a[0:2].
C. del a[0:3].
D. del a[1:3].

Đáp án đúng là D

Để xóa 2 phần tử ở vị trí 1 và 2 trong danh sách a hiện tại, ta có thể sử dụng lệnh:

del a[1:3]
Giải thích:

Danh sách a được đánh số từ 0 đến N-1, trong đó N là số phần tử của danh sách. Vì vậy, để xóa phần tử thứ 1 và 2 trong danh sách, ta cần sử dụng chỉ số từ 1 đến 2.
Tuy nhiên, khi sử dụng cú pháp del a[1:3], phần tử thứ 3 không được xóa, do đó chỉ có 2 phần tử ở vị trí 1 và 2 bị xóa.

Câu 7: Trong python, để khai báo một danh sách và khởi tạo sẵn một số phần tử ta dùng cú pháp nào?
A. < tên danh sách > = [< danh sách phần tử, phân cách bởi dấu phẩy >].
B. < tên danh sách > = [].
C. [< danh sách phần tử, phân cách bởi dấu phẩy >].
D. < tên danh sách > = [0].

Đáp án đúng là A

Câu 8: Đối tượng dưới đây thuộc kiểu dữ liệu nào?
A = [1, 2, ‘3’]
A. list.
B. int.
C. float.
D. string.

Đáp án đúng là A

Câu 9: Để gọi đến phần tử đầu tiên trong danh sách a ta dùng lệnh gì?
A. a.[1].
B. a[0].
C. a.0.
D. a[].

Đáp án đúng là B


Bài tập vận dụng - Trắc nghiệm Tin học 10 Kết nối tri thức Bài 22

Câu 10: Chương trình sau thực hiện công việc gì?
A=[]
for i in range(1, 1001):
if(i % 7 == 0) and (i % 5 !=0):
A.append(str(i))
print(','.join(A))
A. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000.

B. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000 và chuỗi thu được in trên một dòng, có dấu “,” ngăn cách giữa các số.

C. Tìm tất cả các số chia hết cho 7 và là bội số của 5, nằm trong đoạn 1 và 1000.

D. Tìm tất cả các số không chia hết cho 7 nhưng là phải bội số của 5, nằm trong đoạn 1 và 1000.

Đáp án đúng là B

Chương trình trên thực hiện tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn từ 1 đến 1000. Sau đó, các số đó được lưu vào danh sách A và in ra trên một dòng, được phân tách bởi dấu phẩy ",". Do đó, đáp án là B.

Ví dụ: Nếu chạy chương trình trên, kết quả sẽ là:

7,14,21,28,42,49,56,63,77,84,91,98,112,119,126,133,147,154,161,168,182,189,196,203,217,224,231,238,252,259,266,273,287,294,301,308,322,329,336,343,357,364,371,378,392,399,406,413,427,434,441,448,462,469,476,483,497,504,511,518,532,539,546,553,567,574,581,588,602,609,616,623,637,644,651,658,672,679,686,693,707,714,721,728,742,749,756,763,777,784,791,798,812,819,826,833,847,854,861,868,882,889,896,903,917,924,931,938,952,959,966,973,987,994

Câu 11: Cho arr = [‘xuan’, ‘hạ’, 1. 4, ‘đông’, ‘3’, 4.5, 7]. Đâu là giá trị của arr[3]?
A. 1.4.

B. đông.

C. hạ.

D. 3.

Đáp án đúng là B

Giá trị của arr[3] là "đông". Vì trong danh sách arr, "đông" là phần tử thứ 3, được đánh số bắt đầu từ 0. Các phần tử khác không phải là phần tử thứ 3.

Câu 12: Giả sử có một list: i = [2, 3, 4]. Nếu muốn in list này theo thứ tự ngược lại ta nên sử dụng phương pháp nào sau đây?
A. print(list(reversed(i))).

B. print(list(reverse(i))).

C. print(reversed(i)).

D. print(reversed(i)).

Đáp án đúng là A

Để in danh sách i theo thứ tự ngược lại, ta có thể sử dụng lệnh reversed để lấy ra một đối tượng được lặp lại ngược của danh sách đó, sau đó chuyển đổi đối tượng đó thành một danh sách bằng cách sử dụng hàm list(). Do đó, đáp án đúng là A. print(list(reversed(i))).

Câu 13: Lệnh nào để duyệt từng phần tử của danh sách?
A. for.
B. while – for.
C. for kết hợp với lệnh range().
D. while kết hợp với lệnh range().

Đáp án đúng là C

Câu 14: Đoạn lệnh sau làm nhiệm vụ gì?
A = []
for x in range(10):
append(int(input()))

A. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên.

B. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số thực.

C. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là xâu.

D. Không có đáp án đúng.

Đáp án đúng là A

Đoạn lệnh trên sẽ yêu cầu người dùng nhập 10 số nguyên từ bàn phím và lưu trữ chúng trong mảng A. Do đó, đáp án đúng là A.

Câu 15: Cách khai báo biến mảng sau đây, cách nào sai?

A. ls = [1, 2, 3]

B. ls = [x for x in range(3)]

C. ls = [int(x) for x in input().split()]

D. ls = list(3).

Đáp án đúng là: D

Cách khai báo biến mảng trong câu hỏi là như sau:

ls = [1, 2, 3]
ls = [x for x in range(3)]
ls = [int(x) for x in input().split()]
ls = list(3)
Cách sai trong các cách khai báo trên là D. Vì cách khai báo list(3) không hợp lệ. Hàm list() nhận một iterable object làm đối số và trả về một danh sách mới được tạo ra bởi iterable object đó. Nếu đối số không hợp lệ, chương trình sẽ sinh ra lỗi.

Vì vậy, đáp án là D.

Câu 16: Cho khai báo mảng sau:

A = list(“3456789”)

Để in giá trị phần tử thứ 2 của mảng một chiều A ra màn hình ta viết:

A. print(A[2]).

B. print(A[1]).

C. print(A[3]).

D. print(A[0]).

Đáp án đúng là: B

Để in giá trị phần tử thứ 2 của mảng một chiều A ra màn hình, ta cần sử dụng chỉ số 1 vì chỉ số đếm của mảng bắt đầu từ 0. Do đó, đáp án đúng là B:

A = list("3456789")
print(A[1]) # In ra giá trị "4"

Câu 17: Giả sử có một list: i = [2, 3, 4]. Nếu muốn in list này theo thứ tự ngược lại ta nên sử dụng phương pháp nào sau đây?

A. print(list(reversed(i))).

B. print(list(reverse(i))).

C. print(reversed(i)).

D. print(reversed(i)).

Đáp án đúng là: A

Câu 18: Chương trình sau thực hiện công việc gì?

A=[]

for i in range(1, 1001):

if(i % 7 == 0) and (i % 5 !=0):

A.append(str(i))

print(','.join(A))

A. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000.

B. Tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 1 và 1000 và chuỗi thu được in trên một dòng, có dấu “,” ngăn cách giữa các số.

C. Tìm tất cả các số chia hết cho 7 và là bội số của 5, nằm trong đoạn 1 và 1000.

D. Tìm tất cả các số không chia hết cho 7 nhưng là phải bội số của 5, nằm trong đoạn 1 và 1000.

Đáp án đúng là: B

Câu 19: Đối tượng dưới đây thuộc kiểu dữ liệu nào?

A = [1, 2, ‘3’]

A. list.

B. int.

C. float.

D. string.

Đáp án đúng là: A

Câu 20: Phương thức nào sau đây dùng để thêm phần tử vào list trong python?

A. abs().

B. link().

C. append().

D. add().

Đáp án đúng là: C

Câu 21: Danh sách A sẽ như thế nào sau các lệnh sau?

>>> A = [2, 3, 5, 6]

>>> A. append(4)

>>> del (A[2])

A. 2, 3, 4, 5, 6, 4.

B. 2, 3, 4, 5, 6.

C. 2, 4, 5, 6.

D. 2, 3, 6, 4.

Đáp án đúng là: D

Câu 22: Kết quả của chương trình sau là gì?

A = [2, 3, 5, "python", 6]

A.append(4)

A.append(2)

A.append("x")

del(A[2])

print(len(A))

A. 5.

B. 6.

C. 7.

D. 8.

Đáp án đúng là: C

Câu 23: Cho arr = [‘xuan’, ‘hạ’, 1. 4, ‘đông’, ‘3’, 4.5, 7]. Đâu là giá trị của arr[3]?

A. 1.4.

B. đông.

C. hạ.

D. 3.

Đáp án đúng là: B

Câu 24: Chương trình sau thực hiện công việc gì?

>>> S = 0

>>> for i in range(len(A)):

if A[i] > 0:

S = S + A[i]

>>> print(S)

A. Duyệt từng phần tử trong A.

B. Tính tổng các phần tử trong A.

C. Tính tổng các phần tử không âm trong A.

D. Tính tổng các phần tử dương trong A.

Đáp án đúng là: D

Câu 25: Hoàn thiện chương trình tính tích các phần tử dương trong danh sách A.

>>> S = (…)

>>> for i in range(len(A)):

(…)

S = S * A[i]

>>> print(S)

A. 1, if A[i] > 0:.

B. 0, if A[i] > 0:.

C. 1, if A[i] >= 0.

D. 0, if A[i] > 0.

Đáp án đúng là: A

Để tính tích các phần tử dương trong danh sách A, ta cần sử dụng một biến S để tích lũy các giá trị dương. Ban đầu, giá trị của S sẽ được gán bằng 1, sau đó với mỗi phần tử trong danh sách A, nếu phần tử đó là số dương, ta sẽ nhân giá trị của nó với S. Sau khi duyệt qua toàn bộ danh sách, ta sẽ in giá trị của S ra màn hình.

Vì vậy, để hoàn thành chương trình, ta cần điền các câu lệnh vào chỗ trống của đoạn mã sau:

S = 1
for i in range(len(A)):
   if A[i] > 0:
       S = S * A[i]
print(S)

Do đó, đáp án đúng là A:

S = 1
for i in range(len(A)):
   if A[i] > 0:
       S = S * A[i]
print(S)

icon-date
Xuất bản : 10/12/2021 - Cập nhật : 21/03/2023