Trắc Nghiệm Tin Học 11 Cánh Diều Khoa Học Máy Tính Chủ đề FCS Bài 2: Mảng hai chiều là nội dung thuộc môn Tin học, được biên soạn dưới dạng đề ôn tập tham khảo cho học sinh lớp 11 theo chương trình sách giáo khoa Cánh Diều. Bộ đề tập trung vào kiến thức về mảng hai chiều, cách khai báo, truy cập phần tử, duyệt mảng bằng vòng lặp lồng nhau và vận dụng mảng hai chiều để giải quyết các bài toán thực tiễn. Nội dung mở đầu có sử dụng định dạng trắc nghiệm Tin học 11 Khoa học máy tính Cánh Diều, được biên soạn năm 2024 bởi thầy Lê Quốc Hưng – giáo viên Tin học Trường THPT chuyên Lê Quý Đôn (Đà Nẵng). Tài liệu được đăng tải trên detracnghiem.edu.vn nhằm mang lại nguồn luyện tập trực quan và hiệu quả cho học sinh.
Trắc nghiệm môn Tin học 11 ở bài học này gồm hệ thống câu hỏi từ cơ bản đến nâng cao, giúp học sinh nắm rõ cấu trúc mảng hai chiều, kỹ năng thao tác dữ liệu dạng bảng và phương pháp xây dựng thuật toán sử dụng mảng hai chiều. Khi luyện tập trên detracnghiem.edu.vn, học sinh được xem đáp án chi tiết, theo dõi tiến độ và củng cố tư duy lập trình một cách bài bản. Bộ đề là công cụ hữu ích giúp học sinh chuẩn bị tốt cho các bài kiểm tra định kỳ và nâng cao nền tảng thuật toán Trắc nghiệm lớp 11.
Trắc Nghiệm Tin Học 11 Cánh Diều Khoa Học Máy Tính
Chủ đề FCS: Giải quyết vấn đề với sự trợ giúp của máy tính
Bài 2: Mảng hai chiều
Câu 1: Trong Python, mảng hai chiều thường được biểu diễn bằng cấu trúc dữ liệu nào sau đây?
A. Một từ điển chứa các danh sách con.
B. Một danh sách chứa các số nguyên.
C. Một danh sách chứa các danh sách con.
D. Một chuỗi chứa các ký tự đặc biệt.
Câu 2: Cho mảng hai chiều A. Để truy cập phần tử ở dòng i và cột j, ta sử dụng cú pháp nào?
A. A(i, j)
B. A[i, j]
C. A[i][j]
D. A{i}{j}
Câu 3: Cho mảng A = [[1, 2, 3], [4, 5, 6]]. Giá trị của len(A) là bao nhiêu?
A. 6
B. 2
C. 3
D. 1
Câu 4: Cho mảng A = [[10, 20], [30, 40], [50, 60]]. Giá trị của A[1][0] là gì?
A. 10
B. 20
C. 30
D. 40
Câu 5: Để tạo một mảng hai chiều kích thước 3×3 với tất cả các phần tử đều bằng 0, câu lệnh nào đúng?
A. A = [0] * 3 * 3
B. A = [[0]*3 for _ in range(3)]
C. A = [[0]*3] * 3
D. A = [0, 0, 0] * 3
Câu 6: Cho matrix = [[1, 2], [3, 4]]. Sau khi thực hiện matrix[0][1] = 9, mảng sẽ trở thành:
A. [[1, 2], [3, 9]]
B. [[9, 2], [3, 4]]
C. [[1, 9], [9, 4]]
D. [[1, 9], [3, 4]]
Câu 7: Trong mảng hai chiều vuông cấp n, các phần tử nằm trên đường chéo chính thỏa mãn điều kiện gì về chỉ số dòng i và chỉ số cột j?
A. i == j
B. i < j C. i > j
D. i + j == n
Câu 8: Cho mảng A có n dòng và m cột. Vòng lặp nào sau đây dùng để duyệt qua tất cả các phần tử của mảng?
A. for x in A: print(x)
B. for i in range(n): print(A[i])
C. for i in range(n): for j in range(m): …
D. for j in range(m): for i in range(n): …
Câu 9: Cho A = [[1, 2], [3, 4], [5, 6]]. Số lượng cột của mảng A được xác định bằng lệnh nào?
A. len(A)
B. A.size()
C. len(A[0])
D. count(A)
Câu 10: Để tính tổng các phần tử của dòng thứ k trong mảng hai chiều A, ta có thể dùng lệnh nào?
A. sum(A[:][k])
B. sum(A[k])
C. sum(A[k][:])
D. total(A[k])
Câu 11: Cho mảng A = [[1, 2], [3, 4]]. Câu lệnh print(A) sẽ hiển thị kết quả nào?
A. 1 2 3 4
B. [1, 2, 3, 4]
C. [[1, 2], [3, 4]]
D. ((1, 2), (3, 4))
Câu 12: Muốn thêm một dòng mới [7, 8] vào cuối mảng hai chiều A, ta dùng phương thức nào?
A. A.add([7, 8])
B. A.insert([7, 8])
C. A.extend([7, 8])
D. A.append([7, 8])
Câu 13: Cho đoạn mã:
A = [[1, 2], [3, 4]]
S = 0
for r in A:
S += sum(r)
Giá trị của S sau khi chạy là:
A. 3
B. 7
C. 10
D. 0
Câu 14: Trong mảng hai chiều vuông kích thước n×n, điều kiện chỉ số cho các phần tử nằm trên đường chéo phụ là:
A. i – j == 0
B. i + j == n
C. i + j == n – 1
D. i * j == n
Câu 15: Kết quả của đoạn lệnh print([[x for x in range(2)] for y in range(2)]) là gì?
A. [[0, 1, 2], [0, 1, 2]]
B. [[0, 1], [0, 1]]
C. [[0, 0], [1, 1]]
D. [0, 1, 0, 1]
Câu 16: Cho mảng A = [[1, 5], [2, 6], [3, 7]]. Để in ra số 6, ta dùng chỉ số:
A. A[1][0]
B. A[2][1]
C. A[1][1]
D. A[0][1]
Câu 17: Cách nào sau đây không đúng để tạo một mảng hai chiều rỗng?
A. A = []
B. A = list()
C. A = array()
D. A = [[]]
Câu 18: Cho M = [[1, 2, 3], [4, 5, 6]]. Lệnh M[0].append(9) sẽ làm thay đổi mảng M như thế nào?
A. Thêm số 9 vào cuối dòng thứ 2.
B. Thêm dòng [9] vào cuối mảng.
C. Thêm số 9 vào cuối dòng thứ 1.
D. Báo lỗi cú pháp.
Câu 19: Để nhập dữ liệu cho mảng hai chiều kích thước m×n từ bàn phím, cấu trúc lệnh nào hợp lý nhất?
A. Sử dụng hai vòng lặp lồng nhau để nhập từng phần tử.
B. Sử dụng một vòng lặp while duy nhất.
C. Nhập toàn bộ mảng dưới dạng một chuỗi dài.
D. Không thể nhập mảng hai chiều từ bàn phím.
Câu 20: Cho mảng A = [[10, 15], [20, 25]]. Điều kiện if A[i][j] % 2 == 0 dùng để làm gì?
A. Kiểm tra phần tử lẻ.
B. Kiểm tra phần tử chẵn.
C. Kiểm tra phần tử chia hết cho 5.
D. Kiểm tra phần tử âm.
Câu 21: Nếu truy cập A[3][0] trong khi mảng A chỉ có 2 dòng, lỗi nào sẽ xảy ra?
A. ValueError
B. KeyError
C. NameError
D. IndexError
Câu 22: Đoạn mã sau thực hiện công việc gì?
for i in range(n):
print(A[i][col_idx])
A. In toàn bộ mảng A.
B. In các phần tử thuộc cột col_idx.
C. In các phần tử thuộc dòng i.
D. In đường chéo chính.
Câu 23: Cho B = [[1, 2], [3, 4]]. Giá trị của max(B[0]) là:
A. 1
B. 2
C. 3
D. 4
Câu 24: Hàm nào có thể dùng để tính tổng của toàn bộ các phần tử trong mảng hai chiều Arr bằng cách rút gọn (dùng list comprehension)?
A. sum(Arr)
B. total(Arr)
C. sum(sum(row) for row in Arr)
D. count(Arr)
Câu 25: Cho mt = [[1, 2], [3, 4]]. Phép gán row = mt[1] có ý nghĩa gì?
A. row là bản sao của dòng 1.
B. row là biến chứa số 3.
C. row là biến chứa số 4.
D. row tham chiếu đến dòng thứ 2 của mt.
Câu 26: Trong Python, mảng hai chiều có bắt buộc số phần tử ở các dòng phải bằng nhau không?
A. Có, bắt buộc phải bằng nhau.
B. Có, nếu là ma trận vuông.
C. Không, các dòng có thể có độ dài khác nhau.
D. Không, nhưng các cột phải bằng nhau.
Câu 27: Để hoán đổi giá trị của hai phần tử A[0][0] và A[1][1], ta dùng lệnh:
A. A[0][0] = A[1][1]
B. swap(A[0][0], A[1][1])
C. A[0][0], A[1][1] = A[1][1], A[0][0]
D. A[0][0] == A[1][1]
Câu 28: Xét đoạn mã tạo mảng sau: A = [[0] * 2] * 2. Sau đó thực hiện A[0][0] = 5. Giá trị của A[1][0] sẽ là bao nhiêu?
A. 0
B. 5
C. 2
D. Báo lỗi.
Câu 29: Để duyệt các phần tử của mảng vuông A kích thước n nằm phía trên đường chéo chính (không tính đường chéo), vòng lặp nào đúng?
A. for i in range(n): for j in range(i):
B. for i in range(n): for j in range(i + 1, n):
C. for i in range(n): for j in range(n):
D. for i in range(n): for j in range(i, n):
Câu 30: Cho đoạn mã tìm phần tử lớn nhất:
max_val = A[0][0]
for row in A:
for val in row:
if val > max_val: max_val = val
Đoạn mã trên hoạt động đúng với điều kiện nào của mảng A?
A. Mảng A phải được sắp xếp tăng dần.
B. Mảng A chỉ chứa số dương.
C. Mảng A không rỗng và chứa các giá trị so sánh được.
D. Mảng A phải là ma trận vuông.
