TopStudy

Đáp án và lời giải

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

Về trang đề

Câu 1

Lời giải do TopStudy biên soạn

Đáp án: B

Đá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.

Câu 2

Lời giải do TopStudy biên soạn

Đáp án: B

Đáp án: B

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

Câu 3

Lời giải do TopStudy biên soạn

Đáp án: C

Đá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.

Câu 4

Lời giải do TopStudy biên soạn

Đáp án: B

Đá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.

Câu 5

Lời giải do TopStudy biên soạn

Đáp án: B

Đáp án: B

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

Câu 6

Lời giải do TopStudy biên soạn

Đáp án: A

Đáp án: A

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

Câu 7

Lời giải do TopStudy biên soạn

Đáp án: B

Đá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.

Câu 8

Lời giải do TopStudy biên soạn

Đáp án: A

Đáp án: A

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

Câu 9

Lời giải do TopStudy biên soạn

Đáp án: B

Đá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.

Câu 10

Lời giải do TopStudy biên soạn

Đáp án: A

Đáp án: A

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

Câu 11

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

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.

Câu 12

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

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.

Câu 13

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Đá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].

Câu 14

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Đá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.

Câu 15

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Đá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.