Bài 17 Dữ liệu mảng một chiều và hai chiều

Lớp 11Tin Học10 câu hỏiBài tập

Phần 1

Câu 1

(Câu 17.1 trang 62 SBT Tin học 11) Trong các dữ liệu sau, những dữ liệu nào là mảng một chiều? (a) [1, 2, 3, [4, 5, 6]]. (b) ["A", "B", 1, 2, 3, 4]. (c) ["One", "Two", "Three"]. (d) [(1, 2), (3, 4), (4, 5), (5, 6)].
A(c), (d).
B(a), (b).
C(a), (c).
D(b), (d).

Câu 2

(Câu 17.2 trang 62 SBT Tin học 11) Một xâu kí tự có n kí tự có được coi là mảng một chiều không?
AKhông, một xâu kí tự có n kí tự không phải là mảng một chiều.
BCó, vì mỗi kí tự luôn là một phần tử độc lập của mảng.
CCó, vì mọi dữ liệu có nhiều kí tự đều là mảng một chiều.
DKhông, vì xâu kí tự luôn là mảng hai chiều.

Câu 3

(Câu 17.3 trang 63 SBT Tin học 11) Cho hai mảng một chiều A, B trong Python. Lệnh nào sau đây ghép A và B thành mảng một chiều C?
AC = A + B
BC = A * B
CC = A - B
DC = A / B

Câu 4

(Câu 17.4 trang 63 SBT Tin học 11) Cho ma trận A kích thước m x n được biểu diễn trong Python theo dạng danh sách trong danh sách. Mệnh đề nào dưới đây là đúng?
ADanh sách A có m phần tử.
BDanh sách A có m x n phần tử.
CDanh sách A có n phần tử.
DDanh sách A có 2 phần tử.

Câu 5

(Câu 17.5 trang 63 SBT Tin học 11) Cho trước hai số k, n và k < n. Lệnh Python nào sau đây tạo mảng có dạng [0, ..., 0, 1, 0, ..., 0], trong đó phía trước số 1 có k số 0, sau số 1 có n - 1 - k số 0?
AA = [0]*k + [1] + [0]*(n-1-k)
BA = [0]*n + [1] + [0]*k
CA = [1]*k + [0] + [1]*(n-1-k)
DA = [0]*(n-1-k) + [1] + [0]*k

Phần 2

Câu 1

(Câu 17.6 trang 63 SBT Tin học 11) Viết hàm tạo ma trận vuông bậc n gồm toàn số 0.
a)Có thể tạo danh sách A ban đầu là danh sách rỗng.
b)Có thể dùng vòng lặp for i in range(n) để thêm n hàng vào ma trận.
c)Mỗi hàng của ma trận có thể được tạo bằng biểu thức [0]*n.
d)Hàm tạo ma trận vuông bậc n gồm toàn số 0 không cần trả về kết quả.

Câu 2

(Câu 17.7 trang 63 SBT Tin học 11) Cho trước danh sách DS = [("Hà", 7.5), ("Bình", 8), ("Quang", 9.2), ("An", 10)]. Viết đoạn chương trình tính điểm trung bình của cả lớp.
a)Mỗi phần tử của DS là một cặp gồm tên học sinh và điểm trung bình.
b)Có thể lấy danh sách điểm bằng câu lệnh Diem = [x[1] for x in DS].
c)Có thể tính điểm trung bình của lớp bằng biểu thức sum(Diem)/len(Diem).
d)Muốn lấy điểm của mỗi học sinh trong DS thì dùng x[0] vì điểm nằm ở vị trí đầu tiên của mỗi cặp.

Câu 3

(Câu 17.8 trang 63 SBT Tin học 11) Viết chương trình nhập từ bàn phím thông tin của n học sinh vào mảng có cấu trúc tương tự Câu 17.7; mỗi học sinh được nhập tên và điểm trung bình trên cùng một hàng, cách nhau bởi dấu cách.
a)Có thể nhập số học sinh bằng câu lệnh n = int(input("Nhập số học sinh: ")).
b)Có thể tạo danh sách A ban đầu là danh sách rỗng để lưu thông tin học sinh.
c)Với mỗi học sinh, có thể dùng s.split() để tách tên và điểm trung bình được nhập trên cùng một hàng.
d)Điểm trung bình nhập vào nên được giữ nguyên ở dạng xâu kí tự, không cần chuyển sang kiểu số.

Câu 4

(Câu 17.9 trang 63 SBT Tin học 11) Viết chương trình nhập ma trận m x n số nguyên từ bàn phím: đầu tiên nhập số tự nhiên m; lần lượt nhập thông tin của m hàng, mỗi hàng nhập n số cách nhau bởi dấu cách; cuối cùng hiển thị ma trận đã nhập trên màn hình.
a)Có thể tạo ma trận A ban đầu bằng danh sách rỗng.
b)Có thể dùng vòng lặp for i in range(m) để nhập lần lượt m hàng của ma trận.
c)Với mỗi hàng, có thể dùng h = [int(x) for x in s.split()] để chuyển các phần tử nhập vào thành số nguyên.
d)Khi hiển thị ma trận, chỉ cần in trực tiếp số hàng m, không cần in các phần tử của từng hàng.

Câu 5

(Câu 17.10 trang 63 SBT Tin học 11) Cho trước mảng A gồm các phần tử được sắp xếp theo thứ tự như hình. Viết hàm chuyển mảng A về dạng ma trận vuông.
a)Có thể xác định bậc của ma trận bằng n = int(len(A)**0.5) nếu số phần tử của A là một số chính phương.
b)Có thể tạo ma trận M ban đầu là danh sách rỗng.
c)Có thể lấy từng hàng của ma trận bằng cách cắt mảng A theo dạng A[i*n : (i+1)*n].
d)Hàm chuyển đổi chỉ cần trả về A ban đầu, không cần tạo danh sách các hàng.