Đề Trắ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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

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

  • A. Biến toàn cục, có hiệu lực ở mọi nơi.
  • B. Biến địa phương, có hiệu lực ở mọi nơi.
  • C. Biến cục bộ, chỉ có hiệu lực bên trong hàm.
  • D. Biến toàn cục, chỉ có hiệu lực bên trong hàm.

Câu 2: Xem xét đoạn mã Python sau:
x = 10
def my_function():
y = 5
print(x + y)

Biến `x` trong đoạn mã này là biến gì và biến `y` là biến gì?

  • A. `x` là biến toàn cục, `y` là biến cục bộ.
  • B. `x` là biến cục bộ, `y` là biến toàn cục.
  • C. Cả `x` và `y` đều là biến toàn cục.
  • D. Cả `x` và `y` đều là biến cục bộ.

Câu 3: Cho đoạn mã Python:
count = 0
def increase_count():
count = 1
print(f

  • A. Inside function: 1
    Outside function: 1
  • B. Inside function: 1
    Outside function: 0
  • C. Inside function: 0
    Outside function: 1
  • D. Chương trình bị lỗi.

Câu 4: Để một hàm có thể thay đổi giá trị của một biến toàn cục đã khai báo bên ngoài hàm, 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. local
  • B. static
  • C. public
  • D. global

Câu 5: Cho đoạn mã:
total = 100
def update_total(amount):
global total
total = total + amount
update_total(50)
print(total)

Kết quả in ra màn hình sẽ là gì?

  • A. 100
  • B. 50
  • C. 150
  • D. Chương trình bị lỗi.

Câu 6: Đ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 phạm vi của hàm mà nó được khai báo?

  • A. Chương trình sẽ báo lỗi `NameError`.
  • B. Chương trình sẽ chạy bình thường và in ra giá trị của biến.
  • C. Chương trình sẽ in ra giá trị mặc định của biến (ví dụ: 0 hoặc None).
  • D. Biến cục bộ sẽ tự động trở thành biến toàn cục.

Câu 7: Cho đoạn mã:
message =

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Biến không xác định, chương trình sẽ lỗi.
  • D. Biến chỉ có hiệu lực sau khi hàm kết thúc.

Câu 8: Xem xét đoạn mã:
value = 10
def change_value():
value = 20
def display_value():
print(value)
change_value()
display_value()

Kết quả in ra màn hình sẽ là gì?

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

Câu 9: Khi một biến được khai báo bên ngoài tất cả các hàm và khối lệnh, nó có phạm vi 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 10: Cho đoạn mã:
def outer_function():
x = 10
def inner_function():
y = 5
print(x + y) # Dòng 5
inner_function()
outer_function()

Biến `x` được sử dụng ở Dòng 5 thuộc phạm vi nào đối với `inner_function`?

  • A. Phạm vi toàn cục.
  • B. Phạm vi bao đóng (nonlocal).
  • C. Phạm vi cục bộ của `inner_function`.
  • D. Phạm vi cục bộ của `outer_function`.

Câu 11: Xem xét đoạn mã sau:
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)
print(f

  • A. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3, 4]
  • B. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3]
  • C. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3, 4]
  • D. Chương trình bị lỗi.

Câu 12: Xem xét đoạn mã sau:
my_number = 10
def modify_number(num):
num = num + 5
print(f

  • A. Inside function: 15
    Outside function: 15
  • B. Inside function: 15
    Outside function: 10
  • C. Inside function: 10
    Outside function: 15
  • D. Chương trình bị lỗi.

Câu 13: Trong Python, thứ tự tìm kiếm biến theo các phạm vi (LEGB Rule) là gì?

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

Câu 14: Cho đoạn mã:
a = 1
def f():
b = 2
def g():
c = 3
print(a + b + c) # Dòng 6
g()
f()

Tại Dòng 6, biến `a`, `b`, `c` thuộc những phạm vi nào đối với hàm `g`?

  • A. `a` (Cục bộ), `b` (Cục bộ), `c` (Cục bộ)
  • B. `a` (Toàn cục), `b` (Toàn cục), `c` (Cục bộ)
  • C. `a` (Toàn cục), `b` (Cục bộ), `c` (Bao đóng)
  • D. `a` (Toàn cục), `b` (Bao đóng), `c` (Cục bộ)

Câu 15: Xem xét đoạn mã:
count = 10
def demo():
print(count)
count = 5 # Dòng 4
demo()

Chương trình này sẽ báo lỗi ở dòng nào và tại sao?

  • A. Dòng 1, vì biến toàn cục không thể truy cập.
  • B. Dòng 2, vì khai báo hàm sai cú pháp.
  • C. Dòng 3, vì biến `count` được coi là cục bộ nhưng chưa được gán giá trị khi sử dụng.
  • D. Dòng 4, vì không thể gán lại giá trị cho biến toàn cục.

Câu 16: Để giải quyết lỗi ở Câu 15 (muốn in giá trị biến toàn cục `count` TRƯỚC khi gán giá trị mới cho biến cục bộ `count` trong hàm), ta cần sửa đổi như thế nào?

  • A. Thay `print(count)` bằng `print(globals()["count"])` hoặc tương tự.
  • B. Thêm từ khóa `global count` trước dòng `print(count)`.
  • C. Thay `count = 5` bằng `local count = 5`.
  • D. Xóa bỏ dòng `count = 5`.

Câu 17: Cho đoạn mã:
value = 100
def func1():
value = 50
print(f

  • A. Func1: 50
    Func2: 50
    Global: 50
  • B. Func1: 50
    Func2: 100
    Global: 100
  • C. Func1: 100
    Func2: 100
    Global: 100
  • D. Func1: 50
    Func2: 100
    Global: 50

Câu 18: Xem xét đoạn mã:
numbers = [1, 2]
def add_item(lst):
lst = lst + [3] # Dòng 3
print(f

  • A. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3]
  • B. Inside function: [1, 2]
    Outside function: [1, 2, 3]
  • C. Inside function: [1, 2]
    Outside function: [1, 2]
  • D. Inside function: [1, 2, 3]
    Outside function: [1, 2]

Câu 19: Mục đích chính của việc giới hạn phạm vi hoạt động của biến (biến cục bộ) là gì?

  • A. Để biến chạy nhanh hơn.
  • B. Để biến có thể được sử dụng ở mọi nơi.
  • C. Để tránh xung đột tên biến và làm cho code dễ quản lý hơn.
  • D. Để biến tự động giải phóng bộ nhớ khi không dùng nữa.

Câu 20: Biến nào sau đây có thể được truy cập từ bất kỳ đâu trong chương trình Python (sau khi nó được khai báo)?

  • A. Biến toàn cục.
  • B. Biến cục bộ.
  • C. Biến trong phạm vi bao đóng.
  • D. Tất cả các loại biến.

Câu 21: Xem xét đoạn mã:
def my_func():
x = 10
print(x)
print(x) # Dòng 4

Chương trình này sẽ báo lỗi ở dòng nào và tại sao?

  • A. Dòng 1, vì khai báo hàm sai.
  • B. Dòng 2, vì gán giá trị sai.
  • C. Dòng 3, vì in biến cục bộ sai.
  • D. Dòng 4, vì biến cục bộ `x` không tồn tại ở phạm vi toàn cục.

Câu 22: Từ khóa `global` được sử dụng để làm gì trong Python?

  • A. Khai báo một biến mới có phạm vi toàn cục.
  • B. Cho phép một hàm thay đổi giá trị của một biến toàn cục.
  • C. Khai báo một biến mới có phạm vi cục bộ.
  • D. Truy cập giá trị của biến toàn cục mà không cần thay đổi nó.

Câu 23: Đoạn mã nào sau đây sẽ thay đổi giá trị của biến toàn cục `counter`?

  • A. counter = 0
    def inc():
      counter = 1
    inc()
  • B. counter = 0
    def inc():
      global counter
      counter = 1
    inc()
  • C. counter = 0
    def inc(counter):
      counter = 1
    inc(counter)
  • D. counter = 0
    def inc():
      print(counter)
    inc()

Câu 24: Khi một hàm được gọi, các biến cục bộ của nó được tạo ra. Chúng tồn tại trong bao lâu?

  • A. Cho đến khi chương trình kết thúc.
  • B. Cho đến khi có một hàm khác được gọi.
  • C. Trong suốt thời gian hàm đang thực thi.
  • D. Cho đến khi một biến toàn cục có cùng tên được khai báo.

Câu 25: Đ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?

  • A. Biến cục bộ sẽ che khuất (shadow) biến toàn cục trong phạm vi của hàm.
  • B. Chương trình sẽ báo lỗi vì trùng tên.
  • C. Biến toàn cục sẽ bị ghi đè vĩnh viễn.
  • D. Biến cục bộ sẽ tự động trở thành biến toàn cục.

Câu 26: Xem xét đoạn mã:
def create_list():
my_list = [1, 2]
return my_list
# Đoạn mã tiếp theo muốn sử dụng my_list

Làm thế nào để truy cập danh sách được tạo ra bên trong hàm `create_list` từ bên ngoài hàm?

  • A. Sử dụng từ khóa `global my_list` bên ngoài hàm.
  • B. Truy cập trực tiếp `my_list` sau khi gọi hàm (ví dụ: `print(my_list)`).
  • C. Khai báo `my_list` là biến toàn cục bên trong hàm.
  • D. Gán giá trị trả về của hàm cho một biến bên ngoài hàm (ví dụ: `result_list = create_list()`).

Câu 27: Trong Python, phạm vi tích hợp (Built-in scope) chứa những gì?

  • A. Các hàm và hằng số được tích hợp sẵn trong Python (ví dụ: `print`, `len`, `True`).
  • B. Các biến được khai báo bởi người dùng bên ngoài mọi hàm.
  • C. Các biến được khai báo bên trong một hàm.
  • D. Các biến được khai báo trong một hàm lồng nhau.

Câu 28: Cho đoạn mã:
def process_data(data):
local_var = 10
# Sử dụng data và local_var
pass
# print(local_var) # Dòng 5

Nếu bỏ dấu `#` ở Dòng 5, chương trình sẽ bị lỗi gì?

  • A. SyntaxError
  • B. NameError
  • C. TypeError
  • D. Không có lỗi.

Câu 29: Sự khác biệt cơ bản về hành vi phạm vi giữa kiểu dữ liệu có thể thay đổi (mutable, ví dụ: list) và không thể thay đổi (immutable, ví dụ: int, string) khi truyền vào hàm là gì?

  • A. Không có sự khác biệt về phạm vi.
  • B. Chỉ biến immutable mới có thể được truyền vào hàm.
  • C. Thay đổi nội dung của mutable object trong hàm ảnh hưởng bên ngoài; gán lại biến immutable trong hàm chỉ tạo biến cục bộ mới.
  • D. Thay đổi nội dung của immutable object trong hàm ảnh hưởng bên ngoài; gán lại biến mutable trong hàm chỉ tạo biến cục bộ mới.

Câu 30: Xem xét đoạn mã:
my_var =

  • A. local
    global
  • B. global
    local
  • C. local
    local
  • D. global
    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ộ đề 01

Câu 1: Trong Python, biến được khai báo bên trong một hàm (và không sử dụng từ khóa `global`) được gọi là biến gì và 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ộ đề 01

Câu 2: Xem xét đoạn mã Python sau:
x = 10
def my_function():
y = 5
print(x + y)

Biến `x` trong đoạn mã này là biến gì và biến `y` là biến 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ộ đề 01

Câu 3: Cho đoạn mã Python:
count = 0
def increase_count():
count = 1
print(f"Inside function: {count}")
increase_count()
print(f"Outside function: {count}")

Kết quả in ra màn hình sẽ 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ộ đề 01

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

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ộ đề 01

Câu 5: Cho đoạn mã:
total = 100
def update_total(amount):
global total
total = total + amount
update_total(50)
print(total)

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 6: Đ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 phạm vi của hàm mà nó được khai bá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ộ đề 01

Câu 7: Cho đoạn mã:
message = "Hello"
def greet():
print(message) # Dòng 3
greet()

Biến `message` được sử dụng ở Dòng 3 là biến 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ộ đề 01

Câu 8: Xem xét đoạn mã:
value = 10
def change_value():
value = 20
def display_value():
print(value)
change_value()
display_value()

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 9: Khi một biến được khai báo bên ngoài tất cả các hàm và khối lệnh, nó có phạm vi 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ộ đề 01

Câu 10: Cho đoạn mã:
def outer_function():
x = 10
def inner_function():
y = 5
print(x + y) # Dòng 5
inner_function()
outer_function()

Biến `x` được sử dụng ở Dòng 5 thuộc phạm vi nào đối với `inner_function`?

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ộ đề 01

Câu 11: Xem xét đoạn mã sau:
my_list = [1, 2, 3]
def modify_list(lst):
lst.append(4)
print(f"Inside function: {lst}")
modify_list(my_list)
print(f"Outside function: {my_list}")

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 12: Xem xét đoạn mã sau:
my_number = 10
def modify_number(num):
num = num + 5
print(f"Inside function: {num}")
modify_number(my_number)
print(f"Outside function: {my_number}")

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 13: Trong Python, thứ tự tìm kiếm biến theo các phạm vi (LEGB Rule) 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ộ đề 01

Câu 14: Cho đoạn mã:
a = 1
def f():
b = 2
def g():
c = 3
print(a + b + c) # Dòng 6
g()
f()

Tại Dòng 6, biến `a`, `b`, `c` thuộc những phạm vi nào đối với hàm `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ộ đề 01

Câu 15: Xem xét đoạn mã:
count = 10
def demo():
print(count)
count = 5 # Dòng 4
demo()

Chương trình này sẽ báo lỗi ở dòng nào và tại sao?

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ộ đề 01

Câu 16: Để giải quyết lỗi ở Câu 15 (muốn in giá trị biến toàn cục `count` TRƯỚC khi gán giá trị mới cho biến cục bộ `count` trong hàm), ta cần sửa đổi 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ộ đề 01

Câu 17: Cho đoạn mã:
value = 100
def func1():
value = 50
print(f"Func1: {value}")
def func2():
print(f"Func2: {value}")
func1()
func2()
print(f"Global: {value}")

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 18: Xem xét đoạn mã:
numbers = [1, 2]
def add_item(lst):
lst = lst + [3] # Dòng 3
print(f"Inside function: {lst}")
add_item(numbers)
print(f"Outside function: {numbers}")

Kết quả in ra màn hình sẽ 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ộ đề 01

Câu 19: Mục đích chính của việc giới hạn phạm vi hoạt động của biến (biến cục bộ) 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ộ đề 01

Câu 20: Biến nào sau đây có thể được truy cập từ bất kỳ đâu trong chương trình Python (sau khi nó được khai báo)?

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ộ đề 01

Câu 21: Xem xét đoạn mã:
def my_func():
x = 10
print(x)
print(x) # Dòng 4

Chương trình này sẽ báo lỗi ở dòng nào và 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ộ đề 01

Câu 22: Từ khóa `global` được sử dụng để làm gì trong Python?

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ộ đề 01

Câu 23: Đoạn mã nào sau đây sẽ thay đổi giá trị của biến toàn cục `counter`?

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ộ đề 01

Câu 24: Khi một hàm được gọi, các biến cục bộ của nó được tạo ra. Chúng tồn tại trong bao lâu?

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ộ đề 01

Câu 25: Đ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?

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ộ đề 01

Câu 26: Xem xét đoạn mã:
def create_list():
my_list = [1, 2]
return my_list
# Đoạn mã tiếp theo muốn sử dụng my_list

Làm thế nào để truy cập danh sách được tạo ra bên trong hàm `create_list` từ bên ngoài hàm?

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ộ đề 01

Câu 27: Trong Python, phạm vi tích hợp (Built-in scope) chứa những 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ộ đề 01

Câu 28: Cho đoạn mã:
def process_data(data):
local_var = 10
# Sử dụng data và local_var
pass
# print(local_var) # Dòng 5

Nếu bỏ dấu `#` ở Dòng 5, chương trình sẽ bị lỗi 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ộ đề 01

Câu 29: Sự khác biệt cơ bản về hành vi phạm vi giữa kiểu dữ liệu có thể thay đổi (mutable, ví dụ: list) và không thể thay đổi (immutable, ví dụ: int, string) khi truyền vào hàm 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ộ đề 01

Câu 30: Xem xét đoạn mã:
my_var = "global"
def test_scope():
my_var = "local"
print(my_var)
test_scope()
print(my_var)

Kết quả in ra màn hình sẽ là gì?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, biến được khai báo bên trong một hàm (ví dụ: `def my_function(): x = 10`) có phạm vi hoạt động là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Ngoại vi (Enclosing)
  • D. Tích hợp (Built-in)

Câu 2: Biến được khai báo bên ngoài tất cả các hàm hoặc khối mã khác ở cấp độ cao nhất của tập tin Python có phạm vi hoạt động là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Ngoại vi (Enclosing)
  • D. Tích hợp (Built-in)

Câu 3: Xét đoạn mã sau:
```python
x = 10
def my_function():
print(x)
my_function()
```
Kết quả in ra màn hình là gì?

  • A. Lỗi: biến "x" chưa được định nghĩa trong hàm.
  • B. 0
  • C. 10
  • D. None

Câu 4: Xét đoạn mã sau:
```python
x = 10
def my_function():
x = 5
print(x)
my_function()
print(x)
```
Kết quả in ra màn hình sẽ là gì (theo thứ tự)?

  • A. 10
    5
  • B. 5
    10
  • C. 5
    5
  • D. Lỗi: Biến "x" bị trùng tên.

Câu 5: Trong đoạn mã ở Câu 4, biến `x` bên trong hàm `my_function` và biến `x` bên ngoài hàm là hai biến khác nhau. Hiện tượng này được gọi là gì?

  • A. Che khuất (Shadowing)
  • B. Toàn cầu hóa (Globalization)
  • C. Cục bộ hóa (Localization)
  • D. Tham chiếu (Referencing)

Câu 6: Xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
increment()
print(count)
```
Khi chạy đoạn mã này, kết quả sẽ là gì?

  • A. 0
  • B. 1
  • C. Lỗi cú pháp.
  • D. Lỗi: Biến "count" được tham chiếu trước khi gán trong phạm vi cục bộ.

Câu 7: Để sửa lỗi trong đoạn mã ở Câu 6 và cho phép hàm `increment` thay đổi giá trị của biến `count` toàn cục, chúng ta cần sử dụng từ khóa nào bên trong hàm?

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

Câu 8: Sau khi sửa lỗi ở Câu 6 bằng cách thêm từ khóa thích hợp, kết quả in ra màn hình sẽ là gì?

  • A. 0
  • B. Lỗi vẫn xảy ra.
  • C. 1
  • D. None

Câu 9: Biến cục bộ chỉ tồn tại trong suốt quá trình thực thi của:

  • A. Toàn bộ chương trình.
  • B. Một vòng lặp.
  • C. Một khối lệnh `if/else`.
  • D. Hàm mà nó được khai báo.

Câu 10: Biến toàn cục có thể được truy cập từ đâu trong chương trình Python?

  • A. Bất kỳ đâu trong chương trình (bên trong hoặc bên ngoài các hàm).
  • B. Chỉ bên ngoài các hàm.
  • C. Chỉ bên trong các hàm.
  • D. Chỉ trong cùng một khối lệnh `if/else`.

Câu 11: Xét đoạn mã sau:
```python
def set_value():
y = 20
set_value()
print(y)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Lỗi: Biến "y" chưa được định nghĩa ở phạm vi toàn cục.
  • B. 20
  • C. 0
  • D. None

Câu 12: Khi một hàm cần đọc giá trị của một biến toàn cục nhưng không cần thay đổi giá trị của nó, bạn có cần sử dụng từ khóa `global` không?

  • A. Có, luôn luôn cần để truy cập biến toàn cục.
  • B. Không, có thể đọc giá trị của biến toàn cục mà không cần `global`.
  • C. Chỉ cần nếu tên biến toàn cục trùng với tên biến cục bộ.
  • D. Chỉ cần nếu biến toàn cục là kiểu dữ liệu chuỗi.

Câu 13: Xét đoạn mã sau:
```python
def calculate(a, b):
result = a + b
print(

  • A. Inside function: 8
    Outside function: 8
  • B. Inside function: 0
    Outside function: 8
  • C. Inside function: 0
    Outside function: 0
  • D. Inside function: 8
    Outside function: 0

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

  • A. Chúng bị hủy bỏ và không còn tồn tại.
  • B. Chúng vẫn tồn tại nhưng chỉ có thể truy cập từ bên trong hàm.
  • C. Chúng trở thành biến toàn cục.
  • D. Chúng được lưu trữ cho lần gọi hàm tiếp theo.

Câu 15: Xét đoạn mã sau:
```python
def process_list(my_list):
my_list.append(4)
print(

  • A. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3]
  • B. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3, 4]
  • C. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3]
  • D. Lỗi: Không thể thay đổi danh sách bên trong hàm.

Câu 16: Tại sao trong Câu 15, việc thay đổi danh sách `my_list` bên trong hàm lại ảnh hưởng đến danh sách `data` bên ngoài hàm, mặc dù không dùng từ khóa `global`?

  • A. Vì danh sách là kiểu dữ liệu bất biến (immutable).
  • B. Vì Python tự động coi danh sách là biến toàn cục khi truyền vào hàm.
  • C. Vì danh sách là kiểu dữ liệu khả biến (mutable), và hàm nhận được tham chiếu đến cùng một đối tượng danh sách.
  • D. Đây là một lỗi thiết kế của Python.

Câu 17: Xét đoạn mã sau:
```python
x = 100
def outer_function():
x = 50
def inner_function():
print(x)
inner_function()
outer_function()
```
Kết quả in ra màn hình là gì?

  • A. 100
  • B. 50
  • C. Lỗi: Biến "x" chưa được định nghĩa.
  • D. None

