Giải sách bài tập Tin học 10 Bài 30: Kiểm thử và gỡ lỗi chương trình
Câu 30.1 trang 61 SBT Tin học 10: Mục đích của kiểm thử chương trình là gì?
A. Để tự động sửa lỗi chương trình.
B. Để tìm ra lỗi của chương trình.
C. Để tìm ra lỗi và tự động sửa lỗi chương trình.
D. Để tìm ra lỗi và phòng ngừa, ngăn chặn các lỗi phát sinh trong tương lai.
Trả lời:
Đáp án đúng là: D
Mục đích của kiểm thử chương trình: Để tìm ra lỗi và phòng ngừa, ngăn chặn các lỗi phát sinh trong tương lai.
Trả lời:
Chưa thể khẳng định chương trình hết lỗi. Kiểm thử chỉ có chức năng phát hiện lỗi (nếu có) ứng với các bộ dữ liệu test, không có chức năng chứng minh chương trình chạy đúng với mọi bộ dữ liệu.
A. Đây là lỗi không thể sửa được.
B. Đây là lỗi chia cho 0, em cần xoá lệnh này khỏi chương trình.
C. Đây là lỗi chia cho 0, em cần thay thế phép toán khác để không xảy ra lỗi này nữa.
D. Đây là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
Trả lời:
Đáp án đúng là: D
Lỗi ZeroDivisionError là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
A. Đó là vị trí chương trình chạy tới đó thì kết thúc.
B. Đó là vị trí chương trình dừng lại để người lập trình quan sát phát hiện lỗi.
C. Đó là vị trí chương trình mỗi khi chạy đến dòng lệnh đó sẽ kêu pip pip.
D. Đó là vị trí chương trình tạm dừng, người lập trình sẽ quan sát các biến của chương trình và có thể điều khiển để chương trình tiếp tục chạy.
Trả lời:
Đáp án đúng là: D
Công cụ break point cho phép tạo ra các “điểm dừng” bên trong chương trình. Khi chạy, chương trình sẽ tạm dừng tại các “điểm dừng” cho phép người kiểm thử có thể quan sát các thông tin khác bên trong chương trình, qua đó kiểm tra tính đúng đắn của chương trình.
Câu 30.5 trang 62 SBT Tin học 10: Bộ dữ liệu kiểm thử (test) có những tính chất gì?
A. Tính chất phát hiện lỗi của chương trình.
B. Cần có càng nhiều càng tốt.
C. Cần được sinh ngẫu nhiên và phủ kín các trường hợp biên của dữ liệu đầu vào bài toán.
D. Không cần có tính chất gì.
Trả lời:
Đáp án đúng là: C
Bộ dữ liệu kiểm thử (test) cần được sinh ngẫu nhiên và phủ kín các trường hợp biên của dữ liệu đầu vào bài toán.
A. x = 0.
B. x = 1000000.
C. x ở gần 0.
D. x ở gần 0 hoặc x rất lớn.
Trả lời:
Đáp án đúng là: D
Dữ liệu ở vùng biên là: x ở gần 0 hoặc x rất lớn.
Câu 30.7 trang 62 SBT Tin học 10: Phần mềm soạn thảo lập trình có thể tạo bao nhiêu điểm dừng?
A. 0.
B. 1.
C. Không hạn chế.
D. 10.
Trả lời:
Đáp án đúng là: C
Phần mềm soạn thảo lập trình không hạn chế điểm dừng.
A. In các dữ liệu trung gian.
B. Viết chú thích chi tiết trong chương trình.
C. Sinh các bộ dữ liệu test để kiểm tra chương trình.
D. Đặt tên biến và hàm có ý nghĩa.
E. Tạo điểm dừng để quan sát và phát hiện lỗi chương trình.
F. Ghi nhớ các mã lỗi ngoại lệ khi phát sinh.
Trả lời:
Các phương pháp được coi là phương pháp kiểm thử chương trình là:
A. In các dữ liệu trung gian.
C. Sinh các bộ dữ liệu test để kiểm tra chương trình.
E. Tạo điểm dừng để quan sát và phát hiện lỗi chương trình.
Trả lời:
* Chương trình có thể viết như sau:
A = []
n = int(input("Nhập số tự nhiên n: "))
for i in range(n):
num = eval(input("Nhập số thứ "+str(i+1)+": "))
k = 0
while k < len(A) and A[k] < num:
k = k + 1
A.insert(k,num)
print("Dãy số đã nhập:",A)
* Các em tự tiến hành kiểm thử chương trình.
Trả lời:
Chương trình có thể viết như sau:
def bmi(m,h):
return m/(h*h)
def NhapDL():
DS = []
n = int(input("Nhập số học sinh: "))
for k in range(n):
ten = input("Nhập tên học sinh thứ "+ str(k+1)+" : ")
mass = float(input("Nhập cân nặng: "))
h = float(input("Nhập chiều cao: "))
DS. append([ten, mass, h])
return DS
# Chương trình chính
DS = NhapDL()
DSBP = []
for k in range(len(DS)):
hs = DS [K]
if bmi(hs[1], hs[2]) > 25:
DSBP.append(hs[0])
print("Danh sách học sinh béo phì trong lớp:")
for hs in DSBP:
print(hs)
Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết:
Bài 29: Nhận biết lỗi chương trình
Bài 31: Thực hành: Viết chương trình đơn giản