JavaScript is required

Output của chương trình dưới đây là gì?
x = 50
def func(x):
print('Giá trị của x là', x)
x = 2
print('Giá trị của x được thay đổi thành', x)
func(x)
print('Giá trị hiện tại của x là', x)

A.
Giá trị hiện tại của x là 50
B.
Giá trị hiện tại của x là 100
C.
Giá trị hiện tại của x là 2
D.
Không có đáp án đúng
Trả lời:

Đáp án đúng: A


Chương trình được thực thi như sau: 1. `x = 50`: Khởi tạo biến `x` với giá trị 50 ở phạm vi toàn cục. 2. `func(x)`: Gọi hàm `func` với `x` là đối số. Lưu ý rằng đây là truyền giá trị (pass by value). 3. Bên trong hàm `func`: - `print('Giá trị của x là', x)`: In ra giá trị của `x` (là 50, vì giá trị của `x` ở phạm vi toàn cục được truyền vào). - `x = 2`: Tạo một biến cục bộ `x` bên trong hàm `func` và gán giá trị 2 cho nó. Biến `x` này chỉ tồn tại trong phạm vi của hàm `func`. - `print('Giá trị của x được thay đổi thành', x)`: In ra giá trị của biến `x` cục bộ (là 2). 4. Sau khi hàm `func` kết thúc, chương trình tiếp tục thực hiện các lệnh sau lời gọi hàm. 5. `print('Giá trị hiện tại của x là', x)`: In ra giá trị của `x` ở phạm vi toàn cục. Giá trị này vẫn là 50, vì biến `x` cục bộ bên trong hàm `func` không ảnh hưởng đến biến `x` toàn cục. Như vậy, không có đáp án nào trong các phương án đưa ra là chính xác.

Tổng hợp 200 câu hỏi trắc nghiệm lập trình Python có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


50 câu hỏi 60 phút

Câu hỏi liên quan