Câu 18: Phạm vi nào được tìm kiếm đầu tiên khi Python cố gắng phân giải tên một biến bên trong một hàm?

  • A. Phạm vi cục bộ của hàm hiện tại.
  • B. Phạm vi toàn cục.
  • C. Phạm vi tích hợp (built-in).
  • D. Phạm vi ngoại vi (enclosing) (nếu có).

Câu 19: Xét đoạn mã sau:
```python
a = 1
def func1():
b = 2
def func2():
c = 3
print(a, b, c)
func2()
func1()
```
Trong hàm `func2`, biến `b` thuộc phạm vi nào?

  • A. Cục bộ (Local) của `func2`.
  • B. Toàn cục (Global).
  • C. Ngoại vi (Enclosing) của `func2` (cục bộ của `func1`).
  • D. Tích hợp (Built-in).

Câu 20: Trong đoạn mã ở Câu 19, biến `a` thuộc phạm vi nào khi được truy cập trong hàm `func2`?

  • A. Cục bộ (Local) của `func2`.
  • B. Toàn cục (Global).
  • C. Ngoại vi (Enclosing) của `func2`.
  • D. Tích hợp (Built-in).

Câu 21: Khối lệnh hoặc hàm nào sau đây tạo ra một phạm vi cục bộ mới trong Python?

  • A. Khối lệnh `if/else`.
  • B. Vòng lặp `for`.
  • C. Định nghĩa hàm `def`.
  • D. Khối lệnh `try/except`.

Câu 22: Xét đoạn mã sau:
```python
def modify_value(x):
x = x * 2
print(

  • A. Inside function: 20
    Outside function: 10
  • B. Inside function: 20
    Outside function: 20
  • C. Inside function: 10
    Outside function: 10
  • D. Lỗi: Biến "x" không thể thay đổi.

Câu 23: Trong Câu 22, tại sao giá trị của biến `value` bên ngoài hàm không bị thay đổi?

  • A. Vì số nguyên là kiểu dữ liệu khả biến (mutable).
  • B. Vì hàm `modify_value` không sử dụng từ khóa `global`.
  • C. Vì Python tạo ra một bản sao của `value` khi truyền vào hàm, và hàm chỉ thay đổi bản sao đó.
  • D. Cả B và C đều đúng.

Câu 24: Điều gì là đúng khi nói về phạm vi của tham số hàm trong Python?

  • A. Tham số hàm có phạm vi cục bộ bên trong hàm.
  • B. Tham số hàm có phạm vi toàn cục.
  • C. Tham số hàm có phạm vi ngoại vi.
  • D. Tham số hàm không có phạm vi cụ thể.

Câu 25: Xét đoạn mã sau:
```python
def create_message():
msg =

  • A. Hello
  • B. Lỗi: Biến "msg" chưa được định nghĩa ở phạm vi toàn cục.
  • C. None
  • D. Lỗi cú pháp.

Câu 26: Khi nào thì nên sử dụng biến toàn cục?

  • A. Luôn luôn sử dụng biến toàn cục để dễ dàng truy cập từ mọi nơi.
  • B. Chỉ khi biến đó chỉ được sử dụng trong một hàm duy nhất.
  • C. Khi biến đó cầ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.

Câu 27: Việc sử dụng quá nhiều biến toàn cục có thể dẫn đến vấn đề gì?

  • A. Khó theo dõi và quản lý trạng thái của chương trình.
  • B. Tăng khả năng xảy ra lỗi do các hàm vô tình thay đổi giá trị biến toàn cục.
  • C. Giảm khả năng tái sử dụng mã (code reusability).
  • D. Tất cả các vấn đề trên.

Câu 28: Xét đoạn mã sau:
```python
def calculate_area(width, height):
area = width * height
return area

result = calculate_area(10, 5)
print(result)
```
Trong đoạn mã này, biến `area` có phạm vi hoạt động như thế nào?

  • A. Toàn cục, vì nó được trả về từ hàm.
  • B. Cục bộ, chỉ tồn tại bên trong hàm `calculate_area`.
  • C. Toàn cục, vì nó nhận giá trị từ các tham số.
  • D. Ngoại vi.

Câu 29: Khi gỡ lỗi (debug) một chương trình Python liên quan đến phạm vi biến, điều gì là quan trọng cần kiểm tra?

  • A. Xác định rõ biến nào là cục bộ và biến nào là toàn cục.
  • B. Kiểm tra xem có sử dụng từ khóa `global` đúng cách khi cần thay đổi biến toàn cục hay không.
  • C. Đảm bảo không cố gắng truy cập biến cục bộ từ bên ngoài phạm vi của nó.
  • D. Tất cả các điều trên đều quan trọng.

Câu 30: Xét đoạn mã sau:
```python
count = 1
def do_something():
global count
for i in range(5):
count += 1

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

  • A. 1
  • B. 5
  • C. 6
  • D. Lỗi: Vòng lặp không thể thay đổi biến toàn cục.

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ộ đề 02

Câu 1: Trong Python, biến được khai báo bên trong một hàm (ví dụ: `def my_function(): x = 10`) có phạm vi hoạt động 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ộ đề 02

Câu 2: Biến được khai báo bên ngoài tất cả các hàm hoặc khối mã khác ở cấp độ cao nhất của tập tin Python có phạm vi hoạt động 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ộ đề 02

Câu 3: Xét đoạn mã sau:
```python
x = 10
def my_function():
print(x)
my_function()
```
Kết quả in ra màn hình 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ộ đề 02

Câu 4: Xét đoạn mã sau:
```python
x = 10
def my_function():
x = 5
print(x)
my_function()
print(x)
```
Kết quả in ra màn hình sẽ là gì (theo thứ tự)?

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ộ đề 02

Câu 5: Trong đoạn mã ở Câu 4, biến `x` bên trong hàm `my_function` và biến `x` bên ngoài hàm là hai biến khác nhau. Hiện tượng này được gọi 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ộ đề 02

Câu 6: Xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
increment()
print(count)
```
Khi chạy đoạn mã này, kết quả sẽ 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ộ đề 02

Câu 7: Để sửa lỗi trong đoạn mã ở Câu 6 và cho phép hàm `increment` thay đổi giá trị của biến `count` toàn cục, chúng ta cần sử dụng từ khóa nào bên trong hàm?

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ộ đề 02

Câu 8: Sau khi sửa lỗi ở Câu 6 bằng cách thêm từ khóa thích hợp, kết quả in ra màn hình sẽ 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ộ đề 02

Câu 9: Biến cục bộ chỉ tồn tại trong suốt quá trình thực thi của:

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ộ đề 02

Câu 10: Biến toàn cục có thể được truy cập từ đâ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ộ đề 02

Câu 11: Xét đoạn mã sau:
```python
def set_value():
y = 20
set_value()
print(y)
```
Kết quả khi chạy đoạn mã này 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ộ đề 02

Câu 12: Khi một hàm cần đọc giá trị của một biến toàn cục nhưng không cần thay đổi giá trị của nó, bạn có cần sử dụng từ khóa `global` khô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ộ đề 02

Câu 13: Xét đoạn mã sau:
```python
def calculate(a, b):
result = a + b
print("Inside function:", result)

result = 0
calculate(5, 3)
print("Outside function:", result)
```
Kết quả in ra màn hình sẽ 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ộ đề 02

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

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ộ đề 02

Câu 15: Xét đoạn mã sau:
```python
def process_list(my_list):
my_list.append(4)
print("Inside function:", my_list)

data = [1, 2, 3]
process_list(data)
print("Outside function:", data)
```
Kết quả in ra màn hình sẽ 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ộ đề 02

Câu 16: Tại sao trong Câu 15, việc thay đổi danh sách `my_list` bên trong hàm lại ảnh hưởng đến danh sách `data` bên ngoài hàm, mặc dù không dùng từ khóa `global`?

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ộ đề 02

Câu 17: Xét đoạn mã sau:
```python
x = 100
def outer_function():
x = 50
def inner_function():
print(x)
inner_function()
outer_function()
```
Kết quả in ra màn hình 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ộ đề 02

Câu 18: Phạm vi nào được tìm kiếm đầu tiên khi Python cố gắng phân giải tên một biến bên trong một hà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ộ đề 02

Câu 19: Xét đoạn mã sau:
```python
a = 1
def func1():
b = 2
def func2():
c = 3
print(a, b, c)
func2()
func1()
```
Trong hàm `func2`, biến `b` thuộc phạm vi nào?

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ộ đề 02

Câu 20: Trong đoạn mã ở Câu 19, biến `a` thuộc phạm vi nào khi được truy cập trong hàm `func2`?

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ộ đề 02

Câu 21: Khối lệnh hoặc hàm nào sau đây tạo ra một phạm vi cục bộ mới trong Python?

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ộ đề 02

Câu 22: Xét đoạn mã sau:
```python
def modify_value(x):
x = x * 2
print("Inside function:", x)

value = 10
modify_value(value)
print("Outside function:", value)
```
Kết quả in ra màn hình sẽ 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ộ đề 02

Câu 23: Trong Câu 22, tại sao giá trị của biến `value` bên ngoài hàm không bị thay đổi?

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ộ đề 02

Câu 24: Điều gì là đúng khi nói về phạm vi của tham số hàm 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ộ đề 02

Câu 25: Xét đoạn mã sau:
```python
def create_message():
msg = "Hello"
return msg

print(msg)
```
Kết quả khi chạy đoạn mã này 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ộ đề 02

Câu 26: Khi nào thì nên sử dụng biến toàn cục?

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ộ đề 02

Câu 27: Việc sử dụng quá nhiều biến toàn cục có thể dẫn đến vấn đề 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ộ đề 02

Câu 28: Xét đoạn mã sau:
```python
def calculate_area(width, height):
area = width * height
return area

result = calculate_area(10, 5)
print(result)
```
Trong đoạn mã này, biến `area` có phạm vi hoạt động như thế 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ộ đề 02

Câu 29: Khi gỡ lỗi (debug) một chương trình Python liên quan đến phạm vi biến, điều gì là quan trọng cần kiểm tra?

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ộ đề 02

Câu 30: Xét đoạn mã sau:
```python
count = 1
def do_something():
global count
for i in range(5):
count += 1

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

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Xét đoạn chương trình Python sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Kết quả in ra màn hình là gì?

  • A. 10
  • B. 5
  • C. 15
  • D. Chương trình báo lỗi

Câu 2: Biến `y` trong đoạn chương trình ở Câu 1 có phạm vi (scope) là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Chỉ có trong hàm `print()`
  • D. Không có phạm vi

Câu 3: Biến `x` trong đoạn chương trình ở Câu 1 có phạm vi (scope) là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Chỉ có trong hàm `my_function()`
  • D. Không có phạm vi

Câu 4: Xét đoạn chương trình sau:
```python
def greet():
message =

  • A. Biến `message` chưa được gán giá trị.
  • B. Biến `message` chỉ tồn tại trong phạm vi cục bộ của hàm `greet()`.
  • C. Hàm `greet()` chưa được gọi thực hiện.
  • D. Từ khóa `print` chỉ dùng được bên trong hàm.

Câu 5: Xét đoạn chương trình sau:
```python
count = 0
def increase_count():
count = count + 1
increase_count()
print(count)
```
Kết quả in ra màn hình là gì?

  • A. 1
  • B. 0
  • C. 2
  • D. Chương trình báo lỗi (UnboundLocalError)

Câu 6: Tại sao đoạn chương trình ở Câu 5 lại gây ra lỗi UnboundLocalError?

  • A. Vì biến `count` được khai báo trước hàm.
  • B. Vì biến `count` trong hàm trùng tên với biến toàn cục.
  • C. Vì Python hiểu `count` trong hàm là biến cục bộ, nhưng lại cố gắng đọc giá trị của nó trước khi gán giá trị lần đầu trong hàm.
  • D. Vì hàm không trả về giá trị nào.

Câu 7: Để sửa lỗi trong đoạn chương trình ở Câu 5 và làm cho hàm `increase_count()` thực sự tăng giá trị của biến toàn cục `count`, ta cần thêm từ khóa nào vào đầu hàm?

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

Câu 8: Xét đoạn chương trình sau khi đã sửa lỗi từ Câu 7:
```python
count = 0
def increase_count():
global count
count = count + 1
increase_count()
print(count)
```
Kết quả in ra màn hình là gì?

  • A. 1
  • B. 0
  • C. Chương trình báo lỗi
  • D. None

Câu 9: Khi một biến được khai báo bên ngoài tất cả các hàm và khối lệnh khác trong một tệp Python, nó có phạm vi là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Phạm vi hàm (Function scope)
  • D. Không xác định

Câu 10: Phạm vi của một biến cục bộ (local variable) kéo dài trong khoảng thời gian nào?

  • A. Từ khi chương trình bắt đầu chạy đến khi kết thúc.
  • B. Từ khi biến được gán giá trị lần đầu tiên trong chương trình.
  • C. Chỉ trong suốt quá trình thực thi của hàm hoặc khối lệnh mà nó được định nghĩa.
  • D. Từ khi biến được khai báo bằng từ khóa `local`.

Câu 11: Xét đoạn chương trình sau:
```python
def process_data(data):
result = data * 2
return result

value = 5
processed_value = process_data(value)
print(value)
print(processed_value)
```
Kết quả in ra màn hình là gì?

  • A. 10
    10
  • B. 5
    10
  • C. 5
    5
  • D. Chương trình báo lỗi

Câu 12: Trong đoạn chương trình ở Câu 11, tại sao giá trị của biến `value` (toàn cục) không thay đổi sau khi hàm `process_data()` được gọi?

  • A. Vì biến `value` là số nguyên, là kiểu dữ liệu bất biến.
  • B. Vì hàm `process_data()` không sử dụng từ khóa `global`.
  • C. Vì biến `result` trong hàm là biến cục bộ.
  • D. Vì tham số `data` trong hàm là một biến cục bộ mới, nhận giá trị của `value` nhưng không liên kết trực tiếp với biến `value` toàn cục.

Câu 13: Xét đoạn chương trình sau:
```python
message =

  • A. Global
    Global
  • B. Local
    Local
  • C. Local
    Global
  • D. Chương trình báo lỗi

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

  • A. Nó vẫn tồn tại nhưng chỉ có thể truy cập bằng từ khóa `local`.
  • B. Nó bị hủy và không còn tồn tại trong bộ nhớ.
  • C. Nó trở thành biến toàn cục.
  • D. Giá trị của nó được giữ lại cho lần gọi hàm tiếp theo.

Câu 15: Từ khóa `global` được sử dụng để làm gì trong Python?

  • A. Cho phép hàm sửa đổi giá trị của một biến toàn cục đã tồn tại.
  • B. Khai báo một biến mới có phạm vi toàn cục bên trong hàm.
  • C. Giới hạn phạm vi của một biến chỉ trong hàm hiện tại.
  • D. Tạo một bản sao của biến toàn cục bên trong hàm.

Câu 16: Xét đoạn chương trình sau:
```python
def set_value():
global val
val = 100

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

  • A. 100
  • B. Chương trình báo lỗi NameError
  • C. None
  • D. 0

Câu 17: Xét đoạn chương trình sau:
```python
def process_list(my_list):
my_list.append(4)

numbers = [1, 2, 3]
process_list(numbers)
print(numbers)
```
Kết quả in ra màn hình là gì?

  • A. [1, 2, 3]
  • B. [4]
  • C. Chương trình báo lỗi
  • D. [1, 2, 3, 4]

Câu 18: Tại sao đoạn chương trình ở Câu 17 lại thay đổi được danh sách toàn cục `numbers` mà không cần từ khóa `global`?

  • A. Vì danh sách (list) là kiểu dữ liệu có thể thay đổi (mutable), và hàm nhận tham chiếu đến danh sách gốc.
  • B. Vì biến `my_list` trong hàm tự động trở thành biến toàn cục.
  • C. Vì hàm chỉ thêm phần tử chứ không gán lại toàn bộ danh sách.
  • D. Đây là một ngoại lệ của quy tắc phạm vi biến.

Câu 19: Xét đoạn chương trình sau:
```python
def calculate(a, b):
total = a + b
return total

result = calculate(5, 3)
# print(total) # Dòng này sẽ gây lỗi
```
Tại sao việc in biến `total` sau khi gọi hàm `calculate()` lại gây lỗi NameError?

  • A. Vì biến `total` trùng tên với một hàm có sẵn trong Python.
  • B. Vì biến `total` là biến cục bộ của hàm `calculate()` và không tồn tại sau khi hàm kết thúc.
  • C. Vì biến `total` chưa được trả về bằng lệnh `return`.
  • D. Vì biến `result` đã sử dụng giá trị của `total`.

Câu 20: Biến nào sau đây có phạm vi cục bộ?

  • A. Biến khai báo ở đầu chương trình.
  • B. Biến khai báo sau từ khóa `global`.
  • C. Tham số của một hàm.
  • D. Biến được gán giá trị trong vòng lặp `for` ở phạm vi toàn cục.

Câu 21: Xét đoạn chương trình sau:
```python
greeting =

  • A. Xin chào
  • B. Chương trình báo lỗi
  • C. None
  • D. greeting

Câu 22: Tại sao hàm `say_greeting()` ở Câu 21 có thể truy cập biến `greeting` toàn cục mà không cần từ khóa `global`?

  • A. Vì biến `greeting` là kiểu chuỗi (string).
  • B. Vì hàm `say_greeting()` không có tham số.
  • C. Vì hàm chỉ đọc giá trị của biến toàn cục, không sửa đổi nó.
  • D. Đây là quy tắc đặc biệt cho biến chuỗi.

Câu 23: Xét đoạn chương trình sau:
```python
def modify_global():
value = 50 # Đây là biến cục bộ

