28.2. Đoạn chương trình sau có lỗi không? Nếu không kết quả lệnh print() sẽ in ra số nào?def...

Câu hỏi:

28.2. Đoạn chương trình sau có lỗi không? Nếu không kết quả lệnh print() sẽ in ra số nào?

def f(a):

       n = a + 1

       n = (3*n+1)**2

       return n

f(1)

print(n)

Câu trả lời:
Người trả lời: GV. Đỗ Đăng Giang
Cách làm:

1. Phân tích đoạn chương trình:
- Hàm f(a) nhận một đối số a, thực hiện tính toán để trả về giá trị n.
- Trong hàm f(a), gán giá trị cho biến n là a + 1, sau đó tính n = (3*n+1)**2.
- Cuối cùng, hàm trả về giá trị của n.
- Gọi hàm f(1) và in giá trị trả về ra màn hình.

2. Câu trả lời cho câu hỏi:
- Có bị lỗi. Chương trình có lỗi vì không nhận biết được biến n. Biến n có trong hàm f() chỉ có tác dụng bên trong hàm nhưng không có tác dụng bên ngoài hàm f().
- Kết quả lệnh print() sẽ in ra lỗi vì biến n không được định nghĩa ngoài hàm f(a) nên không thể truy cập và in giá trị của n ra màn hình.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.10172 sec| 2202.617 kb