15+ Đề Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 01

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 01 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong lập trình Python, biến được khai báo bên trong một hàm (function) thuộc về phạm vi nào sau đây?

  • A. Toàn cục (Global scope)
  • B. Cục bộ (Local scope)
  • C. Hàm (Function scope)
  • D. Mô-đun (Module scope)

Câu 2: Biến toàn cục (global variable) trong Python là biến được khai báo ở đâu?

  • A. Bên trong một hàm.
  • B. Trong khối lệnh if hoặc for.
  • C. Chỉ có thể khai báo bằng từ khóa `global`.
  • D. Ở mức cao nhất của chương trình, bên ngoài mọi hàm hoặc lớp.

Câu 3: Khi một biến cục bộ bên trong hàm có cùng tên với một biến toàn cục bên ngoài hàm, Python sẽ ưu tiên sử dụng biến nào khi biến đó được gọi bên trong hàm?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Python sẽ báo lỗi trùng tên.
  • D. Tùy thuộc vào thứ tự khai báo.

Câu 4: Xem đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. Lỗi, vì `x` là biến toàn cục không thể dùng trong hàm.
  • B. Lỗi, vì `y` là biến cục bộ không thể cộng với `x`.
  • C. 15
  • D. 10

Câu 5: Xem đoạn mã sau:
```python
def my_function():
z = 20
print(z)
my_function()
print(z)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. 20
    20
  • B. 20
  • C. Lỗi, vì biến `z` được khai báo hai lần.
  • D. 20
    Lỗi, vì biến `z` không tồn tại ở phạm vi toàn cục.

Câu 6: Để thay đổi giá trị của một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến trong hàm?

  • A. global
  • B. local
  • C. return
  • D. def

Câu 7: Xem đoạn mã sau:
```python
count = 0
def increase_count():
count += 1
increase_count()
print(count)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. 0
  • B. 1
  • C. Lỗi, vì biến `count` không được khởi tạo trong hàm.
  • D. Lỗi, vì cố gắng sửa đổi biến toàn cục `count` bên trong hàm mà không dùng `global`.

Câu 8: Xem đoạn mã sau:
```python
count = 0
def increase_count():
global count
count += 1
increase_count()
print(count)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. 0
  • B. 1
  • C. Lỗi, từ khóa `global` không đúng cú pháp.
  • D. None

Câu 9: Tham số (parameter) của một hàm trong Python có phạm vi hoạt động như thế nào?

  • A. Toàn cục (Global scope), có thể truy cập ở bất cứ đâu.
  • B. Phạm vi của mô-đun (Module scope).
  • C. Cục bộ (Local scope), chỉ có hiệu lực bên trong hàm đó.
  • D. Phạm vi riêng biệt cho từng tham số, không liên quan đến phạm vi cục bộ.

Câu 10: Xem đoạn mã sau:
```python
def process(data):
data = data * 2
print(data)
value = 10
process(value)
print(value)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. 20
    10
  • B. 20
    20
  • C. 10
    20
  • D. Lỗi, không thể sửa đổi biến `value` trong hàm.

Câu 11: Xem đoạn mã sau:
```python
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)
print(lst)
modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn mã trên là gì? (Lưu ý về kiểu dữ liệu có thể thay đổi - mutable)

  • A. [1, 2, 3]
    [1, 2, 3]
  • B. [1, 2, 3, 4]
    [1, 2, 3]
  • C. [1, 2, 3]
    [1, 2, 3, 4]
  • D. [1, 2, 3, 4]
    [1, 2, 3, 4]

Câu 12: Xem đoạn mã sau:
```python
def outer_function():
x = 10
def inner_function():
print(x)
inner_function()
outer_function()
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. Lỗi, vì `inner_function` không thể truy cập biến `x` của `outer_function`.
  • B. 10
  • C. Lỗi, vì `x` không phải là biến toàn cục.
  • D. None

Câu 13: Xem đoạn mã sau:
```python
def outer_function():
x = 10
def inner_function():
x = 20
print("Inner:", x)
inner_function()
print("Outer:", x)
outer_function()
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. Inner: 20
    Outer: 20
  • B. Inner: 10
    Outer: 10
  • C. Inner: 20
    Outer: 10
  • D. Lỗi, biến `x` bị trùng tên.

Câu 14: Từ khóa `global` dùng để làm gì trong phạm vi của biến?

  • A. Cho phép sửa đổi biến toàn cục từ bên trong một hàm.
  • B. Khai báo một biến mới có phạm vi toàn cục.
  • C. Cho phép truy cập biến cục bộ từ bên ngoài hàm.
  • D. Xóa một biến khỏi bộ nhớ.

Câu 15: Biến nào có

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Tham số của hàm.
  • D. Biến được khai báo trong khối lệnh `if`.

Câu 16: Xem đoạn mã sau:
```python
a = 1
def f():
b = 2
print(a)
f()
print(b)
```
Đoạn mã này sẽ:

  • A. In ra 1 rồi 2.
  • B. In ra 2 rồi 1.
  • C. Báo lỗi ở dòng `print(a)`.
  • D. In ra 1 rồi báo lỗi ở dòng `print(b)`.

Câu 17: Điều gì xảy ra nếu bạn cố gắng gán giá trị cho một biến toàn cục bên trong hàm mà không sử dụng từ khóa `global`, và biến đó đã tồn tại ở phạm vi toàn cục?

  • A. Giá trị của biến toàn cục sẽ bị thay đổi.
  • B. Python sẽ báo lỗi `SyntaxError`.
  • C. Python sẽ tạo ra một biến cục bộ mới cùng tên trong hàm.
  • D. Không có gì xảy ra với biến toàn cục, và không có biến cục bộ nào được tạo.

Câu 18: Xem đoạn mã sau:
```python
def greet(name):
message =

  • A. Hello, Alice
    Hello, Alice
  • B. Hello, Alice
  • C. Lỗi, biến `name` không tồn tại ở phạm vi toàn cục.
  • D. Hello, Alice
    Lỗi, biến `message` không tồn tại ở phạm vi toàn cục.

Câu 19: Khi một hàm được gọi, các biến cục bộ của nó được tạo ra. Khi hàm kết thúc thực hiện, điều gì xảy ra với các biến cục bộ đó?

  • A. Chúng vẫn tồn tại và có thể được truy cập sau này.
  • B. Chúng bị hủy và không thể truy cập được nữa.
  • C. Chúng trở thành biến toàn cục.
  • D. Chúng được chuyển sang phạm vi của hàm gọi nó.

Câu 20: Xem đoạn mã sau:
```python
number = 5
def change_number(num):
num = 10
print(

  • A. Inside function: 10
    Outside function: 10
  • B. Inside function: 5
    Outside function: 5
  • C. Inside function: 10
    Outside function: 5
  • D. Inside function: 5
    Outside function: 10

Câu 21: Phạm vi của biến giúp ích gì trong việc tổ chức và quản lý mã nguồn?

  • A. Giúp tất cả các biến đều có thể truy cập lẫn nhau, tăng tính linh hoạt.
  • B. Giảm số lượng biến cần khai báo.
  • C. Cho phép sử dụng cùng một tên biến cho các mục đích khác nhau mà không gây xung đột.
  • D. Giúp các hàm hoạt động độc lập hơn, tránh ảnh hưởng ngẫu nhiên đến các phần khác của chương trình.

Câu 22: Xem đoạn mã sau:
```python
def sum_numbers(a, b):
result = a + b
return result
total = sum_numbers(3, 5)
print(total)
print(result)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. 8
    8
  • B. 8
  • C. Lỗi, biến `total` không tồn tại.
  • D. 8
    Lỗi, biến `result` không tồn tại ở phạm vi toàn cục.

Câu 23: Trong Python, nếu bạn chỉ đọc (truy cập giá trị) một biến toàn cục từ bên trong hàm mà không có ý định sửa đổi nó, bạn có cần dùng từ khóa `global` không?

  • A. Có, luôn cần dùng `global` khi truy cập biến toàn cục trong hàm.
  • B. Không, chỉ cần dùng `global` khi bạn muốn gán giá trị mới (sửa đổi) biến toàn cục.
  • C. Tùy thuộc vào kiểu dữ liệu của biến.
  • D. Chỉ cần dùng `global` nếu biến cục bộ cùng tên tồn tại.

Câu 24: Xem đoạn mã sau:
```python
def calculate_area(width, height):
area = width * height
print(

  • A. `NameError`, vì `area` là biến cục bộ chỉ tồn tại trong hàm `calculate_area`.
  • B. `TypeError`, vì không thể in một biến cục bộ.
  • C. `ValueError`, vì giá trị của `area` không hợp lệ.
  • D. Không báo lỗi, và in ra giá trị cuối cùng của `area`.

Câu 25: Một lợi ích chính của việc sử dụng phạm vi cục bộ cho biến trong hàm là gì?

  • A. Làm cho biến có thể được sử dụng lại ở nhiều nơi trong chương trình.
  • B. Giúp chương trình chạy nhanh hơn.
  • C. Ngăn chặn xung đột tên biến giữa các phần khác nhau của chương trình (ví dụ: giữa các hàm khác nhau).
  • D. Tự động lưu giá trị của biến sau khi hàm kết thúc.

Câu 26: Xem đoạn mã sau:
```python
def process_data(data_list):
data_list = data_list + [10]
print(

  • A. Inside function: [1, 2, 3, 10]
    Outside function: [1, 2, 3, 10]
  • B. Inside function: [1, 2, 3, 10]
    Outside function: [1, 2, 3]
  • C. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3, 10]
  • D. Lỗi, không thể cộng list với số nguyên.

Câu 27: Trường hợp nào dưới đây chắc chắn KHÔNG cần dùng từ khóa `global`?

  • A. Bạn muốn gán giá trị mới cho một biến toàn cục bên trong hàm.
  • B. Bạn muốn tạo một biến cục bộ mới trong hàm.
  • C. Bạn muốn sử dụng một biến toàn cục và gán giá trị cho một biến cục bộ cùng tên.
  • D. Bạn chỉ muốn đọc giá trị của một biến toàn cục bên trong hàm.

Câu 28: Xem đoạn mã sau:
```python
count = 1
def do_something():
# Giả sử muốn tăng biến count toàn cục
# count += 1
print(count)
do_something()
```
Nếu bỏ chú thích ở dòng `# count += 1`, chương trình sẽ báo lỗi. Lỗi đó là do:

  • A. Biến `count` không được khởi tạo trong hàm.
  • B. Biến `count` là số, không thể tăng giá trị.
  • C. Cố gắng sửa đổi biến toàn cục `count` bên trong hàm mà không dùng `global`, trong khi có lệnh đọc biến `count` sau đó.
  • D. Hàm `do_something` không có tham số.

Câu 29: Biến cục bộ và tham số của hàm có điểm gì chung về phạm vi?

  • A. Cả hai đều chỉ tồn tại và có hiệu lực bên trong thân hàm mà chúng được định nghĩa/khai báo.
  • B. Cả hai đều có thể được truy cập từ bất kỳ đâu trong chương trình.
  • C. Cả hai đều cần từ khóa `global` để sử dụng.
  • D. Cả hai đều được khởi tạo giá trị mặc định là 0.

Câu 30: Điều gì sẽ xảy ra nếu bạn gọi một hàm mà bên trong nó có khai báo một biến cục bộ, sau đó bạn cố gắng truy cập biến cục bộ đó ngay sau khi hàm kết thúc?

  • A. Bạn sẽ truy cập được giá trị cuối cùng của biến đó.
  • B. Chương trình sẽ báo lỗi `NameError` vì biến đó không còn tồn tại ở phạm vi hiện tại.
  • C. Biến đó sẽ tự động trở thành biến toàn cục.
  • D. Giá trị của biến sẽ trở về giá trị ban đầu trước khi hàm được gọi.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 1: Trong lập trình Python, biến được khai báo bên trong một hàm (function) thuộc về phạm vi nào sau đây?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 2: Biến toàn cục (global variable) trong Python là biến được khai báo ở đâu?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 3: Khi một biến cục bộ bên trong hàm có cùng tên với một biến toàn cục bên ngoài hàm, Python sẽ ưu tiên sử dụng biến nào khi biến đó được gọi bên trong hàm?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 4: Xem đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Kết quả khi chạy đoạn mã trên là gì?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 5: Xem đoạn mã sau:
```python
def my_function():
z = 20
print(z)
my_function()
print(z)
```
Kết quả khi chạy đoạn mã trên là gì?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 6: Để thay đổi giá trị của một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến trong hàm?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 7: Xem đoạn mã sau:
```python
count = 0
def increase_count():
count += 1
increase_count()
print(count)
```
Kết quả khi chạy đoạn mã trên là gì?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 8: Xem đoạn mã sau:
```python
count = 0
def increase_count():
global count
count += 1
increase_count()
print(count)
```
Kết quả khi chạy đoạn mã trên là gì?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 9: Tham số (parameter) của một hàm trong Python có phạm vi hoạt động như thế nào?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 10: Xem đoạn mã sau:
```python
def process(data):
data = data * 2
print(data)
value = 10
process(value)
print(value)
```
Kết quả khi chạy đoạn mã trên là gì?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 11: Xem đoạn mã sau:
```python
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)
print(lst)
modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn mã trên là gì? (Lưu ý về kiểu dữ liệu có thể thay đổi - mutable)

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 12: Xem đoạn mã sau:
```python
def outer_function():
x = 10
def inner_function():
print(x)
inner_function()
outer_function()
```
Kết quả khi chạy đoạn mã trên là gì?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 13: Xem đoạn mã sau:
```python
def outer_function():
x = 10
def inner_function():
x = 20
print('Inner:', x)
inner_function()
print('Outer:', x)
outer_function()
```
Kết quả khi chạy đoạn mã trên là gì?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 14: Từ khóa `global` dùng để làm gì trong phạm vi của biến?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 15: Biến nào có "vòng đời" tồn tại suốt quá trình chạy của chương trình chính?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 16: Xem đoạn mã sau:
```python
a = 1
def f():
b = 2
print(a)
f()
print(b)
```
Đoạn mã này sẽ:

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 17: Điều gì xảy ra nếu bạn cố gắng gán giá trị cho một biến toàn cục bên trong hàm mà không sử dụng từ khóa `global`, và biến đó đã tồn tại ở phạm vi toàn cục?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 18: Xem đoạn mã sau:
```python
def greet(name):
message = "Hello, " + name
print(message)
greet("Alice")
print(message)
```
Kết quả khi chạy đoạn mã trên là gì?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 19: Khi một hàm được gọi, các biến cục bộ của nó được tạo ra. Khi hàm kết thúc thực hiện, điều gì xảy ra với các biến cục bộ đó?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 20: Xem đoạn mã sau:
```python
number = 5
def change_number(num):
num = 10
print("Inside function:", num)
change_number(number)
print("Outside function:", number)
```
Kết quả khi chạy đoạn mã trên là gì?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 21: Phạm vi của biến giúp ích gì trong việc tổ chức và quản lý mã nguồn?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 22: Xem đoạn mã sau:
```python
def sum_numbers(a, b):
result = a + b
return result
total = sum_numbers(3, 5)
print(total)
print(result)
```
Kết quả khi chạy đoạn mã trên là gì?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 23: Trong Python, nếu bạn chỉ đọc (truy cập giá trị) một biến toàn cục từ bên trong hàm mà không có ý định sửa đổi nó, bạn có cần dùng từ khóa `global` không?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 24: Xem đoạn mã sau:
```python
def calculate_area(width, height):
area = width * height
print("Area inside function:", area)
calculate_area(4, 6)
# Giả sử muốn in biến area ở đây
# print(area)
```
Nếu bỏ chú thích ở dòng `print(area)` cuối cùng, chương trình sẽ báo lỗi gì và tại sao?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 25: Một lợi ích chính của việc sử dụng phạm vi cục bộ cho biến trong hàm là gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 26: Xem đoạn mã sau:
```python
def process_data(data_list):
data_list = data_list + [10]
print("Inside function:", data_list)
my_data = [1, 2, 3]
process_data(my_data)
print("Outside function:", my_data)
```
Kết quả khi chạy đoạn mã trên là gì? (Lưu ý cách toán tử `+` hoạt động với list)

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 27: Trường hợp nào dưới đây chắc chắn KHÔNG cần dùng từ khóa `global`?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 28: Xem đoạn mã sau:
```python
count = 1
def do_something():
# Giả sử muốn tăng biến count toàn cục
# count += 1
print(count)
do_something()
```
Nếu bỏ chú thích ở dòng `# count += 1`, chương trình sẽ báo lỗi. Lỗi đó là do:

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 29: Biến cục bộ và tham số của hàm có điểm gì chung về phạm vi?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 1

Câu 30: Điều gì sẽ xảy ra nếu bạn gọi một hàm mà bên trong nó có khai báo một biến cục bộ, sau đó bạn cố gắng truy cập biến cục bộ đó ngay sau khi hàm kết thúc?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 02

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 02 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, biến được khai báo bên trong một hàm (không sử dụng từ khóa `global`) có phạm vi hoạt động như thế nào?

  • A. Toàn cục, có thể truy cập từ bất kỳ đâu trong chương trình.
  • B. Cục bộ, chỉ có hiệu lực bên trong hàm đó.
  • C. Chỉ có hiệu lực sau khi hàm kết thúc.
  • D. Chỉ có hiệu lực nếu được truyền vào như một tham số.

Câu 2: Biến toàn cục (global variable) trong Python là gì?

  • A. Biến được khai báo ở mức ngoài cùng của chương trình, không nằm trong bất kỳ hàm hay lớp nào.
  • B. Biến được khai báo bên trong một hàm nhưng sử dụng từ khóa `global`.
  • C. Biến được truyền vào hàm như một tham số.
  • D. Biến chỉ tồn tại trong suốt quá trình thực thi chương trình.

Câu 3: Xét đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
print(y)

