Giải SBT Tin học 11 Cánh diều Bài 6. Kiểm thử và sửa lỗi chương trình có đáp án
22 người thi tuần này 4.6 316 lượt thi 4 câu hỏi
🔥 Đề thi HOT:
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 1 có đáp án
10 câu Trắc nghiệm Tin học 11 Bài 12 (có đáp án): Kiểu xâu
10 câu Trắc nghiệm Tin học 11 Bài 1: Khái niệm lập trình và ngôn ngữ lập trình
10 câu Trắc nghiệm Tin học 11 Bài 14 (có đáp án): Kiểu dữ liệu tệp
15 câu Trắc nghiệm Tin học 11 C++ Bài 5: Khai báo biến có đáp án
15 câu Trắc nghiệm Tin học 11 C++ Bài 11: Kiểu mảng có đáp án
10 câu Trắc nghiệm Tin học 11 Bài 8 (có đáp án): Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình
Nội dung liên quan:
Danh sách câu hỏi:
Lời giải
Có hai lỗi:
Lỗi cú pháp: Dòng 3 sửa tên biến yera thành year.
Lỗi thuật toán: Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Nếu chia hết cho 4 (dòng 2) và chia hết cho 100 (dòng 3) thì nếu chia hết cho 400 (dòng 4) là năm nhuận, ngược lại là năm không nhuận. Nhưng dòng 4 là điều kiện không chia hết nên sửa lại dòng 4 từ phép toán “! =” thành “==”.
Lời giải
Chương trình cho ra kết quả sai trong trường hợp 4=[1, 2, 3, 4, 5] và x=2. Nguyên nhân: Chỉ duy nhất phần tử đầu tiên trong danh sách được kiểm tra. Sửa lại: Đưa kết luận “không tìm thấy” ra ngoài vòng lặp và thêm một biến boolean để đánh dấu sự xuất hiện của x.
Chương trình sửa lại như sau:
A= [int (v) for v in input().split()]
x = int(input())
found = False
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
found = True
break
if not found: print("Không tìm thấy giá trị x trong A")
Lời giải
Do đã sắp xếp ba số theo thứ tự không giảm a[0] <a[1]<a[2] nên em chỉ cần kiểm tra hai cạnh nhỏ có tổng lớn hơn cạnh còn lại hay không. Chương trình của bạn Nhật sai ở dòng i f a[0] + a[1] < a[2]:.
Chương trình được sửa lại như sau:
a = [int (v) for v in input ().split()]
sort (a)
if a[0] + a [1] > a [2]:
else:
print("Là ba cạnh của tam giác")
print("Không phải ba cạnh của tam giác")
Lời giải
Chương trình xảy ra lỗi khi b=0.
Sửa lại: Kiểm tra xem b có khác 0 hay không trước khi thực hiện phép chia lấy phần dư.
a = int(input())
b = int(input())
if b ==0:
print("Nhập lại b khác 0")
elif a % b==0
print("a chia hết cho b")
esle:
print("a không chia hết cho b")