Bài tập củng cố Tin học 10 kết nối: bài 28 Phạm vi của biến

Bài tập củng cố môn Tin học 10 kết nối tri thức: Bài 28 Phạm vi của biến. Phần bài tập gồm 4 mức độ: Nhận biết, Thông hiểu, Vận dụng và Vận dụng cao bám sát với chương trình sách giáo khoa. Thông qua bài tập này, học sinh có thể ôn luyện kiến thức đã học từ cơ bản đến nâng cao.

Nội dung chi tiết

BÀI 28: PHẠM VI CỦA BIẾN (15 CÂU)

I. NHẬN BIẾT (3 CÂU)

Câu 1: Phạm vi khai báo biến là gì? Có mấy loại phạm vi chính?

Trả lời:

Phạm vi khai báo biến đề cập đến vùng trong chương trình mà biến đó có thể được truy cập và sử dụng.

Có hai loại phạm vi chính: phạm vi toàn cục và phạm vi cục bộ.

Câu 2: Trong Python, phạm vi khai báo biến đến đâu?

Trả lời:

Trong Python tất cả các biến khai báo bên trong hàm đều có tính địa phương (cục bộ), không có hiệu lực ở bên ngoài hàm.

Câu 3: Lưu ý khi sử dụng biến khai báo ngoài hàm là gì?

Trả lời:

Biến đã khai báo bên ngoài sẽ không có tác dụng bên trong hàm như một biến. Nếu muốn có tác dụng thì cần khai báo lại biến này trong hàm với từ khóa global.

II. THÔNG HIỂU (5 CÂU)

Câu 1: Sẽ thế nào nếu gọi một biến ở bên ngoài hàm có chứa biến đó?

Trả lời:

Nếu như gọi một biến ở bên ngoài hàm chứa biến đó thì chương trình sẽ báo lỗi.

Câu 2: Có thể khai báo một biến bên trong hàm trùng tên với biến đã khai báo trước đó bên ngoài hàm không?

Trả lời:

Có thể khai báo một biến bên trong hàm trùng tên với biến đã khai báo trước đó bên ngoài hàm được vì các biến khai báo bên trong hàm có tính địa phương, không có hiệu lực bên ngoài hàm.

Câu 3: Làm thế nào để tránh nhầm lẫn giữa biến toàn cục và biến cục bộ?

Trả lời:

Có thể sử dụng một số cách sau:

- Sử dụng tên biến khác nhau.

- Sử dụng comment.

- Lưu tên biến với những tên gợi ý cho biến cục bộ hoặc toàn cục.

Câu 4: Làm thế nào để truy cập biến toàn cục bên trong một hàm.

Trả lời:

Để truy cập biến toàn cục bên trong một hàm ta có thể sử dụng các cách sau:

- Sử dụng từ khóa global.

- Sử dụng biến nonlocal (Biến nonlocal được sử dụng để truy cập và thay đổi biến trong phạm vi bao quanh)

Câu 5: Tại sao việc sử dụng biến cục bộ lại được khuyến khích hơn biến toàn cục.

Trả lời:

Khuyến khích sử dụng biến cục bộ hơn vì:

- Dễ đọc và dễ quản lý.

- Tính riêng tư và bảo mật cao.

- Tính linh hoạt cho phép bạn sử dụng cùng tên biến trong các hàm.

- Hiệu suất được tối ưu hóa tốt hơn.

III. VẬN DỤNG (6 CÂU)

Câu 1: Giả sử hàm f(x,y) được định nghĩa như sau:

I. NHẬN BIẾT (3 CÂU)

Kết quả nào được in ra khi thực hiện các lệnh sau đây:

n = 10

f(1,2)

Trả lời:

a = 2 × (1 + 2) = 6

6 + 10 = 16

Kết quả in ra: 16

Câu 2: Giả sử có các lệnh sau:

I. NHẬN BIẾT (3 CÂU)

Giá trị của a, b bằng bao nhiêu sau khi thực hiện lệnh sau?

a) f(1, 2) b) f(10, 20)

Trả lời:

a) a, b = 1, 2

a = 1 + 2 = 3

b = 2 * 3 = 6

b) a, b = 10, 20

a = 10 + 20 = 30

b = 20 * 30 = 600

Câu 3: Viết hàm với đầu vào danh sách D chứa các số và số nguyên x. Hàm trả lại một danh sách kết quả S từ danh sách A bằng cách chỉ giữ lại các phần tử lớn hơn hoặc bằng x.

Trả lời:

def select(D, x):

S = []

for k in range (len(D))

if D[k] >= x

S.append(D[k])

return S

Câu 4: Viết chương chình cho người dùng nhập n số tự nhiên từ bàn phím, hai số cách nhau bởi dấu cách. Tính và in ra tổng của các số này.

Trả lời:

def tinhTong(A):

t = 0

for i in range(0, len(A)):

t = t + int(A[i])

return t

s = input("Nhập dãy các số")

A = s.split(" ")

print(tinhTong(A))

Câu 5: Viết hàm với đầu vào, đầu ra như sau:

- Đầu vào là danh sách sList, các phần tử là xâu kí tự.

- Đầu ra là danh sách cList, các phần tử là kí tự đầu tiên của các xâu kí tự tương ứng trong dnah sách sList.

Trả lời:

def first_char(sList):

cList = []

for x in sList

cList.append(x[0])

return cList

Câu 6: Viết hàm Tach_day() với đầu vào là danh sách A đầu ra là hai danh sách B, C được mô tả như sau:

- Danh sách B thu được từ A bằng cách lấy ra các phần tử có chỉ số chẵn.

- Danh sách C thu được thừ A bằng cách lấy ra các phần tử có chỉ số lẻ.

Trả lời:

def Tach_day(A):

B = []

C = []

for i in range(len(A)):

if i % 2 == 0:

B.append(i)

else:

C.append(i)

return B,C

IV. VẬN DỤNG CAO (2 CÂU)

Câu 1: Viết hàm có hai tham số đầu vào là m, n. Đầu ra trả lại hai giá trị là:

- ƯCLN của m, n.

- BCNN của m, n.

Trả lời:

def UCBC(m,n):

a = m

b = n

r = a % b

while r != 0:

a = b

b = r

r = a % b

ucln = b

bcnn = m*n/ucln

return ucln, bcnn

Câu 2: Viết chương trình nhập ba số tự nhiên từ bàn phím day, month, year, các số cách nhau bởi dấu cách. Các số này biểu diễn giá trị của ngày, tháng, năm nào đó. Chương trình cần kiểm tra và in ra thông báo số liệu đã nhập vào đó có hợp lệ hay không.

Trả lời:

def testDate(dd, month, yy):

if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month== 10 or month == 12:

max1 = 31

elif month == 4 or month == 6 or month == 9 or month == 11:

max1 = 30

elif yy % 4 == 0 and yy % 100 != 0 or yy % 400 == 0:

max1 = 29

else:

max1 = 28

if month < 1 or month > 12:

return False

elif dd < 1 or dd > max1:

return False

elif yy < 1 or yy > 100000000:

return False

return True

s = input("Nhập thời gian: ")

list = s.split(" ")

if testDate(int(list[0]),int(list[1]),int(list[2])):

print("Thời gian nhập hợp lệ!")

else:

print("Thời gian nhập không hợp lệ!")