15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 3: Thực hành về tệp, mảng và danh sách có đáp án
Đề thi

15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 3: Thực hành về tệp, mảng và danh sách có đáp án

A
Admin
Tin họcLớp 1183 lượt thi
15 câu hỏi
1. Trắc nghiệm
1 điểm

PHẦN I. Câu trắc nghiệm nhiều phương án lựa chọn. Thí sinh trả lời từ câu 1 đến câu 10. Mỗi câu hỏi thí sinh chỉ lựa chọn một phương án.

Lệnh nào được dùng để mở tệp “data.txt” chỉ để đọc dữ liệu trong Python?

open("data.txt", "w")

open("data.txt", "r")

open("data.txt", "a")

open("data.txt", "x")

Xem đáp án

Đáp án: B

Giải thích: "r" là chế độ mở tệp chỉ để đọc. "w" mở để ghi đè, "a" mở để ghi thêm, và "x" mở để tạo tệp mới.

2. Trắc nghiệm
1 điểm

Câu lệnh nào dùng để đóng tệp đã mở trong Python?

close("file.txt")

file.close()

file.shutdown()

shutdown(file)

Xem đáp án

Đáp án: B

Giải thích: file.close() là phương thức đúng để đóng tệp đã mở trong Python.

3. Trắc nghiệm
1 điểm

Câu lệnh nào dùng để đọc tất cả nội dung từ tệp “file.txt” và lưu vào một chuỗi?

file.readlines()

file.readline()

file.read()

file.split()

Xem đáp án

Đáp án: C

Giải thích: file.read() đọc toàn bộ nội dung của tệp và trả về chuỗi. readlines() trả về danh sách các dòng.

4. Trắc nghiệm
1 điểm

Để lấy các phần tử có chỉ số lẻ từ danh sách a, ta sử dụng lệnh nào?

a[::2]

a[1::2]

a[::-1]

a[1:]

Xem đáp án

Đáp án: B

Giải thích: a[1::2] chọn các phần tử có chỉ số lẻ, bắt đầu từ chỉ số 1 và bước nhảy là 2.

5. Trắc nghiệm
1 điểm

Phương thức sort() trong danh sách ds.sort() làm gì?

Đảo ngược danh sách

Sắp xếp danh sách theo thứ tự tăng dần

Xóa tất cả các phần tử trong danh sách

Sao chép danh sách

Xem đáp án

Đáp án: B

Giải thích: sort() sắp xếp danh sách theo thứ tự tăng dần.

6. Trắc nghiệm
1 điểm

Lệnh nào sẽ chèn một phần tử x vào vị trí chỉ số y trong danh sách ds?

ds.insert(y, x)

ds.append(x, y)

ds.add(y, x)

ds.insert(x, y)

Xem đáp án

Đáp án: A

Giải thích: insert(y, x) chèn x vào vị trí chỉ số y trong danh sách.

7. Trắc nghiệm
1 điểm

Câu lệnh nào lấy các phần tử từ chỉ số 2 đến chỉ số 5 trong danh sách a?

a[2:5]

a[2:6]

a[3:6]

a[2::5]

Xem đáp án

Đáp án: B

Giải thích: Lệnh lát cắt a[2:6] lấy các phần tử từ chỉ số 2 đến 5.

8. Trắc nghiệm
1 điểm

Phương thức nào sẽ trả về số lần xuất hiện của phần tử x trong danh sách ds?

ds.count(x)

ds.find(x)

ds.index(x)

ds.search(x)

Xem đáp án

Đáp án: A

Giải thích: count(x) trả về số lần x xuất hiện trong danh sách.

9. Trắc nghiệm
1 điểm

Để xóa phần tử có giá trị x trong danh sách ds, lệnh nào sau đây là đúng?

ds.pop(x)

ds.remove(x)

ds.delete(x)

ds.clear(x)

Xem đáp án

Đáp án: B

Giải thích: remove(x) xóa phần tử đầu tiên có giá trị x trong danh sách.

10. Trắc nghiệm
1 điểm

Câu lệnh nào dùng để tạo một bản sao của danh sách ds?

ds.copy()

ds.sort()

ds.reverse()

ds.append()

Xem đáp án

Đáp án: A

Giải thích: copy() tạo một bản sao của danh sách ds.

11. Tự luận
1 điểm

PHẦN II. Câu trắc nghiệm đúng sai. Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai

