Câu hỏi:

12/05/2026 19 Lưu

Các lệnh sau có sinh ra lỗi chương trình không? Nếu có thì mã lỗi là gì? Hãy nêu cách sửa lỗi đó.

>>>A=[1, 3, 5, 10, 0]

>>>for k in range(1,len(A) + 1):

print(A[k])

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

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.

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

Câu 1

a) Trong đoạn chương trình

>>>def Ham(x,y):

 z=15

 x=x*3

      y=x+y

 return x+y+z

Thì các biến x, y, z là các biến cục bộ của chương trình

Đúng
Sai

b) Trong đoạn chương trình    

 >>>x=5

      >>>y=6

Thì x, y là các biến ngoài hàm. Sau khi chạy hàm các biến x, y không thay đổi giá trị.

Đúng
Sai

c) Kết quả 51 không phải là kết quả của lệnh return x+y+z

Đúng
Sai
d) Khi thực hiện lệnh >>>z cho kết quả là 26
Đúng
Sai

Lời giải

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 2

A. Sản xuất phần mềm.
B. Quản trị dự án phần mềm.
C. Quản trị phần mềm.
D. Dự án phần mềm.

Lời giải

Đáp án đúng là: B

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Câu 4

a) Các tham số của chương trình là a, b
Đúng
Sai
b) Nếu ta gọi bscnn(x, y) thì chương trình sẽ trả kết quả là x
Đúng
Sai
c) Nếu ta gọi bscnn(9, 6, 3) thì chương trình sẽ trả kết quả là 9
Đúng
Sai
d) Trong câu lệnh return int(……………/ uscln(a, b)); thì a, b là đối số
Đúng
Sai

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Câu 6

A. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên.
B. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số thực.
C. Nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là xâu.
D. Không có đáp án đúng.

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP