Câu hỏi tự luận Tin học khoa học máy tính 11 kết nối Bài 17: Dữ liệu mảng một chiều và hai chiề9
Bộ câu hỏi tự luận Tin học khoa học máy tính 11 kết nối. Câu hỏi và bài tập tự luận Bài 17: Dữ liệu mảng một chiều và hai chiều. Bộ tài liệu tự luận này có 4 mức độ: Thông hiểu, nhận biết, vận dụng và vận dụng cao. Phần tự luận này sẽ giúp học sinh hiểu sâu, sát hơn về môn học Tin học ứng dụng 11 kết nối.
Xem: => Giáo án tin học 11 theo định hướng khoa học máy tính kết nối tri thức
CHƯƠNG 6: KĨ THUẬT LẬP TRÌNH
BÀI 17: DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
( 10 câu)
1. NHẬN BIẾT (4 câu)
Câu 1: Sử dụng hàm sum() tính tổng cấc số của một dãy, hãy viết câu lệnh tính giá trị trung bình của dãy số A cho trước. Ví dụ cho mảng A = [1,2,3,4,5]
Trả lời:
A = [1, 2, 3, 4, 5] # Dãy số A
total = sum(A) # Tính tổng các số trong dãy A
average = total / len(A) # Tính giá trị trung bình
print("Tổng của dãy A =", total)
print("Giá trị trung bình của dãy A =", average)
Câu 2: Có thể duyệt các phần tử của mảng theo chiều chiều lại từ cuối về đầu được không?
Trả lời:
A = [1, 2, 3, 4, 5]
# Duyệt qua các phần tử từ cuối về đầu
for i in range(len(A) - 1, -1, -1):
print(A[i])
Câu 3: Thiết lập mảng bao gồm dữ liệu là toạ độ các điểm trên mặt phẳng, mỗi điểm p được cho bởi hai toạ độ (px,py)
Trả lời:
points = [[1, 2], [3, 4], [5, 6]]
# Truy cập và in các toạ độ của các điểm
for point in points:
px = point[0]
py = point[1]
print("Toạ độ của điểm là:", px, ",", py)
Câu 4: Câu lệnh sau sẽ tạo dữ liệu thuộc loại gì?
temp = [1,2,3,4]
A = [temp, temp]
Trả lời:
Câu lệnh trên sẽ tạo dữ liệu thuộc loại danh sách (list)
A = [[1,2,3,4],[1,2,3,4]]
2. THÔNG HIỂU ( 1 câu)
Câu 1: Nếu A là bảng (ma trận) có kích thước m x n thì đoạn chương trình sau sẽ in thông tin gì trên màn hình?
for i in range(m):
for j in range(n):
print(A[i][j], end = “ ”)
print()
Trả lời:
- Đoạn chương trình trên sẽ in ra các phần tử của ma trận A trên màn hình, được phân tách bằng dấu cách và mỗi hàng trên một dòng. Mỗi phần tử của ma trận A sẽ được in bằng cách sử dụng cú pháp A[i][j], trong đó i là chỉ số hàng và j là chỉ số cột của phần tử đó.
- Dòng lệnh print(A[i][j], end=" ") sẽ in ra giá trị của phần tử tại hàng i và cột j của ma trận A, sau đó sử dụng tham số end=" " để thay đổi kí tự kết thúc dòng mặc định từ xuống dòng (\n) thành một dấu cách. Điều này giúp các phần tử trong cùng một hàng được in liền kề trên cùng một dòng.
- Sau khi in xong tất cả các phần tử trong hàng thứ i, dòng lệnh print() được sử dụng để xuống dòng, chuyển sang hàng tiếp theo của ma trận A.
3. VẬN DỤNG (3 câu)
Câu 1: Giả sử số đo chiều cao các bạn trong lớp được cho trong dãy số A. Hãy viết đoạn chương trình tính:
- Số đo chiều cao trung bình cả lớp
- Số bạn có chiều cao lớn hơn chiều cao trung bình cả lớp
Trả lời:
# Nhập số đo chiều cao của các bạn trong lớp
A = input("Nhập số đo chiều cao của các bạn trong lớp, cách nhau bởi dấu cách: ").split()
# Tính số đo chiều cao trung bình của cả lớp
average_height = sum(A) / len(A)
# Đếm số bạn có chiều cao lớn hơn chiều cao trung bình
count = 0
for height in A:
if height > average_height:
count += 1
# In kết quả
print("Số đo chiều cao trung bình của cả lớp là:", average_height)
print("Số bạn có chiều cao lớn hơn chiều cao trung bình là:", count)
Câu 2: Viết chương trình nhập từ bàn phím với số tự nhiên m, sau đó lần lượt nhập m dòng bao gồm n số cách nhau bởi dấu cách, đưa dữ liệu đa nhập vào ma trận A, sau đó in ma trận ra màn hình.
Trả lời:
# Nhập số tự nhiên m từ bàn phím
m = int(input("Nhập số tự nhiên m: "))
# Tạo một ma trận rỗng A với m hàng
A = []
# Nhập m dòng chứa n số và đưa dữ liệu vào ma trận A
for i in range(m):
row = input("Nhập dòng thứ " + str(i+1) + ": ").split()
row = [int(num) for num in row]
A.append(row)
# In ma trận A ra màn hình
print("Ma trận A:")
for row in A:
for num in row:
print(num, end=" ")
print()
Câu 3: Thiết lập mảng bao gồm dãy các thông tin là danh sách học sinh và thông tin ba điểm thi của học sinh tương ứng với các bài thi số 1,2,3. Viết đoạn lệnh nhập bộ dữ liệu trên và chương trình in ra danh sách học sinh cùng với điểm trung bình của các bài thi.
Trả lời:
# Nhập số lượng học sinh
num_students = int(input("Nhập số lượng học sinh: "))
# Khởi tạo mảng danh sách học sinh
students = []
# Nhập thông tin học sinh và điểm thi của họ
for i in range(num_students):
student = {}
student["name"] = input("Nhập tên học sinh: ")
student["score1"] = float(input("Nhập điểm bài thi số 1: "))
student["score2"] = float(input("Nhập điểm bài thi số 2: "))
student["score3"] = float(input("Nhập điểm bài thi số 3: "))
students.append(student)
# Tính điểm trung bình và in danh sách học sinh cùng với điểm trung bình
print("Danh sách học sinh và điểm trung bình:")
for student in students:
name = student["name"]
score1 = student["score1"]
score2 = student["score2"]
score3 = student["score3"]
average_score = (score1 + score2 + score3) / 3
print("Học sinh:", name)
print("Điểm trung bình:", average_score)
print()
4. VẬN DỤNG CAO ( 2 câu)
Câu 1: Viết hàm số UnitMatrix(n) với n là số tự nhiên cho trước, hàm trả lại giá trị là ma trận bậc n như hình 17.1
Trả lời:
# Nhập kích thước ma trận
n = int(input("Nhập kích thước của ma trận đơn vị: "))
# Tạo ma trận đơn vị
identity_matrix = [[0] * n for _ in range(n)]
for i in range(n):
identity_matrix[i][i] = 1
# In ma trận đơn vị ra màn hình
print("Ma trận đơn vị:")
for row in identity_matrix:
for num in row:
print(num, end=" ")
print()
Câu 2: Viết chương trình đếm số lần xuất hiện của phần tử trong mảng
Trả lời:
def count_occurrences(arr):
occurrences = {}
for element in arr:
if element in occurrences:
occurrences[element] += 1
else:
occurrences[element] = 1
return occurrences
# Mảng cần đếm số lần xuất hiện
arr = [1, 2, 3, 4, 2, 2, 5]
# Gọi hàm đếm số lần xuất hiện và in kết quả
occurrences = count_occurrences(arr)
for element, count in occurrences.items():
print("Số lần xuất hiện của phần tử", element, "là", count)
=> Giáo án Khoa học máy tính 11 kết nối Bài 17: Dữ liệu mảng một chiều và hai chiều