Đáp án và lời giải
Đề thi cuối kì 2 Tin học 10 Kết nối tri thức có đáp án - Đề 3
Câu 1
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 2
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 3
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 4
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 5
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 6
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 7
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 8
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 9
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 10
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 11
Lời giải do TopStudy biên soạn
Đáp án: C
Câu 12
Lời giải do TopStudy biên soạn
Đáp án: D
Câu 13
Lời giải do TopStudy biên soạn
Đáp án: C
Câu 14
Lời giải do TopStudy biên soạn
Đáp án: D
Câu 15
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 16
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 17
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 18
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 19
Lời giải do TopStudy biên soạn
Đáp án: A
Câu 20
Lời giải do TopStudy biên soạn
Đáp án: B
Câu 21
Lời giải do TopStudy biên soạn
a) Đúng
b) Đúng
c) Sai
d) Sai
a) Đ, Các biến x, y, z là các biến cục bộ của chương trình, vì x, y, z được khai báo bên trong thân hàm.
b) Đ, vì x, y được khai báo ngoài hàm.
c) S. Ta có z=15;x=x*3=5*3=15;y=x+y=15+6=21; vì return x+y+z=15+15+21=51.
d) S, khi thực hiện lệnh >>>z thì máy sẽ báo lỗi vì biến z chỉ có tác dụng bên trong hàm Ham, gọi bên ngoài hàm này sẽ bị báo lỗi.
Câu 22
Lời giải do TopStudy biên soạn
a) Đúng
b) Sai
c) Sai
d) Đúng
a) Đ, vì trong hàm uscln(a, b) hay bscnn(a, b) thì các tham số đều là a, b. Nó được khai báo ngay sau tên hàm trong phần khai báo hàm.
b) S, vì chương trình sẽ báo lỗi, do các biến x, y chưa có giá trị.
c) S, vì lời gọi hàm lỗi do có 3 đối số 9, 6, 3 trong khi khai báo hàm chỉ khai báo 2 tham số a, b.
d) Đ, vì a, b nằm sau tên hàm trong lời gọi hàm.
Câu 23
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
n = int(input("Nhập số lượng phần tử N: "))
input_str = input("Nhập dãy gồm N số nguyên: ")
A = [int(x) for x in input_str.split()]
print("Các số dương trong dãy là: ")
found = False
for x in A:
if x > 0:
print(x, end=" ")
found = True
if not found:
print("Không có số dương nào trong dãy.")
Câu 24
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Có, chương trình này có sinh ra lỗi khi chạy.
Mã lỗi
Khi vòng lặp chạy đến giá trị cuối cùng của range, chương trình sẽ báo lỗi: IndexError: list index out of range.
Nguyên nhân gây ra lỗi
- Dãy A có 5 phần tử, nên len(A) = 5.
- Hàm range(1, len(A) + 1) sẽ tạo ra các giá trị cho k từ 1 đến 5 (bao gồm: 1, 2, 3, 4, 5)
- Trong Python, chỉ số (index) của danh sách (list) bắt đầu từ 0 đến len(A) - 1 (tức là từ 0 đến 4)
- Khi k = 5, câu lệnh print(A[k]) trở thành print(A[5]), lúc này chỉ số 5 nằm ngoài phạm vi cho phép của danh sách A.
Cách sửa lỗi: bạn có thể sửa lại hàm range() theo các cách sau: Nếu muốn in các phần tử từ vị trí chỉ số 1 đến hết danh sách (bỏ qua phần tử đầu tiên A[0])
Sửa range(1, len(A) + 1) thành range(1, len(A)) để k chỉ chạy từ 1 đến 4.