khoahoc.vietjack.com

Câu hỏi:

25/09/2023 296 Lưu

Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng:

• Dòng thứ nhất chứa danh sách 4 gồm các số nguyên.

• Dòng thứ hai chứa số nguyên x.

Chương trình sẽ kiểm tra xem giá trị x có xuất hiện trong danh sách A hay không. Chương trình cho ra kết quả sai với nhiều bộ dữ liệu A và x. Hãy kiểm thử và sửa lỗi trong chương trình:

A = [int (v) for v in input ().split()]

X =

int (input())

for v in A:

if v == X:

print("Tìm thấy giá trị x trong A")

break

else:

print("Không tìm thấy giá trị x trong A")

break 

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

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")

Đang tải chế độ Học...

Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay

ĐẶC QUYỀN VIP

Đăng ký VIP để học và luyện thi không giới hạn

Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.

  • Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
  • Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
  • Đăng ký ngay

CÂU HỎI HOT CÙNG CHỦ ĐỀ

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

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")