value = 10 # Đây là biến toàn cục
modify_global()
print(value)
```
Kết quả in ra màn hình là gì?

  • A. 50
  • B. 10
  • C. Chương trình báo lỗi
  • D. None

Câu 24: Khi một biến có cùng tên tồn tại ở cả phạm vi cục bộ và toàn cục, Python sẽ ưu tiên sử dụng biến nào khi nó được tham chiếu bên trong hàm (mà không dùng `global`)?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Biến được khai báo trước.
  • D. Chương trình sẽ báo lỗi.

Câu 25: Xét đoạn chương trình sau:
```python
def func1():
x = 1
print(

  • A. Toan cuc truoc khi goi func1, x = 0
    Trong func1, x = 1
    Toan cuc sau khi goi func1, x = 1
    Trong func2, x = 2
    Toan cuc sau khi goi func2, x = 2
  • B. Toan cuc truoc khi goi func1, x = 0
    Trong func1, x = 1
    Toan cuc sau khi goi func1, x = 0
    Trong func2, x = 2
    Toan cuc sau khi goi func2, x = 0
  • C. Toan cuc truoc khi goi func1, x = 0
    Trong func1, x = 1
    Toan cuc sau khi goi func1, x = 1
    Trong func2, x = 2
    Toan cuc sau khi goi func2, x = 0
  • D. Toan cuc truoc khi goi func1, x = 0
    Trong func1, x = 1
    Toan cuc sau khi goi func1, x = 0
    Trong func2, x = 2
    Toan cuc sau khi goi func2, x = 2

Câu 26: Mục đích chính của việc sử dụng phạm vi biến (variable scope) trong lập trình là gì?

  • A. Để chương trình chạy nhanh hơn.
  • B. Để giảm số lượng dòng mã.
  • C. Để quản lý và kiểm soát quyền truy cập của các phần khác nhau trong chương trình đến dữ liệu, tránh xung đột tên biến và làm cho mã dễ hiểu, bảo trì hơn.
  • D. Để bắt buộc sử dụng từ khóa `global`.

Câu 27: Biến được khai báo bên trong một hàm chỉ có thể được truy cập trực tiếp từ đâu?

  • A. Bên trong chính hàm đó.
  • B. Bên ngoài hàm đó.
  • C. Từ bất kỳ đâu trong chương trình.
  • D. Chỉ từ các hàm khác.

Câu 28: Xét đoạn chương trình sau:
```python
value = 10
def change_value(new_value):
value = new_value

change_value(20)
print(value)
```
Kết quả in ra màn hình là gì và tại sao?

  • A. 20, vì hàm đã thay đổi biến toàn cục `value`.
  • B. 10, vì `value` bên trong hàm là biến cục bộ mới, không ảnh hưởng đến biến toàn cục.
  • C. Chương trình báo lỗi NameError.
  • D. None, vì hàm không trả về giá trị.

Câu 29: Trong Python, khi bạn gán giá trị cho một biến bên trong một hàm, theo mặc định (trừ khi dùng `global`), Python sẽ coi biến đó là loại gì?

  • A. Biến cục bộ mới của hàm.
  • B. Biến toàn cục có cùng tên.
  • C. Một hằng số.
  • D. Biến chỉ đọc (read-only).

Câu 30: Xét đoạn mã:
```python
def modify_and_print():
global counter
counter += 1
local_var = 5
print(

  • A. Inside function: 1 5
    Outside function: 0
  • B. Inside function: 0 5
    Outside function: 1
  • C. Inside function: 1 5
    Outside function: 1
  • D. Chương trình báo lỗi NameError ngay khi gọi hàm.

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ộ đề 03

Câu 1: Xét đoạn chương trình Python sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Kết quả in ra màn hình 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ộ đề 03

Câu 2: Biến `y` trong đoạn chương trình ở Câu 1 có phạm vi (scope) 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ộ đề 03

Câu 3: Biến `x` trong đoạn chương trình ở Câu 1 có phạm vi (scope) 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ộ đề 03

Câu 4: Xét đoạn chương trình sau:
```python
def greet():
message = "Hello"
# Dòng lệnh nào sau đây SẼ gây ra lỗi NameError nếu đặt ngay sau hàm greet()?
# print(message)
```
Lý do gây ra lỗi NameError khi cố gắng in biến `message` ngay sau khi định nghĩa hàm `greet()` 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ộ đề 03

Câu 5: Xét đoạn chương trình sau:
```python
count = 0
def increase_count():
count = count + 1
increase_count()
print(count)
```
Kết quả in ra màn hình 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ộ đề 03

Câu 6: Tại sao đoạn chương trình ở Câu 5 lại gây ra lỗi UnboundLocalError?

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ộ đề 03

Câu 7: Để sửa lỗi trong đoạn chương trình ở Câu 5 và làm cho hàm `increase_count()` thực sự tăng giá trị của biến toàn cục `count`, ta cần thêm từ khóa nào vào đầu hàm?

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ộ đề 03

Câu 8: Xét đoạn chương trình sau khi đã sửa lỗi từ Câu 7:
```python
count = 0
def increase_count():
global count
count = count + 1
increase_count()
print(count)
```
Kết quả in ra màn hình 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ộ đề 03

Câu 9: Khi một biến được khai báo bên ngoài tất cả các hàm và khối lệnh khác trong một tệp Python, nó có phạm vi 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ộ đề 03

Câu 10: Phạm vi của một biến cục bộ (local variable) kéo dài trong khoảng thời gian nào?

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ộ đề 03

Câu 11: Xét đoạn chương trình sau:
```python
def process_data(data):
result = data * 2
return result

value = 5
processed_value = process_data(value)
print(value)
print(processed_value)
```
Kết quả in ra màn hình 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ộ đề 03

Câu 12: Trong đoạn chương trình ở Câu 11, tại sao giá trị của biến `value` (toàn cục) không thay đổi sau khi hàm `process_data()` được gọi?

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ộ đề 03

Câu 13: Xét đoạn chương trình sau:
```python
message = "Global"
def my_function():
message = "Local"
print(message)

my_function()
print(message)
```
Kết quả in ra màn hình 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ộ đề 03

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

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ộ đề 03

Câu 15: Từ khóa `global` được sử dụng để làm gì trong 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ộ đề 03

Câu 16: Xét đoạn chương trình sau:
```python
def set_value():
global val
val = 100

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

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ộ đề 03

Câu 17: Xét đoạn chương trình sau:
```python
def process_list(my_list):
my_list.append(4)

numbers = [1, 2, 3]
process_list(numbers)
print(numbers)
```
Kết quả in ra màn hình 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ộ đề 03

Câu 18: Tại sao đoạn chương trình ở Câu 17 lại thay đổi được danh sách toàn cục `numbers` mà không cần từ khóa `global`?

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ộ đề 03

Câu 19: Xét đoạn chương trình sau:
```python
def calculate(a, b):
total = a + b
return total

result = calculate(5, 3)
# print(total) # Dòng này sẽ gây lỗi
```
Tại sao việc in biến `total` sau khi gọi hàm `calculate()` lại gây lỗi NameError?

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ộ đề 03

Câu 20: Biến nào sau đây có phạm vi cục bộ?

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ộ đề 03

Câu 21: Xét đoạn chương trình sau:
```python
greeting = "Xin chào"
def say_greeting():
print(greeting)

say_greeting()
```
Kết quả in ra màn hình 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ộ đề 03

Câu 22: Tại sao hàm `say_greeting()` ở Câu 21 có thể truy cập biến `greeting` toàn cục mà không cần từ khóa `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ộ đề 03

Câu 23: Xét đoạn chương trình sau:
```python
def modify_global():
value = 50 # Đây là biến cục bộ

value = 10 # Đây là biến toàn cục
modify_global()
print(value)
```
Kết quả in ra màn hình 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ộ đề 03

Câu 24: Khi một biến có cùng tên tồn tại ở cả phạm vi cục bộ và toàn cục, Python sẽ ưu tiên sử dụng biến nào khi nó được tham chiếu bên trong hàm (mà không dùng `global`)?

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ộ đề 03

Câu 25: Xét đoạn chương trình sau:
```python
def func1():
x = 1
print("Trong func1, x =", x)

def func2():
global x
x = 2
print("Trong func2, x =", x)

x = 0
print("Toan cuc truoc khi goi func1, x =", x)
func1()
print("Toan cuc sau khi goi func1, x =", x)
func2()
print("Toan cuc sau khi goi func2, x =", x)
```
Kết quả in ra màn hình theo thứ tự 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ộ đề 03

Câu 26: Mục đích chính của việc sử dụng phạm vi biến (variable scope) trong lập trình 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ộ đề 03

Câu 27: Biến được khai báo bên trong một hàm chỉ có thể được truy cập trực tiếp từ đâu?

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ộ đề 03

Câu 28: Xét đoạn chương trình sau:
```python
value = 10
def change_value(new_value):
value = new_value

change_value(20)
print(value)
```
Kết quả in ra màn hình là gì và tại sao?

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ộ đề 03

Câu 29: Trong Python, khi bạn gán giá trị cho một biến bên trong một hàm, theo mặc định (trừ khi dùng `global`), Python sẽ coi biến đó là loại 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ộ đề 03

Câu 30: Xét đoạn mã:
```python
def modify_and_print():
global counter
counter += 1
local_var = 5
print("Inside function:", counter, local_var)

counter = 0
modify_and_print()
# print(local_var) # Dòng này sẽ gây lỗi
print("Outside function:", counter)
```
Kết quả in ra màn hình (không tính dòng gây lỗi được chú thích) là gì?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Cho đoạn chương trình Python sau:

x = 10

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

my_function()

Kết quả khi chạy đoạn chương trình trên là gì?

  • A. Báo lỗi do không thể truy cập biến x từ trong hàm.
  • B. 15
  • C. 10
  • D. 5

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

z = 20

def another_function():
z = 15
print(z)

another_function()
print(z)

Kết quả in ra màn hình sẽ là gì?

  • A. 15
    15
  • B. 20
    20
  • C. 15
    20
  • D. 20
    15

Câu 3: Đoạn chương trình sau có lỗi không? Nếu có, lỗi liên quan đến phạm vi biến như thế nào?

def show_value():
message =

  • A. Có lỗi NameError vì biến "message" chỉ có phạm vi trong hàm `show_value()`.
  • B. Không có lỗi, kết quả in ra sẽ là
  • C. Có lỗi SyntaxError.
  • D. Có lỗi TypeError.

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

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

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

count = 0

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

increase_count()

Đoạn mã trên sẽ chạy và in ra kết quả hay báo lỗi? Nếu báo lỗi, là lỗi gì?

  • A. Báo lỗi UnboundLocalError vì Python hiểu `count` trong hàm là biến cục bộ nhưng lại cố gắng đọc giá trị của nó trước khi gán.
  • B. In ra 1.
  • C. Báo lỗi NameError.
  • D. In ra 0.

Câu 6: Để sửa lỗi trong đoạn mã ở Câu 5 sao cho hàm `increase_count()` có thể tăng giá trị của biến toàn cục `count`, ta cần thêm dòng lệnh nào vào đầu hàm?

  • A. local count
  • B. const count
  • C. nonlocal count
  • D. global count

Câu 7: Cho đoạn chương trình sau khi đã sửa lỗi từ Câu 5:

count = 0

def increase_count():
global count
count += 1
print(count)

increase_count()
print(count)

Kết quả khi chạy đoạn chương trình này là gì?

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

Câu 8: Biến được khai báo bên trong một hàm Python (không sử dụng từ khóa `global` hoặc `nonlocal`) có phạm vi là:

  • A. Toàn cục (global scope)
  • B. Bên ngoài hàm (outer scope)
  • C. Cục bộ (local scope)
  • D. Không có phạm vi xác định

Câu 9: Biến được khai báo ở mức ngoài cùng của một script Python (không nằm trong bất kỳ hàm hay lớp nào) có phạm vi là:

  • A. Toàn cục (global scope)
  • B. Cục bộ (local scope)
  • C. Phạm vi bao đóng (enclosing scope)
  • D. Phạm vi hàm (function scope)

Câu 10: Khi một biến cục bộ bên trong hàm có tên trùng với một biến toàn cục bên ngoài hàm, điều gì xảy ra khi biến đó được sử dụng bên trong hàm (không dùng `global`)?

  • A. Biến toàn cục sẽ bị ghi đè giá trị.
  • B. Biến cục bộ sẽ
  • C. Chương trình sẽ báo lỗi do trùng tên biến.
  • D. Biến cục bộ sẽ tự động trở thành biến toàn cục.

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

def process_list(my_list):
my_list.append(4)
print(

  • A. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3]
  • B. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3]
  • C. Inside function: [1, 2, 3, 4]
    Outside function: [1, 2, 3, 4]
  • D. Báo lỗi vì hàm không thể thay đổi danh sách bên ngoài.

Câu 12: Giải thích tại sao kết quả ở Câu 11 lại như vậy, liên quan đến phạm vi biến và kiểu dữ liệu trong Python?

  • A. Danh sách (list) là kiểu dữ liệu có thể thay đổi (mutable). Khi danh sách được truyền vào hàm, hàm nhận tham chiếu đến cùng một đối tượng danh sách trong bộ nhớ, nên việc thay đổi danh sách bên trong hàm sẽ ảnh hưởng đến danh sách gốc bên ngoài.
  • B. Danh sách là kiểu dữ liệu bất biến (immutable), nên việc thay đổi bên trong hàm tạo ra một bản sao cục bộ.
  • C. Từ khóa `global` đã được sử dụng ngầm định cho biến danh sách.
  • D. Việc gán giá trị mới cho tham số `my_list` trong hàm đã tạo ra một biến cục bộ mới.

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

def modify_string(s):
s = s +

  • A. Inside function: Hello World
    Outside function: Hello World
  • B. Inside function: Hello World
    Outside function: Hello
  • C. Inside function: Hello
    Outside function: Hello World
  • D. Báo lỗi.

Câu 14: Giải thích tại sao kết quả ở Câu 13 lại khác với Câu 11, liên quan đến phạm vi biến và kiểu dữ liệu?

  • A. Chuỗi (string) là kiểu dữ liệu có thể thay đổi (mutable).
  • B. Từ khóa `global` được áp dụng tự động cho biến chuỗi.
  • C. Việc sử dụng toán tử `+` cho chuỗi bên trong hàm đã sửa đổi biến toàn cục.
  • D. Chuỗi (string) là kiểu dữ liệu bất biến (immutable). Việc gán `s = s +

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

def create_local():
temp = 100
print(

  • A. NameError, vì biến `temp` chỉ tồn tại trong phạm vi của hàm `create_local()`.
  • B. TypeError.
  • C. SyntaxError.
  • D. UnboundLocalError.

Câu 16: Điều nào sau đây là ĐÚNG về biến cục bộ trong Python?

  • A. Chúng có thể được truy cập từ bất kỳ đâu trong chương trình.
  • B. Chúng chỉ tồn tại trong suốt thời gian hàm được gọi thực hiện.
  • C. Chúng phải được khai báo với từ khóa `local`.
  • D. Chúng tự động ghi đè lên biến toàn cục cùng tên.

Câu 17: Điều nào sau đây là ĐÚNG về biến toàn cục trong Python?

  • A. Chúng chỉ có thể được truy cập từ bên ngoài các hàm.
  • B. Chúng biến mất ngay sau khi chương trình chính kết thúc.
  • C. Chúng không thể được thay đổi giá trị từ bên trong một hàm.
  • D. Chúng có thể được truy cập (đọc) từ bên trong các hàm mà không cần khai báo lại.

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

def set_value(val):
number = val

number = 50
set_value(100)
print(number)

Kết quả là bao nhiêu?

  • A. 50
  • B. 100
  • C. Báo lỗi NameError.
  • D. Báo lỗi UnboundLocalError.

Câu 19: Phân tích đoạn mã sau để xác định output:

a = 1

def f():
a = 2
def g():
a = 3
print(a)
g()
print(a)

f()
print(a)

  • A. 1
    2
    3
  • B. 3
    3
    3
  • C. 3
    2
    1
  • D. 3
    2
    1

Câu 20: Trong đoạn mã ở Câu 19, biến `a` trong hàm `g()` thuộc phạm vi nào?

  • A. Toàn cục (global)
  • B. Phạm vi bao đóng của `f()` (enclosing)
  • C. Cục bộ của `g()` (local)
  • D. Không xác định được

Câu 21: Trong đoạn mã ở Câu 19, biến `a` trong hàm `f()` (dòng `a = 2`) thuộc phạm vi nào?

  • A. Cục bộ của `f()` (local)
  • B. Toàn cục (global)
  • C. Phạm vi bao đóng của `g()` (enclosing)
  • D. Không xác định được

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

x = 10

def func1():
x = 5
print(

  • A. func1: 10
    func2: 10
    global: 10
  • B. func1: 5
    func2: 10
    global: 10
  • C. func1: 5
    func2: 5
    global: 5
  • D. Báo lỗi.

Câu 23: Khi một hàm cố gắng gán giá trị cho một biến mà nó không tìm thấy trong phạm vi cục bộ của mình, Python sẽ mặc định tạo ra biến đó ở phạm vi nào?

  • A. Toàn cục (global)
  • B. Phạm vi bao đóng gần nhất (enclosing)
  • C. Cục bộ (local)
  • D. Python sẽ báo lỗi NameError.

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

def process_data(data):
data = data + 10
return data

value = 5
result = process_data(value)
print(

  • A. Value: 5
    Result: 15
  • B. Value: 15
    Result: 15
  • C. Value: 5
    Result: 5
  • D. Báo lỗi.

Câu 25: Giải thích hành vi của biến `value` sau khi gọi hàm `process_data` ở Câu 24?

  • A. Biến `value` bị thay đổi vì nó được truyền vào hàm.
  • B. Biến `value` không bị thay đổi vì số nguyên (integer) là kiểu dữ liệu bất biến (immutable). Việc gán `data = data + 10` trong hàm chỉ tạo ra một đối tượng mới cho biến cục bộ `data`.
  • C. Biến `value` bị thay đổi vì hàm trả về giá trị mới.
  • D. Chương trình báo lỗi nên `value` không có giá trị cuối cùng.

Câu 26: Khi nào thì một biến được xem là có phạm vi toàn cục (global scope) trong Python?

  • A. Khi nó được khai báo ở mức ngoài cùng của module/script.
  • B. Khi nó được khai báo bên trong một hàm sử dụng từ khóa `global`.
  • C. Khi nó được truyền làm tham số cho một hàm.
  • D. Cả A và B đều đúng.

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

a = 1

def f():
global a
a = 2
def g():
# nonlocal a # Nếu bỏ comment dòng này thì sao?
a = 3
print(

  • A. Không thay đổi.
  • B. Báo lỗi NameError.
  • C. Kết quả in ra sẽ là:
    g: 3
    f: 2
    global: 2
  • D. Kết quả in ra sẽ là:
    g: 3
    f: 3
    global: 3

Câu 28: Trong phạm vi của một hàm, khi bạn chỉ đọc giá trị của một biến (không gán giá trị mới cho nó), Python sẽ tìm biến đó theo thứ tự ưu tiên phạm vi nào?

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

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

def outer():
x = 10
def inner():
# print(x) # Dòng này có chạy được không?
x = 20
print(

  • A. UnboundLocalError, vì trong hàm `inner`, `x` được hiểu là biến cục bộ do có lệnh gán `x = 20`, nhưng lại cố gắng truy cập (in) nó trước khi gán.
  • B. NameError.
  • C. Chương trình chạy bình thường và in ra giá trị 10.
  • D. SyntaxError.

Câu 30: Mục đích chính của việc phân chia phạm vi biến trong lập trình là gì?

  • A. Để làm cho mã nguồn ngắn gọn hơn.
  • B. Để tăng tốc độ thực thi chương trình.
  • C. Để biến toàn cục luôn có giá trị ưu tiên hơn biến cục bộ.
  • D. Để quản lý tốt hơn vòng đời và khả năng truy cập của biến, tránh 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).

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ộ đề 04

Câu 1: Cho đoạn chương trình Python sau:

x = 10

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

my_function()

Kết quả khi chạy đoạn chương trình trê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ộ đề 04

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

z = 20

def another_function():
z = 15
print(z)

another_function()
print(z)

Kết quả in ra màn hình sẽ 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ộ đề 04

Câu 3: Đoạn chương trình sau có lỗi không? Nếu có, lỗi liên quan đến phạm vi biến như thế nào?

def show_value():
message = "Hello"
print(message)

show_value()
print(message)

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ộ đề 04

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

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ộ đề 04

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

count = 0

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

increase_count()

Đoạn mã trên sẽ chạy và in ra kết quả hay báo lỗi? Nếu báo lỗi, là lỗi 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ộ đề 04

Câu 6: Để sửa lỗi trong đoạn mã ở Câu 5 sao cho hàm `increase_count()` có thể tăng giá trị của biến toàn cục `count`, ta cần thêm dòng lệnh nào vào đầu 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ộ đề 04

Câu 7: Cho đoạn chương trình sau khi đã sửa lỗi từ Câu 5:

count = 0

def increase_count():
global count
count += 1
print(count)

increase_count()
print(count)

Kết quả khi chạy đoạn chương trình này 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ộ đề 04

Câu 8: Biến được khai báo bên trong một hàm Python (không sử dụng từ khóa `global` hoặc `nonlocal`) có phạm vi là:

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ộ đề 04

Câu 9: Biến được khai báo ở mức ngoài cùng của một script Python (không nằm trong bất kỳ hàm hay lớp nào) có phạm vi là:

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ộ đề 04

Câu 10: Khi một biến cục bộ bên trong hàm có tên trùng với một biến toàn cục bên ngoài hàm, điều gì xảy ra khi biến đó được sử dụng bên trong hàm (không dùng `global`)?

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ộ đề 04

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

def process_list(my_list):
my_list.append(4)
print("Inside function:", my_list)

numbers = [1, 2, 3]
process_list(numbers)
print("Outside function:", numbers)

Kết quả in ra màn hình 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ộ đề 04

Câu 12: Giải thích tại sao kết quả ở Câu 11 lại như vậy, liên quan đến phạm vi biến và kiểu dữ liệu trong Python?

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ộ đề 04

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

def modify_string(s):
s = s + " World"
print("Inside function:", s)

my_string = "Hello"
modify_string(my_string)
print("Outside function:", my_string)

Kết quả in ra màn hình 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ộ đề 04

Câu 14: Giải thích tại sao kết quả ở Câu 13 lại khác với Câu 11, liên quan đến phạm vi biến và kiểu dữ liệu?

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ộ đề 04

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

def create_local():
temp = 100
print("temp inside:", temp)

create_local()
# print("temp outside:", temp)

Nếu bỏ dấu `#` ở dòng cuối cùng, chương trình sẽ báo lỗi 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ộ đề 04

Câu 16: Điều nào sau đây là ĐÚNG về biến cục bộ trong Python?

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ộ đề 04

Câu 17: Điều nào sau đây là ĐÚNG về biến toàn cục trong Python?

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ộ đề 04

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

def set_value(val):
number = val

number = 50
set_value(100)
print(number)

Kết quả là bao nhiêu?

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ộ đề 04

Câu 19: Phân tích đoạn mã sau để xác định output:

a = 1

def f():
a = 2
def g():
a = 3
print(a)
g()
print(a)

f()
print(a)

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ộ đề 04

Câu 20: Trong đoạn mã ở Câu 19, biến `a` trong hàm `g()` thuộc phạm vi nào?

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ộ đề 04

Câu 21: Trong đoạn mã ở Câu 19, biến `a` trong hàm `f()` (dòng `a = 2`) thuộc phạm vi nào?

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ộ đề 04

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

x = 10

def func1():
x = 5
print("func1:", x)

def func2():
print("func2:", x)

func1()
func2()
print("global:", x)

Kết quả 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ộ đề 04

Câu 23: Khi một hàm cố gắng gán giá trị cho một biến mà nó không tìm thấy trong phạm vi cục bộ của mình, Python sẽ mặc định tạo ra biến đó ở phạm vi nào?

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ộ đề 04

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

def process_data(data):
data = data + 10
return data

value = 5
result = process_data(value)
print("Value:", value)
print("Result:", result)

Kết quả in ra 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ộ đề 04

Câu 25: Giải thích hành vi của biến `value` sau khi gọi hàm `process_data` ở Câu 24?

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ộ đề 04

Câu 26: Khi nào thì một biến được xem là có phạm vi toàn cục (global scope) 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ộ đề 04

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

a = 1

def f():
global a
a = 2
def g():
# nonlocal a # Nếu bỏ comment dòng này thì sao?
a = 3
print("g:", a)
g()
print("f:", a)

f()
print("global:", a)

Nếu bỏ comment dòng `# nonlocal a`, kết quả in ra sẽ thay đổi 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ộ đề 04

Câu 28: Trong phạm vi của một hàm, khi bạn chỉ đọc giá trị của một biến (không gán giá trị mới cho nó), Python sẽ tìm biến đó theo thứ tự ưu tiên 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ộ đề 04

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

def outer():
x = 10
def inner():
# print(x) # Dòng này có chạy được không?
x = 20
print("Inner x:", x)
inner()
print("Outer x:", x)

outer()

Nếu bỏ comment dòng `# print(x)`, chương trình sẽ báo lỗi gì khi chạy hàm `inner()`?

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ộ đề 04

Câu 30: Mục đích chính của việc phân chia phạm vi biến trong lập trình là gì?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, biến được khai báo bên ngoài tất cả các hàm và khối lệnh có phạm vi hoạt động như thế nào?

  • A. Chỉ có hiệu lực bên trong hàm hoặc khối lệnh gần nhất.
  • B. Có hiệu lực trên toàn bộ chương trình.
  • C. Chỉ có hiệu lực sau khi một hàm gọi đến nó được thực thi.
  • D. Không có hiệu lực nếu không được truyền vào hàm như tham số.

Câu 2: Biến được khai báo bên trong một hàm trong Python được gọi là biến có phạm vi gì?

  • A. Cục bộ (Local)
  • B. Toàn cục (Global)
  • C. Bên trong (Inner)
  • D. Chức năng (Functional)

Câu 3: Xem đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
my_function()
```
Khi chạy đoạn code này, giá trị nào sẽ được in ra màn hình?

  • A. Lỗi do biến `x` là toàn cục không thể truy cập trong hàm.
  • B. 10
  • C. 5
  • D. Lỗi do biến `y` không được sử dụng.

Câu 4: Xem đoạn code sau:
```python
def my_function():
z = 20
print(z)
my_function()
print(z)
```
Khi chạy đoạn code này, điều gì sẽ xảy ra?

  • A. In ra 20, sau đó in ra 20 lần nữa.
  • B. In ra 20, sau đó in ra None.
  • C. Chương trình chạy bình thường và kết thúc mà không in gì.
  • D. In ra 20, sau đó báo lỗi `NameError` ở dòng `print(z)` thứ hai.

Câu 5: Mục đích chính của việc sử dụng từ khóa `global` trong Python là gì?

  • A. Khai báo một biến mới có phạm vi toàn cục.
  • B. Giúp biến cục bộ có thể truy cập từ bên ngoài hàm.
  • C. Cho phép một biến toàn cục được thay đổi giá trị từ bên trong một hàm.
  • D. Tạo ra một bản sao của biến toàn cục bên trong hàm.

Câu 6: Xem đoạn code sau:
```python
count = 0
def increment():
count += 1
increment()
print(count)
```
Khi chạy đoạn code này, điều gì sẽ xảy ra?

  • A. In ra 1.
  • B. Báo lỗi `UnboundLocalError` vì `count` bên trong hàm được coi là biến cục bộ chưa được gán giá trị trước khi sử dụng.
  • C. In ra 0.
  • D. Chương trình chạy bình thường nhưng không thay đổi giá trị của `count` toàn cục.

Câu 7: Xem đoạn code sau:
```python
value = 100
def change_value():
global value
value = 200
change_value()
print(value)
```
Khi chạy đoạn code này, giá trị nào sẽ được in ra màn hình?

  • A. 100
  • B. Lỗi do sử dụng `global` không đúng cách.
  • C. None
  • D. 200

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

  • A. Là biến cục bộ chỉ tồn tại bên trong hàm đó.
  • B. Là biến toàn cục có thể truy cập từ bất kỳ đâu.
  • C. Có phạm vi giống như biến được truyền vào khi gọi hàm.
  • D. Chỉ có hiệu lực nếu được gán giá trị bên trong hàm.

Câu 9: Xem đoạn code sau:
```python
def process_list(data):
data.append(4)

my_list = [1, 2, 3]
process_list(my_list)
print(my_list)
```
Khi chạy đoạn code này, kết quả in ra màn hình là gì?

  • A. [1, 2, 3]
  • B. [4]
  • C. [1, 2, 3, 4]
  • D. Lỗi do không thể thay đổi danh sách bên trong hàm.

Câu 10: Xem đoạn code sau:
```python
def change_number(num):
num = num + 1

my_number = 10
change_number(my_number)
print(my_number)
```
Khi chạy đoạn code này, kết quả in ra màn hình là gì?

  • A. 10
  • B. 11
  • C. Lỗi do không thể thay đổi số bên trong hàm.
  • D. None

Câu 11: Đ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. Chương trình báo lỗi vì trùng tên.
  • B. Bên trong hàm, tên biến đó tham chiếu đến biến cục bộ; bên ngoài hàm, nó tham chiếu đến biến toàn cục.
  • C. Biến toàn cục sẽ bị ghi đè vĩnh viễn bởi biến cục bộ.
  • D. Biến cục bộ sẽ bị bỏ qua và biến toàn cục được sử dụng bên trong hàm.

Câu 12: Phạm vi của biến trong Python được xác định dựa trên yếu tố nào?

  • A. Kiểu dữ liệu của biến.
  • B. Thứ tự khai báo biến trong code.
  • C. Vị trí mà biến được định nghĩa (bên trong hay bên ngoài hàm/khối lệnh).
  • D. Tên của biến.

Câu 13: Xem đoạn code sau:
```python
def outer_function():
msg =

  • A. Hello
  • B. Lỗi do `msg` không phải là biến toàn cục.
  • C. None
  • D. Chương trình không in gì.

Câu 14: Xem đoạn code sau:
```python
x = 1
def f():
x = 2
f()
print(x)
```
Kết quả của đoạn code trên là gì?

  • A. 2
  • B. 1
  • C. Lỗi `NameError`.
  • D. Lỗi `UnboundLocalError`.

Câu 15: Xem đoạn code sau:
```python
a = 10
def modify_a():
global a
a = a + 5
b = 20
modify_a()
print(a)
# print(b) # Dòng này sẽ gây lỗi
```
Nếu bỏ chú thích ở dòng cuối cùng (`print(b)`), điều gì sẽ xảy ra?

  • A. Chương trình vẫn chạy bình thường và in ra 15 sau đó 20.
  • B. Chương trình báo lỗi `TypeError`.
  • C. Chương trình báo lỗi `ValueError`.
  • D. Chương trình báo lỗi `NameError` vì biến `b` chỉ có phạm vi cục bộ trong hàm `modify_a`.

Câu 16: Biến cục bộ tồn tại trong bộ nhớ máy tính trong khoảng thời gian nào?

  • A. Từ khi chương trình bắt đầu chạy đến khi kết thúc.
  • B. Từ khi hàm được định nghĩa cho đến khi hàm kết thúc.
  • C. Từ khi hàm được gọi đến khi hàm kết thúc thực hiện.
  • D. Chỉ khi biến đó được sử dụng trong một phép tính.

Câu 17: Xem đoạn code sau:
```python
def greet(name):
message =

  • A. In ra
  • B. In ra
  • C. Chương trình báo lỗi ngay từ đầu vì biến `message` không được khai báo toàn cục.
  • D. In ra

Câu 18: Giả sử bạn có một biến toàn cục `data_list = [1, 2, 3]`. Bên trong một hàm, bạn muốn thêm một phần tử vào danh sách này mà không tạo ra một danh sách cục bộ mới. Bạn nên làm gì?

  • A. Sử dụng phương thức `append()` trên `data_list` (ví dụ: `data_list.append(4)`). Không cần từ khóa `global` vì bạn đang sửa đổi đối tượng, không gán lại tên biến.
  • B. Sử dụng từ khóa `global` trước khi gọi `data_list.append(4)`.
  • C. Gán lại biến `data_list` bên trong hàm (ví dụ: `data_list = data_list + [4]`) mà không dùng `global`.
  • D. Không thể thêm phần tử vào danh sách toàn cục từ bên trong hàm.

Câu 19: Xem đoạn code sau:
```python
x = [10, 20]
def process(x):
x = [30, 40]

process(x)
print(x)
```
Kết quả khi chạy đoạn code này là gì?

  • A. [10, 20]
  • B. [30, 40]
  • C. [10, 20, 30, 40]
  • D. Lỗi `TypeError`.

Câu 20: Xem đoạn code sau:
```python
def set_name():
name =

  • A. Alice
  • B. None
  • C. Chương trình không in gì.
  • D. Lỗi `NameError`.

Câu 21: Nếu bạn muốn một hàm có thể thay đổi giá trị của một biến toàn cục, bạn phải sử dụng từ khóa nào cho biến đó bên trong hàm?

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

Câu 22: Xem đoạn code sau:
```python
count = 1
def do_this():
global count
for i in range(3):
count += 1

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

  • A. 1
  • B. 3
  • C. 4
  • D. Lỗi `UnboundLocalError`.

Câu 23: Trong Python, tại sao việc lạm dụng biến toàn cục thường không được khuyến khích?

  • A. Khiến mã khó theo dõi và gỡ lỗi vì bất kỳ phần nào của chương trình cũng có thể thay đổi giá trị của chúng.
  • B. Làm chậm tốc độ thực thi của chương trình.
  • C. Tiêu tốn nhiều bộ nhớ hơn so với biến cục bộ.
  • D. Chỉ có thể lưu trữ các kiểu dữ liệu đơn giản.

Câu 24: Xem đoạn code sau:
```python
def calculate(a, b):
result = a * b
print(result)

x = 5
y = 6
calculate(x, y)
# print(result) # Dòng này sẽ gây lỗi
```
Tại sao dòng `print(result)` ở cuối lại gây ra lỗi `NameError`?

  • A. Vì `result` là biến toàn cục nhưng không được khai báo trước.
  • B. Vì hàm `calculate` không trả về giá trị `result`.
  • C. Vì `result` là một kiểu dữ liệu không thể in ra.
  • D. Vì `result` là biến cục bộ chỉ tồn tại bên trong hàm `calculate`.

Câu 25: Xem đoạn code sau:
```python
name =

  • A. Inside function: Local
    Outside function: Global
  • B. Inside function: Global
    Outside function: Global
  • C. Inside function: Local
    Outside function: Local
  • D. Lỗi do trùng tên biến.

Câu 26: Khi nào một biến được xem xét là biến toàn cục trong Python?

  • A. Khi nó được khai báo bằng từ khóa `global`.
  • B. Khi nó được khai báo bên trong một hàm nhưng được sử dụng bên ngoài.
  • C. Khi nó được định nghĩa ở cấp cao nhất của module (không nằm trong bất kỳ hàm hoặc lớp nào).
  • D. Khi nó được truyền vào một hàm như tham số.

Câu 27: Xem đoạn code sau:
```python
def my_func():
x = 10
print(x)

my_func()
# print(x) # Dòng này sẽ gây lỗi
```
Biến `x` bên trong `my_func` và biến `x` (nếu có) bên ngoài hàm là hai biến khác nhau hay cùng một biến?

  • A. Hai biến khác nhau.
  • B. Cùng một biến.
  • C. Chỉ là cùng một biến nếu chúng có cùng giá trị.
  • D. Phụ thuộc vào kiểu dữ liệu của `x`.

Câu 28: Xem đoạn code sau:
```python
def modify_list(data):
data = [5, 6, 7]

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn code này là gì? Phân tích sự khác biệt với câu 9.

  • A. [1, 2, 3]
  • B. [5, 6, 7]
  • C. [1, 2, 3, 5, 6, 7]
  • D. Lỗi `TypeError`.

Câu 29: Điều nào sau đây là ĐÚNG về biến cục bộ?

  • A. Chúng có thể được truy cập từ bất kỳ đâu trong chương trình.
  • B. Chúng được tạo ra khi hàm bắt đầu thực thi và bị hủy khi hàm kết thúc.
  • C. Chúng luôn giữ nguyên giá trị giữa các lần gọi hàm khác nhau.
  • D. Chúng phải được khai báo bằng từ khóa `local`.

Câu 30: Xem đoạn code sau:
```python
def complex_scope():
a = 1
def inner_func():
b = 2
# print(a) # Dòng 1
# print(c) # Dòng 2
# print(a) # Dòng 3
# print(b) # Dòng 4
c = 3
complex_scope()
# print(c) # Dòng 5
```
Trong các dòng được chú thích (Dòng 1, Dòng 2, Dòng 3, Dòng 4, Dòng 5), dòng nào khi bỏ chú thích sẽ KHÔNG gây ra lỗi `NameError`?

  • A. Dòng 2 và Dòng 4
  • B. Dòng 1 và Dòng 3
  • C. Dòng 1, Dòng 3 và Dòng 5
  • D. Dòng 2, Dòng 4 và Dòng 5

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ộ đề 05

Câu 1: Trong Python, biến được khai báo bên ngoài tất cả các hàm và khối lệnh 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ộ đề 05

Câu 2: Biến được khai báo bên trong một hàm trong Python được gọi là biến có phạm vi 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ộ đề 05

Câu 3: Xem đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
my_function()
```
Khi chạy đoạn code này, giá trị nào sẽ được in ra màn hình?

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ộ đề 05

Câu 4: Xem đoạn code sau:
```python
def my_function():
z = 20
print(z)
my_function()
print(z)
```
Khi chạy đoạn code này, điều gì sẽ xảy ra?

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ộ đề 05

Câu 5: Mục đích chính của việc sử dụng từ khóa `global` trong Python 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ộ đề 05

Câu 6: Xem đoạn code sau:
```python
count = 0
def increment():
count += 1
increment()
print(count)
```
Khi chạy đoạn code này, điều gì sẽ xảy 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ộ đề 05

Câu 7: Xem đoạn code sau:
```python
value = 100
def change_value():
global value
value = 200
change_value()
print(value)
```
Khi chạy đoạn code này, giá trị nào sẽ được in ra màn hì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ộ đề 05

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

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ộ đề 05

Câu 9: Xem đoạn code sau:
```python
def process_list(data):
data.append(4)

my_list = [1, 2, 3]
process_list(my_list)
print(my_list)
```
Khi chạy đoạn code này, 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ộ đề 05

Câu 10: Xem đoạn code sau:
```python
def change_number(num):
num = num + 1

my_number = 10
change_number(my_number)
print(my_number)
```
Khi chạy đoạn code này, kết quả in ra màn hình 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ộ đề 05

Câu 11: Đ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?

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ộ đề 05

Câu 12: Phạm vi của biến trong Python được xác định dựa trên yếu tố nào?

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ộ đề 05

Câu 13: Xem đoạn code sau:
```python
def outer_function():
msg = "Hello"
def inner_function():
print(msg)
inner_function()

outer_function()
```
Khi chạy đoạn code này, kết quả in ra màn hình 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ộ đề 05

Câu 14: Xem đoạn code sau:
```python
x = 1
def f():
x = 2
f()
print(x)
```
Kết quả của đoạn code trên 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ộ đề 05

Câu 15: Xem đoạn code sau:
```python
a = 10
def modify_a():
global a
a = a + 5
b = 20
modify_a()
print(a)
# print(b) # Dòng này sẽ gây lỗi
```
Nếu bỏ chú thích ở dòng cuối cùng (`print(b)`), đ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ộ đề 05

Câu 16: Biến cục bộ tồn tại trong bộ nhớ máy tính trong khoảng thời gian 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ộ đề 05

Câu 17: Xem đoạn code sau:
```python
def greet(name):
message = "Xin chào, " + name
return message

user_name = "An"
print(greet(user_name))
# print(message) # Dòng này sẽ gây lỗi
```
Nếu bỏ chú thích ở dòng cuối (`print(message)`), điều gì sẽ xảy ra và tại sao?

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ộ đề 05

Câu 18: Giả sử bạn có một biến toàn cục `data_list = [1, 2, 3]`. Bên trong một hàm, bạn muốn thêm một phần tử vào danh sách này *mà không* tạo ra một danh sách cục bộ mới. Bạn nên làm 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ộ đề 05

Câu 19: Xem đoạn code sau:
```python
x = [10, 20]
def process(x):
x = [30, 40]

process(x)
print(x)
```
Kết quả khi chạy đoạn code này 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ộ đề 05

Câu 20: Xem đoạn code sau:
```python
def set_name():
name = "Alice"

set_name()
print(name)
```
Kết quả khi chạy đoạn code này 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ộ đề 05

Câu 21: Nếu bạn muốn một hàm có thể thay đổi giá trị của một biến toàn cục, bạn phải sử dụng từ khóa nào cho biến đó bên trong hàm?

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ộ đề 05

Câu 22: Xem đoạn code sau:
```python
count = 1
def do_this():
global count
for i in range(3):
count += 1

do_this()
print(count)
```
Kết quả khi chạy đoạn code này 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ộ đề 05

Câu 23: Trong Python, tại sao việc lạm dụng biến toàn cục thường không được khuyến khích?

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ộ đề 05

Câu 24: Xem đoạn code sau:
```python
def calculate(a, b):
result = a * b
print(result)

x = 5
y = 6
calculate(x, y)
# print(result) # Dòng này sẽ gây lỗi
```
Tại sao dòng `print(result)` ở cuối lại gây ra lỗi `NameError`?

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ộ đề 05

Câu 25: Xem đoạn code sau:
```python
name = "Global"
def change_name():
name = "Local"
print("Inside function:", name)

change_name()
print("Outside function:", name)
```
Kết quả in ra màn hình 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ộ đề 05

Câu 26: Khi nào một biến được xem xét là biến toàn cục 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ộ đề 05

Câu 27: Xem đoạn code sau:
```python
def my_func():
x = 10
print(x)

my_func()
# print(x) # Dòng này sẽ gây lỗi
```
Biến `x` bên trong `my_func` và biến `x` (nếu có) bên ngoài hàm là hai biến khác nhau hay cùng một biế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ộ đề 05

Câu 28: Xem đoạn code sau:
```python
def modify_list(data):
data = [5, 6, 7]

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn code này là gì? Phân tích sự khác biệt với câu 9.

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ộ đề 05

Câu 29: Điều nào sau đây là ĐÚNG về biến cục bộ?

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ộ đề 05

Câu 30: Xem đoạn code sau:
```python
def complex_scope():
a = 1
def inner_func():
b = 2
# print(a) # Dòng 1
# print(c) # Dòng 2
# print(a) # Dòng 3
# print(b) # Dòng 4
c = 3
complex_scope()
# print(c) # Dòng 5
```
Trong các dòng được chú thích (Dòng 1, Dòng 2, Dòng 3, Dòng 4, Dòng 5), dòng nào khi bỏ chú thích sẽ KHÔNG gây ra lỗi `NameError`?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

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

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

my_function()
```
Biến `x` trong đoạn mã trên thuộc phạm vi nào?

  • A. Phạm vi cục bộ (local scope)
  • B. Phạm vi toàn cục (global scope)
  • C. Phạm vi lồng nhau (enclosing scope)
  • D. Không xác định được

Câu 2: Dựa vào đoạn mã ở Câu 1, biến `y` thuộc phạm vi nào?

  • A. Phạm vi cục bộ (local scope)
  • B. Phạm vi toàn cục (global scope)
  • C. Phạm vi lồng nhau (enclosing scope)
  • D. Phạm vi tích hợp (built-in scope)

Câu 3: Xem đoạn mã Python sau:
```python
z = 100

def another_function():
print(z)

another_function()
```
Đoạn mã trên sẽ in ra kết quả gì?

  • A. Báo lỗi
  • B. z
  • C. 100
  • D. None

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

def increment():
count = count + 1 # Dòng này có vấn đề về phạm vi
print(count)

increment()
print(count)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. In ra 1, sau đó in ra 1
  • B. In ra 1, sau đó in ra 0
  • C. In ra 1, sau đó báo lỗi
  • D. Báo lỗi ngay tại dòng `count = count + 1` bên trong hàm

Câu 5: Để khắc phục lỗi ở Câu 4 và làm cho hàm `increment` thực sự tăng giá trị của biến `count` toàn cục, ta cần thêm từ khóa nào vào đầu hàm?

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

Câu 6: Sau khi sửa lỗi ở Câu 4 bằng cách thêm từ khóa thích hợp, đoạn mã sau sẽ cho kết quả gì?
```python
count = 0

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

increment()
print(count)
```

  • A. In ra 1, sau đó in ra 1
  • B. In ra 1, sau đó in ra 0
  • C. Báo lỗi
  • D. In ra 0, sau đó in ra 1

Câu 7: Biến được khai báo bên ngoài tất cả các hàm và khối lệnh trong một tệp mã nguồn Python thuộc phạm vi nào?

  • A. Phạm vi cục bộ
  • B. Phạm vi lồng nhau
  • C. Phạm vi toàn cục
  • D. Phạm vi hàm

Câu 8: Thời gian tồn tại của một biến cục bộ (local variable) là khi nào?

  • A. Chỉ trong suốt quá trình thực thi hàm chứa nó
  • B. Trong suốt quá trình chạy của toàn bộ chương trình
  • C. Cho đến khi một biến toàn cục cùng tên được khai báo
  • D. Cho đến khi chương trình kết thúc

Câu 9: Xem đoạn mã Python sau:
```python
my_list = [1, 2, 3]

def modify_list(lst):
lst.append(4) # Thao tác trên đối tượng list

modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: list là kiểu dữ liệu có thể thay đổi - mutable).

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

Câu 10: Xem đoạn mã Python sau:
```python
my_string =

  • A.
  • B.
  • C. Báo lỗi
  • D.

Câu 11: Tham số của một hàm trong Python thuộc phạm vi nào?

  • A. Phạm vi cục bộ của hàm đó
  • B. Phạm vi toàn cục
  • C. Phạm vi lồng nhau
  • D. Phạm vi của hàm gọi nó

Câu 12: Xem đoạn mã Python sau:
```python
a = 1

def f():
a = 2
print(a)

def g():
print(a)

f()
g()
print(a)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. 1, 1, 1
  • B. 2, 2, 2
  • C. 2, 1, 1
  • D. 1, 2, 1

Câu 13: Đ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 toàn cục sẽ bị xóa.
  • B. Biến cục bộ sẽ bị bỏ qua.
  • C. Chương trình sẽ báo lỗi.
  • D. Trong phạm vi hàm, biến cục bộ sẽ

Câu 14: Xem đoạn mã Python sau:
```python
value = 50

def process_value():
global value
value = value * 2
print(

  • A. Before function: 50
    Inside function: 100
    After function: 100
  • B. Before function: 50
    Inside function: 100
    After function: 50
  • C. Before function: 50
    Inside function: 50
    After function: 50
  • D. Báo lỗi

Câu 15: Xem đoạn mã Python sau:
```python
def outer_function():
outer_var = 10
def inner_function():
inner_var = 20
print(outer_var + inner_var)
inner_function()

outer_function()
```
Biến `outer_var` trong `inner_function` thuộc phạm vi nào?

  • A. Phạm vi cục bộ của `inner_function`
  • B. Phạm vi toàn cục
  • C. Phạm vi lồng nhau (phạm vi của `outer_function`)
  • D. Báo lỗi do không thể truy cập

Câu 16: Trong đoạn mã ở Câu 15, biến `inner_var` thuộc phạm vi nào?

  • A. Phạm vi cục bộ của `inner_function`
  • B. Phạm vi lồng nhau (phạm vi của `outer_function`)
  • C. Phạm vi toàn cục
  • D. Không xác định được

Câu 17: Xem đoạn mã Python sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để tăng biến "count" của hàm ngoài?
count += 1
print(count)
return increment

counter = create_counter()
counter()
counter()
```
Nếu muốn hàm `increment` thực sự tăng biến `count` từ hàm `create_counter`, ta cần thêm từ khóa nào vào trước `count` trong hàm `increment`?

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

Câu 18: Sau khi sửa lỗi ở Câu 17 bằng từ khóa thích hợp, kết quả khi chạy đoạn mã sẽ là gì?

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

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

def my_func():
x = 5 # Khai báo biến x cục bộ
print(

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

Câu 20: Tại sao việc sử dụng từ khóa `global` để thay đổi biến toàn cục bên trong hàm nên được cân nhắc kỹ lưỡng?

  • A. Nó có thể làm cho luồng dữ liệu trong chương trình khó theo dõi và dễ gây lỗi không mong muốn (side effects).
  • B. Nó làm chậm tốc độ thực thi của hàm.
  • C. Chỉ có thể sử dụng `global` một lần duy nhất trong toàn bộ chương trình.
  • D. Biến toàn cục sẽ bị xóa sau khi hàm kết thúc.

Câu 21: Xem đoạn mã Python sau:
```python
def process_data(data_list):
data_list = [5, 6, 7] # Gán lại biến data_list cục bộ
print(

  • A. Inside function: [1, 2, 3]
    Outside function: [1, 2, 3]
  • B. Inside function: [5, 6, 7]
    Outside function: [5, 6, 7]
  • C. Inside function: [5, 6, 7]
    Outside function: [1, 2, 3]
  • D. Inside function: [1, 2, 3]
    Outside function: [5, 6, 7]

Câu 22: Xem đoạn mã Python sau:
```python
def calculate_total(numbers):
total = 0
for num in numbers:
total += num
print(total)

calculate_total([10, 20, 30])
# print(total) # Dòng này có vấn đề?
```
Dòng lệnh `# print(total)` ở cuối đoạn mã sẽ gây ra lỗi gì?

  • A. NameError, vì biến `total` là biến cục bộ của hàm `calculate_total`.
  • B. TypeError, vì không thể in giá trị của biến.
  • C. SyntaxError, vì cú pháp sai.
  • D. Không có lỗi, nó sẽ in ra giá trị cuối cùng của `total`.

Câu 23: Xem đoạn mã Python sau:
```python
def check_access():
# Có thể truy cập biến "message" ở đây không?
print(message)

message =

  • A. Báo lỗi NameError vì `message` được định nghĩa sau khi hàm được định nghĩa.
  • B. Chạy thành công và in ra
  • C. Báo lỗi NameError vì `message` được định nghĩa bên ngoài hàm.
  • D. Chạy thành công nhưng không in gì cả.

Câu 24: Xem đoạn mã Python sau:
```python
def check_access_later():
print(data)

check_access_later()
data = 99
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. Báo lỗi NameError tại dòng `print(data)` bên trong hàm.
  • B. Chạy thành công và in ra 99.
  • C. Chạy thành công nhưng không in gì cả.
  • D. Báo lỗi SyntaxError.

Câu 25: Giả sử bạn cần viết một hàm để đếm số lần nó được gọi trong suốt quá trình chạy chương trình. Biến dùng để đếm số lần gọi hàm nên thuộc phạm vi nào?

  • A. Phạm vi cục bộ bên trong hàm.
  • B. Phạm vi toàn cục (và cần sử dụng `global` bên trong hàm để tăng giá trị).
  • C. Tham số của hàm.
  • D. Phạm vi lồng nhau.

Câu 26: Xem đoạn mã Python sau:
```python
def scope_test():
def do_local():
spam =

  • A. After local assignment: test spam
    After global assignment: test spam
    After nonlocal assignment: nonlocal spam
    In global scope: global spam
  • B. After local assignment: local spam
    After global assignment: global spam
    After nonlocal assignment: nonlocal spam
    In global scope: global spam
  • C. After local assignment: test spam
    After global assignment: global spam
    After nonlocal assignment: nonlocal spam
    In global scope: test spam
  • D. After local assignment: local spam
    After global assignment: test spam
    After nonlocal assignment: global spam
    In global scope: global spam

Câu 27: Xem đoạn mã Python sau:
```python
MAX_VALUE = 100

def process(value):
if value > MAX_VALUE:
return MAX_VALUE
else:
return value

result = process(150)
print(result)
```
Biến `MAX_VALUE` được truy cập trong hàm `process` mà không cần từ khóa `global`. Điều này đúng hay sai?

  • A. Đúng, vì biến toàn cục có thể được đọc từ bên trong hàm.
  • B. Sai, cần phải dùng `global MAX_VALUE` để đọc giá trị.
  • C. Sai, chỉ có thể truy cập biến cục bộ.
  • D. Đúng, nhưng chỉ áp dụng cho hằng số.

Câu 28: Xem đoạn mã Python sau:
```python
counter = 0

def count_up():
counter += 1 # Dòng này sẽ gây lỗi nếu không có từ khóa phù hợp
print(counter)

count_up()
```
Để dòng `counter += 1` hoạt động đúng như mong đợi (tăng biến `counter` toàn cục), ta cần thêm từ khóa nào vào đầu hàm `count_up`?

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

Câu 29: Phát biểu nào sau đây về phạm vi biến trong Python là SAI?

  • A. Biến cục bộ chỉ tồn tại trong hàm mà nó được định nghĩa.
  • B. Biến toàn cục có thể được truy cập (đọc) từ bất kỳ đâu trong chương trình.
  • C. Sử dụng từ khóa `global` bên trong hàm cho phép sửa đổi biến toàn cục cùng tên.
  • D. Nếu một biến cục bộ có cùng tên với biến toàn cục, biến toàn cục sẽ tự động được cập nhật khi biến cục bộ thay đổi giá trị.

Câu 30: Xem đoạn mã Python sau:
```python
items = [

  • A. Inside: ["apple", "banana", "cherry"]
    Outside: ["apple", "banana", "cherry"]
  • B. Inside: ["apple", "banana", "cherry"]
    Outside: ["apple", "banana"]
  • C. Báo lỗi tại dòng `items = items + [new_item]`
  • D. Inside: ["apple", "banana"]
    Outside: ["apple", "banana", "cherry"]

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ộ đề 06

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

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

my_function()
```
Biến `x` trong đoạn mã trên thuộc phạm vi 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ộ đề 06

Câu 2: Dựa vào đoạn mã ở Câu 1, biến `y` thuộc phạm vi nào?

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ộ đề 06

Câu 3: Xem đoạn mã Python sau:
```python
z = 100

def another_function():
print(z)

another_function()
```
Đoạn mã trên sẽ in ra kết quả 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ộ đề 06

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

def increment():
count = count + 1 # Dòng này có vấn đề về phạm vi
print(count)

increment()
print(count)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

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ộ đề 06

Câu 5: Để khắc phục lỗi ở Câu 4 và làm cho hàm `increment` thực sự tăng giá trị của biến `count` toàn cục, ta cần thêm từ khóa nào vào đầu 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ộ đề 06

Câu 6: Sau khi sửa lỗi ở Câu 4 bằng cách thêm từ khóa thích hợp, đoạn mã sau sẽ cho kết quả gì?
```python
count = 0

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

increment()
print(count)
```

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ộ đề 06

Câu 7: Biến được khai báo bên ngoài tất cả các hàm và khối lệnh trong một tệp mã nguồn Python 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ộ đề 06

Câu 8: Thời gian tồn tại của một biến cục bộ (local variable) là khi nào?

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ộ đề 06

Câu 9: Xem đoạn mã Python sau:
```python
my_list = [1, 2, 3]

def modify_list(lst):
lst.append(4) # Thao tác trên đối tượng list

modify_list(my_list)
print(my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: list là kiểu dữ liệu có thể thay đổi - mutable).

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ộ đề 06

Câu 10: Xem đoạn mã Python sau:
```python
my_string = "Hello"

def modify_string(s):
s = s + " World" # Gán lại cho biến s

modify_string(my_string)
print(my_string)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: string là kiểu dữ liệu không thể thay đổi - immutable).

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ộ đề 06

Câu 11: Tham số của một hàm trong Python thuộc 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ộ đề 06

Câu 12: Xem đoạn mã Python sau:
```python
a = 1

def f():
a = 2
print(a)

def g():
print(a)

f()
g()
print(a)
```
Kết quả khi chạy đoạn mã này 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ộ đề 06

Câu 13: Đ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?

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ộ đề 06

Câu 14: Xem đoạn mã Python sau:
```python
value = 50

def process_value():
global value
value = value * 2
print("Inside function:", value)

print("Before function:", value)
process_value()
print("After function:", value)
```
Kết quả khi chạy đoạn mã này 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ộ đề 06

Câu 15: Xem đoạn mã Python sau:
```python
def outer_function():
outer_var = 10
def inner_function():
inner_var = 20
print(outer_var + inner_var)
inner_function()

outer_function()
```
Biến `outer_var` trong `inner_function` thuộc 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ộ đề 06

Câu 16: Trong đoạn mã ở Câu 15, biến `inner_var` thuộc phạm vi 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ộ đề 06

Câu 17: Xem đoạn mã Python sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để tăng biến 'count' của hàm ngoài?
count += 1
print(count)
return increment

counter = create_counter()
counter()
counter()
```
Nếu muốn hàm `increment` thực sự tăng biến `count` từ hàm `create_counter`, ta cần thêm từ khóa nào vào trước `count` trong hàm `increment`?

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ộ đề 06

Câu 18: Sau khi sửa lỗi ở Câu 17 bằng từ khóa thích hợp, kết quả khi chạy đoạn mã sẽ 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ộ đề 06

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

def my_func():
x = 5 # Khai báo biến x cục bộ
print("Inside:", x)

my_func()
print("Outside:", x)
```
Kết quả khi chạy đoạn mã này 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ộ đề 06

Câu 20: Tại sao việc sử dụng từ khóa `global` để thay đổi biến toàn cục bên trong hàm nên được cân nhắc kỹ lưỡng?

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ộ đề 06

Câu 21: Xem đoạn mã Python sau:
```python
def process_data(data_list):
data_list = [5, 6, 7] # Gán lại biến data_list cục bộ
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ã này 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ộ đề 06

Câu 22: Xem đoạn mã Python sau:
```python
def calculate_total(numbers):
total = 0
for num in numbers:
total += num
print(total)

calculate_total([10, 20, 30])
# print(total) # Dòng này có vấn đề?
```
Dòng lệnh `# print(total)` ở cuối đoạn mã sẽ gây ra lỗi 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ộ đề 06

Câu 23: Xem đoạn mã Python sau:
```python
def check_access():
# Có thể truy cập biến 'message' ở đây không?
print(message)

message = "Xin chào"
check_access()
```
Đoạn mã này có chạy thành công không và kết quả in ra 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ộ đề 06

Câu 24: Xem đoạn mã Python sau:
```python
def check_access_later():
print(data)

check_access_later()
data = 99
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

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ộ đề 06

Câu 25: Giả sử bạn cần viết một hàm để đếm số lần nó được gọi trong suốt quá trình chạy chương trình. Biến dùng để đếm số lần gọi hàm nên thuộc 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ộ đề 06

Câu 26: Xem đoạn mã Python sau:
```python
def scope_test():
def do_local():
spam = "local spam"
def do_global():
global spam
spam = "global spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"

spam = "test spam" # Biến spam trong scope_test (phạm vi lồng nhau)
do_local()
print("After local assignment:", spam)
do_global()
print("After global assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)

spam = "global test" # Biến spam toàn cục
scope_test()
print("In global scope:", spam)
```
Đoạn mã này sẽ in ra gì? (Câu hỏi này hơi nâng cao, kiểm tra cả `nonlocal`).

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ộ đề 06

Câu 27: Xem đoạn mã Python sau:
```python
MAX_VALUE = 100

def process(value):
if value > MAX_VALUE:
return MAX_VALUE
else:
return value

result = process(150)
print(result)
```
Biến `MAX_VALUE` được truy cập trong hàm `process` mà không cần từ khóa `global`. Điều này đúng hay sai?

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ộ đề 06

Câu 28: Xem đoạn mã Python sau:
```python
counter = 0

def count_up():
counter += 1 # Dòng này sẽ gây lỗi nếu không có từ khóa phù hợp
print(counter)

count_up()
```
Để dòng `counter += 1` hoạt động đúng như mong đợi (tăng biến `counter` toàn cục), ta cần thêm từ khóa nào vào đầu hàm `count_up`?

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ộ đề 06

Câu 29: Phát biểu nào sau đây về phạm vi biến trong Python là SAI?

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ộ đề 06

Câu 30: Xem đoạn mã Python sau:
```python
items = ["apple", "banana"]

def add_item(new_item):
items = items + [new_item] # Tạo một list cục bộ mới
print("Inside:", items)

add_item("cherry")
print("Outside:", items)
```
Kết quả khi chạy đoạn mã này là gì?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, biến được khai báo bên trong một hàm có phạm vi (scope) là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Bên ngoài (Outer)
  • D. Chung (Common)

Câu 2: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `x` trong đoạn mã trên có phạm vi là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Không có phạm vi
  • D. Phạm vi của hàm `my_function`

Câu 3: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `y` trong đoạn mã trên có phạm vi là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Phạm vi bên ngoài hàm
  • D. Phạm vi của biến `x`

Câu 4: Xem xét đoạn mã sau:
```python
def my_function():
z = 20
print(z)

my_function()
print(z)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra ở dòng `print(z)` thứ hai?

  • A. In ra giá trị 20
  • B. In ra giá trị None
  • C. In ra giá trị rỗng
  • D. Báo lỗi `NameError` vì biến `z` không tồn tại ở phạm vi toàn cục

Câu 5: Xem xét đoạn mã sau:
```python
a = 5
def change_a():
a = 15
print("Trong ham:", a)

change_a()
print("Ngoai ham:", a)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: 15
    Ngoai ham: 15
  • B. Trong ham: 5
    Ngoai ham: 5
  • C. Trong ham: 15
    Ngoai ham: 5
  • D. Báo lỗi

Câu 6: Xem xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
print(count)

increment()
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. Báo lỗi `UnboundLocalError` vì Python cố gắng sửa đổi biến `count` cục bộ trước khi nó được gán giá trị trong hàm.
  • B. In ra 1
  • C. In ra 0
  • D. Báo lỗi `NameError`

Câu 7: Để sửa lỗi trong đoạn mã ở câu 6 (muốn hàm `increment` thay đổi biến `count` toàn cục), ta cần sử dụng từ khóa nào bên trong hàm?

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

Câu 8: Xem xét đoạn mã sau (đã sửa từ câu 6):
```python
count = 0
def increment():
global count
count += 1
print(count)

increment()
print("Cuoi cung:", count)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. 1
    Cuoi cung: 0
  • B. 1
    Cuoi cung: 1
  • C. 0
    Cuoi cung: 1
  • D. Báo lỗi

Câu 9: Xem xét đoạn mã sau:
```python
def process_value(x):
x = x * 2
print("Trong ham:", x)

value = 10
process_value(value)
print("Ngoai ham:", value)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: 20
    Ngoai ham: 20
  • B. Trong ham: 10
    Ngoai ham: 10
  • C. Trong ham: 20
    Ngoai ham: 10
  • D. Báo lỗi

Câu 10: Lý do khiến biến `value` ở phạm vi toàn cục trong câu 9 không bị thay đổi sau khi gọi hàm `process_value` là gì?

  • A. Tham số `x` trong hàm là một biến cục bộ mới, chỉ nhận bản sao giá trị của `value` khi hàm được gọi. Việc gán lại giá trị cho `x` bên trong hàm không ảnh hưởng đến `value` bên ngoài.
  • B. Biến `value` được khai báo trước hàm nên nó là biến toàn cục và không thể bị thay đổi bởi hàm.
  • C. Hàm `process_value` không sử dụng từ khóa `global`.
  • D. Biến `value` là một số nguyên, là kiểu dữ liệu bất biến (immutable).

Câu 11: Xem xét đoạn mã sau:
```python
def modify_list(my_list):
my_list.append(4)
print("Trong ham:", my_list)

numbers = [1, 2, 3]
modify_list(numbers)
print("Ngoai ham:", numbers)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: [1, 2, 3, 4]
    Ngoai ham: [1, 2, 3]
  • B. Trong ham: [1, 2, 3]
    Ngoai ham: [1, 2, 3]
  • C. Trong ham: [1, 2, 3]
    Ngoai ham: [1, 2, 3, 4]
  • D. Trong ham: [1, 2, 3, 4]
    Ngoai ham: [1, 2, 3, 4]

Câu 12: Lý do biến `numbers` ở phạm vi toàn cục trong câu 11 bị thay đổi sau khi gọi hàm `modify_list` là gì?

  • A. Tham số `my_list` và biến `numbers` cùng tham chiếu đến một đối tượng danh sách trong bộ nhớ. Phương thức `append` sửa đổi trực tiếp đối tượng đó.
  • B. Hàm `modify_list` đã sử dụng từ khóa `global` một cách ngầm định.
  • C. Danh sách (list) là kiểu dữ liệu bất biến (immutable).
  • D. Python luôn truyền tham số theo tham chiếu (pass by reference).

Câu 13: Xem xét đoạn mã sau:
```python
def reassign_list(my_list):
my_list = [5, 6, 7]
print("Trong ham:", my_list)

numbers = [1, 2, 3]
reassign_list(numbers)
print("Ngoai ham:", numbers)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: [5, 6, 7]
    Ngoai ham: [5, 6, 7]
  • B. Trong ham: [5, 6, 7]
    Ngoai ham: [1, 2, 3]
  • C. Trong ham: [1, 2, 3]
    Ngoai ham: [5, 6, 7]
  • D. Báo lỗi

Câu 14: Phân tích sự khác biệt về phạm vi và tác động lên biến gốc giữa hàm `modify_list` (câu 11) và `reassign_list` (câu 13).

  • A. Cả hai hàm đều thay đổi biến danh sách gốc bên ngoài hàm vì danh sách là kiểu dữ liệu khả biến.
  • B. Hàm `modify_list` thay đổi biến gốc vì nó gán lại giá trị mới cho tham số, còn `reassign_list` thì không.
  • C. Hàm `modify_list` thay đổi đối tượng danh sách gốc bằng phương thức nội tại (`append`), còn `reassign_list` gán tham số cho một đối tượng danh sách mới trong phạm vi cục bộ của hàm.
  • D. Cả hai hàm đều không thay đổi biến danh sách gốc vì tham số hàm luôn là biến cục bộ.

Câu 15: Biến toàn cục (global variable) có thể được truy cập (đọc giá trị) từ bên trong một hàm mà không cần khai báo gì thêm không?

  • A. Có.
  • B. Không, phải dùng từ khóa `global`.
  • C. Không, phải truyền biến đó làm tham số.
  • D. Chỉ khi biến toàn cục là một số.

Câu 16: Biến toàn cục (global variable) có thể bị thay đổi giá trị từ bên trong một hàm mà không sử dụng từ khóa `global` không?

  • A. Có.
  • B. Không, việc gán giá trị mới cho một biến trùng tên sẽ tạo ra một biến cục bộ mới.
  • C. Chỉ khi biến toàn cục là một danh sách.
  • D. Chỉ khi hàm đó không có tham số.

Câu 17: Khi một hàm kết thúc việc thực thi, các biến cục bộ được khai báo bên trong hàm đó sẽ như thế nào?

  • A. Chúng vẫn tồn tại và có thể được truy cập từ bên ngoài hàm.
  • B. Chúng vẫn tồn tại nhưng chỉ có thể được truy cập khi hàm được gọi lại.
  • C. Chúng bị hủy và không thể truy cập được nữa.
  • D. Chúng trở thành biến toàn cục.

Câu 18: Xem xét đoạn mã sau:
```python
def func1():
x = 10
print(x)

def func2():
y = 20
print(y)

func1()
func2()
```
Biến `x` trong `func1` và biến `y` trong `func2` có mối quan hệ phạm vi như thế nào?

  • A. Cả hai đều là biến toàn cục.
  • B. Biến `x` là toàn cục, biến `y` là cục bộ.
  • C. Biến `x` và `y` chia sẻ cùng một phạm vi cục bộ.
  • D. Cả hai đều là biến cục bộ trong các phạm vi riêng biệt của từng hàm.

Câu 19: Trong Python, thứ tự tìm kiếm (tra cứu) biến khi nó được sử dụng trong một phạm vi (ví dụ: bên trong một hàm) là gì?

  • A. Phạm vi cục bộ hiện tại -> Phạm vi bao quanh (nếu có) -> Phạm vi toàn cục -> Phạm vi các tên dựng sẵn (built-in).
  • B. Phạm vi toàn cục -> Phạm vi cục bộ hiện tại -> Phạm vi bao quanh -> Phạm vi các tên dựng sẵn.
  • C. Phạm vi cục bộ hiện tại -> Phạm vi toàn cục -> Phạm vi bao quanh -> Phạm vi các tên dựng sẵn.
  • D. Phạm vi các tên dựng sẵn -> Phạm vi toàn cục -> Phạm vi bao quanh -> Phạm vi cục bộ hiện tại.

Câu 20: Xem xét đoạn mã sau:
```python
def outer_function():
a = 1
def inner_function():
b = 2
print(a + b)
inner_function()

outer_function()
```
Trong đoạn mã này, biến `a` có phạm vi nào đối với `inner_function`?

  • A. Cục bộ (Local) của `inner_function`
  • B. Toàn cục (Global)
  • C. Bao quanh (Enclosing) - phạm vi của hàm `outer_function`
  • D. Biến dựng sẵn (Built-in)

Câu 21: Xem xét đoạn mã sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để thay đổi "count" của outer_function?
pass # Chỗ cần thay đổi
return count
return increment

counter = create_counter()
# print(counter()) # Nếu chạy sẽ báo lỗi hoặc không như mong muốn
```
Để hàm `increment` có thể thay đổi biến `count` trong `outer_function` (phạm vi bao quanh), ta cần sử dụng từ khóa nào ở dòng `pass` và sửa lại dòng dưới đó?

  • A. global count
  • B. nonlocal count
  • C. local count
  • D. Không cần từ khóa nào, chỉ cần count += 1

Câu 22: Biến được tạo ra trong khối lệnh của câu lệnh `if` hoặc `for` (không nằm trong hàm) trong Python có phạm vi là gì?

  • A. Chúng có phạm vi giống với phạm vi chứa khối lệnh đó (ví dụ: phạm vi toàn cục nếu nằm ngoài hàm).
  • B. Chúng có phạm vi cục bộ chỉ bên trong khối `if` hoặc `for`.
  • C. Chúng có phạm vi toàn cục.
  • D. Chúng có phạm vi bao quanh.

Câu 23: Xem xét đoạn mã sau:
```python
msg =

  • A. Báo lỗi `NameError`
  • B. In ra chuỗi rỗng
  • C. In ra `Toan cuc`
  • D. In ra `None`

Câu 24: Xem xét đoạn mã sau:
```python
def my_func(data):
data = data * 2
print("Inside:", data)

value = 5
my_func(value)
print("Outside:", value)

my_list = [1, 2]
my_func(my_list)
print("Outside:", my_list)
```
Dự đoán kết quả khi chạy đoạn mã này.

  • A. Inside: 10
    Outside: 10
    Inside: [1, 2, 1, 2]
    Outside: [1, 2, 1, 2]
  • B. Inside: 10
    Outside: 5
    Inside: [1, 2, 1, 2]
    Outside: [1, 2]
  • C. Inside: 10
    Outside: 10
    Inside: [1, 2, 1, 2]
    Outside: [1, 2]
  • D. Inside: 10
    Outside: 5
    Inside: [1, 2, 1, 2]
    Outside: [1, 2, 1, 2]

Câu 25: Trong Python, biến được truyền vào làm tham số cho một hàm sẽ có phạm vi như thế nào bên trong hàm?

  • A. Luôn là biến cục bộ của hàm.
  • B. Là biến toàn cục nếu biến gốc là toàn cục.
  • C. Là biến tham chiếu đến biến gốc bên ngoài.
  • D. Có phạm vi bao quanh.

Câu 26: Xem xét đoạn mã sau:
```python
def set_x(val):
global x
x = val

x = 0
set_x(100)
print(x)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. 0
  • B. Báo lỗi
  • C. 100
  • D. None

Câu 27: Việc sử dụng từ khóa `global` trong một hàm cho phép điều gì?

  • A. Tạo một biến cục bộ mới có tên trùng với biến toàn cục.
  • B. Cho phép hàm thay đổi giá trị của một biến toàn cục đã tồn tại.
  • C. Cho phép hàm truy cập (đọc) giá trị của biến toàn cục.
  • D. Tạo một biến có phạm vi bao quanh.

Câu 28: Đâu là nhược điểm tiềm ẩn của việc sử dụng quá nhiều biến toàn cục trong chương trình?

  • A. Làm cho mã khó hiểu và khó bảo trì hơn vì bất kỳ hàm nào cũng có thể thay đổi giá trị của chúng một cách không mong muốn.
  • B. Làm tăng tốc độ thực thi chương trình.
  • C. Giúp các hàm trở nên độc lập hơn.
  • D. Ngăn chặn việc sử dụng biến cục bộ cùng tên.

Câu 29: Xem xét đoạn mã sau:
```python
def process_data(data):
data = data + [5, 6]
print("Inside:", data)

my_list = [1, 2]
process_data(my_list)
print("Outside:", my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: `+` với danh sách tạo danh sách mới)

  • A. Inside: [1, 2, 5, 6]
    Outside: [1, 2, 5, 6]
  • B. Inside: [1, 2, 5, 6]
    Outside: [1, 2]
  • C. Inside: [1, 2]
    Outside: [1, 2]
  • D. Báo lỗi

Câu 30: Điền vào chỗ trống: Phạm vi của biến xác định _________ của biến trong chương trình.

  • A. kiểu dữ liệu
  • B. giá trị ban đầu
  • C. khả năng thay đổi
  • D. khu vực mà biến có thể được truy cập hợp lệ

Câu 31: Trong Python, nếu một biến có cùng tên tồn tại ở cả phạm vi cục bộ và toàn cục, khi bạn tham chiếu đến tên biến đó bên trong hàm, Python sẽ ưu tiên sử dụng biến nào?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Biến được khai báo trước.
  • D. Báo lỗi vì trùng tên.

Câu 32: Xem xét đoạn mã sau:
```python
def calculate(a, b):
result = a * b
return result

x = 5
y = 10
z = calculate(x, y)
print(z)
# print(result) # Dòng này sẽ gây lỗi
```
Biến `result` trong hàm `calculate` có phạm vi là gì?

  • A. Toàn cục.
  • B. Cục bộ của hàm `calculate`.
  • C. Phạm vi của biến `z`.
  • D. Phạm vi bao quanh.

Câu 33: Điều gì xảy ra nếu bạn cố gắng truy cập một biến cục bộ sau khi hàm chứa nó đã kết thúc thực thi?

  • A. Bạn sẽ nhận được giá trị cuối cùng của biến đó.
  • B. Bạn sẽ nhận được giá trị mặc định của biến đó.
  • C. Chương trình sẽ báo lỗi `NameError`.
  • D. Biến đó tự động trở thành biến toàn cục.

Câu 34: Xem xét đoạn mã sau:
```python
counter = 0

def increment_counter():
global counter
for i in range(5):
counter += 1

increment_counter()
print(counter)
```
Kết quả in ra cuối cùng của biến `counter` là bao nhiêu?

  • A. 0
  • B. 1
  • C. 5
  • D. Báo lỗi (Lưu ý: Câu hỏi này kiểm tra sự hiểu biết kết hợp giữa `global` và vòng lặp, `range` tạo ra 5 lần lặp, mỗi lần tăng `counter` lên 1)

Câu 35: Trong Python, các tham số truyền vào hàm (parameters) hoạt động như các biến có phạm vi nào?

  • A. Cục bộ (Local) của hàm.
  • B. Toàn cục (Global).
  • C. Bao quanh (Enclosing).
  • D. Tham chiếu đến biến gốc bên ngoà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ộ đề 07

Trong Python, biến được khai báo bên trong một hàm có phạm vi (scope) 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ộ đề 07

Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `x` trong đoạn mã trên có phạm vi 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ộ đề 07

Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `y` trong đoạn mã trên có phạm vi 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ộ đề 07

Xem xét đoạn mã sau:
```python
def my_function():
z = 20
print(z)

my_function()
print(z)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra ở dòng `print(z)` thứ hai?

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ộ đề 07

Xem xét đoạn mã sau:
```python
a = 5
def change_a():
a = 15
print('Trong ham:', a)

change_a()
print('Ngoai ham:', a)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Xem xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
print(count)

increment()
```
Khi chạy đoạn mã này, điều gì sẽ xảy 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ộ đề 07

Để sửa lỗi trong đoạn mã ở câu 6 (muốn hàm `increment` thay đổi biến `count` toàn cục), ta cần sử dụng từ khóa nào bên trong hàm?

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ộ đề 07

Xem xét đoạn mã sau (đã sửa từ câu 6):
```python
count = 0
def increment():
global count
count += 1
print(count)

increment()
print('Cuoi cung:', count)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Xem xét đoạn mã sau:
```python
def process_value(x):
x = x * 2
print('Trong ham:', x)

value = 10
process_value(value)
print('Ngoai ham:', value)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Lý do khiến biến `value` ở phạm vi toàn cục trong câu 9 không bị thay đổi sau khi gọi hàm `process_value` 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ộ đề 07

Xem xét đoạn mã sau:
```python
def modify_list(my_list):
my_list.append(4)
print('Trong ham:', my_list)

numbers = [1, 2, 3]
modify_list(numbers)
print('Ngoai ham:', numbers)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Lý do biến `numbers` ở phạm vi toàn cục trong câu 11 *bị* thay đổi sau khi gọi hàm `modify_list` 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ộ đề 07

Xem xét đoạn mã sau:
```python
def reassign_list(my_list):
my_list = [5, 6, 7]
print('Trong ham:', my_list)

numbers = [1, 2, 3]
reassign_list(numbers)
print('Ngoai ham:', numbers)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Phân tích sự khác biệt về phạm vi và tác động lên biến gốc giữa hàm `modify_list` (câu 11) và `reassign_list` (câu 13).

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ộ đề 07

Biến toàn cục (global variable) có thể được truy cập (đọc giá trị) từ bên trong một hàm mà không cần khai báo gì thêm không?

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ộ đề 07

Biến toàn cục (global variable) có thể bị thay đổi giá trị từ bên trong một hàm *mà không* sử dụng từ khóa `global` không?

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ộ đề 07

Khi một hàm kết thúc việc thực thi, các biến cục bộ được khai báo bên trong hàm đó sẽ 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ộ đề 07

Xem xét đoạn mã sau:
```python
def func1():
x = 10
print(x)

def func2():
y = 20
print(y)

func1()
func2()
```
Biến `x` trong `func1` và biến `y` trong `func2` có mối quan hệ 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ộ đề 07

Trong Python, thứ tự tìm kiếm (tra cứu) biến khi nó được sử dụng trong một phạm vi (ví dụ: bên trong một hàm) 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ộ đề 07

Xem xét đoạn mã sau:
```python
def outer_function():
a = 1
def inner_function():
b = 2
print(a + b)
inner_function()

outer_function()
```
Trong đoạn mã này, biến `a` có phạm vi nào đối với `inner_function`?

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ộ đề 07

Xem xét đoạn mã sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để thay đổi 'count' của outer_function?
pass # Chỗ cần thay đổi
return count
return increment

counter = create_counter()
# print(counter()) # Nếu chạy sẽ báo lỗi hoặc không như mong muốn
```
Để hàm `increment` có thể thay đổi biến `count` trong `outer_function` (phạm vi bao quanh), ta cần sử dụng từ khóa nào ở dòng `pass` và sửa lại dòng dưới đó?

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ộ đề 07

Biến được tạo ra trong khối lệnh của câu lệnh `if` hoặc `for` (không nằm trong hàm) trong Python 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ộ đề 07

Xem xét đoạn mã sau:
```python
msg = "Toan cuc"
def print_msg():
print(msg)

print_msg()
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Xem xét đoạn mã sau:
```python
def my_func(data):
data = data * 2
print('Inside:', data)

value = 5
my_func(value)
print('Outside:', value)

my_list = [1, 2]
my_func(my_list)
print('Outside:', my_list)
```
Dự đoán kết quả khi chạy đoạn mã này.

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ộ đề 07

Trong Python, biến được truyền vào làm tham số cho một hàm sẽ có phạm vi như thế nào 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ộ đề 07

Xem xét đoạn mã sau:
```python
def set_x(val):
global x
x = val

x = 0
set_x(100)
print(x)
```
Kết quả khi chạy đoạn mã này 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ộ đề 07

Việc sử dụng từ khóa `global` trong một hàm cho phép điều 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ộ đề 07

Đâu là nhược điểm tiềm ẩn của việc sử dụng quá nhiều biến toàn cục trong chương trình?

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ộ đề 07

Xem xét đoạn mã sau:
```python
def process_data(data):
data = data + [5, 6]
print('Inside:', data)

my_list = [1, 2]
process_data(my_list)
print('Outside:', my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: `+` với danh sách tạo danh sách mới)

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ộ đề 07

Điền vào chỗ trống: Phạm vi của biến xác định _________ của biến trong chương trình.

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, biến được khai báo bên trong một hàm có phạm vi (scope) là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Bên ngoài (Outer)
  • D. Chung (Common)

Câu 2: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `x` trong đoạn mã trên có phạm vi là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Không có phạm vi
  • D. Phạm vi của hàm `my_function`

Câu 3: Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `y` trong đoạn mã trên có phạm vi là gì?

  • A. Toàn cục (Global)
  • B. Cục bộ (Local)
  • C. Phạm vi bên ngoài hàm
  • D. Phạm vi của biến `x`

Câu 4: Xem xét đoạn mã sau:
```python
def my_function():
z = 20
print(z)

my_function()
print(z)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra ở dòng `print(z)` thứ hai?

  • A. In ra giá trị 20
  • B. In ra giá trị None
  • C. In ra giá trị rỗng
  • D. Báo lỗi `NameError` vì biến `z` không tồn tại ở phạm vi toàn cục

Câu 5: Xem xét đoạn mã sau:
```python
a = 5
def change_a():
a = 15
print("Trong ham:", a)

change_a()
print("Ngoai ham:", a)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: 15
    Ngoai ham: 15
  • B. Trong ham: 5
    Ngoai ham: 5
  • C. Trong ham: 15
    Ngoai ham: 5
  • D. Báo lỗi

Câu 6: Xem xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
print(count)

increment()
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra?

  • A. Báo lỗi `UnboundLocalError` vì Python cố gắng sửa đổi biến `count` cục bộ trước khi nó được gán giá trị trong hàm.
  • B. In ra 1
  • C. In ra 0
  • D. Báo lỗi `NameError`

Câu 7: Để sửa lỗi trong đoạn mã ở câu 6 (muốn hàm `increment` thay đổi biến `count` toàn cục), ta cần sử dụng từ khóa nào bên trong hàm?

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

Câu 8: Xem xét đoạn mã sau (đã sửa từ câu 6):
```python
count = 0
def increment():
global count
count += 1
print(count)

increment()
print("Cuoi cung:", count)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. 1
    Cuoi cung: 0
  • B. 1
    Cuoi cung: 1
  • C. 0
    Cuoi cung: 1
  • D. Báo lỗi

Câu 9: Xem xét đoạn mã sau:
```python
def process_value(x):
x = x * 2
print("Trong ham:", x)

value = 10
process_value(value)
print("Ngoai ham:", value)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: 20
    Ngoai ham: 20
  • B. Trong ham: 10
    Ngoai ham: 10
  • C. Trong ham: 20
    Ngoai ham: 10
  • D. Báo lỗi

Câu 10: Lý do khiến biến `value` ở phạm vi toàn cục trong câu 9 không bị thay đổi sau khi gọi hàm `process_value` là gì?

  • A. Tham số `x` trong hàm là một biến cục bộ mới, chỉ nhận bản sao giá trị của `value` khi hàm được gọi. Việc gán lại giá trị cho `x` bên trong hàm không ảnh hưởng đến `value` bên ngoài.
  • B. Biến `value` được khai báo trước hàm nên nó là biến toàn cục và không thể bị thay đổi bởi hàm.
  • C. Hàm `process_value` không sử dụng từ khóa `global`.
  • D. Biến `value` là một số nguyên, là kiểu dữ liệu bất biến (immutable).

Câu 11: Xem xét đoạn mã sau:
```python
def modify_list(my_list):
my_list.append(4)
print("Trong ham:", my_list)

numbers = [1, 2, 3]
modify_list(numbers)
print("Ngoai ham:", numbers)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: [1, 2, 3, 4]
    Ngoai ham: [1, 2, 3]
  • B. Trong ham: [1, 2, 3]
    Ngoai ham: [1, 2, 3]
  • C. Trong ham: [1, 2, 3]
    Ngoai ham: [1, 2, 3, 4]
  • D. Trong ham: [1, 2, 3, 4]
    Ngoai ham: [1, 2, 3, 4]

Câu 12: Lý do biến `numbers` ở phạm vi toàn cục trong câu 11 bị thay đổi sau khi gọi hàm `modify_list` là gì?

  • A. Tham số `my_list` và biến `numbers` cùng tham chiếu đến một đối tượng danh sách trong bộ nhớ. Phương thức `append` sửa đổi trực tiếp đối tượng đó.
  • B. Hàm `modify_list` đã sử dụng từ khóa `global` một cách ngầm định.
  • C. Danh sách (list) là kiểu dữ liệu bất biến (immutable).
  • D. Python luôn truyền tham số theo tham chiếu (pass by reference).

Câu 13: Xem xét đoạn mã sau:
```python
def reassign_list(my_list):
my_list = [5, 6, 7]
print("Trong ham:", my_list)

numbers = [1, 2, 3]
reassign_list(numbers)
print("Ngoai ham:", numbers)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. Trong ham: [5, 6, 7]
    Ngoai ham: [5, 6, 7]
  • B. Trong ham: [5, 6, 7]
    Ngoai ham: [1, 2, 3]
  • C. Trong ham: [1, 2, 3]
    Ngoai ham: [5, 6, 7]
  • D. Báo lỗi

Câu 14: Phân tích sự khác biệt về phạm vi và tác động lên biến gốc giữa hàm `modify_list` (câu 11) và `reassign_list` (câu 13).

  • A. Cả hai hàm đều thay đổi biến danh sách gốc bên ngoài hàm vì danh sách là kiểu dữ liệu khả biến.
  • B. Hàm `modify_list` thay đổi biến gốc vì nó gán lại giá trị mới cho tham số, còn `reassign_list` thì không.
  • C. Hàm `modify_list` thay đổi đối tượng danh sách gốc bằng phương thức nội tại (`append`), còn `reassign_list` gán tham số cho một đối tượng danh sách mới trong phạm vi cục bộ của hàm.
  • D. Cả hai hàm đều không thay đổi biến danh sách gốc vì tham số hàm luôn là biến cục bộ.

Câu 15: Biến toàn cục (global variable) có thể được truy cập (đọc giá trị) từ bên trong một hàm mà không cần khai báo gì thêm không?

  • A. Có.
  • B. Không, phải dùng từ khóa `global`.
  • C. Không, phải truyền biến đó làm tham số.
  • D. Chỉ khi biến toàn cục là một số.

Câu 16: Biến toàn cục (global variable) có thể bị thay đổi giá trị từ bên trong một hàm mà không sử dụng từ khóa `global` không?

  • A. Có.
  • B. Không, việc gán giá trị mới cho một biến trùng tên sẽ tạo ra một biến cục bộ mới.
  • C. Chỉ khi biến toàn cục là một danh sách.
  • D. Chỉ khi hàm đó không có tham số.

Câu 17: Khi một hàm kết thúc việc thực thi, các biến cục bộ được khai báo bên trong hàm đó sẽ như thế nào?

  • A. Chúng vẫn tồn tại và có thể được truy cập từ bên ngoài hàm.
  • B. Chúng vẫn tồn tại nhưng chỉ có thể được truy cập khi hàm được gọi lại.
  • C. Chúng bị hủy và không thể truy cập được nữa.
  • D. Chúng trở thành biến toàn cục.

Câu 18: Xem xét đoạn mã sau:
```python
def func1():
x = 10
print(x)

def func2():
y = 20
print(y)

func1()
func2()
```
Biến `x` trong `func1` và biến `y` trong `func2` có mối quan hệ phạm vi như thế nào?

  • A. Cả hai đều là biến toàn cục.
  • B. Biến `x` là toàn cục, biến `y` là cục bộ.
  • C. Biến `x` và `y` chia sẻ cùng một phạm vi cục bộ.
  • D. Cả hai đều là biến cục bộ trong các phạm vi riêng biệt của từng hàm.

Câu 19: Trong Python, thứ tự tìm kiếm (tra cứu) biến khi nó được sử dụng trong một phạm vi (ví dụ: bên trong một hàm) là gì?

  • A. Phạm vi cục bộ hiện tại -> Phạm vi bao quanh (nếu có) -> Phạm vi toàn cục -> Phạm vi các tên dựng sẵn (built-in).
  • B. Phạm vi toàn cục -> Phạm vi cục bộ hiện tại -> Phạm vi bao quanh -> Phạm vi các tên dựng sẵn.
  • C. Phạm vi cục bộ hiện tại -> Phạm vi toàn cục -> Phạm vi bao quanh -> Phạm vi các tên dựng sẵn.
  • D. Phạm vi các tên dựng sẵn -> Phạm vi toàn cục -> Phạm vi bao quanh -> Phạm vi cục bộ hiện tại.

Câu 20: Xem xét đoạn mã sau:
```python
def outer_function():
a = 1
def inner_function():
b = 2
print(a + b)
inner_function()

outer_function()
```
Trong đoạn mã này, biến `a` có phạm vi nào đối với `inner_function`?

  • A. Cục bộ (Local) của `inner_function`
  • B. Toàn cục (Global)
  • C. Bao quanh (Enclosing) - phạm vi của hàm `outer_function`
  • D. Biến dựng sẵn (Built-in)

Câu 21: Xem xét đoạn mã sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để thay đổi "count" của outer_function?
pass # Chỗ cần thay đổi
return count
return increment

counter = create_counter()
# print(counter()) # Nếu chạy sẽ báo lỗi hoặc không như mong muốn
```
Để hàm `increment` có thể thay đổi biến `count` trong `outer_function` (phạm vi bao quanh), ta cần sử dụng từ khóa nào ở dòng `pass` và sửa lại dòng dưới đó?

  • A. global count
  • B. nonlocal count
  • C. local count
  • D. Không cần từ khóa nào, chỉ cần count += 1

Câu 22: Biến được tạo ra trong khối lệnh của câu lệnh `if` hoặc `for` (không nằm trong hàm) trong Python có phạm vi là gì?

  • A. Chúng có phạm vi giống với phạm vi chứa khối lệnh đó (ví dụ: phạm vi toàn cục nếu nằm ngoài hàm).
  • B. Chúng có phạm vi cục bộ chỉ bên trong khối `if` hoặc `for`.
  • C. Chúng có phạm vi toàn cục.
  • D. Chúng có phạm vi bao quanh.

Câu 23: Xem xét đoạn mã sau:
```python
msg =

  • A. Báo lỗi `NameError`
  • B. In ra chuỗi rỗng
  • C. In ra `Toan cuc`
  • D. In ra `None`

Câu 24: Xem xét đoạn mã sau:
```python
def my_func(data):
data = data * 2
print("Inside:", data)

value = 5
my_func(value)
print("Outside:", value)

my_list = [1, 2]
my_func(my_list)
print("Outside:", my_list)
```
Dự đoán kết quả khi chạy đoạn mã này.

  • A. Inside: 10
    Outside: 10
    Inside: [1, 2, 1, 2]
    Outside: [1, 2, 1, 2]
  • B. Inside: 10
    Outside: 5
    Inside: [1, 2, 1, 2]
    Outside: [1, 2]
  • C. Inside: 10
    Outside: 10
    Inside: [1, 2, 1, 2]
    Outside: [1, 2]
  • D. Inside: 10
    Outside: 5
    Inside: [1, 2, 1, 2]
    Outside: [1, 2, 1, 2]

Câu 25: Trong Python, biến được truyền vào làm tham số cho một hàm sẽ có phạm vi như thế nào bên trong hàm?

  • A. Luôn là biến cục bộ của hàm.
  • B. Là biến toàn cục nếu biến gốc là toàn cục.
  • C. Là biến tham chiếu đến biến gốc bên ngoài.
  • D. Có phạm vi bao quanh.

Câu 26: Xem xét đoạn mã sau:
```python
def set_x(val):
global x
x = val

x = 0
set_x(100)
print(x)
```
Kết quả khi chạy đoạn mã này là gì?

  • A. 0
  • B. Báo lỗi
  • C. 100
  • D. None

Câu 27: Việc sử dụng từ khóa `global` trong một hàm cho phép điều gì?

  • A. Tạo một biến cục bộ mới có tên trùng với biến toàn cục.
  • B. Cho phép hàm thay đổi giá trị của một biến toàn cục đã tồn tại.
  • C. Cho phép hàm truy cập (đọc) giá trị của biến toàn cục.
  • D. Tạo một biến có phạm vi bao quanh.

Câu 28: Đâu là nhược điểm tiềm ẩn của việc sử dụng quá nhiều biến toàn cục trong chương trình?

  • A. Làm cho mã khó hiểu và khó bảo trì hơn vì bất kỳ hàm nào cũng có thể thay đổi giá trị của chúng một cách không mong muốn.
  • B. Làm tăng tốc độ thực thi chương trình.
  • C. Giúp các hàm trở nên độc lập hơn.
  • D. Ngăn chặn việc sử dụng biến cục bộ cùng tên.

Câu 29: Xem xét đoạn mã sau:
```python
def process_data(data):
data = data + [5, 6]
print("Inside:", data)

my_list = [1, 2]
process_data(my_list)
print("Outside:", my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: `+` với danh sách tạo danh sách mới)

  • A. Inside: [1, 2, 5, 6]
    Outside: [1, 2, 5, 6]
  • B. Inside: [1, 2, 5, 6]
    Outside: [1, 2]
  • C. Inside: [1, 2]
    Outside: [1, 2]
  • D. Báo lỗi

Câu 30: Điền vào chỗ trống: Phạm vi của biến xác định _________ của biến trong chương trình.

  • A. kiểu dữ liệu
  • B. giá trị ban đầu
  • C. khả năng thay đổi
  • D. khu vực mà biến có thể được truy cập hợp lệ

Câu 31: Trong Python, nếu một biến có cùng tên tồn tại ở cả phạm vi cục bộ và toàn cục, khi bạn tham chiếu đến tên biến đó bên trong hàm, Python sẽ ưu tiên sử dụng biến nào?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Biến được khai báo trước.
  • D. Báo lỗi vì trùng tên.

Câu 32: Xem xét đoạn mã sau:
```python
def calculate(a, b):
result = a * b
return result

x = 5
y = 10
z = calculate(x, y)
print(z)
# print(result) # Dòng này sẽ gây lỗi
```
Biến `result` trong hàm `calculate` có phạm vi là gì?

  • A. Toàn cục.
  • B. Cục bộ của hàm `calculate`.
  • C. Phạm vi của biến `z`.
  • D. Phạm vi bao quanh.

Câu 33: Điều gì xảy ra nếu bạn cố gắng truy cập một biến cục bộ sau khi hàm chứa nó đã kết thúc thực thi?

  • A. Bạn sẽ nhận được giá trị cuối cùng của biến đó.
  • B. Bạn sẽ nhận được giá trị mặc định của biến đó.
  • C. Chương trình sẽ báo lỗi `NameError`.
  • D. Biến đó tự động trở thành biến toàn cục.

Câu 34: Xem xét đoạn mã sau:
```python
counter = 0

def increment_counter():
global counter
for i in range(5):
counter += 1

increment_counter()
print(counter)
```
Kết quả in ra cuối cùng của biến `counter` là bao nhiêu?

  • A. 0
  • B. 1
  • C. 5
  • D. Báo lỗi (Lưu ý: Câu hỏi này kiểm tra sự hiểu biết kết hợp giữa `global` và vòng lặp, `range` tạo ra 5 lần lặp, mỗi lần tăng `counter` lên 1)

Câu 35: Trong Python, các tham số truyền vào hàm (parameters) hoạt động như các biến có phạm vi nào?

  • A. Cục bộ (Local) của hàm.
  • B. Toàn cục (Global).
  • C. Bao quanh (Enclosing).
  • D. Tham chiếu đến biến gốc bên ngoà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ộ đề 08

Trong Python, biến được khai báo bên trong một hàm có phạm vi (scope) 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ộ đề 08

Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `x` trong đoạn mã trên có phạm vi 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ộ đề 08

Xem xét đoạn mã sau:
```python
x = 10
def my_function():
y = 5
print(x + y)
my_function()
```
Biến `y` trong đoạn mã trên có phạm vi 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ộ đề 08

Xem xét đoạn mã sau:
```python
def my_function():
z = 20
print(z)

my_function()
print(z)
```
Khi chạy đoạn mã này, điều gì sẽ xảy ra ở dòng `print(z)` thứ hai?

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ộ đề 08

Xem xét đoạn mã sau:
```python
a = 5
def change_a():
a = 15
print('Trong ham:', a)

change_a()
print('Ngoai ham:', a)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Xem xét đoạn mã sau:
```python
count = 0
def increment():
count += 1
print(count)

increment()
```
Khi chạy đoạn mã này, điều gì sẽ xảy 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ộ đề 08

Để sửa lỗi trong đoạn mã ở câu 6 (muốn hàm `increment` thay đổi biến `count` toàn cục), ta cần sử dụng từ khóa nào bên trong hàm?

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ộ đề 08

Xem xét đoạn mã sau (đã sửa từ câu 6):
```python
count = 0
def increment():
global count
count += 1
print(count)

increment()
print('Cuoi cung:', count)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Xem xét đoạn mã sau:
```python
def process_value(x):
x = x * 2
print('Trong ham:', x)

value = 10
process_value(value)
print('Ngoai ham:', value)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Lý do khiến biến `value` ở phạm vi toàn cục trong câu 9 không bị thay đổi sau khi gọi hàm `process_value` 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ộ đề 08

Xem xét đoạn mã sau:
```python
def modify_list(my_list):
my_list.append(4)
print('Trong ham:', my_list)

numbers = [1, 2, 3]
modify_list(numbers)
print('Ngoai ham:', numbers)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Lý do biến `numbers` ở phạm vi toàn cục trong câu 11 *bị* thay đổi sau khi gọi hàm `modify_list` 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ộ đề 08

Xem xét đoạn mã sau:
```python
def reassign_list(my_list):
my_list = [5, 6, 7]
print('Trong ham:', my_list)

numbers = [1, 2, 3]
reassign_list(numbers)
print('Ngoai ham:', numbers)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Phân tích sự khác biệt về phạm vi và tác động lên biến gốc giữa hàm `modify_list` (câu 11) và `reassign_list` (câu 13).

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ộ đề 08

Biến toàn cục (global variable) có thể được truy cập (đọc giá trị) từ bên trong một hàm mà không cần khai báo gì thêm không?

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ộ đề 08

Biến toàn cục (global variable) có thể bị thay đổi giá trị từ bên trong một hàm *mà không* sử dụng từ khóa `global` không?

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ộ đề 08

Khi một hàm kết thúc việc thực thi, các biến cục bộ được khai báo bên trong hàm đó sẽ 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ộ đề 08

Xem xét đoạn mã sau:
```python
def func1():
x = 10
print(x)

def func2():
y = 20
print(y)

func1()
func2()
```
Biến `x` trong `func1` và biến `y` trong `func2` có mối quan hệ 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ộ đề 08

Trong Python, thứ tự tìm kiếm (tra cứu) biến khi nó được sử dụng trong một phạm vi (ví dụ: bên trong một hàm) 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ộ đề 08

Xem xét đoạn mã sau:
```python
def outer_function():
a = 1
def inner_function():
b = 2
print(a + b)
inner_function()

outer_function()
```
Trong đoạn mã này, biến `a` có phạm vi nào đối với `inner_function`?

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ộ đề 08

Xem xét đoạn mã sau:
```python
def create_counter():
count = 0
def increment():
# Cần làm gì ở đây để thay đổi 'count' của outer_function?
pass # Chỗ cần thay đổi
return count
return increment

counter = create_counter()
# print(counter()) # Nếu chạy sẽ báo lỗi hoặc không như mong muốn
```
Để hàm `increment` có thể thay đổi biến `count` trong `outer_function` (phạm vi bao quanh), ta cần sử dụng từ khóa nào ở dòng `pass` và sửa lại dòng dưới đó?

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ộ đề 08

Biến được tạo ra trong khối lệnh của câu lệnh `if` hoặc `for` (không nằm trong hàm) trong Python 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ộ đề 08

Xem xét đoạn mã sau:
```python
msg = "Toan cuc"
def print_msg():
print(msg)

print_msg()
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Xem xét đoạn mã sau:
```python
def my_func(data):
data = data * 2
print('Inside:', data)

value = 5
my_func(value)
print('Outside:', value)

my_list = [1, 2]
my_func(my_list)
print('Outside:', my_list)
```
Dự đoán kết quả khi chạy đoạn mã này.

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ộ đề 08

Trong Python, biến được truyền vào làm tham số cho một hàm sẽ có phạm vi như thế nào 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ộ đề 08

Xem xét đoạn mã sau:
```python
def set_x(val):
global x
x = val

x = 0
set_x(100)
print(x)
```
Kết quả khi chạy đoạn mã này 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ộ đề 08

Việc sử dụng từ khóa `global` trong một hàm cho phép điều 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ộ đề 08

Đâu là nhược điểm tiềm ẩn của việc sử dụng quá nhiều biến toàn cục trong chương trình?

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ộ đề 08

Xem xét đoạn mã sau:
```python
def process_data(data):
data = data + [5, 6]
print('Inside:', data)

my_list = [1, 2]
process_data(my_list)
print('Outside:', my_list)
```
Kết quả khi chạy đoạn mã này là gì? (Lưu ý: `+` với danh sách tạo danh sách mới)

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ộ đề 08

Điền vào chỗ trống: Phạm vi của biến xác định _________ của biến trong chương trình.

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Python, biến được khai báo bên trong một hàm (ví dụ: `def my_function(): x = 10`) thuộc phạm vi nào?

  • 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 không giới hạn

Câu 2: Biến được khai báo ở ngoài tất cả các hàm và khối lệnh, có thể được truy cập từ bất kỳ đâu trong chương trình, thuộc phạm vi nào?

  • A. Phạm vi toàn cục (Global scope)
  • B. Phạm vi cục bộ (Local scope)
  • C. Phạm vi hàm (Function scope)
  • D. Phạm vi mô-đun (Module scope)

Câu 3: Xét đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
my_function()
```
Kết quả khi chạy đoạn code này là gì?

  • A. Báo lỗi vì không thể truy cập x trong hàm
  • B. 5
  • C. 10
  • D. Báo lỗi vì không thể truy cập y ngoài hàm

Câu 4: Xét đoạn code sau:
```python
a = 20
def modify_a():
a = 30
print(

  • A. Trong hàm: 30
    Ngoài hàm: 30
  • B. Trong hàm: 20
    Ngoài hàm: 20
  • C. Trong hàm: 20
    Ngoài hàm: 30
  • D. Trong hàm: 30
    Ngoài hàm: 20

Câu 5: Để 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. return
  • D. nonlocal

Câu 6: Xét đoạn code sau:
```python
b = 50
def modify_b():
global b
b = 60
print(

  • A. Trong hàm: 60
    Ngoài hàm: 60
  • B. Trong hàm: 50
    Ngoài hàm: 50
  • C. Trong hàm: 50
    Ngoài hàm: 60
  • D. Trong hàm: 60
    Ngoài hàm: 50

Câu 7: Xét đoạn code sau:
```python
def create_local():
z = 100
create_local()
print(z)
```
Kết quả khi chạy đoạn code này là gì?

  • A. 100
  • B. Báo lỗi NameError vì biến z không tồn tại ở phạm vi toàn cục
  • C. None
  • D. Chương trình không chạy

Câu 8: Tham số của một hàm (ví dụ: `def process(data):`) thuộc phạm vi nào?

  • A. Phạm vi toàn cục
  • B. Phạm vi bao đóng
  • C. Phạm vi cục bộ của hàm đó
  • D. Phạm vi toàn chương trình

Câu 9: Xét đoạn code sau:
```python
def func(p):
p = p + 1
print(

  • A. Trong hàm: 5
    Ngoài hàm: 5
  • B. Trong hàm: 6
    Ngoài hàm: 6
  • C. Trong hàm: 5
    Ngoài hàm: 6
  • D. Trong hàm: 6
    Ngoài hàm: 5

Câu 10: Xét đoạn code sau:
```python
my_list = [1, 2, 3]

def modify_list(lst):
lst.append(4)
print(

  • A. Trong hàm: [1, 2, 3, 4]
    Ngoài hàm: [1, 2, 3, 4]
  • B. Trong hàm: [1, 2, 3, 4]
    Ngoài hàm: [1, 2, 3]
  • C. Trong hàm: [1, 2, 3]
    Ngoài hàm: [1, 2, 3]
  • D. Báo lỗi

Câu 11: Tại sao biến cục bộ không thể truy cập trực tiếp từ bên ngoài hàm mà nó được định nghĩa?

  • A. Để tiết kiệm bộ nhớ.
  • B. Để ngăn chặn việc thay đổi giá trị của biến toàn cục.
  • C. Để giữ cho các hàm độc lập và tránh xung đột tên biến giữa các phần khác nhau của chương trình.
  • D. Do hạn chế của trình thông dịch Python.

Câu 12: Biến toàn cục có thể được đọc (truy cập giá trị) từ bên trong một hàm mà không cần sử dụng từ khóa `global` không?

  • A. Có, có thể đọc nhưng không thể gán giá trị mới.
  • B. Không, bắt buộc phải dùng `global` để đọc.
  • C. Chỉ khi biến toàn cục là số.
  • D. Chỉ khi biến toàn cục là chuỗi.

Câu 13: Xét đoạn code sau:
```python
def process(x, y):
x = x * 2
y = y + 1
print(

  • A. Trong process: 20 21
    Ngoài process: 20 21
  • B. Trong process: 20 21
    Ngoài process: 10 20
  • C. Trong process: 10 20
    Ngoài process: 10 20
  • D. Trong process: 10 20
    Ngoài process: 20 21

Câu 14: Biến cục bộ tồn tại trong bộ nhớ trong khoảng thời gian nào?

  • A. Từ khi hàm được gọi cho đến khi hàm kết thúc thực thi.
  • B. Trong suốt quá trình chạy của chương trình.
  • C. Từ khi biến được khai báo cho đến khi chương trình kết thúc.
  • D. Chỉ khi biến được sử dụng.

Câu 15: Biến toàn cục tồn tại trong bộ nhớ trong khoảng thời gian nào?

  • A. Chỉ khi nó được sử dụng bởi một hàm.
  • B. Từ khi nó được khai báo cho đến khi chương trình kết thúc.
  • C. Chỉ trong phạm vi của khối lệnh mà nó được định nghĩa.
  • D. Từ khi hàm chứa nó được gọi.

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

  • A. Hello, Alice
  • B. None
  • C. Báo lỗi NameError vì biến message không tồn tại ở phạm vi toàn cục
  • D. Chương trình không in ra gì cả

Câu 17: Việc sử dụng quá nhiều biến toàn cục trong chương trình lớn có thể gây ra vấn đề gì?

  • A. Làm chương trình chạy nhanh hơn.
  • B. Giúp tiết kiệm bộ nhớ.
  • C. Giảm thiểu lỗi cú pháp.
  • D. Khiến chương trình khó theo dõi, gỡ lỗi và tái sử dụng do các hàm phụ thuộc lẫn nhau vào trạng thái toàn cục.

Câu 18: Xét đoạn code sau:
```python
def set_value():
value = 10

def print_value():
print(value)

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

  • A. Báo lỗi NameError vì biến value trong print_value() không được định nghĩa.
  • B. 10
  • C. 0
  • D. Chương trình chạy bình thường nhưng không in ra gì.

Câu 19: Trong Python, phạm vi của biến được xác định dựa trên cấu trúc nào của code?

  • A. Vị trí dòng lệnh khai báo.
  • B. Khối lệnh (indentation) và định nghĩa hàm/lớp.
  • C. Kiểu dữ liệu của biến.
  • D. Tên của biến.

Câu 20: Xét đoạn code sau:
```python
x = 1
def outer():
x = 2
def inner():
# print(x) # Nếu dòng này chạy, kết quả là gì?
pass
inner()
print(x)
outer()
print(x)
```
Nếu dòng `print(x)` bên trong hàm `inner()` được bỏ comment và chạy, nó sẽ in ra giá trị nào? (Giả sử các dòng `print(x)` khác vẫn chạy sau đó)

  • A. 1 (biến toàn cục)
  • B. Báo lỗi NameError
  • C. 2 (biến x trong outer())
  • D. Chờ giá trị được gán trong inner() (nếu có)

Câu 21: Điều gì xảy ra nếu bạn khai báo một biến cục bộ trong hàm có cùng tên với một biến toàn cục?

  • A. Một biến cục bộ mới được tạo ra trong hàm, không ảnh hưởng đến biến toàn cục cùng tên.
  • B. Biến toàn cục sẽ bị ghi đè vĩnh viễn bởi giá trị của biến cục bộ.
  • C. Chương trình sẽ báo lỗi vì trùng tên biến.
  • D. Biến toàn cục sẽ tự động được coi là biến cục bộ trong hàm đó.

Câu 22: Xét đoạn code sau:
```python
count = 0

def increment():
count += 1
print(

  • A. Trong hàm: 1
    Ngoài hàm: 1
  • B. Trong hàm: 0
    Ngoài hàm: 0
  • C. Trong hàm: 1
    Ngoài hàm: 0
  • D. Báo lỗi UnboundLocalError vì cố gắng sửa biến toàn cục mà không khai báo global.

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

  • A. Để làm cho code ngắn gọn hơn.
  • B. Để quản lý và kiểm soát quyền truy cập, thay đổi dữ liệu, giúp code có tổ chức và dễ bảo trì hơn.
  • C. Để tăng tốc độ thực thi chương trình.
  • D. Để giảm thiểu số lượng biến cần sử dụng.

Câu 24: Xét đoạn code sau:
```python
def process_string(s):
s = s.upper()
print(

  • A. Trong hàm: HELLO
    Ngoài hàm: hello
  • B. Trong hàm: HELLO
    Ngoài hàm: HELLO
  • C. Trong hàm: hello
    Ngoài hàm: hello
  • D. Báo lỗi

Câu 25: Biến nào dưới đây có phạm vi toàn cục trong đoạn code sau?
```python
x = 10
def func1():
y = 20
def func2():
z = 30
print(x, y, z)
func2()
func1()
```

  • A. x
  • B. y
  • C. z
  • D. x, y, và z

Câu 26: Điều nào sau đây là ĐÚNG về biến cục bộ?

  • A. Nó có thể được truy cập từ bất kỳ đâu trong chương trình.
  • B. Nó được tạo ra khi chương trình bắt đầu chạy.
  • C. Nó giữ nguyên giá trị giữa các lần gọi hàm khác nhau.
  • D. Nó chỉ tồn tại trong phạm vi của hàm hoặc khối lệnh mà nó được định nghĩa.

Câu 27: Xét đoạn code sau:
```python
def calculate(a, b):
result = a + b
return result

total = calculate(5, 7)
print(result)
```
Kết quả khi chạy đoạn code này là gì?

  • A. 12
  • B. Báo lỗi NameError vì biến result không tồn tại ở phạm vi toàn cục
  • C. None
  • D. Chương trình không in ra gì cả

Câu 28: Khi một hàm cố gắng gán giá trị mới cho một biến toàn cục mà không sử dụng từ khóa `global`, điều gì thường xảy ra?

  • A. Giá trị của biến toàn cục sẽ được cập nhật thành giá trị mới.
  • B. Chương trình sẽ báo lỗi cú pháp (SyntaxError).
  • C. Python sẽ tạo ra một biến cục bộ mới trong hàm với cùng tên, và gán giá trị cho biến cục bộ đó.
  • D. Giá trị của biến toàn cục sẽ không thay đổi và không có biến cục bộ nào được tạo.

Câu 29: Xét đoạn code sau:
```python
def update_list(data):
data = [5, 6, 7] # Gán lại biến data cục bộ
print(

  • A. Trong hàm: [5, 6, 7]
    Ngoài hàm: [1, 2, 3]
  • B. Trong hàm: [5, 6, 7]
    Ngoài hàm: [5, 6, 7]
  • C. Trong hàm: [1, 2, 3]
    Ngoài hàm: [1, 2, 3]
  • D. Báo lỗi

Câu 30: Điều nào sau đây miêu tả đúng nhất về phạm vi của biến (variable scope) trong Python?

  • A. Là kiểu dữ liệu của biến.
  • B. Là giá trị hiện tại của biến.
  • C. Là thời gian biến được sử dụng trong chương trình.
  • D. Là vùng trong chương trình mà biến có thể được truy cập và sử dụng.

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ộ đề 09

Câu 1: Trong Python, biến được khai báo bên trong một hàm (ví dụ: `def my_function(): x = 10`) thuộc phạm vi 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ộ đề 09

Câu 2: Biến được khai báo ở ngoài tất cả các hàm và khối lệnh, có thể được truy cập từ bất kỳ đâu trong chương trình, thuộc phạm vi nào?

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ộ đề 09

Câu 3: Xét đoạn code sau:
```python
x = 10
def my_function():
y = 5
print(x)
my_function()
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 4: Xét đoạn code sau:
```python
a = 20
def modify_a():
a = 30
print("Trong hàm:", a)
modify_a()
print("Ngoài hàm:", a)
```
Kết quả khi chạy đoạn code 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ộ đề 09

Câu 5: Để 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 đó?

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ộ đề 09

Câu 6: Xét đoạn code sau:
```python
b = 50
def modify_b():
global b
b = 60
print("Trong hàm:", b)
modify_b()
print("Ngoài hàm:", b)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 7: Xét đoạn code sau:
```python
def create_local():
z = 100
create_local()
print(z)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 8: Tham số của một hàm (ví dụ: `def process(data):`) thuộc phạm vi nào?

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ộ đề 09

Câu 9: Xét đoạn code sau:
```python
def func(p):
p = p + 1
print("Trong hàm:", p)

val = 5
func(val)
print("Ngoài hàm:", val)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 10: Xét đoạn code sau:
```python
my_list = [1, 2, 3]

def modify_list(lst):
lst.append(4)
print("Trong hàm:", lst)

modify_list(my_list)
print("Ngoài hàm:", my_list)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 11: Tại sao biến cục bộ không thể truy cập trực tiếp từ bên ngoài hàm mà nó được định nghĩ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ộ đề 09

Câu 12: Biến toàn cục có thể được đọc (truy cập giá trị) từ bên trong một hàm mà không cần sử dụng từ khóa `global` khô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ộ đề 09

Câu 13: Xét đoạn code sau:
```python
def process(x, y):
x = x * 2
y = y + 1
print("Trong process:", x, y)

a = 10
b = 20
process(a, b)
print("Ngoài process:", a, b)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 14: Biến cục bộ tồn tại trong bộ nhớ trong khoảng thời gian 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ộ đề 09

Câu 15: Biến toàn cục tồn tại trong bộ nhớ trong khoảng thời gian 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ộ đề 09

Câu 16: Xét đoạn code sau:
```python
def greet(name):
message = "Hello, " + name
return message

my_greeting = greet("Alice")
print(message)
```
Kết quả khi chạy đoạn code này là gì?

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ộ đề 09

Câu 17: Việc sử dụng quá nhiều biến toàn cục trong chương trình lớn có thể gây ra vấn đề 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ộ đề 09

Câu 18: Xét đoạn code sau:
```python
def set_value():
value = 10

def print_value():
print(value)

set_value()
print_value()
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 19: Trong Python, phạm vi của biến được xác định dựa trên cấu trúc nào của code?

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ộ đề 09

Câu 20: Xét đoạn code sau:
```python
x = 1
def outer():
x = 2
def inner():
# print(x) # Nếu dòng này chạy, kết quả là gì?
pass
inner()
print(x)
outer()
print(x)
```
Nếu dòng `print(x)` bên trong hàm `inner()` được bỏ comment và chạy, nó sẽ in ra giá trị nào? (Giả sử các dòng `print(x)` khác vẫn chạy sau đó)

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ộ đề 09

Câu 21: Điều gì xảy ra nếu bạn khai báo một biến cục bộ trong hàm có cùng tên với một biến toàn cục?

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ộ đề 09

Câu 22: Xét đoạn code sau:
```python
count = 0

def increment():
count += 1
print("Trong hàm:", count)

increment()
print("Ngoài hàm:", count)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 23: Mục đích chính của việc phân chia phạm vi biến (scope) trong lập trình 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ộ đề 09

Câu 24: Xét đoạn code sau:
```python
def process_string(s):
s = s.upper()
print("Trong hàm:", s)

my_string = "hello"
process_string(my_string)
print("Ngoài hàm:", my_string)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 25: Biến nào dưới đây có phạm vi toàn cục trong đoạn code sau?
```python
x = 10
def func1():
y = 20
def func2():
z = 30
print(x, y, z)
func2()
func1()
```

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ộ đề 09

Câu 26: Điều nào sau đây là ĐÚNG về biến cục bộ?

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ộ đề 09

Câu 27: Xét đoạn code sau:
```python
def calculate(a, b):
result = a + b
return result

total = calculate(5, 7)
print(result)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 28: Khi một hàm cố gắng gán giá trị mới cho một biến toàn cục mà không sử dụng từ khóa `global`, điều gì thường xảy ra?

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ộ đề 09

Câu 29: Xét đoạn code sau:
```python
def update_list(data):
data = [5, 6, 7] # Gán lại biến data cục bộ
print("Trong hàm:", data)

my_data = [1, 2, 3]
update_list(my_data)
print("Ngoài hàm:", my_data)
```
Kết quả khi chạy đoạn code này 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ộ đề 09

Câu 30: Điều nào sau đây miêu tả đúng nhất về phạm vi của biến (variable scope) trong Python?

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 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

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

  • A. Toàn cục (global), có thể truy cập từ bất kỳ đâu trong chương trình.
  • B. Cục bộ (local), chỉ có thể truy cập và sử dụng bên trong chính hàm đó.
  • C. Chỉ có thể truy cập từ các hàm khác được gọi bên trong hàm đó.
  • D. Có phạm vi hoạt động cho đến khi toàn bộ chương trình kết thúc.

Câu 2: 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. Báo lỗi vì biến `x` không được định nghĩa bên trong `my_function`.
  • B. Báo lỗi vì biến `y` không được định nghĩa bên ngoài `my_function`.
  • C. In ra giá trị 15.
  • D. Không in ra gì cả.

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

  • A. In ra 20, sau đó in ra 20.
  • B. In ra 20, sau đó in ra một giá trị rác.
  • C. Không in ra gì cả.
  • D. In ra 20, sau đó báo lỗi vì biến `z` không được định nghĩa ở phạm vi toàn cục.

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

  • A. Biến được định nghĩa ở cấp độ cao nhất của script hoặc module, bên ngoài tất cả các hàm.
  • B. Biến được định nghĩa bên trong một hàm và có thể truy cập từ bất kỳ hàm nào khác.
  • C. Biến chỉ có thể được sử dụng trong các hàm toán học.
  • D. Biến có giá trị không thay đổi trong suốt quá trình chạy chương trình.

Câu 5: 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, thì trong phạm vi của hàm, tên biến đó sẽ tham chiếu đến biến nào?

  • A. Biến cục bộ.
  • B. Biến toàn cục.
  • C. Biến được định nghĩa gần nhất với vị trí sử dụng.
  • D. Chương trình sẽ báo lỗi vì trùng tên biến.

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

  • A. In ra 0.
  • B. In ra 1.
  • C. In ra giá trị rác.
  • D. Báo lỗi vì không thể sửa đổi biến toàn cục `count` bên trong hàm mà không khai báo `global`.

Câu 7: Từ khóa nào được sử dụng bên trong một hàm để chỉ ra rằng một biến là biến toàn cục và bạn muốn sửa đổi giá trị của nó?

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

Câu 8: Xem đoạn mã sau:
```python
message =

  • A. In ra
  • B. Báo lỗi vì không thể thay đổi chuỗi.
  • C. In ra
  • D. Không in ra gì cả.

Câu 9: Xem đoạn mã sau:
```python
def create_local():
local_var = 100
print(local_var)
create_local()
```
Biến `local_var` tồn tại trong bao lâu?

  • A. Chỉ trong khi hàm `create_local` đang thực thi.
  • B. Từ khi được tạo cho đến khi chương trình kết thúc.
  • C. Chỉ khi nó được in ra.
  • D. Nó không thực sự tồn tại vì chỉ là biến tạm thời.

Câu 10: Khi một biến được định nghĩa bên trong một hàm và bạn cố gắng truy cập nó từ bên ngoài hàm đó, điều gì thường xảy ra?

  • A. Chương trình sẽ sử dụng giá trị của biến đó như bình thường.
  • B. Chương trình sẽ tự động tạo một biến toàn cục mới cùng tên.
  • C. Chương trình sẽ sử dụng giá trị mặc định nào đó.
  • D. Chương trình sẽ báo lỗi `NameError` vì biến không tồn tại ở phạm vi đó.

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

  • A. Báo lỗi vì `value` không được định nghĩa trong hàm.
  • B. In ra 50.
  • C. In ra giá trị rác.
  • D. Không in ra gì cả.

Câu 12: Xem đoạn mã sau:
```python
numbers = [1, 2, 3]
def modify_list(lst):
lst.append(4)
modify_list(numbers)
print(numbers)
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. In ra `[1, 2, 3, 4]`.
  • B. In ra `[1, 2, 3]`.
  • C. Báo lỗi vì không sử dụng từ khóa `global`.
  • D. In ra `[4]`.

Câu 13: Giải thích tại sao trong đoạn mã ở Câu 12, danh sách `numbers` bên ngoài hàm lại bị thay đổi dù không dùng từ khóa `global`?

  • A. Vì danh sách là biến toàn cục nên luôn có thể sửa đổi trong hàm.
  • B. Vì tên biến bên trong hàm và bên ngoài hàm trùng nhau.
  • C. Vì danh sách là kiểu dữ liệu có thể thay đổi (mutable), và hàm nhận tham chiếu đến cùng một đối tượng danh sách.
  • D. Đây là lỗi của Python, đáng lẽ phải báo lỗi.

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

  • A. In ra 0.
  • B. In ra 10.
  • C. Báo lỗi vì biến `s` chỉ tồn tại trong hàm.
  • D. In ra giá trị rác.

Câu 15: Giải thích sự khác biệt về hành vi giữa đoạn mã ở Câu 12 (với danh sách) và Câu 14 (với số nguyên) liên quan đến phạm vi biến.

  • A. Câu 12 sử dụng `global` ngầm định còn Câu 14 thì không.
  • B. Câu 14 thiếu từ khóa `global`.
  • C. Danh sách có thể truy cập toàn cục còn số nguyên thì không.
  • D. Danh sách là kiểu có thể thay đổi (mutable) nên việc sửa đổi bên trong hàm ảnh hưởng đến đối tượng gốc; số nguyên là kiểu bất biến (immutable) nên phép gán `s = s + 10` chỉ tạo ra một đối tượng mới trong phạm vi cục bộ của hàm.

Câu 16: Khi bạn định nghĩa một biến bên trong một hàm mà không sử dụng từ khóa `global`, biến đó mặc định có phạm vi là gì?

  • A. Toàn cục.
  • B. Bất biến.
  • C. Cục bộ.
  • D. Phạm vi của module.

Câu 17: Xem đoạn mã sau:
```python
level = 1
def increase_level():
global level
level += 1
print(f

  • A. Level ban dau: 1
    Level trong ham: 1
    Level sau khi goi ham: 1
  • B. Level ban dau: 1
    Level trong ham: 2
    Level sau khi goi ham: 2
  • C. Level ban dau: 1
    Level trong ham: 1
    Level sau khi goi ham: 2
  • D. Báo lỗi.

Câu 18: Mục đích chính của việc sử dụng phạm vi (scope) cho biến trong lập trình là gì?

  • A. Để làm cho chương trình chạy nhanh hơn.
  • B. Để giảm số lượng biến cần khai báo.
  • C. Để đảm bảo tất cả các biến có thể được truy cập từ mọi nơi.
  • D. Để quản lý vòng đời và khả năng truy cập của biến, tránh xung đột tên và làm cho mã dễ hiểu, bảo trì hơn.

Câu 19: Xem đoạn mã sau:
```python
def outer_function():
outer_var =

  • A. Có, vì `inner_function` nằm trong phạm vi của `outer_function` (phạm vi bao đóng).
  • B. Không, vì `outer_var` là biến cục bộ của `outer_function`.
  • C. Chỉ khi `outer_var` được khai báo là `global`.
  • D. Chỉ khi `inner_function` trả về giá trị của `outer_var`.

Câu 20: Giả sử bạn có một biến toàn cục `data`. Bạn muốn tạo một hàm `process_data()` mà bên trong hàm này, bạn tạo một biến cục bộ mới cũng tên là `data` và thực hiện tính toán trên biến cục bộ đó, mà không ảnh hưởng đến biến toàn cục `data`. Bạn cần làm gì?

  • A. Khai báo `global data` bên trong hàm.
  • B. Chỉ cần định nghĩa `data = ...` bên trong hàm (sẽ tạo biến cục bộ mới).
  • C. Đặt tên biến cục bộ khác với biến toàn cục.
  • D. Truyền biến toàn cục `data` như một tham số cho hàm.

Câu 21: Xem đoạn mã sau:
```python
def func1():
a = 1
print(a)
def func2():
a = 2
print(a)
func1()
func2()
```
Kết quả khi chạy đoạn mã trên là gì?

  • A. Báo lỗi vì biến `a` bị trùng tên.
  • B. In ra 2, sau đó in ra 2.
  • C. In ra 1, sau đó in ra 2.
  • D. In ra 1, sau đó báo lỗi.

Câu 22: Giải thích tại sao biến `a` trong `func1` và biến `a` trong `func2` ở Câu 21 không gây ra lỗi trùng tên?

  • A. Vì chúng là các biến cục bộ, mỗi biến chỉ tồn tại trong phạm vi của hàm riêng của nó.
  • B. Vì Python cho phép trùng tên biến trong các hàm khác nhau.
  • C. Vì chúng được định nghĩa theo thứ tự khác nhau.
  • D. Đây là trường hợp đặc biệt của Python.

Câu 23: Xem đoạn mã sau:
```python
my_var =

  • A. In ra
  • B. In ra
  • C. In ra
  • D. Báo lỗi `UnboundLocalError` vì biến cục bộ `my_var` được sử dụng trước khi nó được gán giá trị trong hàm.

Câu 24: Trường hợp nào sau đây KHÔNG cần sử dụng từ khóa `global` bên trong hàm?

  • A. Bạn muốn gán một giá trị mới cho biến toàn cục.
  • B. Bạn muốn tăng giá trị của một biến toàn cục kiểu số.
  • C. Bạn chỉ muốn đọc giá trị của một biến toàn cục.
  • D. Bạn muốn thêm một phần tử vào cuối một danh sách toàn cục bằng phép gán `list = list + [item]`.

Câu 25: Xem đoạn mã sau:
```python
x = 1
def f():
x = 2
def g():
x = 3
print(x)
g()
print(x)
f()
print(x)
```
Kết quả khi chạy đoạn mã trên là gì?

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

Câu 26: Biến được truyền vào làm tham số cho một hàm (ví dụ: `def my_func(param): ...`) có phạm vi là gì?

  • A. Phạm vi của nơi hàm được gọi.
  • B. Phạm vi cục bộ của chính hàm đó.
  • C. Phạm vi toàn cục.
  • D. Phạm vi của module chứa hàm.

Câu 27: Xem đoạn mã sau:
```python
def calculate(a, b):
result = a * b
return result

# Có thể truy cập biến "result" ở đây không?
# print(result)
```
Việc bỏ chú thích dòng `print(result)` sẽ gây ra lỗi gì? Tại sao?

  • A. Lỗi `NameError`, vì `result` là biến cục bộ của hàm `calculate` và không tồn tại ở phạm vi toàn cục.
  • B. Lỗi `TypeError`, vì `result` có kiểu dữ liệu không xác định.
  • C. Lỗi `SyntaxError`, vì cú pháp gọi biến sai.
  • D. Không có lỗi, nó sẽ in ra giá trị cuối cùng của `result`.

Câu 28: Giả sử bạn có một biến toàn cục `settings = {"theme": "light"}`. Bạn muốn viết một hàm `set_dark_theme()` để thay đổi giá trị của khóa `"theme"` trong dictionary này thành `"dark"`. Cách đúng để làm điều đó mà không cần dùng `global` cho biến `settings` là gì?

  • A. ```python
    def set_dark_theme():
    settings = {"theme": "dark"}
    ```
  • B. ```python
    def set_dark_theme():
    global settings
    settings["theme"] = "dark"
    ```
  • C. ```python
    def set_dark_theme():
    settings["theme"] = "dark"
    ```
  • D. ```python
    def set_dark_theme(s):
    s["theme"] = "dark"
    set_dark_theme(settings)
    ```

Câu 29: Đ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. Chúng thường bị hủy và không còn tồn tại trong bộ nhớ.
  • 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. Giá trị của chúng được lưu lại cho lần gọi hàm tiếp theo.

Câu 30: Xem đoạn mã sau:
```python
my_list = [10]
def add_item(lst):
lst = lst + [20] # Phép gán mới

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

  • A. In ra `[10, 20]`.
  • B. In ra `[10]`.
  • C. Báo lỗi.
  • D. In ra `[20]`.

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 được khai báo bên trong một hàm (function) trong Python 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ộ đề 10

Câu 2: 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ì?

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: Xem đoạn mã sau:
```python
def another_function():
z = 20
print(z)
another_function()
print(z)
```
Kết quả khi chạy đoạn mã 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ộ đề 10

Câu 4: Biến toàn cục (global variable) trong Python 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: 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, thì trong phạm vi của hàm, tên biến đó sẽ tham chiếu đến biến 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ộ đề 10

Câu 6: Xem đoạn mã sau:
```python
count = 0
def increment():
count += 1
increment()
print(count)
```
Kết quả khi chạy đoạn mã trên 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ộ đề 10

Câu 7: Từ khóa nào được sử dụng bên trong một hàm để chỉ ra rằng một biến là biến toàn cục và bạn muốn sửa đổi giá trị của nó?

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: Xem đoạn mã sau:
```python
message = "Xin chào"
def change_message():
global message
message = "Tạm biệt"
change_message()
print(message)
```
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ộ đề 10

Câu 9: Xem đoạn mã sau:
```python
def create_local():
local_var = 100
print(local_var)
create_local()
```
Biến `local_var` tồn tại trong bao lâu?

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: Khi một biến được định nghĩa bên trong một hàm và bạn cố gắng truy cập nó từ bên ngoài hàm đó, điều gì thường xảy ra?

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: Xem đoạn mã sau:
```python
value = 50
def display_value():
print(value)
display_value()
```
Kết quả khi chạy đ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ộ đề 10

Câu 12: Xem đoạn mã sau:
```python
numbers = [1, 2, 3]
def modify_list(lst):
lst.append(4)
modify_list(numbers)
print(numbers)
```
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ộ đề 10

Câu 13: Giải thích tại sao trong đoạn mã ở Câu 12, danh sách `numbers` bên ngoài hàm lại bị thay đổi dù không 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ộ đề 10

Câu 14: Xem đoạn mã sau:
```python
score = 0
def update_score(s):
s = s + 10
update_score(score)
print(score)
```
Kết quả khi chạy đoạn mã trên 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ộ đề 10

Câu 15: Giải thích sự khác biệt về hành vi giữa đoạn mã ở Câu 12 (với danh sách) và Câu 14 (với số nguyên) liên quan đến phạm vi 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ộ đề 10

Câu 16: Khi bạn định nghĩa một biến bên trong một hàm mà không sử dụng từ khóa `global`, biến đó mặc định có phạm vi là gì?

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: Xem đoạn mã sau:
```python
level = 1
def increase_level():
global level
level += 1
print(f"Level trong ham: {level}")
print(f"Level ban dau: {level}")
increase_level()
print(f"Level sau khi goi ham: {level}")
```
Kết quả in ra màn hình sẽ 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ộ đề 10

Câu 18: Mục đích chính của việc sử dụng phạm vi (scope) cho biến trong lập trình 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ộ đề 10

Câu 19: Xem đoạn mã sau:
```python
def outer_function():
outer_var = "Tôi ở ngoài"
def inner_function():
# Ở đây có thể truy cập outer_var không?
pass # Thêm code kiểm tra ở đây
inner_function()
```
Trong `inner_function`, bạn có thể truy cập biến `outer_var` không? Tại sao?

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: Giả sử bạn có một biến toàn cục `data`. Bạn muốn tạo một hàm `process_data()` mà bên trong hàm này, bạn tạo một biến cục bộ mới cũng tên là `data` và thực hiện tính toán trên biến cục bộ đó, mà không ảnh hưởng đến biến toàn cục `data`. Bạn cần 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ộ đề 10

Câu 21: Xem đoạn mã sau:
```python
def func1():
a = 1
print(a)
def func2():
a = 2
print(a)
func1()
func2()
```
Kết quả khi chạy đoạn mã 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ộ đề 10

Câu 22: Giải thích tại sao biến `a` trong `func1` và biến `a` trong `func2` ở Câu 21 không gây ra lỗi trùng tê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ộ đề 10

Câu 23: Xem đoạn mã sau:
```python
my_var = "Toàn cục"
def print_var():
print(my_var)
my_var = "Cục bộ"
print_var()
```
Kết quả khi chạy đ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ộ đề 10

Câu 24: Trường hợp nào sau đây KHÔNG cần sử dụng từ khóa `global` bên trong 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ộ đề 10

Câu 25: Xem đoạn mã sau:
```python
x = 1
def f():
x = 2
def g():
x = 3
print(x)
g()
print(x)
f()
print(x)
```
Kết quả khi chạy đoạn mã trên 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ộ đề 10

Câu 26: Biến được truyền vào làm tham số cho một hàm (ví dụ: `def my_func(param): ...`) có phạm vi 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ộ đề 10

Câu 27: Xem đoạn mã sau:
```python
def calculate(a, b):
result = a * b
return result

# Có thể truy cập biến 'result' ở đây không?
# print(result)
```
Việc bỏ chú thích dòng `print(result)` sẽ gây ra lỗi gì? Tại sao?

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: Giả sử bạn có một biến toàn cục `settings = {'theme': 'light'}`. Bạn muốn viết một hàm `set_dark_theme()` để thay đổi giá trị của khóa `'theme'` trong dictionary này thành `'dark'`. Cách đúng để làm điều đó mà không cần dùng `global` cho biến `settings` 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ộ đề 10

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

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: Xem đoạn mã sau:
```python
my_list = [10]
def add_item(lst):
lst = lst + [20] # Phép gán mới

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

Viết một bình luận