Cho một danh sách các số nguyên a. Hãy chọn đoạn mã Python nào sau đây sẽ tạo ra một danh sách b chứa các phần tử ở nửa sau của a và in từng phần tử của b ra màn hình.

a) b = a[len(a)//2:]

b) b = a[:len(a)//2]

c) b = a[-1:]

d) b = a[::-1]

Xem đáp án

a) Đúng. a[len(a)//2:] sẽ lấy các phần tử từ nửa sau của a, từ chỉ số len(a)//2 đến cuối danh sách.

b) Sai. a[:len(a)//2] sẽ lấy các phần tử ở nửa đầu của a, từ đầu đến chỉ số len(a)//2 - 1.

c) Sai. a[-1:] chỉ lấy phần tử cuối cùng của a, không phải nửa sau.

d) Sai. a[::-1] sẽ đảo ngược danh sách a hoàn toàn, không phải lấy nửa sau.

12. Tự luận
1 điểm

Cho tệp data.txt chứa các số nguyên trên từng dòng. Để đọc tất cả các dòng của tệp và lưu vào danh sách numbers (các phần tử trong danh sách là số nguyên), lựa chọn nào sau đây là đúng?

a) numbers = [int(line) for line in open("data.txt", "r")]

b) numbers = list(open("data.txt", "r"))

c) numbers = open("data.txt", "r").readlines()

d) numbers = [float(line) for line in open("data.txt")]

Xem đáp án

a) Đúng. Lệnh này đọc từng dòng trong tệp và chuyển mỗi dòng thành số nguyên trước khi thêm vào danh sách numbers, phù hợp với yêu cầu.

b) Sai. list(open("data.txt", "r")) sẽ tạo danh sách các dòng từ tệp nhưng không chuyển chúng thành số nguyên.

c) Sai. open("data.txt", "r").readlines() cũng chỉ tạo danh sách các dòng dưới dạng chuỗi mà không chuyển đổi thành số nguyên.

d) Sai. Dùng float(line) sẽ chuyển mỗi dòng thành số thực, không phù hợp vì yêu cầu là chuyển thành số nguyên.

13. Tự luận
1 điểm

PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3

Giả sử bạn có danh sách a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. Làm thế nào để tạo một danh sách chỉ chứa các phần tử ở vị trí chỉ số lẻ của a?

Xem đáp án

Đáp án:Sử dụng cú pháp b = a[1::2].

Giải thích:a[1::2] sẽ bắt đầu từ phần tử có chỉ số 1 và lấy các phần tử cách nhau một bước nhảy là 2. Điều này sẽ lấy ra các phần tử ở vị trí lẻ của a, tức là [2, 4, 6, 8, 10].

14. Tự luận
1 điểm

Cho một mảng hai chiều a kích thước n x n chứa các số thực. Viết cách lấy ra và in các phần tử của cột chỉ số chẵn trong a.

Xem đáp án

Đáp án:Sử dụng vòng lặp để duyệt qua các hàng, rồi dùng lát cắt để lấy các phần tử của cột chỉ số chẵn: for row in a: print(row[::2]).

Giải thích:row[::2] sẽ lấy các phần tử từ vị trí 0 với bước nhảy là 2, tức là các phần tử ở cột chỉ số chẵn. Vòng lặp duyệt qua từng hàng của a, và lát cắt ::2 giúp chọn đúng các phần tử cần thiết.

15. Tự luận
1 điểm

Cho tệp bangDiem.txt với cấu trúc gồm dòng đầu tiên là số lượng học sinh và số môn học, dòng thứ hai là danh sách các tên môn học, và các dòng tiếp theo là tên học sinh kèm điểm số các môn học. Làm thế nào để đọc tệp và tách ra danh sách tên học sinh cùng danh sách điểm số của từng học sinh?

Xem đáp án

Đáp án:Dùng hàm readlines() để đọc từng dòng của tệp và chuyển dữ liệu thành danh sách. Dòng đầu tiên sẽ dùng để xác định số lượng học sinh và môn học, dòng thứ hai để lấy tên môn học, và các dòng tiếp theo để lấy tên học sinh và điểm số của họ.

Giải thích:Hàm readlines() sẽ đọc tất cả các dòng trong tệp bangDiem.txt và trả về dưới dạng một danh sách chuỗi. Dòng đầu tiên có thể được chuyển thành số nguyên để biết số học sinh và số môn học, dòng thứ hai sẽ chứa danh sách tên môn học, còn các dòng tiếp theo sẽ chứa thông tin về tên học sinh và điểm số của từng môn.