my_function()
```
Kết quả khi chạy đoạn code trên là gì?

  • A. 10
    5
  • B. Báo lỗi do không truy cập được x bên trong hàm.
  • C. Báo lỗi do không truy cập được y bên ngoài hàm.
  • D. 5
    10

Câu 4: Xét đoạn code sau:
```python
a = 100
def change_a():
a = 200
print(f

  • A. Trong ham: a = 200
    Ngoai ham: a = 200
  • B. Trong ham: a = 100
    Ngoai ham: a = 100
  • C. Trong ham: a = 200
    Ngoai ham: a = 100
  • D. Báo lỗi.

Câu 5: Tại sao biến `a` bên trong hàm `change_a` ở Câu 4 lại không làm thay đổi giá trị của biến `a` bên ngoài hàm?

  • A. Vì biến `a` bên ngoài hàm là biến hằng nên không thể thay đổi.
  • B. Vì hàm chỉ có thể truy cập biến toàn cục để đọc, không thể ghi.
  • C. Vì Python luôn tạo bản sao của biến khi truyền vào hàm.
  • D. Vì việc gán `a = 200` bên trong hàm tạo ra một biến cục bộ mới tên là `a`, che khuất biến toàn cục cùng tên.

Câu 6: Để một hàm có thể thay đổi giá trị của một biến toàn cục, ta cần sử dụng từ khóa nào bên trong hàm trước khi sử dụng biến đó?

  • A. global
  • B. local
  • C. extern
  • D. public

Câu 7: Xét đoạn code sau:
```python
count = 0
def increment():
global count
count += 1

increment()
increment()
print(count)
```
Kết quả khi chạy đoạn code trên là gì?

  • A. 0
  • B. 1
  • C. 2
  • D. Báo lỗi.

Câu 8: Xét đoạn code sau:
```python
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)

modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn code trên là gì?

  • A. [1, 2, 3]
  • B. [1, 2, 3, 4]
  • C. Báo lỗi.
  • D. None

Câu 9: Tại sao hàm `modify_list` ở Câu 8 lại có thể làm thay đổi danh sách `my_list` bên ngoài hàm mà không cần dùng từ khóa `global`?

  • A. Vì danh sách (list) là một đối tượng có thể thay đổi (mutable), và hàm nhận tham chiếu đến đối tượng gốc.
  • B. Vì `my_list` là biến toàn cục.
  • C. Vì phương thức `append` luôn hoạt động trên biến toàn cục.
  • D. Vì Python tự động coi các đối tượng phức tạp như danh sách là toàn cục.

Câu 10: Xét đoạn code sau:
```python
my_value = 10
def change_value(val):
val = val + 5
print(f

  • A. Trong ham: val = 15
    Ngoai ham: my_value = 15
  • B. Trong ham: val = 10
    Ngoai ham: my_value = 10
  • C. Trong ham: val = 10
    Ngoai ham: my_value = 15
  • D. Trong ham: val = 15
    Ngoai ham: my_value = 10

Câu 11: Tại sao hàm `change_value` ở Câu 10 lại không làm thay đổi giá trị của biến `my_value` bên ngoài hàm?

  • A. Vì biến `my_value` là biến toàn cục.
  • B. Vì số nguyên (integer) là đối tượng có thể thay đổi (mutable).
  • C. Vì số nguyên (integer) là đối tượng không thể thay đổi (immutable), phép gán `val = val + 5` tạo ra một đối tượng số nguyên mới và gán cho biến cục bộ `val`.
  • D. Vì hàm không sử dụng từ khóa `global`.

Câu 12: Xét đoạn code sau:
```python
def create_local_var():
message =

  • A. Hello from inside!
    Hello from inside!
  • B. Báo lỗi cú pháp.
  • C. Hello from inside!
    (Không in gì nữa)
  • D. Hello from inside!
    Báo lỗi NameError: name "message" is not defined

Câu 13: Lỗi NameError xảy ra ở Câu 12 là do đâu?

  • A. Biến `message` chưa được gán giá trị bên trong hàm.
  • B. Biến `message` được khai báo cục bộ bên trong hàm và không thể truy cập từ bên ngoài hàm.
  • C. Biến `message` bị trùng tên với một từ khóa của Python.
  • D. Hàm `create_local_var` chưa được gọi.

Câu 14: Khi một biến có cùng tên tồn tại ở cả phạm vi toàn cục và phạm vi cục bộ trong một hàm, điều gì xảy ra khi bạn tham chiếu đến tên biến đó bên trong hàm (để đọc giá trị)?

  • A. Biến cục bộ sẽ được ưu tiên, che khuất biến toàn cục (hiện tượng shadowing).
  • B. Biến toàn cục sẽ được ưu tiên.
  • C. Chương trình sẽ báo lỗi vì tên biến bị trùng.
  • D. Python sẽ hỏi người dùng muốn sử dụng biến nào.

Câu 15: Xét đoạn code sau:
```python
value = 10
def process():
# Dòng code A
print(value)
value = 20 # Dòng code B
print(value)

process()
print(value)
```
Khi chạy đoạn code trên, điều gì sẽ xảy ra?

  • A. 10
    20
    10
  • B. 10
    20
    20
  • C. 20
    20
    10
  • D. Báo lỗi UnboundLocalError tại Dòng code A.

Câu 16: Lỗi UnboundLocalError ở Câu 15 xảy ra vì:

  • A. Biến `value` được khai báo là toàn cục nhưng lại được sử dụng bên trong hàm.
  • B. Biến `value` bên trong hàm chưa được gán giá trị trước khi được in ra.
  • C. Python phát hiện có lệnh gán giá trị cho `value` bên trong hàm (Dòng code B), nên nó coi `value` là biến cục bộ. Tuy nhiên, Dòng code A lại cố gắng truy cập biến cục bộ này trước khi nó được gán giá trị.
  • D. Biến `value` bên ngoài hàm bị xóa sau khi hàm được gọi.

Câu 17: Khi nào thì một biến cục bộ được tạo ra bên trong một hàm?

  • A. Khi một giá trị được gán cho một tên biến lần đầu tiên bên trong hàm, trừ khi tên biến đó đã được khai báo là `global`.
  • B. Ngay khi hàm được gọi.
  • C. Khi biến đó được truyền vào như một tham số.
  • D. Khi biến đó được sử dụng lần đầu tiên bên trong hàm.

Câu 18: Phạm vi của biến (variable scope) trong lập trình có vai trò gì?

  • A. Xác định kiểu dữ liệu của biến.
  • B. Quy định tốc độ truy cập biến.
  • C. Cho phép một biến được sử dụng ở mọi nơi trong chương trình.
  • D. Xác định phần nào của chương trình có thể truy cập hoặc thay đổi biến đó, giúp quản lý dữ liệu và tránh xung đột tên biến.

Câu 19: Xét đoạn code sau:
```python
my_number = 50
def modify_number(num):
num = 100
print(f

  • A. Trong ham, num = 100
    Ngoai ham, my_number = 100
  • B. Trong ham, num = 100
    Ngoai ham, my_number = 50
  • C. Trong ham, num = 50
    Ngoai ham, my_number = 50
  • D. Báo lỗi.

Câu 20: Điều gì xảy ra với các biến cục bộ sau khi hàm chứa chúng kết thúc quá trình thực thi?

  • A. Chúng thường bị hủy và không thể truy cập được nữa.
  • B. Chúng vẫn tồn tại nhưng chỉ có thể truy cập bằng cách gọi lại hàm.
  • C. Chúng trở thành biến toàn cục.
  • D. Chúng được lưu trữ vào bộ nhớ cache để sử dụng lần sau.

Câu 21: Xét đoạn code sau:
```python
def outer_function():
x = 10
def inner_function():
y = 20
print(x + y)
inner_function()

outer_function()
```
Kết quả khi chạy đoạn code trên là gì?

  • A. 30
  • B. Báo lỗi NameError: name "x" is not defined
  • C. Báo lỗi NameError: name "y" is not defined
  • D. Chương trình không in gì cả.

Câu 22: Trong đoạn code ở Câu 21, biến `y` có phạm vi như thế nào so với biến `x`?

  • A. `y` là toàn cục, `x` là cục bộ.
  • B. Cả `x` và `y` đều là toàn cục.
  • C. Cả `x` và `y` đều là cục bộ, nhưng `y` có phạm vi nhỏ hơn, chỉ trong `inner_function`, trong khi `x` có phạm vi trong `outer_function` (bao gồm cả `inner_function`).
  • D. `y` là cục bộ, `x` là tham số.

Câu 23: Xét đoạn code sau:
```python
status =

  • A. global
  • B. local
  • C. Báo lỗi UnboundLocalError.
  • D. Báo lỗi NameError.

Câu 24: Vẫn đoạn code ở Câu 23, nếu bỏ chú thích ở dòng `# status =

  • A. global
  • B. local
  • C. Báo lỗi UnboundLocalError.
  • D. Báo lỗi NameError.

Câu 25: Trong Python, khi bạn định nghĩa một hàm, nó tạo ra một phạm vi (scope) mới. Phạm vi này được gọi là gì?

  • A. Phạm vi toàn cục (Global scope)
  • B. Phạm vi cục bộ (Local scope)
  • C. Phạm vi tích hợp (Built-in scope)
  • D. Phạm vi bao đóng (Enclosing scope)

Câu 26: Xét đoạn code sau:
```python
count = 1
def do_this():
global count
for i in range(5):
count += 1

do_this()
print(count)
```
Kết quả khi chạy đoạn code trên là gì?

  • A. 1
  • B. 5
  • C. 6
  • D. 7

Câu 27: Biến `i` trong vòng lặp `for` ở Câu 26 có phạm vi như thế nào?

  • A. Cục bộ trong hàm `do_this`.
  • B. Toàn cục.
  • C. Chỉ cục bộ trong vòng lặp `for`.
  • D. Bị lỗi do không khai báo kiểu dữ liệu.

Câu 28: Xét đoạn code sau:
```python
my_data = {

  • A. 0
  • B. 1
  • C. 2
  • D. Báo lỗi.

Câu 29: Tại sao hàm `update_data` ở Câu 28 có thể thay đổi giá trị trong dictionary `my_data` mà không cần từ khóa `global`?

  • A. Vì dictionary là đối tượng không thể thay đổi (immutable).
  • B. Vì dictionary là đối tượng có thể thay đổi (mutable), và hàm đang sửa đổi nội dung của đối tượng gốc mà nó tham chiếu tới, không phải gán lại tên biến `my_data`.
  • C. Vì `my_data` là biến toàn cục.
  • D. Vì hàm chỉ thực hiện phép cộng, không phải phép gán.

Câu 30: Phát biểu nào sau đây là đúng về việc sử dụng biến toàn cục trong các hàm?

  • A. Luôn nên sử dụng biến toàn cục để các hàm dễ dàng chia sẻ dữ liệu.
  • B. Biến toàn cục chỉ có thể được đọc chứ không thể thay đổi trong hàm.
  • C. Việc thay đổi biến toàn cục trong hàm bằng từ khóa `global` làm cho chương trình dễ hiểu và dễ gỡ lỗi hơn.
  • D. Việc lạm dụng biến toàn cục và thay đổi chúng trong nhiều hàm có thể làm cho luồng dữ liệu khó kiểm soát, tăng khả năng phát sinh lỗi không mong muốn (side effects).

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 1: Trong Python, biến được khai báo bên trong một hàm (không sử dụng từ khóa `global`) có phạm vi hoạt động như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 2: Biến toàn cục (global variable) trong Python là gì?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 3: Xét đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
print(y)

my_function()
```
Kết quả khi chạy đoạn code trên là gì?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 4: Xét đoạn code sau:
```python
a = 100
def change_a():
a = 200
print(f"Trong ham: a = {a}")

change_a()
print(f"Ngoai ham: a = {a}")
```
Kết quả khi chạy đoạn code trên là gì?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 5: Tại sao biến `a` bên trong hàm `change_a` ở Câu 4 lại không làm thay đổi giá trị của biến `a` bên ngoài hàm?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 6: Để một hàm có thể thay đổi giá trị của một biến toàn cục, ta cần sử dụng từ khóa nào bên trong hàm trước khi sử dụng biến đó?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 7: Xét đoạn code sau:
```python
count = 0
def increment():
global count
count += 1

increment()
increment()
print(count)
```
Kết quả khi chạy đoạn code trên là gì?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 8: Xét đoạn code sau:
```python
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)

modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn code trên là gì?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 9: Tại sao hàm `modify_list` ở Câu 8 lại có thể làm thay đổi danh sách `my_list` bên ngoài hàm mà không cần dùng từ khóa `global`?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 10: Xét đoạn code sau:
```python
my_value = 10
def change_value(val):
val = val + 5
print(f"Trong ham: val = {val}")

change_value(my_value)
print(f"Ngoai ham: my_value = {my_value}")
```
Kết quả khi chạy đoạn code trên là gì?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 11: Tại sao hàm `change_value` ở Câu 10 lại không làm thay đổi giá trị của biến `my_value` bên ngoài hàm?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 12: Xét đoạn code sau:
```python
def create_local_var():
message = "Hello from inside!"
print(message)

create_local_var()
print(message)
```
Kết quả khi chạy đoạn code trên là gì?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 13: Lỗi NameError xảy ra ở Câu 12 là do đâu?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 14: Khi một biến có cùng tên tồn tại ở cả phạm vi toàn cục và phạm vi cục bộ trong một hàm, điều gì xảy ra khi bạn tham chiếu đến tên biến đó bên trong hàm (để đọc giá trị)?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 15: Xét đoạn code sau:
```python
value = 10
def process():
# Dòng code A
print(value)
value = 20 # Dòng code B
print(value)

process()
print(value)
```
Khi chạy đoạn code trên, điều gì sẽ xảy ra?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 16: Lỗi UnboundLocalError ở Câu 15 xảy ra vì:

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 17: Khi nào thì một biến cục bộ được tạo ra bên trong một hàm?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 18: Phạm vi của biến (variable scope) trong lập trình có vai trò gì?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 19: Xét đoạn code sau:
```python
my_number = 50
def modify_number(num):
num = 100
print(f"Trong ham, num = {num}")

modify_number(my_number)
print(f"Ngoai ham, my_number = {my_number}")
```
Kết quả khi chạy đoạn code trên là gì?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 20: Điều gì xảy ra với các biến cục bộ sau khi hàm chứa chúng kết thúc quá trình thực thi?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 21: Xét đoạn code sau:
```python
def outer_function():
x = 10
def inner_function():
y = 20
print(x + y)
inner_function()

outer_function()
```
Kết quả khi chạy đoạn code trên là gì?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 22: Trong đoạn code ở Câu 21, biến `y` có phạm vi như thế nào so với biến `x`?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 23: Xét đoạn code sau:
```python
status = "global"
def check_status():
print(status)
# status = "local" # Dòng này bị chú thích

check_status()
```
Kết quả khi chạy đoạn code trên là gì?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 24: Vẫn đoạn code ở Câu 23, nếu bỏ chú thích ở dòng `# status = "local"`, kết quả khi chạy đoạn code sẽ là gì?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 25: Trong Python, khi bạn định nghĩa một hàm, nó tạo ra một phạm vi (scope) mới. Phạm vi này được gọi là gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 26: Xét đoạn code sau:
```python
count = 1
def do_this():
global count
for i in range(5):
count += 1

do_this()
print(count)
```
Kết quả khi chạy đoạn code trên là gì?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 27: Biến `i` trong vòng lặp `for` ở Câu 26 có phạm vi như thế nào?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 28: Xét đoạn code sau:
```python
my_data = {"value": 0}
def update_data():
my_data["value"] += 1

update_data()
update_data()
print(my_data["value"])
```
Kết quả khi chạy đoạn code trên là gì?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 29: Tại sao hàm `update_data` ở Câu 28 có thể thay đổi giá trị trong dictionary `my_data` mà không cần từ khóa `global`?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 2

Câu 30: Phát biểu nào sau đây là đúng về việc sử dụng biến toàn cục trong các hàm?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 03

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 03 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, nó có phạm vi hoạt động như thế nào?

  • A. Toàn cục, có thể truy cập từ bất kỳ đâu trong chương trình.
  • B. Cục bộ, chỉ có thể truy cập bên trong hàm nơi nó được khai báo.
  • C. Được chia sẻ giữa tất cả các hàm trong cùng một tệp.
  • D. Tồn tại cho đến khi chương trình kết thúc, bất kể vị trí khai báo.

Câu 2: Xem xét đoạn mã Python sau:

def ham_ngoai():
x = 10
def ham_trong():
print(x)
ham_trong()

ham_ngoai()

Giá trị nào sẽ được in ra khi thực thi đoạn mã trên?

  • A. 10
  • B. Biến x không được định nghĩa
  • C. 0
  • D. Lỗi cú pháp

Câu 3: Biến toàn cục trong Python được khai báo ở đâu?

  • A. Bên trong một hàm cụ thể với từ khóa "global".
  • B. Ở đầu mỗi chương trình Python.
  • C. Bên ngoài tất cả các hàm trong một chương trình.
  • D. Chỉ khi chương trình bắt đầu thực thi.

Câu 4: Cho đoạn mã Python:

x = 5

def thay_doi_x():
x = 10
print("Giá trị x trong hàm:", x)

thay_doi_x()
print("Giá trị x ngoài hàm:", x)

Đâu là kết quả đầu ra của đoạn mã này?

  • A. Giá trị x trong hàm: 10
    Giá trị x ngoài hàm: 10
  • B. Giá trị x trong hàm: 10
    Giá trị x ngoài hàm: 5
  • C. Giá trị x trong hàm: 5
    Giá trị x ngoài hàm: 10
  • D. Lỗi vì biến x được gán lại trong hàm

Câu 5: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

  • A. local
  • B. function
  • C. static
  • D. global

Câu 6: Xem xét đoạn mã sau:

x = 20

def sua_doi_toan_cuc():
global x
x = 25

sua_doi_toan_cuc()
print(x)

Giá trị nào của x sẽ được in ra?

  • A. 20
  • B. Không có giá trị nào được in
  • C. 25
  • D. Lỗi vì biến toàn cục không thể sửa đổi

Câu 7: Điều gì xảy ra nếu bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được khai báo?

  • A. Lỗi NameError sẽ xảy ra.
  • B. Chương trình sẽ chạy nhưng có thể cho kết quả không mong muốn.
  • C. Biến sẽ tự động được coi là biến toàn cục.
  • D. Giá trị mặc định của biến (nếu có) sẽ được sử dụng.

Câu 8: Phạm vi của một biến quyết định điều gì?

  • A. Kiểu dữ liệu của biến.
  • B. Vùng mã lệnh mà biến có thể được truy cập.
  • C. Thời gian tồn tại của biến trong bộ nhớ.
  • D. Tốc độ truy cập vào biến.

Câu 9: Cho đoạn mã:

def tinh_tong(a, b):
c = a + b
return c

ket_qua = tinh_tong(5, 3)
print(c)

Đoạn mã này có lỗi không? Nếu có, lỗi ở dòng nào và vì sao?

  • A. Không có lỗi.
  • B. Lỗi ở dòng 2, biến "c" chưa được khai báo.
  • C. Lỗi ở dòng 5, biến "c" là biến cục bộ của hàm "tinh_tong".
  • D. Lỗi ở dòng 4, phép gán "ket_qua" không hợp lệ.

Câu 10: Trong một chương trình lớn, việc sử dụng biến cục bộ thay vì biến toàn cục mang lại lợi ích gì?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Giảm khả năng xung đột tên biến và tăng tínhModular hóa.
  • C. Tiết kiệm bộ nhớ.
  • D. Cho phép truy cập biến từ nhiều chương trình khác nhau.

Câu 11: Xét đoạn mã:

def ham_a():
z = 7
def ham_b():
print(z)
ham_b()

print(z)

Hỏi dòng `print(z)` cuối cùng có gây ra lỗi không? Nếu có, đó là lỗi gì?

  • A. Không lỗi, in ra giá trị 7.
  • B. Có lỗi NameError, vì "z" không được định nghĩa trong phạm vi toàn cục.
  • C. Có lỗi TypeError, vì "z" có kiểu dữ liệu không phù hợp.
  • D. Có lỗi SyntaxError, vì cấu trúc hàm không đúng.

Câu 12: Cho chương trình Python sau:

x = 100

def ham_c():
x = 200
def ham_d():
nonlocal x
x = 300
ham_d()
print(x)

ham_c()
print(x)

Kết quả in ra của chương trình là gì?

  • A. 200
    100
  • B. 300
    100
  • C. 300
    200
  • D. Lỗi vì nonlocal không được dùng ở phạm vi toàn cục

Câu 13: Biến nào có "thời gian sống" dài nhất trong chương trình Python?

  • A. Biến toàn cục.
  • B. Biến cục bộ.
  • C. Tham số của hàm.
  • D. Biến nonlocal.

Câu 14: Trong tình huống nào sau đây, việc sử dụng biến toàn cục là phù hợp nhất?

  • A. Khi biến chỉ được sử dụng trong một hàm duy nhất.
  • B. Để đếm số lần một vòng lặp được thực hiện.
  • C. Khi cần chia sẻ dữ liệu giữa nhiều hàm khác nhau trong chương trình.
  • D. Để lưu trữ giá trị tạm thời trong một phép tính.

Câu 15: Điều gì sẽ xảy ra khi bạn gán giá trị cho một biến mà không khai báo nó trong một hàm Python?

  • A. Lỗi NameError sẽ xảy ra.
  • B. Python sẽ coi đó là một biến cục bộ mới trong hàm.
  • C. Python sẽ tìm kiếm biến toàn cục có cùng tên và gán giá trị cho nó.
  • D. Chương trình sẽ không thực thi được.

Câu 16: Cho đoạn mã:

def ham_e():
m = 50
return m

print(ham_e())
print(m)

Kết quả đoạn mã trên sẽ như thế nào?

  • A. 50
    50
  • B. 50
    None
  • C. 50
    Giá trị mặc định của m
  • D. In ra 50, sau đó gây lỗi NameError ở dòng cuối.

Câu 17: Trong Python, các tham số được định nghĩa trong dấu ngoặc đơn của định nghĩa hàm có phạm vi như thế nào?

  • A. Toàn cục.
  • B. Cục bộ trong hàm.
  • C. Có thể truy cập từ bất kỳ hàm nào khác.
  • D. Phạm vi phụ thuộc vào nơi hàm được gọi.

Câu 18: Xét đoạn mã:

def ham_f(p):
p = p + 10
print(p)

q = 5
ham_f(q)
print(q)

Giá trị nào sẽ được in ra?

  • A. 15
    15
  • B. 5
    15
  • C. 15
    5
  • D. Lỗi vì tham số p không được khai báo bên ngoài hàm

Câu 19: Mục đích chính của việc phân chia phạm vi biến (cục bộ và toàn cục) trong lập trình là gì?

  • A. Để tăng hiệu suất chương trình.
  • B. Để giảm dung lượng bộ nhớ sử dụng.
  • C. Để làm cho mã chương trình ngắn gọn hơn.
  • D. Để quản lý tên biến và tránh xung đột tên, tăng tính tổ chức của mã.

Câu 20: Trong Python, điều gì xảy ra khi một biến cục bộ có cùng tên với một biến toàn cục?

  • A. Biến cục bộ sẽ che phủ (shadow) biến toàn cục trong phạm vi của hàm.
  • B. Biến toàn cục sẽ được ưu tiên sử dụng.
  • C. Python sẽ báo lỗi xung đột tên.
  • D. Hai biến này sẽ chia sẻ cùng một vùng nhớ.

Câu 21: Cho đoạn mã:

r = 10

def ham_g():
r = r + 5
print(r)

ham_g()

Đoạn mã này có chạy được không? Nếu không, tại sao?

  • A. Có, in ra 15.
  • B. Không, gây lỗi UnboundLocalError vì biến "r" cục bộ được tham chiếu trước khi gán.
  • C. Có, in ra 10.
  • D. Không, gây lỗi TypeError vì không thể cộng số với biến chưa xác định.

Câu 22: Để sửa lỗi trong đoạn mã ở Câu 21 và muốn hàm `ham_g` tăng giá trị của biến toàn cục `r` lên 5, bạn cần làm gì?

  • A. Thay "r = r + 5" bằng "r += 5".
  • B. Khai báo lại "r = 10" bên trong hàm "ham_g".
  • C. Thêm dòng "global r" vào đầu hàm "ham_g".
  • D. Không cần sửa, mã sẽ tự động hiểu là biến toàn cục.

Câu 23: Trong Python, biến nào được ưu tiên truy cập khi có cả biến cục bộ và biến toàn cục cùng tên trong một hàm?

  • A. Biến toàn cục.
  • B. Biến cục bộ.
  • C. Biến nào được khai báo trước.
  • D. Tùy thuộc vào kiểu dữ liệu của biến.

Câu 24: Phạm vi của biến nonlocal trong Python là gì?

  • A. Toàn cục.
  • B. Cục bộ trong hàm hiện tại.
  • C. Trong phạm vi của hàm bao ngoài gần nhất, không phải toàn cục.
  • D. Chỉ trong các vòng lặp và điều kiện.

Câu 25: Cho đoạn mã:

s = 0

def tinh_sum_chan(n):
s_cuc_bo = 0
for i in range(2, n + 1, 2):
s_cuc_bo += i
return s_cuc_bo

ket_qua_chan = tinh_sum_chan(10)
print(s_cuc_bo)

Đoạn mã này có lỗi không? Nếu có, lỗi gì?

  • A. Không có lỗi, in ra tổng các số chẵn từ 2 đến 10.
  • B. Có lỗi NameError, vì "s_cuc_bo" là biến cục bộ của hàm "tinh_sum_chan".
  • C. Có lỗi TypeError, vì không thể cộng số với biến chưa xác định.
  • D. Có lỗi SyntaxError, vì vòng lặp for không đúng cú pháp.

Câu 26: Khi nào biến cục bộ được tạo ra trong Python?

  • A. Khi chương trình bắt đầu chạy.
  • B. Trước khi hàm được gọi.
  • C. Khi hàm bắt đầu thực thi.
  • D. Sau khi hàm kết thúc thực thi.

Câu 27: Điều gì xảy ra với biến cục bộ sau khi hàm kết thúc thực thi?

  • A. Biến cục bộ trở thành biến toàn cục.
  • B. Biến cục bộ vẫn tồn tại và có thể truy cập từ lần gọi hàm tiếp theo.
  • C. Biến cục bộ được lưu vào bộ nhớ đệm để tái sử dụng.
  • D. Biến cục bộ bị hủy và bộ nhớ được giải phóng.

Câu 28: Trong Python, bạn có thể có các biến cục bộ có cùng tên trong các hàm khác nhau không?

  • A. Có, các biến cục bộ chỉ tồn tại trong phạm vi hàm của chúng.
  • B. Không, tên biến cục bộ phải là duy nhất trong toàn chương trình.
  • C. Chỉ khi các hàm này không được gọi cùng nhau.
  • D. Chỉ khi các biến này có kiểu dữ liệu khác nhau.

Câu 29: Cho đoạn mã:

x = "global"

def ham_h():
global x
y = "local"
x = x * 2
print(x)
print(y)

ham_h()
print(x)

Kết quả đầu ra là gì?

  • A. globalglobal
    local
    global
  • B. globalglobal
    local
    globalglobal
  • C. global
    local
    global
  • D. Lỗi vì không thể nhân chuỗi với số

Câu 30: Trong lập trình, việc hiểu rõ phạm vi của biến giúp tránh được loại lỗi nào?

  • A. Lỗi cú pháp (SyntaxError).
  • B. Lỗi kiểu dữ liệu (TypeError).
  • C. Lỗi liên quan đến truy cập biến không đúng phạm vi (ví dụ: NameError, UnboundLocalError).
  • D. Lỗi tràn bộ nhớ (MemoryError).

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, nó có phạm vi hoạt động như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 2: Xem xét đoạn mã Python sau:

def ham_ngoai():
x = 10
def ham_trong():
print(x)
ham_trong()

ham_ngoai()

Giá trị nào sẽ được in ra khi thực thi đoạn mã trên?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 3: Biến toàn cục trong Python được khai báo ở đâu?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 4: Cho đoạn mã Python:

x = 5

def thay_doi_x():
x = 10
print('Giá trị x trong hàm:', x)

thay_doi_x()
print('Giá trị x ngoài hàm:', x)

Đâu là kết quả đầu ra của đoạn mã này?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 5: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 6: Xem xét đoạn mã sau:

x = 20

def sua_doi_toan_cuc():
global x
x = 25

sua_doi_toan_cuc()
print(x)

Giá trị nào của x sẽ được in ra?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 7: Điều gì xảy ra nếu bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được khai báo?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 8: Phạm vi của một biến quyết định điều gì?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 9: Cho đoạn mã:

def tinh_tong(a, b):
c = a + b
return c

ket_qua = tinh_tong(5, 3)
print(c)

Đoạn mã này có lỗi không? Nếu có, lỗi ở dòng nào và vì sao?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 10: Trong một chương trình lớn, việc sử dụng biến cục bộ thay vì biến toàn cục mang lại lợi ích gì?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 11: Xét đoạn mã:

def ham_a():
z = 7
def ham_b():
print(z)
ham_b()

print(z)

Hỏi dòng `print(z)` cuối cùng có gây ra lỗi không? Nếu có, đó là lỗi gì?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 12: Cho chương trình Python sau:

x = 100

def ham_c():
x = 200
def ham_d():
nonlocal x
x = 300
ham_d()
print(x)

ham_c()
print(x)

Kết quả in ra của chương trình là gì?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 13: Biến nào có 'thời gian sống' dài nhất trong chương trình Python?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 14: Trong tình huống nào sau đây, việc sử dụng biến toàn cục là phù hợp nhất?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 15: Điều gì sẽ xảy ra khi bạn gán giá trị cho một biến mà không khai báo nó trong một hàm Python?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 16: Cho đoạn mã:

def ham_e():
m = 50
return m

print(ham_e())
print(m)

Kết quả đoạn mã trên sẽ như thế nào?

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 17: Trong Python, các tham số được định nghĩa trong dấu ngoặc đơn của định nghĩa hàm có phạm vi như thế nào?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 18: Xét đoạn mã:

def ham_f(p):
p = p + 10
print(p)

q = 5
ham_f(q)
print(q)

Giá trị nào sẽ được in ra?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 19: Mục đích chính của việc phân chia phạm vi biến (cục bộ và toàn cục) trong lập trình là gì?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 20: Trong Python, điều gì xảy ra khi một biến cục bộ có cùng tên với một biến toàn cục?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 21: Cho đoạn mã:

r = 10

def ham_g():
r = r + 5
print(r)

ham_g()

Đoạn mã này có chạy được không? Nếu không, tại sao?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 22: Để sửa lỗi trong đoạn mã ở Câu 21 và muốn hàm `ham_g` tăng giá trị của biến toàn cục `r` lên 5, bạn cần làm gì?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 23: Trong Python, biến nào được ưu tiên truy cập khi có cả biến cục bộ và biến toàn cục cùng tên trong một hàm?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 24: Phạm vi của biến nonlocal trong Python là gì?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 25: Cho đoạn mã:

s = 0

def tinh_sum_chan(n):
s_cuc_bo = 0
for i in range(2, n + 1, 2):
s_cuc_bo += i
return s_cuc_bo

ket_qua_chan = tinh_sum_chan(10)
print(s_cuc_bo)

Đoạn mã này có lỗi không? Nếu có, lỗi gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 26: Khi nào biến cục bộ được tạo ra trong Python?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 27: Điều gì xảy ra với biến cục bộ sau khi hàm kết thúc thực thi?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 28: Trong Python, bạn có thể có các biến cục bộ có cùng tên trong các hàm khác nhau không?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 29: Cho đoạn mã:

x = 'global'

def ham_h():
global x
y = 'local'
x = x * 2
print(x)
print(y)

ham_h()
print(x)

Kết quả đầu ra là gì?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 3

Câu 30: Trong lập trình, việc hiểu rõ phạm vi của biến giúp tránh được loại lỗi nào?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 04

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, biến nào được gọi là biến cục bộ?

  • A. Biến được khai báo ở đầu chương trình.
  • B. Biến được khai báo bên trong một hàm.
  • C. Biến có thể truy cập từ bất kỳ đâu trong chương trình.
  • D. Biến được sử dụng để lưu trữ dữ liệu toàn chương trình.

Câu 2: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó trong Python?

  • A. Biến sẽ tự động trở thành biến toàn cục.
  • B. Chương trình sẽ tiếp tục chạy nhưng giá trị biến sẽ là None.
  • C. Python sẽ báo lỗi NameError.
  • D. Giá trị của biến sẽ được trả về từ phạm vi gần nhất.

Câu 3: Xem xét đoạn mã Python sau:
```python
def ham_test():
x = 10
print(x)
print(x)```
Điều gì sẽ xảy ra khi chạy đoạn mã này?

  • A. Chương trình in ra hai lần số 10.
  • B. Chương trình in ra số 10 một lần.
  • C. Chương trình chạy mà không có lỗi và không in ra gì.
  • D. Chương trình báo lỗi NameError ở dòng `print(x)` thứ hai.

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo một biến toàn cục bên trong một hàm?

  • A. global
  • B. local
  • C. def
  • D. variable

Câu 5: Đoạn mã Python sau sẽ in ra giá trị nào:
```python
x = 20
def ham_moi():
x = 5
print(x)
ham_moi()
print(x)```

  • A. 20
    20
  • B. 5
    5
  • C. 5
    20
  • D. 20
    5

Câu 6: Biến toàn cục có phạm vi hoạt động như thế nào trong chương trình Python?

  • A. Chỉ trong hàm mà nó được khai báo.
  • B. Chỉ trong các hàm được gọi sau khi nó được khai báo.
  • C. Chỉ trong phần chương trình chính (ngoài hàm).
  • D. Trong toàn bộ chương trình, bao gồm cả bên trong và bên ngoài các hàm.

Câu 7: Cho đoạn mã:
```python
def tinh_tong(a, b):
c = a + b
return c
ket_qua = tinh_tong(3, 7)
print(c)```
Điều gì xảy ra khi chạy mã này?

  • A. In ra giá trị 10.
  • B. Báo lỗi NameError vì biến "c" không được định nghĩa trong phạm vi toàn cục.
  • C. In ra giá trị None.
  • D. In ra giá trị ngẫu nhiên.

Câu 8: Trong tình huống nào bạn nên sử dụng biến toàn cục thay vì biến cục bộ?

  • A. Khi bạn muốn biến chỉ được sử dụng trong một hàm cụ thể.
  • B. Khi bạn muốn tối ưu hóa hiệu suất chương trình.
  • C. Khi bạn muốn biến được chia sẻ và truy cập bởi nhiều hàm khác nhau trong chương trình.
  • D. Không bao giờ nên sử dụng biến toàn cục vì chúng gây ra lỗi.

Câu 9: Xem xét đoạn mã:
```python
count = 0
def increment():
count = count + 1
increment()
print(count)```
Đoạn mã này có lỗi gì về phạm vi biến?

  • A. Lỗi UnboundLocalError vì biến "count" được gán giá trị trước khi được tham chiếu trong hàm.
  • B. Chương trình chạy và in ra giá trị 1.
  • C. Chương trình chạy và in ra giá trị 0.
  • D. Lỗi TypeError vì không thể cộng số với biến.

Câu 10: Để sửa lỗi trong đoạn mã ở Câu 9 và tăng giá trị biến toàn cục "count" trong hàm "increment", bạn cần làm gì?

  • A. Thay đổi tên biến "count" trong hàm thành "local_count".
  • B. Thêm dòng `global count` vào đầu hàm "increment".
  • C. Xóa biến "count = 0" bên ngoài hàm.
  • D. Không thể sửa được lỗi này.

Câu 11: Đoạn mã Python nào sau đây minh họa việc sử dụng biến toàn cục đúng cách?

  • A. ```python
    def ham_a():
    global y = 10```
  • B. ```python
    def ham_b(global z):
    z = 20```
  • C. ```python
    x = 5
    def ham_c():
    global x
    x = x + 1```
  • D. ```python
    def ham_d():
    x = global 30```

Câu 12: Điều gì là lợi ích chính của việc sử dụng biến cục bộ?

  • A. Giúp chương trình chạy nhanh hơn.
  • B. Giảm thiểu việc sử dụng bộ nhớ.
  • C. Cho phép truy cập biến từ mọi nơi trong chương trình.
  • D. Tăng tính mô đun hóa và giảm xung đột tên biến, làm cho code dễ bảo trì hơn.

Câu 13: Xét đoạn mã:
```python
def ham_ngoai():
z = 15
def ham_trong():
print(z)
ham_trong()
ham_ngoai()```
Biến "z" trong "ham_trong" được gọi là biến gì?

  • A. Biến toàn cục
  • B. Biến cục bộ của "ham_trong"
  • C. Biến không cục bộ (non-local) hoặc biến bao quanh
  • D. Biến không xác định

Câu 14: Phạm vi LEGB trong Python là viết tắt của những phạm vi nào?

  • A. Local, Enclosing, Global, Built-in Functions
  • B. Local, Enclosing function locals, Global, Built-in
  • C. Limited, External, Global, Basic
  • D. Logical, Executable, General, Binary

Câu 15: Trong phạm vi LEGB, phạm vi nào được Python tìm kiếm đầu tiên khi tham chiếu đến một biến?

  • A. Local
  • B. Enclosing function locals
  • C. Global
  • D. Built-in

Câu 16: Cho đoạn mã:
```python
a = 100
def ham_x():
a = 50
def ham_y():
nonlocal a
a = 25
ham_y()
print(a)
ham_x()
print(a)```
Đoạn mã này in ra giá trị nào?

  • A. 50
    100
  • B. 25
    25
  • C. 25
    100
  • D. 50
    50

Câu 17: Mục đích của từ khóa `nonlocal` trong Python là gì?

  • A. Khai báo biến toàn cục trong hàm.
  • B. Tham chiếu và sửa đổi biến trong phạm vi bao quanh gần nhất (không phải toàn cục).
  • C. Tạo ra một biến cục bộ có phạm vi rộng hơn.
  • D. Ngăn chặn việc sửa đổi biến bên ngoài hàm.

Câu 18: Biến "built-in" trong phạm vi LEGB là gì?

  • A. Biến được xây dựng bởi người dùng.
  • B. Biến được nhập từ các thư viện bên ngoài.
  • C. Biến cục bộ đặc biệt.
  • D. Các tên được định nghĩa sẵn trong Python như `print`, `len`, `int`.

Câu 19: Điều gì xảy ra nếu một biến cục bộ có cùng tên với một biến toàn cục trong cùng một chương trình?

  • A. Biến toàn cục sẽ ghi đè biến cục bộ.
  • B. Python sẽ báo lỗi xung đột tên.
  • C. Trong phạm vi hàm, biến cục bộ sẽ được ưu tiên sử dụng.
  • D. Cả hai biến không thể tồn tại trong chương trình.

Câu 20: Trong ngữ cảnh hàm lồng nhau, phạm vi "enclosing" nằm ở đâu?

  • A. Bên ngoài tất cả các hàm.
  • B. Trong hàm ngoài nhưng bên ngoài hàm trong.
  • C. Bên trong hàm trong nhất.
  • D. Chỉ tồn tại trong chương trình chính.

Câu 21: Khi một hàm kết thúc thực thi, điều gì xảy ra với các biến cục bộ được khai báo bên trong nó?

  • A. Các biến cục bộ bị hủy và bộ nhớ được giải phóng.
  • B. Các biến cục bộ trở thành biến toàn cục.
  • C. Các biến cục bộ được giữ lại cho lần gọi hàm tiếp theo.
  • D. Giá trị của biến cục bộ được lưu vào bộ nhớ cache.

Câu 22: Đoạn mã nào sau đây thể hiện rõ nhất khái niệm về phạm vi cục bộ?

  • A. ```python
    x = 10
    print(x)```
  • B. ```python
    def my_func():
    y = 5
    print(y)
    my_func()
    # print(y) # Lỗi```
  • C. ```python
    global_var = 20
    def another_func():
    print(global_var)
    another_func()```
  • D. ```python
    import math
    print(math.pi)```

Câu 23: Tại sao việc hiểu rõ phạm vi của biến lại quan trọng trong lập trình?

  • A. Để viết code ngắn gọn hơn.
  • B. Để chương trình chạy nhanh hơn.
  • C. Để tránh lỗi không mong muốn do truy cập biến sai phạm vi và viết code có cấu trúc, dễ quản lý hơn.
  • D. Để sử dụng ít bộ nhớ hơn.

Câu 24: Cho đoạn mã:
```python
m = 50
def outer_func():
m = 30
def inner_func():
m = 10
print(m)
inner_func()
print(m)
outer_func()
print(m)```
Đoạn mã này in ra các giá trị nào theo thứ tự?

  • A. 10
    10
    10
  • B. 10
    30
    30
  • C. 30
    50
    10
  • D. 10
    30
    50

Câu 25: Trong Python, nếu bạn muốn sửa đổi một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào?

  • A. global
  • B. nonlocal
  • C. local
  • D. static

Câu 26: Biến nào có phạm vi rộng nhất trong một chương trình Python?

  • A. Biến cục bộ
  • B. Biến không cục bộ (nonlocal)
  • C. Biến toàn cục
  • D. Biến built-in

Câu 27: Điều gì sẽ xảy ra nếu bạn khai báo một biến bên trong một khối lệnh `if` hoặc `for` trong Python?

  • A. Biến đó chỉ có phạm vi trong khối lệnh đó.
  • B. Biến đó có phạm vi trong hàm hoặc module chứa khối lệnh đó.
  • C. Python sẽ báo lỗi vì không được khai báo biến trong khối lệnh.
  • D. Biến đó trở thành biến toàn cục.

Câu 28: Xem xét mã:
```python
def func1():
message =

  • A. Phạm vi cục bộ của func2
  • B. Phạm vi bao quanh (enclosing) của func1
  • C. Phạm vi toàn cục
  • D. Phạm vi built-in

Câu 29: Trong Python, bạn có thể có nhiều biến cục bộ khác nhau với cùng một tên, miễn là chúng nằm trong...

  • A. Cùng một hàm
  • B. Cùng một module
  • C. Cùng một chương trình
  • D. Các hàm khác nhau

Câu 30: Điều gì KHÔNG phải là một lợi ích của việc sử dụng phạm vi biến một cách hợp lý?

  • A. Tăng tốc độ thực thi chương trình đáng kể.
  • B. Giảm khả năng xảy ra lỗi do xung đột tên biến.
  • C. Code trở nên dễ đọc và dễ bảo trì hơn.
  • D. Tăng tính mô đun hóa của code.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 1: Trong Python, biến nào được gọi là biến cục bộ?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 2: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó trong Python?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 3: Xem xét đoạn mã Python sau:
```python
def ham_test():
x = 10
print(x)
print(x)```
Điều gì sẽ xảy ra khi chạy đoạn mã này?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo một biến toàn cục bên trong một hàm?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 5: Đoạn mã Python sau sẽ in ra giá trị nào:
```python
x = 20
def ham_moi():
x = 5
print(x)
ham_moi()
print(x)```

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 6: Biến toàn cục có phạm vi hoạt động như thế nào trong chương trình Python?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 7: Cho đoạn mã:
```python
def tinh_tong(a, b):
c = a + b
return c
ket_qua = tinh_tong(3, 7)
print(c)```
Điều gì xảy ra khi chạy mã này?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 8: Trong tình huống nào bạn nên sử dụng biến toàn cục thay vì biến cục bộ?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 9: Xem xét đoạn mã:
```python
count = 0
def increment():
count = count + 1
increment()
print(count)```
Đoạn mã này có lỗi gì về phạm vi biến?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 10: Để sửa lỗi trong đoạn mã ở Câu 9 và tăng giá trị biến toàn cục 'count' trong hàm 'increment', bạn cần làm gì?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 11: Đoạn mã Python nào sau đây minh họa việc sử dụng biến toàn cục đúng cách?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 12: Điều gì là lợi ích chính của việc sử dụng biến cục bộ?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 13: Xét đoạn mã:
```python
def ham_ngoai():
z = 15
def ham_trong():
print(z)
ham_trong()
ham_ngoai()```
Biến 'z' trong 'ham_trong' được gọi là biến gì?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 14: Phạm vi LEGB trong Python là viết tắt của những phạm vi nào?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 15: Trong phạm vi LEGB, phạm vi nào được Python tìm kiếm đầu tiên khi tham chiếu đến một biến?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 16: Cho đoạn mã:
```python
a = 100
def ham_x():
a = 50
def ham_y():
nonlocal a
a = 25
ham_y()
print(a)
ham_x()
print(a)```
Đoạn mã này in ra giá trị nào?

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 17: Mục đích của từ khóa `nonlocal` trong Python là gì?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 18: Biến 'built-in' trong phạm vi LEGB là gì?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 19: Điều gì xảy ra nếu một biến cục bộ có cùng tên với một biến toàn cục trong cùng một chương trình?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 20: Trong ngữ cảnh hàm lồng nhau, phạm vi 'enclosing' nằm ở đâu?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 21: Khi một hàm kết thúc thực thi, điều gì xảy ra với các biến cục bộ được khai báo bên trong nó?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 22: Đoạn mã nào sau đây thể hiện rõ nhất khái niệm về phạm vi cục bộ?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 23: Tại sao việc hiểu rõ phạm vi của biến lại quan trọng trong lập trình?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 24: Cho đoạn mã:
```python
m = 50
def outer_func():
m = 30
def inner_func():
m = 10
print(m)
inner_func()
print(m)
outer_func()
print(m)```
Đoạn mã này in ra các giá trị nào theo thứ tự?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 25: Trong Python, nếu bạn muốn sửa đổi một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 26: Biến nào có phạm vi rộng nhất trong một chương trình Python?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 27: Điều gì sẽ xảy ra nếu bạn khai báo một biến bên trong một khối lệnh `if` hoặc `for` trong Python?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 28: Xem xét mã:
```python
def func1():
message = "Hello"
def func2():
print(message)
func2()
func1()```
'message' trong 'func2' thuộc phạm vi nào?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 29: Trong Python, bạn có thể có nhiều biến cục bộ khác nhau với cùng một tên, miễn là chúng nằm trong...

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 4

Câu 30: Điều gì KHÔNG phải là một lợi ích của việc sử dụng phạm vi biến một cách hợp lý?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 05

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Biến nào sau đây có phạm vi cục bộ trong một hàm Python?

  • A. Biến được khai báo bằng từ khóa `global` bên trong hàm.
  • B. Biến được khai báo bên trong hàm mà không có từ khóa `global`.
  • C. Biến được khai báo ở đầu chương trình, trước tất cả các hàm.
  • D. Biến được truyền vào hàm như một tham số.

Câu 2: Xem xét đoạn mã Python sau:
```python
x = 10

def my_function():
y = 5
print(x + y)

my_function()
print(y) # Dòng này gây lỗi
```
Dòng lệnh nào sẽ gây ra lỗi và tại sao?

  • A. Dòng `print(y)` sẽ gây lỗi vì biến `y` có phạm vi cục bộ trong hàm `my_function`.
  • B. Dòng `print(x + y)` sẽ gây lỗi vì không thể cộng biến toàn cục `x` với biến cục bộ `y`.
  • C. Chương trình sẽ chạy mà không có lỗi vì Python tự động mở rộng phạm vi của `y`.
  • D. Dòng `def my_function():` sẽ gây lỗi vì thiếu tham số đầu vào.

Câu 3: Trong Python, từ khóa nào được sử dụng để khai báo một biến toàn cục bên trong một hàm?

  • A. `local`
  • B. `def`
  • C. `global`
  • D. `external`

Câu 4: Cho đoạn mã Python:
```python
count = 0

def increment():
count += 1
print(count)

increment()
```
Đoạn mã này khi chạy sẽ:

  • A. In ra `1`
  • B. In ra `0`
  • C. In ra `2`
  • D. Báo lỗi `UnboundLocalError`

Câu 5: Để sửa lỗi trong đoạn mã ở Câu 4 và cho phép hàm `increment` thay đổi giá trị biến `count` toàn cục, bạn cần thêm dòng lệnh nào vào đầu hàm `increment`?

  • A. `local count`
  • B. `global count`
  • C. `return count`
  • D. `count = global`

Câu 6: Xét chương trình Python sau:
```python
def outer_function():
message = "Hello"

def inner_function():
nonlocal message
message = "World"

inner_function()
return message

print(outer_function())
```
Kết quả in ra màn hình là gì?

  • A. `Hello`
  • B. `Error`
  • C. `World`
  • D. `Hello World`

Câu 7: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó trong Python?

  • A. Python sẽ tự động tạo một biến toàn cục mới với tên đó.
  • B. Python sẽ báo lỗi `NameError`.
  • C. Python sẽ sử dụng giá trị mặc định của biến (nếu có).
  • D. Chương trình sẽ tiếp tục chạy nhưng có thể cho kết quả không mong muốn.

Câu 8: Trong ngữ cảnh phạm vi biến, "LEGB" là viết tắt của thứ tự phạm vi tìm kiếm biến trong Python. "G" trong "LEGB" đại diện cho:

  • A. Local
  • B. Enclosing function locals
  • C. Global
  • D. Built-in

Câu 9: Cho đoạn mã Python:
```python
def func1():
x = 5
def func2():
print(x)
func2()

func1()
```
Giá trị nào sẽ được in ra?

  • A. 5
  • B. Lỗi NameError
  • C. 0
  • D. Không có gì được in ra

Câu 10: Biến toàn cục được khai báo ở đâu trong chương trình Python?

  • A. Bên trong một hàm cụ thể.
  • B. Chỉ trong phần đầu của chương trình, sau các lệnh `import`.
  • C. Trong bất kỳ khối lệnh nào.
  • D. Bên ngoài tất cả các hàm và khối lệnh.

Câu 11: Xem xét đoạn mã:
```python
x = 20

def change_x(val):
x = val

change_x(10)
print(x)
```
Giá trị của `x` được in ra là bao nhiêu?

  • A. 10
  • B. Không có giá trị nào vì lỗi
  • C. 20
  • D. Một giá trị ngẫu nhiên

Câu 12: Trong Python, phạm vi nào có mức độ ưu tiên tìm kiếm biến cao nhất theo quy tắc LEGB?

  • A. Local (cục bộ)
  • B. Enclosing function locals (phạm vi hàm bao ngoài)
  • C. Global (toàn cục)
  • D. Built-in (tích hợp sẵn)

Câu 13: Hàm nào sau đây có thể truy cập và sửa đổi một biến toàn cục mà không cần từ khóa `global`?

  • A. Hàm cố gắng gán một giá trị mới cho biến toàn cục.
  • B. Hàm xóa biến toàn cục.
  • C. Không có hàm nào có thể làm điều này.
  • D. Hàm chỉ đọc giá trị của biến toàn cục.

Câu 14: Cho đoạn code:
```python
def scope_test():
def do_local():
spam =

  • A. `test spam`
  • B. `nonlocal spam`
  • C. `global spam`
  • D. `local spam`

Câu 15: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

  • A. Để tăng tốc độ thực thi chương trình.
  • B. Để tăng tính mô đun hóa và giảm tác dụng phụ không mong muốn trong chương trình.
  • C. Để tiết kiệm bộ nhớ.
  • D. Không có lợi ích cụ thể, chỉ là quy ước lập trình.

Câu 16: Trong Python, nếu một biến được gán giá trị bên trong một hàm, và một biến cùng tên tồn tại ở phạm vi toàn cục, thì biến nào sẽ được tham chiếu bên trong hàm đó?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Cả hai biến cùng lúc.
  • D. Tùy thuộc vào thứ tự khai báo.

Câu 17: Phạm vi của một biến xác định:

  • A. Kiểu dữ liệu của biến.
  • B. Thời gian tồn tại của biến trong bộ nhớ.
  • C. Vùng của chương trình nơi biến có thể được truy cập và sử dụng.
  • D. Giá trị lớn nhất mà biến có thể lưu trữ.

Câu 18: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

  • A. Chương trình sẽ báo lỗi vì trùng tên biến.
  • B. Không có lỗi, biến cục bộ sẽ che phủ biến toàn cục trong phạm vi hàm.
  • C. Biến toàn cục sẽ tự động đổi tên để tránh xung đột.
  • D. Python sẽ chọn ngẫu nhiên một trong hai biến để sử dụng.

Câu 19: Cho đoạn mã:
```python
def outer():
o_var = 10
def inner():
print(o_var)
inner()

outer()
```
Biến `o_var` trong hàm `inner()` có phạm vi là:

  • A. Local (cục bộ) của `inner()`
  • B. Enclosing function locals (phạm vi hàm bao ngoài) của `inner()`
  • C. Global (toàn cục)
  • D. Built-in (tích hợp sẵn)

Câu 20: Khi nào một biến được coi là có "thời gian sống" (lifetime) kết thúc trong Python?

  • A. Ngay sau khi biến được gán giá trị lần đầu.
  • B. Khi chương trình bắt đầu thực thi.
  • C. Đối với biến cục bộ, khi hàm chứa nó kết thúc; đối với biến toàn cục, khi chương trình kết thúc.
  • D. Khi biến không còn được sử dụng trong chương trình.

Câu 21: Xét đoạn mã sau:
```python
def function_a():
var_a = 10
print(var_a)

def function_b():
print(var_a) # Cố gắng truy cập var_a

function_a()
function_b()
```
Điều gì xảy ra khi chạy đoạn mã này?

  • A. In ra `10` hai lần.
  • B. In ra `10` và sau đó in ra `0`.
  • C. In ra `10` và sau đó in ra một giá trị ngẫu nhiên.
  • D. In ra `10` và sau đó báo lỗi `NameError` khi `function_b()` cố gắng truy cập `var_a`.

Câu 22: Trong Python, nếu bạn muốn thay đổi giá trị của một biến toàn cục bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến?

  • A. `local`
  • B. `global`
  • C. `nonlocal`
  • D. `var`

Câu 23: Biến nào có phạm vi rộng nhất trong một chương trình Python?

  • A. Biến cục bộ trong một hàm.
  • B. Biến trong phạm vi hàm bao ngoài.
  • C. Biến toàn cục.
  • D. Biến tích hợp sẵn (built-in).

Câu 24: Điều gì xảy ra khi bạn khai báo một biến bên trong một vòng lặp `for` trong Python?

  • A. Biến chỉ có phạm vi bên trong vòng lặp `for` và không thể truy cập bên ngoài nó.
  • B. Biến có phạm vi cục bộ với khối lệnh chứa vòng lặp `for` và có thể truy cập sau khi vòng lặp kết thúc trong phạm vi đó.
  • C. Biến trở thành biến toàn cục.
  • D. Python báo lỗi vì khai báo biến trong vòng lặp là không hợp lệ.

Câu 25: Cho đoạn mã:
```python
message =

  • A. `Global`
    `Global`
  • B. `Local`
    `Local`
  • C. `Local`
    `Global`
  • D. `Global`
    `Local`

Câu 26: Trong Python, nếu không tìm thấy biến trong phạm vi cục bộ và phạm vi bao ngoài, phạm vi nào sẽ được tìm kiếm tiếp theo theo quy tắc LEGB?

  • A. Built-in (tích hợp sẵn)
  • B. Global (toàn cục)
  • C. Phạm vi module
  • D. Phạm vi lớp (class)

Câu 27: Xét ví dụ:
```python
def outer_func():
count = 0
def inner_func():
count += 1 # Dự định sửa biến "count" của outer_func
return count
return inner_func()

print(outer_func())
```
Đoạn mã này sẽ:

  • A. In ra `1`
  • B. In ra `0`
  • C. In ra `-1`
  • D. Báo lỗi `UnboundLocalError`

Câu 28: Để khắc phục lỗi trong Câu 27, bạn cần sử dụng từ khóa nào trong `inner_func()` trước biến `count`?

  • A. `local`
  • B. `global`
  • C. `nonlocal`
  • D. `enclosing`

Câu 29: Biến tích hợp sẵn (built-in) trong Python có phạm vi là:

  • A. Cục bộ (Local)
  • B. Toàn cục (Global)
  • C. Phạm vi hàm bao ngoài (Enclosing)
  • D. Rộng nhất, có sẵn ở mọi nơi trong chương trình (Built-in)

Câu 30: Trong trường hợp nào thì việc sử dụng biến toàn cục được khuyến cáo hạn chế trong lập trình?

  • A. Khiến chương trình trở nên khó đọc, khó bảo trì và dễ phát sinh lỗi do tác dụng phụ không mong muốn.
  • B. Làm chậm tốc độ thực thi chương trình.
  • C. Gây lãng phí bộ nhớ.
  • D. Không có trường hợp nào nên hạn chế biến toàn cục, chúng luôn hữu ích.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 1: Biến nào sau đây có phạm vi cục bộ trong một hàm Python?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 2: Xem xét đoạn mã Python sau:
```python
x = 10

def my_function():
y = 5
print(x + y)

my_function()
print(y) # Dòng này gây lỗi
```
Dòng lệnh nào sẽ gây ra lỗi và tại sao?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 3: Trong Python, từ khóa nào được sử dụng để khai báo một biến toàn cục bên trong một hàm?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 4: Cho đoạn mã Python:
```python
count = 0

def increment():
count += 1
print(count)

increment()
```
Đoạn mã này khi chạy sẽ:

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 5: Để sửa lỗi trong đoạn mã ở Câu 4 và cho phép hàm `increment` thay đổi giá trị biến `count` toàn cục, bạn cần thêm dòng lệnh nào vào đầu hàm `increment`?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 6: Xét chương trình Python sau:
```python
def outer_function():
message = 'Hello'

def inner_function():
nonlocal message
message = 'World'

inner_function()
return message

print(outer_function())
```
Kết quả in ra màn hình là gì?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 7: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó trong Python?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 8: Trong ngữ cảnh phạm vi biến, 'LEGB' là viết tắt của thứ tự phạm vi tìm kiếm biến trong Python. 'G' trong 'LEGB' đại diện cho:

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 9: Cho đoạn mã Python:
```python
def func1():
x = 5
def func2():
print(x)
func2()

func1()
```
Giá trị nào sẽ được in ra?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 10: Biến toàn cục được khai báo ở đâu trong chương trình Python?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 11: Xem xét đoạn mã:
```python
x = 20

def change_x(val):
x = val

change_x(10)
print(x)
```
Giá trị của `x` được in ra là bao nhiêu?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 12: Trong Python, phạm vi nào có mức độ ưu tiên tìm kiếm biến cao nhất theo quy tắc LEGB?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 13: Hàm nào sau đây có thể truy cập và sửa đổi một biến toàn cục mà không cần từ khóa `global`?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 14: Cho đoạn code:
```python
def scope_test():
def do_local():
spam = "local spam"

def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"

def do_global():
global spam
spam = "global spam"

spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)

scope_test()
print("In global scope:", spam)
```
Giá trị của `spam` sau khi gọi `scope_test()` và in ra ở phạm vi toàn cục là gì?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 15: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 16: Trong Python, nếu một biến được gán giá trị bên trong một hàm, và một biến cùng tên tồn tại ở phạm vi toàn cục, thì biến nào sẽ được tham chiếu bên trong hàm đó?

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 17: Phạm vi của một biến xác định:

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 18: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 19: Cho đoạn mã:
```python
def outer():
o_var = 10
def inner():
print(o_var)
inner()

outer()
```
Biến `o_var` trong hàm `inner()` có phạm vi là:

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 20: Khi nào một biến được coi là có 'thời gian sống' (lifetime) kết thúc trong Python?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 21: Xét đoạn mã sau:
```python
def function_a():
var_a = 10
print(var_a)

def function_b():
print(var_a) # Cố gắng truy cập var_a

function_a()
function_b()
```
Điều gì xảy ra khi chạy đoạn mã này?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 22: Trong Python, nếu bạn muốn thay đổi giá trị của một biến toàn cục bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 23: Biến nào có phạm vi rộng nhất trong một chương trình Python?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 24: Điều gì xảy ra khi bạn khai báo một biến bên trong một vòng lặp `for` trong Python?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 25: Cho đoạn mã:
```python
message = "Global"

def printer():
message = "Local"
print(message)

printer()
print(message)
```
Đoạn mã trên in ra kết quả gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 26: Trong Python, nếu không tìm thấy biến trong phạm vi cục bộ và phạm vi bao ngoài, phạm vi nào sẽ được tìm kiếm tiếp theo theo quy tắc LEGB?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 27: Xét ví dụ:
```python
def outer_func():
count = 0
def inner_func():
count += 1 # Dự định sửa biến 'count' của outer_func
return count
return inner_func()

print(outer_func())
```
Đoạn mã này sẽ:

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 28: Để khắc phục lỗi trong Câu 27, bạn cần sử dụng từ khóa nào trong `inner_func()` trước biến `count`?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 29: Biến tích hợp sẵn (built-in) trong Python có phạm vi là:

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 5

Câu 30: Trong trường hợp nào thì việc sử dụng biến toàn cục được khuyến cáo hạn chế trong lập trình?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 06

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 06 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, biến nào được khai báo bên ngoài bất kỳ hàm nào được gọi là?

  • A. Biến cục bộ
  • B. Biến toàn cục
  • C. Biến hàm
  • D. Biến đối số

Câu 2: Phạm vi của biến cục bộ được giới hạn ở đâu?

  • A. Toàn bộ chương trình
  • B. Các hàm khác nhau trong chương trình
  • C. Khối mã mà nó được khai báo (ví dụ: bên trong hàm)
  • D. Chỉ trong câu lệnh khai báo biến

Câu 3: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

  • A. Lỗi `NameError` sẽ xảy ra
  • B. Giá trị mặc định của biến sẽ được sử dụng
  • C. Chương trình sẽ tiếp tục chạy nhưng có thể cho kết quả sai
  • D. Biến toàn cục cùng tên sẽ được tự động sử dụng

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

  • A. local
  • B. def
  • C. static
  • D. global

Câu 5: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
x = 20
print(x)
my_function()
print(x)
```
Đoạn mã này sẽ in ra giá trị nào?

  • A. 10
    10
  • B. 20
    20
  • C. 20
    10
  • D. 10
    20

Câu 6: Cho đoạn mã:
```python
def outer_function():
y = 5
def inner_function():
print(y)
inner_function()
outer_function()
```
Giá trị nào sẽ được in ra?

  • A. Lỗi `NameError`
  • B. 5
  • C. Không có gì được in ra
  • D. Một giá trị ngẫu nhiên

Câu 7: Trong Python, thứ tự ưu tiên tìm kiếm biến khi gặp một tên biến là gì (LEGB)?

  • A. Global, Local, Enclosing, Built-in
  • B. Built-in, Global, Enclosing, Local
  • C. Local, Enclosing function locals, Global, Built-in
  • D. Enclosing, Local, Global, Built-in

Câu 8: Điều gì sẽ xảy ra nếu một biến cục bộ và một biến toàn cục có cùng tên trong một chương trình?

  • A. Lỗi `NameError`
  • B. Biến cục bộ sẽ được ưu tiên sử dụng trong phạm vi cục bộ
  • C. Biến toàn cục sẽ được ưu tiên sử dụng
  • D. Python sẽ đổi tên một trong hai biến để tránh xung đột

Câu 9: Xem xét mã:
```python
z = 15
def change_global():
global z
z = 25
change_global()
print(z)
```
Giá trị nào được in ra cho `z`?

  • A. 15
  • B. Giá trị không xác định
  • C. Lỗi `SyntaxError`
  • D. 25

Câu 10: Biến `n` trong hàm `my_function` sau là biến gì?
```python
def my_function(n):
m = n + 5
return m
```

  • A. Biến toàn cục
  • B. Biến cục bộ
  • C. Biến built-in
  • D. Không phải là biến

Câu 11: Đoạn code sau in ra kết quả gì?
```python
a = 50
def funct():
a = 100
print(a)
funct()
print(a)```

  • A. 50
    50
  • B. 100
    100
  • C. 100
    50
  • D. 50
    100

Câu 12: Điều gì xảy ra khi bạn khai báo một biến bên trong một vòng lặp `for` hoặc `while` trong một hàm?

  • A. Biến đó là biến cục bộ của hàm
  • B. Biến đó là biến cục bộ của vòng lặp và không thể truy cập bên ngoài vòng lặp
  • C. Biến đó trở thành biến toàn cục
  • D. Lỗi sẽ xảy ra vì không thể khai báo biến trong vòng lặp

Câu 13: Cho đoạn mã:
```python
def ham_ngoai():
x =

  • A.
  • B.
  • C. Lỗi `NameError`
  • D. Không có gì được in ra

Câu 14: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

  • A. Để chương trình chạy nhanh hơn
  • B. Để tiết kiệm bộ nhớ
  • C. Để tăng tính mô đun hóa và giảm tác dụng phụ
  • D. Để làm cho code dễ đọc hơn (trong mọi trường hợp)

Câu 15: Trong ngữ cảnh phạm vi biến, "enclosing" (bao quanh) đề cập đến phạm vi nào?

  • A. Phạm vi toàn cục
  • B. Phạm vi cục bộ
  • C. Phạm vi built-in
  • D. Phạm vi của hàm bao ngoài một hàm khác (nested function)

Câu 16: Xem xét đoạn mã sau và cho biết giá trị của `y` sau khi thực hiện đoạn mã:
```python
def func1():
x = 5
def func2():
nonlocal x
x = 10
func2()
return x
y = func1()
print(y)```

  • A. 5
  • B. 10
  • C. Lỗi
  • D. Không xác định

Câu 17: Biến toàn cục được tạo ra khi nào?

  • A. Khi chúng được khai báo bên ngoài bất kỳ hàm nào
  • B. Khi chúng được khai báo bên trong một hàm sử dụng từ khóa `global`
  • C. Khi một biến cục bộ được sử dụng lần đầu tiên
  • D. Biến toàn cục không cần phải được tạo ra

Câu 18: Hàm `globals()` trong Python trả về cái gì?

  • A. Một danh sách các biến cục bộ
  • B. Một chuỗi chứa tên tất cả các biến toàn cục
  • C. Một dictionary đại diện cho bảng ký hiệu toàn cục
  • D. Một đối tượng đặc biệt không thể truy cập trực tiếp

Câu 19: Hàm `locals()` trong Python trả về cái gì?

  • A. Một danh sách các biến toàn cục
  • B. Một dictionary đại diện cho bảng ký hiệu cục bộ
  • C. Một chuỗi chứa tên tất cả các biến cục bộ
  • D. Trả về `None` nếu không có biến cục bộ

Câu 20: Điều gì xảy ra nếu bạn gán giá trị cho một biến mà không khai báo nó trong một hàm?

  • A. Lỗi `SyntaxError`
  • B. Biến được coi là biến toàn cục
  • C. Giá trị sẽ bị bỏ qua
  • D. Biến được coi là biến cục bộ trong hàm

Câu 21: Cho đoạn mã:
```python
def function_a():
val = 10
def function_b():
val = 20
print(val)
function_b()
print(val)
function_a()```
Kết quả in ra là?

  • A. 10
    10
  • B. 20
    20
  • C. 20
    10
  • D. 10
    20

Câu 22: Để sửa đổi một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến?

  • A. local
  • B. global
  • C. nonlocal
  • D. static

Câu 23: Phạm vi nào có mức độ ưu tiên tìm kiếm biến cao nhất theo quy tắc LEGB?

  • A. Local (Cục bộ)
  • B. Enclosing (Bao quanh)
  • C. Global (Toàn cục)
  • D. Built-in (Tích hợp sẵn)

Câu 24: Phạm vi nào có mức độ ưu tiên tìm kiếm biến thấp nhất theo quy tắc LEGB?

  • A. Local (Cục bộ)
  • B. Enclosing (Bao quanh)
  • C. Global (Toàn cục)
  • D. Built-in (Tích hợp sẵn)

Câu 25: Biến nào có thể được truy cập từ bất kỳ đâu trong chương trình mà không cần khai báo `global`?

  • A. Biến cục bộ
  • B. Biến toàn cục (trong mọi trường hợp)
  • C. Biến built-in
  • D. Không có loại biến nào như vậy

Câu 26: Cho đoạn mã:
```python
count = 0
def increment():
count += 1
increment()
print(count)```
Đoạn mã này có lỗi không? Nếu có, lỗi gì?

  • A. Không có lỗi, in ra 1
  • B. Có lỗi `UnboundLocalError`
  • C. Có lỗi `TypeError`
  • D. Có lỗi `SyntaxError`

Câu 27: Làm thế nào để sửa lỗi trong đoạn mã ở Câu 26 để nó tăng biến `count` toàn cục?

  • A. Thay `count += 1` bằng `count = count + 1`
  • B. Khai báo `count = 0` bên trong hàm `increment`
  • C. Thêm `global count` vào đầu hàm `increment`
  • D. Không thể sửa lỗi này

Câu 28: Trong Python, phạm vi của biến được xác định chủ yếu bởi...

  • A. Kiểu dữ liệu của biến
  • B. Tên của biến
  • C. Thời điểm chạy chương trình
  • D. Vị trí khai báo biến trong mã nguồn

Câu 29: Điều gì xảy ra nếu bạn sử dụng `nonlocal` trong một hàm không lồng nhau?

  • A. Lỗi `SyntaxError`
  • B. Nó sẽ được coi như `global`
  • C. Nó sẽ không có tác dụng gì
  • D. Lỗi `NameError`

Câu 30: Cho đoạn mã:
```python
def outer():
message =

  • A. Global
    Global
    Global
  • B. Local
    Local
    Global
  • C. Local
    Global
    Global
  • D. Global
    Local
    Global

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 1: Trong Python, biến nào được khai báo bên ngoài bất kỳ hàm nào được gọi là?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 2: Phạm vi của biến cục bộ được giới hạn ở đâu?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 3: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 5: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
x = 20
print(x)
my_function()
print(x)
```
Đoạn mã này sẽ in ra giá trị nào?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 6: Cho đoạn mã:
```python
def outer_function():
y = 5
def inner_function():
print(y)
inner_function()
outer_function()
```
Giá trị nào sẽ được in ra?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 7: Trong Python, thứ tự ưu tiên tìm kiếm biến khi gặp một tên biến là gì (LEGB)?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 8: Điều gì sẽ xảy ra nếu một biến cục bộ và một biến toàn cục có cùng tên trong một chương trình?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 9: Xem xét mã:
```python
z = 15
def change_global():
global z
z = 25
change_global()
print(z)
```
Giá trị nào được in ra cho `z`?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 10: Biến `n` trong hàm `my_function` sau là biến gì?
```python
def my_function(n):
m = n + 5
return m
```

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 11: Đoạn code sau in ra kết quả gì?
```python
a = 50
def funct():
a = 100
print(a)
funct()
print(a)```

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 12: Điều gì xảy ra khi bạn khai báo một biến bên trong một vòng lặp `for` hoặc `while` trong một hàm?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 13: Cho đoạn mã:
```python
def ham_ngoai():
x = "ngoai"
def ham_trong():
nonlocal x
x = "trong"
ham_trong()
return x
print(ham_ngoai())```
Kết quả in ra là gì?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 14: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 15: Trong ngữ cảnh phạm vi biến, 'enclosing' (bao quanh) đề cập đến phạm vi nào?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 16: Xem xét đoạn mã sau và cho biết giá trị của `y` sau khi thực hiện đoạn mã:
```python
def func1():
x = 5
def func2():
nonlocal x
x = 10
func2()
return x
y = func1()
print(y)```

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 17: Biến toàn cục được tạo ra khi nào?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 18: Hàm `globals()` trong Python trả về cái gì?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 19: Hàm `locals()` trong Python trả về cái gì?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 20: Điều gì xảy ra nếu bạn gán giá trị cho một biến mà không khai báo nó trong một hàm?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 21: Cho đoạn mã:
```python
def function_a():
val = 10
def function_b():
val = 20
print(val)
function_b()
print(val)
function_a()```
Kết quả in ra là?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 22: Để sửa đổi một biến toàn cục từ bên trong một hàm, bạn cần sử dụng từ khóa nào trước tên biến?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 23: Phạm vi nào có mức độ ưu tiên tìm kiếm biến cao nhất theo quy tắc LEGB?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 24: Phạm vi nào có mức độ ưu tiên tìm kiếm biến thấp nhất theo quy tắc LEGB?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 25: Biến nào có thể được truy cập từ bất kỳ đâu trong chương trình mà không cần khai báo `global`?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 26: Cho đoạn mã:
```python
count = 0
def increment():
count += 1
increment()
print(count)```
Đoạn mã này có lỗi không? Nếu có, lỗi gì?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 27: Làm thế nào để sửa lỗi trong đoạn mã ở Câu 26 để nó tăng biến `count` toàn cục?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 28: Trong Python, phạm vi của biến được xác định chủ yếu bởi...

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 29: Điều gì xảy ra nếu bạn sử dụng `nonlocal` trong một hàm không lồng nhau?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 6

Câu 30: Cho đoạn mã:
```python
def outer():
message = "Local"
def inner():
print(message)
inner()
print(message)
message = "Global"
outer()
print(message)```
Kết quả in ra là gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 07

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 07 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, biến nào được gọi là biến cục bộ?

  • A. Biến được khai báo ở đầu chương trình.
  • B. Biến được khai báo bên trong một hàm.
  • C. Biến được sử dụng trong nhiều module khác nhau.
  • D. Biến có thể truy cập từ bất kỳ đâu trong chương trình.

Câu 2: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

  • A. Biến sẽ tự động trở thành biến toàn cục.
  • B. Chương trình sẽ tiếp tục chạy nhưng giá trị biến là không xác định.
  • C. Python sẽ báo lỗi NameError.
  • D. Biến sẽ trả về giá trị mặc định là 0 hoặc None.

Câu 3: Xem xét đoạn mã sau:
```python
def ham_test():
x = 10
print(x)
print(x) # Dòng này gây lỗi
```
Tại sao dòng `print(x)` cuối cùng lại gây ra lỗi?

  • A. `x` là biến cục bộ của hàm `ham_test` và không thể truy cập bên ngoài hàm.
  • B. Hàm `ham_test` chưa được gọi trước khi `print(x)` được thực hiện.
  • C. Biến `x` chưa được khởi tạo giá trị trước khi in.
  • D. Lệnh `print()` không thể truy cập biến bên trong hàm.

Câu 4: Biến toàn cục trong Python được khai báo ở đâu?

  • A. Bên trong tất cả các hàm của chương trình.
  • B. Chỉ bên trong hàm `main()`.
  • C. Ở đầu mỗi file module.
  • D. Bên ngoài bất kỳ hàm nào trong chương trình.

Câu 5: Từ khóa nào trong Python được sử dụng để khai báo một biến toàn cục bên trong một hàm?

  • A. `local`
  • B. `def`
  • C. `global`
  • D. `public`

Câu 6: Xem xét đoạn mã sau:
```python
y = 20
def ham_test():
global y
y = y + 5
ham_test()
print(y)
```
Giá trị của `y` được in ra là bao nhiêu?

  • A. 20
  • B. 25
  • C. 5
  • D. 15

Câu 7: Trong một chương trình Python phức tạp, việc sử dụng quá nhiều biến toàn cục có thể dẫn đến điều gì?

  • A. Chương trình chạy nhanh hơn.
  • B. Tiết kiệm bộ nhớ hơn.
  • C. Mã chương trình dễ đọc và bảo trì hơn.
  • D. Khó theo dõi và gỡ lỗi chương trình do tính phụ thuộc lẫn nhau tăng lên.

Câu 8: Biến nào có phạm vi hoạt động rộng nhất trong một chương trình Python?

  • A. Biến toàn cục.
  • B. Biến cục bộ.
  • C. Biến không được khai báo.
  • D. Cả biến cục bộ và toàn cục có phạm vi như nhau.

Câu 9: Xem xét đoạn mã sau:
```python
def ham_a():
z = 5
def ham_b():
print(z)
ham_b()
ham_a()
```
Đoạn mã này có chạy thành công không và in ra giá trị nào?

  • A. Có, in ra 5.
  • B. Có, in ra một giá trị ngẫu nhiên.
  • C. Không, gây lỗi NameError.
  • D. Không, gây lỗi SyntaxError.

Câu 10: Trong Python, quy tắc LEGB xác định thứ tự tìm kiếm biến. LEGB là viết tắt của:

  • A. Local, External, Global, Built-in.
  • B. Local, Enclosing, Global, Built-in.
  • C. Loop, Enclosing, Global, Boolean.
  • D. Lexical, Enclosing, General, Basic.

Câu 11: "Enclosing" trong quy tắc LEGB đề cập đến phạm vi nào?

  • A. Phạm vi của các biến toàn cục.
  • B. Phạm vi bên ngoài chương trình Python.
  • C. Phạm vi của hàm bao quanh (nếu có hàm lồng nhau).
  • D. Phạm vi của các biến được nhập từ module khác.

Câu 12: Xem xét đoạn mã sau:
```python
x = 50
def ham_test(x):
x = 2 * x
return x
y = ham_test(10)
print(x, y)
```
Giá trị của `x` và `y` được in ra là bao nhiêu?

  • A. 20, 20
  • B. 50, 50
  • C. 20, 50
  • D. 50, 20

Câu 13: Điều gì xảy ra khi bạn gán giá trị cho một biến cùng tên với biến toàn cục bên trong một hàm mà không sử dụng từ khóa `global`?

  • A. Biến toàn cục sẽ bị thay đổi giá trị.
  • B. Một biến cục bộ mới cùng tên được tạo ra trong phạm vi hàm.
  • C. Python sẽ báo lỗi vì trùng tên biến.
  • D. Biến toàn cục sẽ không thể truy cập được trong hàm.

Câu 14: Trong ngữ cảnh "phạm vi của biến", "vòng đời" của một biến cục bộ bắt đầu và kết thúc khi nào?

  • A. Bắt đầu khi hàm được gọi và kết thúc khi hàm thực hiện xong.
  • B. Bắt đầu khi chương trình chạy và kết thúc khi chương trình kết thúc.
  • C. Bắt đầu khi biến được khai báo lần đầu và kết thúc khi chương trình kết thúc.
  • D. Vòng đời của biến cục bộ là vô hạn.

Câu 15: Ưu điểm chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

  • A. Tốc độ truy cập biến nhanh hơn.
  • B. Tiết kiệm bộ nhớ hơn.
  • C. Tăng tính độc lập và giảm tác dụng phụ giữa các phần của chương trình.
  • D. Dễ dàng chia sẻ dữ liệu giữa các hàm hơn.

Câu 16: Xem xét đoạn mã:
```python
def outer_func():
message = "Hello"
def inner_func():
nonlocal message
message = "World"
inner_func()
return message
print(outer_func())
```
Kết quả in ra là gì? Giải thích tại sao sử dụng `nonlocal` lại tạo ra kết quả này.

  • A. "Hello", vì `nonlocal` không có tác dụng trong Python.
  • B. "Hello", vì `message` trong `inner_func` là biến cục bộ.
  • C. "World", vì `nonlocal` tạo ra biến toàn cục `message`.
  • D. "World", vì `nonlocal` cho phép `inner_func` sửa đổi biến `message` của `outer_func`.

Câu 17: Trong Python, biến "built-in" (tích hợp) nằm ở phạm vi nào trong quy tắc LEGB?

  • A. Phạm vi cục bộ (Local).
  • B. Phạm vi bao quanh (Enclosing).
  • C. Phạm vi toàn cục (Global).
  • D. Phạm vi cuối cùng được tìm kiếm (Built-in).

Câu 18: Ví dụ nào sau đây thể hiện rõ nhất việc sử dụng biến cục bộ để cải thiện tính đóng gói của mã?

  • A. Sử dụng biến toàn cục để lưu trữ cấu hình chương trình.
  • B. Sử dụng biến cục bộ trong hàm để tính toán giá trị trung gian và trả về kết quả cuối cùng.
  • C. Sử dụng biến toàn cục để đếm số lần một hàm được gọi.
  • D. Sử dụng biến toàn cục để chia sẻ dữ liệu giữa các module khác nhau.

Câu 19: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

  • A. Biến toàn cục sẽ được ưu tiên sử dụng trong toàn bộ chương trình.
  • B. Biến cục bộ sẽ bị ghi đè bởi biến toàn cục.
  • C. Trong phạm vi hàm, biến cục bộ sẽ che phủ (shadow) biến toàn cục cùng tên.
  • D. Python sẽ báo lỗi vì trùng tên biến.

Câu 20: Xem xét đoạn mã:
```python
x = 100
def change_global():
x = 200
change_global()
print(x)
```
Giá trị nào sẽ được in ra cho `x` và tại sao?

  • A. 200, vì hàm `change_global` đã thay đổi giá trị của `x`.
  • B. 100, vì `x = 200` trong hàm chỉ tạo ra biến cục bộ `x`.
  • C. Chương trình sẽ báo lỗi NameError.
  • D. Kết quả không xác định.

Câu 21: Trong tình huống nào thì việc sử dụng biến toàn cục là phù hợp nhất?

  • A. Khi cần biến chỉ được sử dụng trong một hàm duy nhất.
  • B. Khi muốn đảm bảo tính độc lập giữa các hàm.
  • C. Khi cần tối ưu hóa hiệu suất chương trình.
  • D. Khi cần chia sẻ dữ liệu cấu hình hoặc trạng thái chung cho toàn bộ chương trình.

Câu 22: Biến nào trong Python có thể truy cập được từ bất kỳ đâu trong chương trình, kể cả bên trong các hàm, mà không cần khai báo `global`?

  • A. Biến cục bộ.
  • B. Biến enclosing.
  • C. Biến built-in (tích hợp).
  • D. Biến nonlocal.

Câu 23: Xem xét đoạn mã:
```python
def func_outer():
count = 0
def func_inner():
count += 1 # Lỗi ở đây
return count
return func_inner()
print(func_outer())
```
Tại sao dòng `count += 1` gây ra lỗi và làm thế nào để sửa lỗi này để `inner_func` có thể sửa đổi biến `count` của `outer_func`?

  • A. Lỗi vì Python coi `count` trong `inner_func` là biến cục bộ mới. Sửa bằng cách thêm `nonlocal count` vào đầu `inner_func`.
  • B. Lỗi cú pháp. Sửa bằng cách thay `count += 1` thành `count = count + 1`.
  • C. Không lỗi. Chương trình chạy bình thường và in ra 1.
  • D. Lỗi do biến `count` chưa được khởi tạo trong `inner_func`. Sửa bằng cách thêm `count = 0` vào đầu `inner_func`.

Câu 24: Phạm vi của biến tham số (parameter) trong định nghĩa hàm là gì?

  • A. Toàn cục.
  • B. Cục bộ trong hàm.
  • C. Enclosing.
  • D. Built-in.

Câu 25: Khi một hàm kết thúc, điều gì xảy ra với các biến cục bộ được tạo ra bên trong hàm đó?

  • A. Chúng trở thành biến toàn cục.
  • B. Chúng vẫn tồn tại và có thể được truy cập lần sau khi hàm được gọi lại.
  • C. Chúng bị hủy bỏ và giải phóng bộ nhớ.
  • D. Chúng được chuyển sang phạm vi "enclosing" nếu hàm được lồng bên trong hàm khác.

Câu 26: Trong Python, bạn có thể có hai biến cùng tên: một biến toàn cục và một biến cục bộ trong một hàm. Khi bạn truy cập biến đó bên trong hàm, biến nào sẽ được sử dụng?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Python sẽ chọn ngẫu nhiên một trong hai.
  • D. Python sẽ báo lỗi vì trùng tên biến.

Câu 27: Mục đích chính của việc phân chia phạm vi biến (local vs. global) trong lập trình là gì?

  • A. Để tăng tốc độ thực thi chương trình.
  • B. Để tiết kiệm bộ nhớ.
  • C. Để làm cho mã chương trình ngắn gọn hơn.
  • D. Để tăng tính mô đun, giảm xung đột tên và dễ bảo trì mã.

Câu 28: Khi nào bạn nên cân nhắc sử dụng từ khóa `nonlocal` trong Python?

  • A. Khi muốn khai báo một biến toàn cục bên trong hàm.
  • B. Khi muốn truy cập một biến cục bộ từ bên ngoài hàm.
  • C. Khi muốn sửa đổi biến của hàm bao ngoài từ bên trong hàm lồng nhau.
  • D. Trong mọi trường hợp muốn sử dụng biến toàn cục.

Câu 29: Trong một hàm Python, nếu bạn chỉ muốn đọc giá trị của một biến toàn cục (không thay đổi nó), bạn có cần sử dụng từ khóa `global` không?

  • A. Có, bắt buộc phải sử dụng `global` để truy cập biến toàn cục.
  • B. Không, bạn chỉ cần sử dụng tên biến toàn cục trong hàm.
  • C. Chỉ cần nếu biến cục bộ cùng tên không tồn tại.
  • D. Chỉ cần nếu biến toàn cục được khai báo sau hàm.

Câu 30: Giả sử bạn có một biến tên `count` được sử dụng trong nhiều hàm khác nhau của chương trình, và bạn muốn theo dõi tổng số thao tác đã thực hiện. Bạn nên khai báo biến `count` ở phạm vi nào để dễ dàng quản lý và truy cập từ mọi nơi?

  • A. Khai báo `count` cục bộ trong mỗi hàm cần sử dụng.
  • B. Khai báo `count` trong phạm vi "enclosing" của một hàm bao ngoài tất cả các hàm khác.
  • C. Không cần khai báo, Python sẽ tự động tạo biến `count` toàn cục khi cần.
  • D. Khai báo `count` là biến toàn cục ở đầu chương trình.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 1: Trong Python, biến nào được gọi là biến cục bộ?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 2: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 3: Xem xét đoạn mã sau:
```python
def ham_test():
x = 10
print(x)
print(x) # Dòng này gây lỗi
```
Tại sao dòng `print(x)` cuối cùng lại gây ra lỗi?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 4: Biến toàn cục trong Python được khai báo ở đâu?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 5: Từ khóa nào trong Python được sử dụng để khai báo một biến toàn cục bên trong một hàm?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 6: Xem xét đoạn mã sau:
```python
y = 20
def ham_test():
global y
y = y + 5
ham_test()
print(y)
```
Giá trị của `y` được in ra là bao nhiêu?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 7: Trong một chương trình Python phức tạp, việc sử dụng quá nhiều biến toàn cục có thể dẫn đến điều gì?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 8: Biến nào có phạm vi hoạt động rộng nhất trong một chương trình Python?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 9: Xem xét đoạn mã sau:
```python
def ham_a():
z = 5
def ham_b():
print(z)
ham_b()
ham_a()
```
Đoạn mã này có chạy thành công không và in ra giá trị nào?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 10: Trong Python, quy tắc LEGB xác định thứ tự tìm kiếm biến. LEGB là viết tắt của:

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 11: 'Enclosing' trong quy tắc LEGB đề cập đến phạm vi nào?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 12: Xem xét đoạn mã sau:
```python
x = 50
def ham_test(x):
x = 2 * x
return x
y = ham_test(10)
print(x, y)
```
Giá trị của `x` và `y` được in ra là bao nhiêu?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 13: Điều gì xảy ra khi bạn gán giá trị cho một biến cùng tên với biến toàn cục bên trong một hàm mà không sử dụng từ khóa `global`?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 14: Trong ngữ cảnh 'phạm vi của biến', 'vòng đời' của một biến cục bộ bắt đầu và kết thúc khi nào?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 15: Ưu điểm chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 16: Xem xét đoạn mã:
```python
def outer_func():
message = 'Hello'
def inner_func():
nonlocal message
message = 'World'
inner_func()
return message
print(outer_func())
```
Kết quả in ra là gì? Giải thích tại sao sử dụng `nonlocal` lại tạo ra kết quả này.

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 17: Trong Python, biến 'built-in' (tích hợp) nằm ở phạm vi nào trong quy tắc LEGB?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 18: Ví dụ nào sau đây thể hiện rõ nhất việc sử dụng biến cục bộ để cải thiện tính đóng gói của mã?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 19: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 20: Xem xét đoạn mã:
```python
x = 100
def change_global():
x = 200
change_global()
print(x)
```
Giá trị nào sẽ được in ra cho `x` và tại sao?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 21: Trong tình huống nào thì việc sử dụng biến toàn cục là phù hợp nhất?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 22: Biến nào trong Python có thể truy cập được từ bất kỳ đâu trong chương trình, kể cả bên trong các hàm, mà không cần khai báo `global`?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 23: Xem xét đoạn mã:
```python
def func_outer():
count = 0
def func_inner():
count += 1 # Lỗi ở đây
return count
return func_inner()
print(func_outer())
```
Tại sao dòng `count += 1` gây ra lỗi và làm thế nào để sửa lỗi này để `inner_func` có thể sửa đổi biến `count` của `outer_func`?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 24: Phạm vi của biến tham số (parameter) trong định nghĩa hàm là gì?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 25: Khi một hàm kết thúc, điều gì xảy ra với các biến cục bộ được tạo ra bên trong hàm đó?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 26: Trong Python, bạn có thể có hai biến cùng tên: một biến toàn cục và một biến cục bộ trong một hàm. Khi bạn truy cập biến đó bên trong hàm, biến nào sẽ được sử dụng?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 27: Mục đích chính của việc phân chia phạm vi biến (local vs. global) trong lập trình là gì?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 28: Khi nào bạn nên cân nhắc sử dụng từ khóa `nonlocal` trong Python?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 29: Trong một hàm Python, nếu bạn chỉ muốn đọc giá trị của một biến toàn cục (không thay đổi nó), bạn có cần sử dụng từ khóa `global` không?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 7

Câu 30: Giả sử bạn có một biến tên `count` được sử dụng trong nhiều hàm khác nhau của chương trình, và bạn muốn theo dõi tổng số thao tác đã thực hiện. Bạn nên khai báo biến `count` ở phạm vi nào để dễ dàng quản lý và truy cập từ mọi nơi?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 08

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 08 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, nó được gọi là biến gì và phạm vi hoạt động của nó giới hạn ở đâu?

  • A. Biến toàn cục, phạm vi toàn bộ chương trình.
  • B. Biến cục bộ, phạm vi bên trong hàm chứa nó.
  • C. Biến đối số, phạm vi trong và ngoài hàm.
  • D. Biến tĩnh, phạm vi chỉ trong lần gọi hàm đầu tiên.

Câu 2: Xét đoạn mã Python sau:

def ham_vi_du():
x = 10
print(x)

ham_vi_du()
print(x)

Điều gì xảy ra khi chạy đoạn mã này?

  • A. Chương trình in ra 10 hai lần.
  • B. Chương trình in ra 10 và sau đó in ra giá trị khác của x nếu nó được định nghĩa ở ngoài hàm.
  • C. Chương trình chỉ in ra 10 một lần.
  • D. Chương trình báo lỗi do biến "x" không được định nghĩa ở dòng cuối cùng.

Câu 3: Trong một chương trình Python, bạn có một biến tên "count" được khai báo bên ngoài bất kỳ hàm nào. Bên trong một hàm, bạn muốn truy cập và sửa đổi giá trị của biến "count" này. Bạn cần sử dụng từ khóa nào để khai báo biến "count" bên trong hàm?

  • A. local
  • B. def
  • C. global
  • D. nonlocal

Câu 4: Cho đoạn mã Python sau:

x = 5

def thay_doi_x():
x = 10
print(

  • A. Trong hàm, x = 10
    Ngoài hàm, x = 10
  • B. Trong hàm, x = 10
    Ngoài hàm, x = 5
  • C. Trong hàm, x = 5
    Ngoài hàm, x = 5
  • D. Chương trình báo lỗi.

Câu 5: Điều gì sẽ xảy ra nếu bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được định nghĩa trong Python?

  • A. Python sẽ báo lỗi NameError.
  • B. Python sẽ tự động tìm kiếm biến có cùng tên ở phạm vi toàn cục.
  • C. Chương trình sẽ chạy nhưng có thể cho kết quả không mong muốn.
  • D. Python sẽ cảnh báo nhưng vẫn cho phép truy cập với giá trị mặc định.

Câu 6: Trong ngữ cảnh phạm vi biến, "LEGB" là viết tắt của quy tắc xác định thứ tự tìm kiếm biến trong Python. "G" trong LEGB đại diện cho phạm vi nào?

  • A. Local (Cục bộ)
  • B. Enclosing function locals (Biến cục bộ của hàm bao ngoài)
  • C. Global (Toàn cục)
  • D. Built-in (Tích hợp sẵn)

Câu 7: Xét chương trình Python sau:

def ham_ngoai():
y = 20
def ham_trong():
print(y)
ham_trong()

ham_ngoai()

Biến "y" trong hàm "ham_trong" thuộc phạm vi nào?

  • A. Local (Cục bộ) của hàm "ham_trong".
  • B. Enclosing (Bao ngoài) của hàm "ham_ngoai".
  • C. Global (Toàn cục).
  • D. Built-in (Tích hợp sẵn).

Câu 8: Cho đoạn mã Python:

z = 100

def cap_nhat_z():
global z
z = z + 10

cap_nhat_z()
print(z)

Giá trị của "z" sau khi chạy chương trình là bao nhiêu?

  • A. 100
  • B. 11
  • C. 110
  • D. Chương trình báo lỗi.

Câu 9: Trong Python, biến nào sau đây có phạm vi "built-in"?

  • A. x (một biến người dùng tự định nghĩa)
  • B. def (từ khóa)
  • C. global (từ khóa)
  • D. print (hàm in ra màn hình)

Câu 10: Tình huống nào sau đây thể hiện rõ nhất sự cần thiết của việc sử dụng biến cục bộ thay vì biến toàn cục trong lập trình?

  • A. Khi muốn chia sẻ dữ liệu giữa nhiều hàm trong chương trình.
  • B. Khi muốn giới hạn phạm vi ảnh hưởng của biến, tránh xung đột tên và tăng tính module hóa.
  • C. Khi chương trình chỉ có một hàm duy nhất.
  • D. Biến cục bộ không thực sự cần thiết, biến toàn cục luôn có thể thay thế được.

Câu 11: Xem xét đoạn mã Python:

def tinh_tong(a, b):
ket_qua = a + b
return ket_qua

tong = tinh_tong(5, 3)
print(ket_qua)

Đoạn mã này có lỗi không? Nếu có, lỗi ở đâu?

  • A. Không có lỗi, chương trình in ra 8.
  • B. Lỗi ở dòng "ket_qua = a + b" vì phép gán không hợp lệ.
  • C. Lỗi ở dòng "print(ket_qua)" vì biến "ket_qua" không có phạm vi ở đây.
  • D. Lỗi do tên hàm "tinh_tong" không đúng quy tắc.

Câu 12: Giả sử bạn có hai biến khác nhau nhưng trùng tên, một biến toàn cục và một biến cục bộ trong cùng một chương trình Python. Khi bạn truy cập tên biến đó bên trong hàm, biến nào sẽ được ưu tiên sử dụng?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Python sẽ báo lỗi do trùng tên biến.
  • D. Tùy thuộc vào thứ tự khai báo biến.

Câu 13: Cho ví dụ về một tình huống trong lập trình mà việc sử dụng biến toàn cục là phù hợp và mang lại lợi ích.

  • A. Sử dụng biến đếm vòng lặp trong hàm.
  • B. Lưu trữ dữ liệu tạm thời chỉ dùng trong một hàm.
  • C. Khai báo các hằng số cấu hình của chương trình mà nhiều hàm cần truy cập.
  • D. Thay thế cho biến cục bộ để chương trình ngắn gọn hơn.

Câu 14: Trong Python, khi nào một biến được coi là có "lifetime" (vòng đời) kết thúc?

  • A. Khi chương trình chính kết thúc.
  • B. Khi khối lệnh hoặc hàm mà nó được khai báo thực thi xong.
  • C. Khi biến đó không còn được sử dụng ở bất kỳ đâu trong chương trình.
  • D. Vòng đời của biến toàn cục và cục bộ là như nhau.

Câu 15: Điều gì KHÔNG phải là lợi ích của việc sử dụng biến cục bộ?

  • A. Giảm nguy cơ xung đột tên biến.
  • B. Tăng tính module hóa và dễ bảo trì code.
  • C. Giúp hàm trở nên độc lập và dễ tái sử dụng.
  • D. Cho phép chia sẻ dữ liệu trực tiếp giữa các hàm mà không cần tham số.

Câu 16: Cho đoạn mã Python:

x = 1

def ham_a():
x = 2
def ham_b():
nonlocal x
x = 3
ham_b()
print(

  • A. x trong ham_a: 2
    x toan cuc: 1
  • B. x trong ham_a: 3
    x toan cuc: 1
  • C. x trong ham_a: 3
    x toan cuc: 1
  • D. x trong ham_a: 2
    x toan cuc: 3

Câu 17: Trong Python, nếu bạn không sử dụng từ khóa "global" bên trong một hàm để gán giá trị cho một biến đã tồn tại ở phạm vi toàn cục, điều gì sẽ xảy ra?

  • A. Giá trị của biến toàn cục sẽ bị thay đổi.
  • B. Python sẽ tạo ra một biến cục bộ mới bên trong hàm với cùng tên.
  • C. Python sẽ báo lỗi cú pháp.
  • D. Python sẽ tự động hiểu rằng bạn muốn thay đổi biến toàn cục.

Câu 18: Biến "tham_so" trong định nghĩa hàm "def my_function(tham_so):" có phạm vi là gì?

  • A. Cục bộ (local) của hàm "my_function".
  • B. Toàn cục (global).
  • C. Enclosing (bao ngoài, nếu hàm này nằm trong hàm khác).
  • D. Built-in.

Câu 19: Xét đoạn mã Python sau:

a = 50

def ham_c():
a = 25
print(

  • A. Ben trong ham_d, a = 25
  • B. Ben trong ham_d, a = 0
  • C. Ben trong ham_d, a = 50
  • D. Chương trình báo lỗi trong ham_d.

Câu 20: Trong lập trình, việc quản lý phạm vi biến giúp đạt được mục tiêu nào sau đây?

  • A. Giảm tốc độ thực thi chương trình.
  • B. Tăng tính rõ ràng, giảm xung đột tên biến và tăng khả năng tái sử dụng code.
  • C. Giảm dung lượng bộ nhớ chương trình sử dụng.
  • D. Giúp chương trình chạy được trên nhiều hệ điều hành khác nhau.

Câu 21: Cho chương trình Python:

x =

  • A. local
    enclosing
    global
  • B. local
    local
    local
  • C. enclosing
    enclosing
    global
  • D. local
    enclosing
    global

Câu 22: Trong Python, phạm vi nào được tìm kiếm cuối cùng theo quy tắc LEGB?

  • A. Local
  • B. Enclosing
  • C. Global
  • D. Built-in

Câu 23: Khi nào bạn cần sử dụng từ khóa "nonlocal" trong Python?

  • A. Để khai báo một biến toàn cục mới.
  • B. Để truy cập một biến cục bộ từ bên ngoài hàm.
  • C. Để sửa đổi biến của phạm vi bao ngoài gần nhất (enclosing scope) từ bên trong một hàm lồng nhau.
  • D. Để ngăn chặn việc tạo ra biến cục bộ mới trong hàm.

Câu 24: Điều gì xảy ra khi bạn khai báo một biến bên trong một cấu trúc điều khiển (ví dụ: if, for) trong Python?

  • A. Biến đó có phạm vi cục bộ trong cấu trúc điều khiển đó.
  • B. Biến đó có phạm vi cục bộ trong hàm chứa cấu trúc điều khiển.
  • C. Biến đó có phạm vi toàn cục.
  • D. Python sẽ báo lỗi cú pháp.

Câu 25: Cho đoạn mã Python:

def ham_e():
message =

  • A. Phạm vi toàn cục.
  • B. Closure (bao đóng).
  • C. Đệ quy.
  • D. Kế thừa.

Câu 26: Xét chương trình Python:

def ham_g():
count = 0
def increment():
count += 1
return count
return increment

counter = ham_g()
print(counter())

Đoạn mã này có lỗi không? Nếu có, lỗi liên quan đến phạm vi biến nào?

  • A. Không có lỗi, in ra 1.
  • B. Lỗi do sử dụng từ khóa "increment" không đúng.
  • C. Lỗi UnboundLocalError vì biến "count" được tham chiếu trước khi gán trong hàm "increment".
  • D. Lỗi do hàm "ham_g" không trả về giá trị.

Câu 27: Để sửa lỗi trong đoạn mã ở Câu 26 và cho phép hàm "increment" thay đổi biến "count" của hàm "ham_g", bạn cần sử dụng từ khóa nào trong hàm "increment"?

  • A. global
  • B. nonlocal
  • C. local
  • D. static

Câu 28: Trong Python, bạn có thể khai báo biến toàn cục ở đâu?

  • A. Bên ngoài tất cả các hàm.
  • B. Bên trong bất kỳ hàm nào với từ khóa "global".
  • C. Chỉ ở đầu chương trình.
  • D. Trong một file cấu hình riêng.

Câu 29: Phát biểu nào sau đây là đúng về phạm vi của biến trong Python?

  • A. Phạm vi của biến không ảnh hưởng đến khả năng truy cập biến.
  • B. Biến toàn cục luôn được ưu tiên hơn biến cục bộ.
  • C. Phạm vi của biến xác định khu vực code mà biến đó có thể được truy cập.
  • D. Python không có khái niệm phạm vi biến.

Câu 30: Trong một dự án lớn, việc sử dụng biến cục bộ một cách nhất quán mang lại lợi ích chính nào về mặt quản lý và phát triển phần mềm?

  • A. Tăng tốc độ biên dịch chương trình.
  • B. Giảm dung lượng file mã nguồn.
  • C. Cho phép các lập trình viên truy cập dữ liệu của nhau dễ dàng hơn.
  • D. Giảm sự phụ thuộc lẫn nhau giữa các phần của chương trình, giúp dễ bảo trì, kiểm thử và phát triển song song.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, nó được gọi là biến gì và phạm vi hoạt động của nó giới hạn ở đâu?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 2: Xét đoạn mã Python sau:

def ham_vi_du():
x = 10
print(x)

ham_vi_du()
print(x)

Điều gì xảy ra khi chạy đoạn mã này?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 3: Trong một chương trình Python, bạn có một biến tên 'count' được khai báo bên ngoài bất kỳ hàm nào. Bên trong một hàm, bạn muốn truy cập và sửa đổi giá trị của biến 'count' này. Bạn cần sử dụng từ khóa nào để khai báo biến 'count' bên trong hàm?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 4: Cho đoạn mã Python sau:

x = 5

def thay_doi_x():
x = 10
print("Trong hàm, x =", x)

thay_doi_x()
print("Ngoài hàm, x =", x)

Kết quả in ra của chương trình này là gì?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 5: Điều gì sẽ xảy ra nếu bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được định nghĩa trong Python?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 6: Trong ngữ cảnh phạm vi biến, 'LEGB' là viết tắt của quy tắc xác định thứ tự tìm kiếm biến trong Python. 'G' trong LEGB đại diện cho phạm vi nào?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 7: Xét chương trình Python sau:

def ham_ngoai():
y = 20
def ham_trong():
print(y)
ham_trong()

ham_ngoai()

Biến 'y' trong hàm 'ham_trong' thuộc phạm vi nào?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 8: Cho đoạn mã Python:

z = 100

def cap_nhat_z():
global z
z = z + 10

cap_nhat_z()
print(z)

Giá trị của 'z' sau khi chạy chương trình là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 9: Trong Python, biến nào sau đây có phạm vi 'built-in'?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 10: Tình huống nào sau đây thể hiện rõ nhất sự cần thiết của việc sử dụng biến cục bộ thay vì biến toàn cục trong lập trình?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 11: Xem xét đoạn mã Python:

def tinh_tong(a, b):
ket_qua = a + b
return ket_qua

tong = tinh_tong(5, 3)
print(ket_qua)

Đoạn mã này có lỗi không? Nếu có, lỗi ở đâu?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 12: Giả sử bạn có hai biến khác nhau nhưng trùng tên, một biến toàn cục và một biến cục bộ trong cùng một chương trình Python. Khi bạn truy cập tên biến đó bên trong hàm, biến nào sẽ được ưu tiên sử dụng?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 13: Cho ví dụ về một tình huống trong lập trình mà việc sử dụng biến toàn cục là phù hợp và mang lại lợi ích.

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 14: Trong Python, khi nào một biến được coi là có 'lifetime' (vòng đời) kết thúc?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 15: Điều gì KHÔNG phải là lợi ích của việc sử dụng biến cục bộ?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 16: Cho đoạn mã Python:

x = 1

def ham_a():
x = 2
def ham_b():
nonlocal x
x = 3
ham_b()
print("x trong ham_a:", x)

ham_a()
print("x toan cuc:", x)

Giá trị in ra của 'x trong ham_a' và 'x toan cuc' lần lượt là:

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 17: Trong Python, nếu bạn không sử dụng từ khóa 'global' bên trong một hàm để gán giá trị cho một biến đã tồn tại ở phạm vi toàn cục, điều gì sẽ xảy ra?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 18: Biến 'tham_so' trong định nghĩa hàm 'def my_function(tham_so):' có phạm vi là gì?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 19: Xét đoạn mã Python sau:

a = 50

def ham_c():
a = 25
print("Ben trong ham_c, a =", a)

def ham_d():
print("Ben trong ham_d, a =", a)

ham_c()
ham_d()

Kết quả in ra của 'Ben trong ham_d, a =' là gì?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 20: Trong lập trình, việc quản lý phạm vi biến giúp đạt được mục tiêu nào sau đây?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 21: Cho chương trình Python:

x = "global"

def outer():
x = "enclosing"
def inner():
x = "local"
print(x)
inner()
print(x)
outer()
print(x)

Kết quả in ra lần lượt là gì?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 22: Trong Python, phạm vi nào được tìm kiếm cuối cùng theo quy tắc LEGB?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 23: Khi nào bạn cần sử dụng từ khóa 'nonlocal' trong Python?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 24: Điều gì xảy ra khi bạn khai báo một biến bên trong một cấu trúc điều khiển (ví dụ: if, for) trong Python?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 25: Cho đoạn mã Python:

def ham_e():
message = "Hello"
def ham_f():
print(message)
return ham_f

my_func = ham_e()
my_func()

Hiện tượng này liên quan đến phạm vi biến được gọi là gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 26: Xét chương trình Python:

def ham_g():
count = 0
def increment():
count += 1
return count
return increment

counter = ham_g()
print(counter())

Đoạn mã này có lỗi không? Nếu có, lỗi liên quan đến phạm vi biến nào?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 27: Để sửa lỗi trong đoạn mã ở Câu 26 và cho phép hàm 'increment' thay đổi biến 'count' của hàm 'ham_g', bạn cần sử dụng từ khóa nào trong hàm 'increment'?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 28: Trong Python, bạn có thể khai báo biến toàn cục ở đâu?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 29: Phát biểu nào sau đây là đúng về phạm vi của biến trong Python?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 8

Câu 30: Trong một dự án lớn, việc sử dụng biến cục bộ một cách nhất quán mang lại lợi ích chính nào về mặt quản lý và phát triển phần mềm?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 09

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 09 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, phạm vi mặc định của biến đó là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Không xác định
  • D. Phạm vi khối lệnh (Block scope)

Câu 2: Xét đoạn mã Python sau:
```python
x = 10
def ham_test():
print(x)
ham_test()
print(x)
```
Đoạn mã trên sẽ in ra kết quả gì?

  • A. 10
    10
  • B. 10
    Lỗi
  • C. Lỗi
    10
  • D. Lỗi
    Lỗi

Câu 3: Điều gì sẽ xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được khai báo?

  • A. Biến sẽ tự động được coi là biến toàn cục.
  • B. Giá trị mặc định của biến (ví dụ: 0 hoặc None) sẽ được sử dụng.
  • C. Lỗi NameError sẽ xảy ra.
  • D. Chương trình sẽ chạy nhưng có thể cho kết quả không mong muốn.

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

  • A. local
  • B. define
  • C. var
  • D. global

Câu 5: Xét đoạn mã Python sau:
```python
def ham_test():
y = 20
print(y)
```
Đoạn mã trên sẽ dẫn đến điều gì khi thực thi?

  • A. In ra giá trị 20
  • B. Lỗi NameError
  • C. In ra giá trị mặc định của biến số
  • D. Không có lỗi, chương trình chạy bình thường

Câu 6: Biến toàn cục được khai báo ở đâu trong chương trình Python?

  • A. Bên ngoài tất cả các hàm.
  • B. Bên trong một hàm cụ thể.
  • C. Ở đầu mỗi khối lệnh.
  • D. Không có vị trí khai báo cố định.

Câu 7: Điều gì xảy ra khi một biến cục bộ có cùng tên với một biến toàn cục trong cùng một chương trình?

  • A. Chương trình sẽ báo lỗi.
  • B. Biến toàn cục sẽ được ưu tiên sử dụng.
  • C. Biến cục bộ sẽ được ưu tiên sử dụng trong phạm vi hàm.
  • D. Cả hai biến sẽ được sử dụng đồng thời.

Câu 8: Xét đoạn mã Python sau:
```python
z = 5
def thay_doi_z():
global z
z = z + 5
thay_doi_z()
print(z)
```
Giá trị của "z" sau khi thực hiện đoạn mã trên là bao nhiêu?

  • A. 5
  • B. 10
  • C. 15
  • D. 0

Câu 9: Trong một hàm Python, nếu bạn gán giá trị cho một biến mà không sử dụng từ khóa "global" và biến đó chưa được khai báo trong hàm, Python sẽ coi biến đó là biến gì?

  • A. Biến toàn cục
  • B. Biến cục bộ
  • C. Biến không xác định
  • D. Tùy thuộc vào ngữ cảnh sử dụng

Câu 10: Phạm vi của biến quyết định điều gì về biến đó?

  • A. Vùng mà biến có thể được truy cập và sử dụng.
  • B. Kiểu dữ liệu của biến.
  • C. Thời gian tồn tại của biến trong bộ nhớ.
  • D. Tên gọi của biến.

Câu 11: Xét đoạn mã Python sau:
```python
m = 20
def ham_moi():
m = 30
print(m)
ham_moi()
print(m)
```
Kết quả in ra của đoạn mã trên là gì?

  • A. 30
    30
  • B. 20
    20
  • C. 30
    20
  • D. 20
    30

Câu 12: Trong Python, biến nào có phạm vi rộng nhất?

  • A. Biến toàn cục
  • B. Biến cục bộ
  • C. Biến không cục bộ (nonlocal)
  • D. Biến trong lớp (class variable)

Câu 13: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Tăng tính mô đun và giảm tác dụng phụ.
  • C. Giảm dung lượng bộ nhớ sử dụng.
  • D. Làm cho code dễ đọc hơn.

Câu 14: Khi nào thì bạn nên sử dụng từ khóa "global" trong Python?

  • A. Khi muốn khai báo một biến cục bộ.
  • B. Khi muốn tạo một biến mới bên trong hàm.
  • C. Khi muốn sửa đổi giá trị của biến toàn cục từ bên trong hàm.
  • D. Khi muốn truy cập giá trị của biến cục bộ từ bên ngoài hàm.

Câu 15: Xét đoạn mã Python sau:
```python
def ham_ngoai():
x = 50
def ham_trong():
print(x)
ham_trong()
ham_ngoai()
```
Đoạn mã trên in ra giá trị nào?

  • A. 50
  • B. Lỗi NameError
  • C. 0
  • D. Không có gì được in ra

Câu 16: Biến cục bộ tồn tại trong suốt thời gian nào của chương trình?

  • A. Từ đầu đến cuối chương trình.
  • B. Chỉ khi hàm chứa nó đang thực thi.
  • C. Cho đến khi biến được xóa thủ công.
  • D. Tùy thuộc vào hệ điều hành.

Câu 17: Điều gì xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong một hàm và bạn chỉ sử dụng tên biến đó trong hàm mà không có từ khóa "global"?

  • A. Biến toàn cục sẽ được sử dụng.
  • B. Chương trình sẽ báo lỗi.
  • C. Biến cục bộ mới sẽ được tạo và sử dụng trong hàm, biến toàn cục không bị ảnh hưởng.
  • D. Biến toàn cục sẽ bị ghi đè bởi biến cục bộ.

Câu 18: Phạm vi của biến có vai trò quan trọng trong việc viết code như thế nào?

  • A. Giúp code chạy nhanh hơn.
  • B. Giúp code ít dòng hơn.
  • C. Giúp code tương thích với nhiều hệ điều hành hơn.
  • D. Giúp quản lý biến tốt hơn, tránh xung đột tên và tăng tính tái sử dụng của code.

Câu 19: Xét đoạn mã Python sau:
```python
def ham_a():
a = 100
def ham_b():
nonlocal a
a = a + 50
ham_b()
print(a)
ham_a()
```
Giá trị in ra của "a" là bao nhiêu?

  • A. 100
  • B. 150
  • C. 50
  • D. Lỗi

Câu 20: Từ khóa "nonlocal" trong Python được sử dụng để làm gì?

  • A. Khai báo biến toàn cục.
  • B. Khai báo biến cục bộ.
  • C. Tham chiếu đến biến của hàm bao ngoài gần nhất.
  • D. Tạo ra một phạm vi biến hoàn toàn mới.

Câu 21: Trong Python, nếu không tìm thấy biến trong phạm vi cục bộ, chương trình sẽ tìm biến đó ở phạm vi nào tiếp theo?

  • A. Phạm vi toàn cục (Global).
  • B. Phạm vi bao ngoài (Enclosing scope).
  • C. Phạm vi tích hợp sẵn (Built-in scope).
  • D. Không tìm kiếm tiếp, báo lỗi.

Câu 22: Biến tích hợp sẵn (built-in) trong Python có phạm vi như thế nào?

  • A. Toàn bộ chương trình.
  • B. Chỉ trong các hàm.
  • C. Chỉ trong các module.
  • D. Tùy thuộc vào cách sử dụng.

Câu 23: Xét đoạn mã Python sau:
```python
x = 1
def ham_1():
x = 2
def ham_2():
x = 3
print(x)
ham_2()
print(x)
ham_1()
print(x)
```
Kết quả in ra của đoạn mã trên là gì?

  • A. 3
    2
    1
  • B. 3
    3
    3
  • C. 1
    2
    3
  • D. 3
    2
    1

Câu 24: Khi một hàm kết thúc thực thi, điều gì xảy ra với các biến cục bộ của hàm đó?

  • A. Chúng trở thành biến toàn cục.
  • B. Chúng vẫn tồn tại và có thể được truy cập từ lần gọi hàm sau.
  • C. Chúng bị hủy và bộ nhớ cấp phát cho chúng được giải phóng.
  • D. Chúng được lưu vào bộ nhớ cache để tái sử dụng.

Câu 25: Trong Python, module được coi là một loại phạm vi nào?

  • A. Phạm vi cục bộ.
  • B. Phạm vi toàn cục (của module).
  • C. Phạm vi bao ngoài.
  • D. Phạm vi tích hợp sẵn.

Câu 26: Điều gì có thể xảy ra nếu bạn lạm dụng biến toàn cục trong chương trình?

  • A. Chương trình chạy nhanh hơn nhưng tốn bộ nhớ hơn.
  • B. Chương trình trở nên dễ đọc và dễ hiểu hơn.
  • C. Không có tác hại gì, biến toàn cục luôn tiện lợi.
  • D. Khó kiểm soát tác dụng phụ, giảm tính mô đun và khó bảo trì code.

Câu 27: Xét đoạn mã Python sau:
```python
def ham_c():
d = 10
return d
e = ham_c()
print(d)
```
Đoạn mã này sẽ gây ra lỗi gì?

  • A. Lỗi cú pháp (SyntaxError).
  • B. Lỗi tên (NameError).
  • C. Lỗi kiểu (TypeError).
  • D. Không có lỗi.

Câu 28: Trong Python, phạm vi biến được xác định chủ yếu bởi yếu tố nào?

  • A. Kiểu dữ liệu của biến.
  • B. Tên của biến.
  • C. Vị trí khai báo biến trong code.
  • D. Giá trị ban đầu của biến.

Câu 29: Để chương trình dễ đọc và bảo trì hơn, bạn nên ưu tiên sử dụng loại phạm vi biến nào?

  • A. Biến toàn cục.
  • B. Biến cục bộ.
  • C. Biến tích hợp sẵn.
  • D. Không có sự khác biệt về ưu tiên.

Câu 30: Trong ngữ cảnh hàm lồng nhau, biến được tìm kiếm theo thứ tự phạm vi nào (LEGB rule)?

  • A. Local -> Enclosing -> Global -> Built-in.
  • B. Global -> Local -> Enclosing -> Built-in.
  • C. Built-in -> Global -> Enclosing -> Local.
  • D. Enclosing -> Local -> Global -> Built-in.

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 1: Trong Python, khi một biến được khai báo bên trong một hàm, phạm vi mặc định của biến đó là gì?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 2: Xét đoạn mã Python sau:
```python
x = 10
def ham_test():
print(x)
ham_test()
print(x)
```
Đoạn mã trên sẽ in ra kết quả gì?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 3: Điều gì sẽ xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài hàm mà nó được khai báo?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 4: Từ khóa nào trong Python được sử dụng để khai báo rằng một biến bên trong hàm là biến toàn cục?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 5: Xét đoạn mã Python sau:
```python
def ham_test():
y = 20
print(y)
```
Đoạn mã trên sẽ dẫn đến điều gì khi thực thi?

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 6: Biến toàn cục được khai báo ở đâu trong chương trình Python?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 7: Điều gì xảy ra khi một biến cục bộ có cùng tên với một biến toàn cục trong cùng một chương trình?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 8: Xét đoạn mã Python sau:
```python
z = 5
def thay_doi_z():
global z
z = z + 5
thay_doi_z()
print(z)
```
Giá trị của 'z' sau khi thực hiện đoạn mã trên là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 9: Trong một hàm Python, nếu bạn gán giá trị cho một biến mà không sử dụng từ khóa 'global' và biến đó chưa được khai báo trong hàm, Python sẽ coi biến đó là biến gì?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 10: Phạm vi của biến quyết định điều gì về biến đó?

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 11: Xét đoạn mã Python sau:
```python
m = 20
def ham_moi():
m = 30
print(m)
ham_moi()
print(m)
```
Kết quả in ra của đoạn mã trên là gì?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 12: Trong Python, biến nào có phạm vi rộng nhất?

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 13: Mục đích chính của việc sử dụng biến cục bộ thay vì biến toàn cục là gì?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 14: Khi nào thì bạn nên sử dụng từ khóa 'global' trong Python?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 15: Xét đoạn mã Python sau:
```python
def ham_ngoai():
x = 50
def ham_trong():
print(x)
ham_trong()
ham_ngoai()
```
Đoạn mã trên in ra giá trị nào?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 16: Biến cục bộ tồn tại trong suốt thời gian nào của chương trình?

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 17: Điều gì xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong một hàm và bạn chỉ sử dụng tên biến đó trong hàm mà không có từ khóa 'global'?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 18: Phạm vi của biến có vai trò quan trọng trong việc viết code như thế nào?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 19: Xét đoạn mã Python sau:
```python
def ham_a():
a = 100
def ham_b():
nonlocal a
a = a + 50
ham_b()
print(a)
ham_a()
```
Giá trị in ra của 'a' là bao nhiêu?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 20: Từ khóa 'nonlocal' trong Python được sử dụng để làm gì?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 21: Trong Python, nếu không tìm thấy biến trong phạm vi cục bộ, chương trình sẽ tìm biến đó ở phạm vi nào tiếp theo?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 22: Biến tích hợp sẵn (built-in) trong Python có phạm vi như thế nào?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 23: Xét đoạn mã Python sau:
```python
x = 1
def ham_1():
x = 2
def ham_2():
x = 3
print(x)
ham_2()
print(x)
ham_1()
print(x)
```
Kết quả in ra của đoạn mã trên là gì?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 24: Khi một hàm kết thúc thực thi, điều gì xảy ra với các biến cục bộ của hàm đó?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 25: Trong Python, module được coi là một loại phạm vi nào?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 26: Điều gì có thể xảy ra nếu bạn lạm dụng biến toàn cục trong chương trình?

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 27: Xét đoạn mã Python sau:
```python
def ham_c():
d = 10
return d
e = ham_c()
print(d)
```
Đoạn mã này sẽ gây ra lỗi gì?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 28: Trong Python, phạm vi biến được xác định chủ yếu bởi yếu tố nào?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 29: Để chương trình dễ đọc và bảo trì hơn, bạn nên ưu tiên sử dụng loại phạm vi biến nào?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 9

Câu 30: Trong ngữ cảnh hàm lồng nhau, biến được tìm kiếm theo thứ tự phạm vi nào (LEGB rule)?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 10

Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Biến nào sau đây có phạm vi truy cập rộng nhất trong chương trình Python?

  • A. Biến cục bộ trong hàm
  • B. Biến không cục bộ trong hàm bao ngoài
  • C. Biến vòng lặp for
  • D. Biến toàn cục

Câu 2: Xét đoạn mã Python sau:
```python
def ham_ngoai():
x = 10
def ham_trong():
print(x)
ham_trong()
ham_ngoai()
print(x) # Lỗi ở dòng này
```
Dòng lệnh `print(x)` cuối cùng sẽ gây ra lỗi gì?

  • A. NameError: name "x" is not defined
  • B. TypeError: "str" object cannot be interpreted as an integer
  • C. SyntaxError: invalid syntax
  • D. Không có lỗi, chương trình chạy bình thường

Câu 3: Từ khóa nào trong Python được sử dụng để khai báo một biến cục bộ bên trong hàm muốn sử dụng biến toàn cục cùng tên?

  • A. local
  • B. nonlocal
  • C. global
  • D. static

Câu 4: Cho đoạn mã Python:
```python
x = 5
def thay_doi_x():
x = 10
print(

  • A. x trong ham: 5
    x ngoai ham: 5
  • B. x trong ham: 10
    x ngoai ham: 5
  • C. x trong ham: 10
    x ngoai ham: 10
  • D. x trong ham: 5
    x ngoai ham: 10

Câu 5: Trong Python, quy tắc LEGB xác định thứ tự tìm kiếm phạm vi của biến. LEGB là viết tắt của:

  • A. Local, External, Global, Built-in
  • B. Limited, Extended, General, Basic
  • C. Local, Enclosing, Global, Built-in
  • D. Lexical, Enclosing, Global, Block

Câu 6: Xét đoạn mã Python:
```python
def ham_a(y):
x = 5 # x là biến cục bộ của ham_a
def ham_b(z):
return x + y + z # x, y được tham chiếu từ phạm vi bao ngoài
return ham_b

my_func = ham_a(2)
print(my_func(3)) # Gọi ham_b
```
Giá trị in ra màn hình là bao nhiêu?

  • A. 7
  • B. 8
  • C. 10
  • D. 12

Câu 7: Biến cục bộ (local variable) được tạo ra khi nào?

  • A. Khi chương trình bắt đầu chạy
  • B. Khi hàm được gọi
  • C. Khi biến được khai báo ở đầu chương trình
  • D. Khi một module được import

Câu 8: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

  • A. Lỗi NameError sẽ xảy ra
  • B. Biến toàn cục cùng tên sẽ được sử dụng
  • C. Chương trình sẽ tự động tạo một biến toàn cục mới
  • D. Giá trị mặc định của biến (nếu có) sẽ được sử dụng

Câu 9: Cho đoạn mã Python:
```python
z = 20
def ham_c():
global z
z = 30
print(

  • A. z trong ham: 30
    z ngoai ham: 20
  • B. z trong ham: 20
    z ngoai ham: 20
  • C. z trong ham: 30
    z ngoai ham: 30
  • D. Lỗi NameError

Câu 10: Trong một hàm Python, nếu bạn gán giá trị cho một biến mà biến đó chưa được khai báo trong hàm, Python sẽ coi biến đó là:

  • A. Biến toàn cục
  • B. Biến cục bộ
  • C. Biến không cục bộ
  • D. Biến tĩnh

Câu 11: Xét đoạn mã Python:
```python
def tinh_tong(a, b):
ket_qua = a + b
return ket_qua

tong = tinh_tong(5, 3)
print(ket_qua) # Lỗi ở dòng này
```
Tại sao dòng `print(ket_qua)` lại gây ra lỗi?

  • A. Biến `ket_qua` chưa được khởi tạo
  • B. Hàm `tinh_tong` chưa được gọi
  • C. Lỗi cú pháp do sử dụng tên biến không hợp lệ
  • D. Biến `ket_qua` chỉ có phạm vi cục bộ trong hàm `tinh_tong`

Câu 12: Phạm vi của biến "vòng lặp" (ví dụ biến `i` trong `for i in range(...)`) trong Python là:

  • A. Chỉ cục bộ bên trong vòng lặp
  • B. Toàn cục trong chương trình
  • C. Cục bộ trong khối chứa vòng lặp (ví dụ hàm hoặc module)
  • D. Không có phạm vi, có thể truy cập ở mọi nơi

Câu 13: Từ khóa `nonlocal` được sử dụng để làm gì trong Python?

  • A. Khai báo một biến toàn cục mới
  • B. Truy cập và sửa đổi biến trong phạm vi bao ngoài gần nhất
  • C. Tạo một biến cục bộ tĩnh
  • D. Ngăn chặn việc sửa đổi biến toàn cục

Câu 14: Cho đoạn mã Python:
```python
x = 1
def ham_d():
x = x + 1 # Lỗi ở dòng này
print(x)
ham_d()
```
Dòng lệnh `x = x + 1` trong hàm `ham_d` gây ra lỗi gì?

  • A. TypeError: unsupported operand type(s) for +: "int" and "str"
  • B. ValueError: invalid literal for int() with base 10: "x"
  • C. UnboundLocalError: cannot access local variable "x" where it is not associated with a value
  • D. SyntaxError: invalid syntax

Câu 15: Biến toàn cục (global variable) thường được khai báo ở đâu trong chương trình Python?

  • A. Bên trong một hàm cụ thể
  • B. Chỉ trong các module riêng biệt
  • C. Ở đầu mỗi khối lệnh
  • D. Bên ngoài tất cả các hàm và lớp

Câu 16: Xét đoạn mã Python:
```python
def ham_e():
y = 20
return y

def ham_f():
print(y) # Lỗi ở dòng này

ham_e()
ham_f()
```
Tại sao khi gọi `ham_f()` lại có thể gây ra lỗi?

  • A. Biến `y` chỉ được định nghĩa cục bộ trong `ham_e`
  • B. Hàm `ham_f` không trả về giá trị
  • C. Lỗi cú pháp trong định nghĩa hàm `ham_f`
  • D. Cần phải gọi `ham_e()` trước `ham_f()` trong cùng một dòng

Câu 17: Phạm vi của biến giúp ích gì trong việc viết chương trình?

  • A. Làm cho chương trình chạy nhanh hơn
  • B. Giảm dung lượng bộ nhớ sử dụng
  • C. Quản lý tên biến, tránh xung đột và tăng tính module hóa
  • D. Cho phép sử dụng biến toàn cục ở mọi nơi mà không cần khai báo

Câu 18: Trong Python, biến built-in (biến dựng sẵn) có phạm vi như thế nào?

  • A. Cục bộ trong module hiện tại
  • B. Cục bộ trong hàm hiện tại
  • C. Chỉ có phạm vi trong một số module nhất định
  • D. Toàn cục và có sẵn ở mọi nơi

Câu 19: Cho đoạn mã Python:
```python
m = 100
def ham_g():
m = 200
def ham_h():
nonlocal m
m = 300
ham_h()
print(

  • A. m trong ham_g: 200
    m toan cuc: 100
  • B. m trong ham_g: 300
    m toan cuc: 100
  • C. m trong ham_g: 300
    m toan cuc: 300
  • D. m trong ham_g: 200
    m toan cuc: 200

Câu 20: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

  • A. Python sẽ báo lỗi trùng tên biến
  • B. Biến toàn cục sẽ được ưu tiên sử dụng
  • C. Biến cục bộ sẽ che phủ (shadow) biến toàn cục trong phạm vi cục bộ
  • D. Chương trình sẽ sử dụng cả hai biến tùy theo ngữ cảnh

Câu 21: Trong ngôn ngữ lập trình, tại sao cần khái niệm "phạm vi của biến"?

  • A. Để làm cho code ngắn gọn hơn
  • B. Để tăng tốc độ thực thi chương trình
  • C. Để đơn giản hóa việc khai báo biến
  • D. Để quản lý bộ nhớ, tránh xung đột tên và tăng tính tái sử dụng của code

Câu 22: Cho đoạn mã Python:
```python
def ham_i():
if True:
p = 50
print(p)
ham_i()
```
Biến `p` trong hàm `ham_i` có phạm vi là gì?

  • A. Cục bộ chỉ trong khối `if`
  • B. Cục bộ trong hàm `ham_i`
  • C. Toàn cục
  • D. Không xác định

Câu 23: Hàm nào sau đây có thể truy cập và thay đổi giá trị của biến toàn cục trong Python?

  • A. Hàm sử dụng từ khóa `global` trước tên biến
  • B. Mọi hàm đều có thể truy cập và thay đổi biến toàn cục
  • C. Chỉ hàm `main()` mới có thể thay đổi biến toàn cục
  • D. Không hàm nào có thể thay đổi trực tiếp biến toàn cục

Câu 24: Xét đoạn mã Python:
```python
count = 0
def increment():
count += 1 # Lỗi ở dòng này
increment()
print(count)
```
Tại sao dòng `count += 1` trong hàm `increment()` lại gây ra lỗi?

  • A. Lỗi cú pháp do toán tử `+=` không hợp lệ
  • B. Biến `count` chưa được khởi tạo
  • C. UnboundLocalError do cố gắng gán giá trị cho biến cục bộ `count` trước khi tham chiếu nó
  • D. TypeError do `count` không phải là kiểu số

Câu 25: Để khắc phục lỗi trong đoạn mã ở Câu 24, bạn cần làm gì?

  • A. Khởi tạo `count` trong hàm trước khi tăng
  • B. Sử dụng từ khóa `global count` ở đầu hàm `increment()`
  • C. Thay đổi tên biến cục bộ thành tên khác
  • D. Không thể khắc phục lỗi này, cần viết lại chương trình

Câu 26: Trong Python, bạn có thể có các biến cục bộ trùng tên với biến toàn cục. Điều này được gọi là:

  • A. Overloading
  • B. Overriding
  • C. Polymorphism
  • D. Shadowing

Câu 27: Điều gì xảy ra khi một hàm kết thúc thực thi liên quan đến các biến cục bộ của nó?

  • A. Biến cục bộ trở thành biến toàn cục
  • B. Biến cục bộ được lưu trữ để sử dụng lần sau
  • C. Biến cục bộ bị hủy và không còn tồn tại
  • D. Giá trị của biến cục bộ được trả về cho chương trình chính

Câu 28: Phạm vi nào được ưu tiên tìm kiếm biến đầu tiên theo quy tắc LEGB?

  • A. Local (Cục bộ)
  • B. Enclosing (Bao ngoài)
  • C. Global (Toàn cục)
  • D. Built-in (Dựng sẵn)

Câu 29: Trong một chương trình lớn, việc sử dụng biến cục bộ thay vì biến toàn cục được khuyến khích vì lý do chính nào?

  • A. Để chương trình chạy nhanh hơn
  • B. Giảm tác dụng phụ không mong muốn và tăng tính bảo trì của code
  • C. Để đơn giản hóa việc chia sẻ dữ liệu giữa các hàm
  • D. Để tiết kiệm bộ nhớ

Câu 30: Cho đoạn mã Python:
```python
def outer_func():
message =

  • A. Inner: World
    Outer: Hello
  • B. Inner: Hello
    Outer: World
  • C. Inner: World
    Outer: World
  • D. Inner: Hello
    Outer: Hello

1 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 1: Biến nào sau đây có phạm vi truy cập rộng nhất trong chương trình Python?

2 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 2: Xét đoạn mã Python sau:
```python
def ham_ngoai():
x = 10
def ham_trong():
print(x)
ham_trong()
ham_ngoai()
print(x) # Lỗi ở dòng này
```
Dòng lệnh `print(x)` cuối cùng sẽ gây ra lỗi gì?

3 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 3: Từ khóa nào trong Python được sử dụng để khai báo một biến cục bộ bên trong hàm muốn sử dụng biến toàn cục cùng tên?

4 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 4: Cho đoạn mã Python:
```python
x = 5
def thay_doi_x():
x = 10
print("x trong ham:", x)
thay_doi_x()
print("x ngoai ham:", x)
```
Kết quả in ra màn hình sẽ là gì?

5 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 5: Trong Python, quy tắc LEGB xác định thứ tự tìm kiếm phạm vi của biến. LEGB là viết tắt của:

6 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 6: Xét đoạn mã Python:
```python
def ham_a(y):
x = 5 # x là biến cục bộ của ham_a
def ham_b(z):
return x + y + z # x, y được tham chiếu từ phạm vi bao ngoài
return ham_b

my_func = ham_a(2)
print(my_func(3)) # Gọi ham_b
```
Giá trị in ra màn hình là bao nhiêu?

7 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 7: Biến cục bộ (local variable) được tạo ra khi nào?

8 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 8: Điều gì xảy ra khi bạn cố gắng truy cập một biến cục bộ bên ngoài phạm vi của nó?

9 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 9: Cho đoạn mã Python:
```python
z = 20
def ham_c():
global z
z = 30
print("z trong ham:", z)
ham_c()
print("z ngoai ham:", z)
```
Kết quả in ra màn hình là gì?

10 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 10: Trong một hàm Python, nếu bạn gán giá trị cho một biến mà biến đó chưa được khai báo trong hàm, Python sẽ coi biến đó là:

11 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 11: Xét đoạn mã Python:
```python
def tinh_tong(a, b):
ket_qua = a + b
return ket_qua

tong = tinh_tong(5, 3)
print(ket_qua) # Lỗi ở dòng này
```
Tại sao dòng `print(ket_qua)` lại gây ra lỗi?

12 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 12: Phạm vi của biến 'vòng lặp' (ví dụ biến `i` trong `for i in range(...)`) trong Python là:

13 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 13: Từ khóa `nonlocal` được sử dụng để làm gì trong Python?

14 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 14: Cho đoạn mã Python:
```python
x = 1
def ham_d():
x = x + 1 # Lỗi ở dòng này
print(x)
ham_d()
```
Dòng lệnh `x = x + 1` trong hàm `ham_d` gây ra lỗi gì?

15 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 15: Biến toàn cục (global variable) thường được khai báo ở đâu trong chương trình Python?

16 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 16: Xét đoạn mã Python:
```python
def ham_e():
y = 20
return y

def ham_f():
print(y) # Lỗi ở dòng này

ham_e()
ham_f()
```
Tại sao khi gọi `ham_f()` lại có thể gây ra lỗi?

17 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 17: Phạm vi của biến giúp ích gì trong việc viết chương trình?

18 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 18: Trong Python, biến built-in (biến dựng sẵn) có phạm vi như thế nào?

19 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 19: Cho đoạn mã Python:
```python
m = 100
def ham_g():
m = 200
def ham_h():
nonlocal m
m = 300
ham_h()
print("m trong ham_g:", m)
ham_g()
print("m toan cuc:", m)
```
Kết quả in ra màn hình là gì?

20 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 20: Điều gì sẽ xảy ra nếu bạn khai báo một biến toàn cục và một biến cục bộ có cùng tên trong cùng một chương trình?

21 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 21: Trong ngôn ngữ lập trình, tại sao cần khái niệm 'phạm vi của biến'?

22 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 22: Cho đoạn mã Python:
```python
def ham_i():
if True:
p = 50
print(p)
ham_i()
```
Biến `p` trong hàm `ham_i` có phạm vi là gì?

23 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 23: Hàm nào sau đây có thể truy cập và thay đổi giá trị của biến toàn cục trong Python?

24 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 24: Xét đoạn mã Python:
```python
count = 0
def increment():
count += 1 # Lỗi ở dòng này
increment()
print(count)
```
Tại sao dòng `count += 1` trong hàm `increment()` lại gây ra lỗi?

25 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 25: Để khắc phục lỗi trong đoạn mã ở Câu 24, bạn cần làm gì?

26 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 26: Trong Python, bạn có thể có các biến cục bộ trùng tên với biến toàn cục. Điều này được gọi là:

27 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 27: Điều gì xảy ra khi một hàm kết thúc thực thi liên quan đến các biến cục bộ của nó?

28 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 28: Phạm vi nào được ưu tiên tìm kiếm biến đầu tiên theo quy tắc LEGB?

29 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 29: Trong một chương trình lớn, việc sử dụng biến cục bộ thay vì biến toàn cục được khuyến khích vì lý do chính nào?

30 / 30

Category: Trắc nghiệm Tin học 10 Kết nối tri thức Bài 28: Phạm vi của biến

Tags: Bộ đề 10

Câu 30: Cho đoạn mã Python:
```python
def outer_func():
message = "Hello"
def inner_func():
message = "World"
print("Inner:", message)
inner_func()
print("Outer:", message)

outer_func()
```
Kết quả in ra màn hình là gì?

Xem kết quả