WorksheetsFunction (hàm)
Total questions: 98
Worksheet time: 49mins
Trong Python, phát biểu nào mô tả đúng nhất về hàm?
Một biến đặc biệt lưu trữ nhiều kiểu dữ liệu khác nhau
Khối lệnh có tên thực hiện một công việc hoàn chỉnh
Một tệp riêng biệt chứa toàn bộ chương trình
Một cấu trúc lặp dùng để lặp vô số lần
Mục đích chính của việc dùng hàm trong lập trình là gì?
Tăng kích thước chương trình và độ phức tạp
Tái sử dụng mã và tách nhiệm vụ thành phần
Thay thế hoàn toàn tất cả biến toàn cục
Giảm số câu lệnh nhập và xuất
Chọn nhận định đúng về thời điểm định nghĩa và gọi hàm trong Python:
Hàm có thể gọi trước khi định nghĩa nhờ cơ chế hoãn biên dịch
Hàm mặc định được định nghĩa bởi trình thông dịch
Hàm chỉ cần định nghĩa sau khi chương trình kết thúc
Hàm phải được định nghĩa trước khi được gọi để tránh lỗi
Hàm thư viện và hàm do người dùng tự định nghĩa khác nhau chủ yếu ở điểm nào?
Khả năng trả về giá trị luôn giống nhau
Số lượng tham số đầu vào luôn cố định
Được phép dùng trong ngôn ngữ khác nhau
Nguồn gốc xây dựng sẵn hay do lập trình viên tạo
Trong ví dụ Python: def Tong(a, b): return a + b, lời gọi nào minh họa đúng cách tái sử dụng hàm với tham số khác nhau?
Tong(3) tự động điền tham số còn lại bằng 0
Tong() không tham số vẫn trả về kết quả hợp lệ
Tong(a, b) chỉ được gọi đúng một lần duy nhất
Tong(3, 4) và Tong(-1, 8) cho hai kết quả khác
Trong đoạn mã: print('Chương trình tính tổng hai số'); a, b = eval(input('Nhập a, b: ')); print('Tổng là:', a + b). Vai trò của print trong bối cảnh này là gì?
Biến toàn cục lưu chuỗi thông báo cho người dùng
Toán tử nối chuỗi để ghép hai xâu ký tự
Thư viện ngoài cần cài đặt trước khi sử dụng
Hàm thư viện dùng để xuất thông tin ra màn hình
Vì sao hàm còn được gọi là chương trình con (subroutine)?
Vì không thể có tên và không có đầu ra
Vì là một phần mã độc lập thực hiện nhiệm vụ cụ thể
Vì luôn nằm trong một tệp riêng biệt độc lập
Vì chỉ chạy đúng một lần trong suốt chương trình
Bạn được giao viết chương trình nhiều nơi cần tính tổng hai số. Cách tiếp cận nào thể hiện tư duy tốt hơn về tái sử dụng và bảo trì?
Tránh dùng hàm vì làm chương trình khó theo dõi
Sao chép ba dòng cộng a + b vào mọi vị trí cần
Định nghĩa một hàm Tong(a, b) và gọi ở các vị trí cần
Viết một chương trình riêng chỉ để cộng rồi chạy
Trong Python, từ khóa nào dùng để khai báo một hàm mới?
lambda
declare
func
def
Thành phần nào sau đây mô tả ngắn gọn chức năng của hàm và được đặt ngay dưới dòng khai báo?
Return cuối hàm
Tên hàm in hoa
Comment một dòng
Docstring ba nháy
Dòng khai báo hàm hợp lệ nào dưới đây có hai tham số đầu vào?
def calc a, b:
def calc(a, b):
def calc(): a, b
def calc(a; b):
Điều nào đúng về câu lệnh return trong hàm Python?
Kết thúc hàm và trả về giá trị
Bắt buộc xuất hiện nhiều lần
Không thể trả về None
Chỉ dùng để in ra màn hình
Với đoạn mẫu: def function_name(parameters):, ký tự nào kết thúc dòng khai báo và bắt đầu thân hàm?
=>
{
;
:
Trong ví dụ GiaiPTBac1(a, b), khi a == 0 và b == 0, hàm trả về chuỗi nào?
'Không xác định!'
'Có một nghiệm!'
'Vô nghiệm!'
'Vô số nghiệm!'
Chọn phát biểu đúng về tham số của hàm Python.
Là danh sách giá trị đầu vào tùy chọn
Luôn phải có ít nhất ba tham số
Không thể có giá trị mặc định
Phải cùng kiểu dữ liệu
Trong ví dụ, phần nào được coi là thân hàm?
Các câu lệnh if/elif/else thụt dòng
Chuỗi tên hàm GiaiPTBac1
Chú thích # khai báo hàm
Dấu hai chấm sau khai báo
Trong Python, khi một hàm CÓ trả về kết quả, cách gọi đúng để lưu kết quả là gì?
print = function_name([tham_số])
return function_name([tham_số])
function_name([tham_số])
result = function_name([tham_số])
Đoạn mã def Hello(name): print("Hello", name) được gọi như thế nào để in ra Hello Tèo?
Hello("Tèo")
Hello()
print(Hello, "Tèo")
Hello(name)
Giả sử hàm GiaiPTBac1(a, b) trả về nghiệm của ax + b = 0 hoặc thông báo phù hợp. Kết quả nào là hợp lý với lời gọi GiaiPTBac1(5, 8)?
Vô số nghiệm
x = 1.6
x = -1.6
Không có đầu ra
Khi gọi một hàm KHÔNG trả về kết quả, cách sử dụng đúng là gì?
Thêm return ở cuối lời gọi
Gọi trực tiếp không gán biến
Ép kiểu kết quả sang str
Gán vào biến rồi dùng tiếp
Trong ngữ cảnh thực thi hàm, LIFO viết tắt của cụm nào sau đây?
Long Inside Function Only
Least Input Function Order
Last In First Out
Loop In Function Output
Cho đoạn mã: def double(n): return 2*n ; x = double(3) ; print(x). Kết quả in ra màn hình là gì?
9
2
3
6
Trong sơ đồ thời gian thực thi, khi chương trình gọi double(3) rồi print(x), thao tác nào hoàn tất trước theo LIFO?
double hoàn tất trước
print hoàn tất trước
cả hai hoàn tất đồng thời
print bắt đầu trước và kết thúc trước
Xếp thứ tự các hàm được trả về trong chuỗi gọi: a() gọi b(), b() gọi c(); sau đó a() gọi d(). Thứ tự trả về đúng là gì?
d → c → b → a → a
b → c → a → d → a
a → b → c → d → a
c → b → a → d → a
Quan sát mã và sơ đồ ngăn xếp: khi a() đang chạy và gọi b(), rồi b() gọi c(). Tại thời điểm c() đang thực thi, khung ngăn xếp chứa gì từ đáy đến đỉnh?
a(), b(), c()
c(), b(), a()
b(), a(), c()
a(), c(), b()
Phát biểu nào mô tả đúng cơ chế LIFO của ngăn xếp gọi hàm?
Hàm gọi trước luôn trả về trước
Tất cả hàm trả về đồng thời
Hàm có nhiều lệnh sẽ trả về trước
Hàm gọi sau sẽ trả về trước
Nếu thay c() bằng một hàm e() được gọi trong b(), nhưng e() không gọi thêm hàm nào, điều gì đúng về thứ tự trả về?
b() trả về trước rồi e() rồi a()
e() và b() trả về đồng thời
e() trả về trước rồi b() rồi a()
a() trả về trước rồi b() rồi e()
Trong Python, biến cục bộ là gì?
Biến có thể truy cập từ mọi mô-đun bất kỳ
Biến được lưu trong tệp cấu hình hệ thống
Biến tồn tại trong toàn bộ chương trình
Biến chỉ tồn tại trong thân hàm đang chạy
Phát biểu nào mô tả đúng biến toàn cục?
Biến được khai báo ngoài mọi hàm
Biến chỉ dùng trong một khối if
Biến tự hủy sau khi hàm kết thúc
Biến chỉ có trong phạm vi lớp
Đoạn mã: n = 3; def increase(): n = 2; n = n + 1; increase(); print(n). Kết quả in ra là gì?
3 vì n trong hàm là biến cục bộ
Lỗi vì không thể gán trong hàm
2 vì n trong hàm ghi đè biến toàn cục
4 vì hàm tăng n toàn cục lên một
Trong hàm muốn sửa đổi biến toàn cục n đã khai báo bên ngoài, cần làm gì?
Khai báo global n trước khi gán
Không thể sửa đổi n trong mọi trường hợp
Truyền n vào hàm làm tham số
Dùng từ khóa nonlocal n mọi lúc
Vì sao đoạn mã sau gây lỗi UnboundLocalError? s = "python.org"; def myFunction(): s = s + " is great!"; myFunction()
Python coi s bên trong hàm là biến cục bộ chưa gán
Chuỗi không thể cộng nối trong Python
Biến toàn cục không thể đọc trong hàm
Hàm không được phép in giá trị chuỗi
Từ khóa global có tác dụng gì trong hàm?
Chỉ áp dụng cho kiểu số nguyên
Cho phép tham chiếu và gán lên biến toàn cục
Tạo một biến cục bộ mới cùng tên
Ngăn không cho đọc biến bên ngoài
Chọn kết quả đúng khi chạy: s = "python.org"; def f(): global s; s = s + " is great!"; f(); print(s)
Gây UnboundLocalError
In: python.org
In: python.org is great!
In: is great!
Khi nào nên dùng global thay vì tạo tham số hàm?
Khi muốn tránh mọi phụ thuộc giữa các hàm
Khi muốn tăng tính tái sử dụng tuyệt đối
Khi cần cập nhật trạng thái toàn cục dùng chung
Khi muốn viết mã thuần hàm không có hiệu ứng
Trong ví dụ nêu về n = 3 và hàm increase() không có global, phát biểu nào đúng?
Trình thông dịch tự động suy ra global cho n
Không có biến n nào được tạo trong hàm
Gán n trong hàm thay đổi n toàn cục trực tiếp
Gán n trong hàm tạo biến cục bộ che khuất n ngoài
Cách nào KHÔNG gây UnboundLocalError khi cần dùng s bên ngoài và nối thêm chuỗi trong hàm?
Khai báo global s rồi gán s = s + "..."
Truyền s vào hàm, trả về chuỗi mới để gán
Đọc s mà không gán lại trong hàm
Gán s = s + "..." mà không global hay trả về
Trong Python, từ khóa nonlocal dùng để làm gì trong hàm lồng nhau?
Tham chiếu biến trong phạm vi cha
Xóa biến cục bộ của hàm con
Tạo biến toàn cục mới trong module
Đánh dấu biến chỉ đọc trong hàm
Chọn phát biểu đúng về biến cục bộ khi không dùng nonlocal trong hàm lồng nhau.
Hàm ngoài tự động nhận biến của hàm con
Hàm con có thể ghi đè biến toàn cục trực tiếp
Hàm con không truy cập được biến cục bộ của hàm ngoài
Hàm con luôn kế thừa mọi biến toàn cục
Điền vào chỗ trống: nonlocal cho phép ______ cho biến ở phạm vi cha của hàm lồng nhau.
gán giá trị mới
ép kiểu ngầm định
tạo bản sao tạm
đặt breakpoints
Trong đoạn mã: def outer(): x="local"; def inner(): nonlocal x; x="nonlocal"; inner(); print(x). Kết quả in của outer là gì?
x không xác định
None
local
nonlocal
Vì sao cần khai báo nonlocal x trong inner()?
Để inner() sửa biến x của outer()
Để ẩn biến x khỏi outer()
Để tạo biến x mới toàn cục
Để tăng tốc độ thực thi vòng lặp
Khi thay đổi giá trị một biến đã khai báo nonlocal trong hàm con, điều gì xảy ra?
Giá trị biến ở hàm cha cũng thay đổi
Sinh ngoại lệ NameError ngay lập tức
Biến trở thành toàn cục cho toàn chương trình
Chỉ thay đổi trong hàm con rồi mất
Trong Python, tham số mặc định là gì trong định nghĩa hàm?
Một kiểu dữ liệu đặc biệt dành cho hàm
Tên thay thế cho biến cục bộ trong hàm
Một đối tượng bất biến dùng để tối ưu bộ nhớ
Giá trị gán sẵn cho tham số khi không truyền
Với hàm: def faculty(name="Information Technology"): print("Welcome to", name). Kết quả của faculty() là gì?
Welcome to Computer Science
Welcome to name parameter value
Welcome to Information Technology
Welcome to None value parameter
Gọi faculty("Economics") với định nghĩa faculty(name="Information Technology") sẽ in gì?
Welcome to Economics
Welcome to Information Technology
Welcome to Faculty Function Name
Welcome to Default Parameter
Ký hiệu "/" trong khai báo hàm Python, như def my_function(x, /):, có ý nghĩa gì?
X bị ràng buộc là đối tượng bất biến
X chỉ truyền theo vị trí, không bằng tên
X chỉ truyền theo từ khóa, không theo vị trí
X là tham số mặc định có giá trị rỗng
Trong định nghĩa: def my_function(*, x):, cách gọi hợp lệ là gì?
my_function(3)
my_function(3, x=3)
my_function(x=3)
my_function(x)
Đoạn mã: def my_function(x, /): print(x). Lệnh nào dưới đây sẽ gây lỗi theo quy ước tham số?
my_function(x=3)
my_function(3)
my_function(1+2)
my_function(0)
Bạn muốn một hàm vừa có tham số chỉ-vị-trí và chỉ-keyword. Khai báo nào phù hợp nhất?
def f(a, b, c, /, *)
def f(a, /, b, *, c):
def f(/, a, *, b, c)
def f(*, a, /, b, c)
Trong Python, ký hiệu nào được dùng trong định nghĩa hàm để gom các đối số vị trí không xác định vào một cấu trúc dạng tuple?
Một dấu * trước tham số
Hai dấu ** trước tham số
Dấu & trước tham số
Không dùng ký hiệu đặc biệt
Khi sử dụng **kwargs trong hàm, dữ liệu bên trong tham số đó sẽ có kiểu cấu trúc nào để truy xuất theo key?
Từ điển (dictionary) có cặp key=value
Danh sách (list) có khóa
Tập hợp (set) không có thứ tự
Bộ (tuple) có chỉ số âm
Đoạn mã: def my_function(*kids): print(kids[2]) my_function("Emil","Tobias","Linus"). Giá trị in ra là gì?
IndexError
Tobias
Emil
Linus
Chọn nhận định ĐÚNG về *args và **kwargs.
*args gom đối số keyword thành dict
**kwargs gom đối số vị trí thành list
*args gom đối số vị trí thành tuple
**kwargs gom đối số keyword thành set
Giả sử có hàm def show_info(**student): for k,v in student.items(): print(k,v). Lời gọi nào dưới đây phù hợp nhất để in tên và tuổi?
show_info({"name":"An","age":21})
show_info(["name","An"],["age",21])
show_info(name="An", age=21)
show_info("An",21)
Hàm def show_students(*names): for name in names: print(name) được gọi bằng cách nào để in ra ba tên?
show_students(name="An", age=20, major="IT")
show_students({"An","Bình","Chi"})
show_students("An","Bình","Chi")
show_students(["An","Bình","Chi"])
Bạn cần viết một hàm nhận số lượng thuộc tính sinh viên linh hoạt và in theo dạng key: value. Cách thiết kế nào phù hợp nhất?
Dùng **kwargs và duyệt student.items()
Chỉ nhận một dict làm tham số
Dùng list các tuple (key,value)
Dùng *args và duyệt theo chỉ số
Trong Python, hàm lambda còn được gọi là gì?
Hàm lớp đối tượng đặc biệt
Hàm mô-đun nhiều tệp
Hàm ẩn danh không có tên
Hàm gắn nhãn tạm thời
Cú pháp tổng quát của một lambda trong Python là gì?
lambda: parameterlist, expression
lambda parameterlist: expression
expression: lambda parameterlist
def lambda(parameterlist) -> expression
Đặc điểm nào sau đây đúng về phần thân của hàm lambda?
Chứa khối lệnh và vòng lặp
Chỉ chứa đúng một biểu thức
Phải trả về None mặc định
Có thể gồm nhiều biểu thức phức tạp
Phát biểu nào mô tả đúng về tham số của lambda?
Nhận số lượng tham số bất kỳ
Bắt buộc phải có ba tham số
Chỉ nhận tối đa một tham số
Chỉ nhận tham số kiểu số
Mục đích sử dụng điển hình của lambda trong Python là gì?
Tổ chức dự án với nhiều mô-đun lớn
Viết hàm ngắn gọn cho thao tác đơn giản
Triển khai thuật toán nhiều lớp phức tạp
Quản lý trạng thái hệ điều hành
Dòng mã nào định nghĩa đúng một lambda tính bình phương số x?
square(x) = lambda: x ** 2
square = lambda: x ** 2
square = lambda x: x ** 2
def square x = lambda ** 2
Trong Python, một hàm bậc cao là gì?
Hàm chỉ dùng trong lớp đối tượng
Hàm luôn có hai tham số bắt buộc
Hàm nhận hoặc trả về một hàm khác
Hàm chỉ trả về số nguyên
Cho định nghĩa: def handle(f, x): return f(x). Biểu thức nào dùng lambda kiểm tra x chẵn khi gọi handle với x=7?
handle(lambda x, y: x % 2 == 0, 7)
handle(lambda x: x % 2 == 0, 7)
handle(lambda: x % 2 == 0, 7)
handle(lambda y: y % 2 == 1, 7)
Trong ví dụ: def handle(f, x, y): return f(x, y). Lời gọi nào tính tổng hai số 7 và 9 bằng lambda?
handle(lambda a, b, c: a + b, 7, 9)
handle(lambda: x + y, 7, 9)
handle(lambda x, y: x + y, 7, 9)
handle(lambda x: x + y, 7, 9)
Phát biểu nào đúng về giới hạn của lambda trong Python theo tài liệu?
Lambda không cho phép biểu thức phức tạp
Lambda hỗ trợ nhiều câu lệnh phức tạp
Lambda cho phép vòng lặp và gán biến
Lambda bắt buộc có chú thích kiểu
Cho các hàm: def SoChan(x): return x % 2 == 0; def SoLe(x): return x % 2 == 1; def handle(f, x): return f(x). Giá trị của handle(SoLe, 6) là gì?
True vì 6 là số chẵn
False vì 6 là số chẵn
False vì 6 là số lẻ
True vì 6 là số lẻ
Xét: def SoNguyenTo(x): dem=0; for i in range(1, x+1): if x % i is 0: dem+=1; return dem==2. Với handle(SoNguyenTo, 5) thì in ra gì?
True vì 5 có hai ước
False vì 5 có một ước
True vì 5 là số chẵn
False vì 5 có ba ước
Khái niệm nào mô tả cách một hàm tự gọi lại chính nó để giải quyết bài toán?
Lập lịch tác vụ
Tối ưu vòng lặp
Đệ quy trong hàm
Đa luồng đồng thời
Trong chương trình đệ quy, thành phần bắt buộc để tránh gọi vô hạn là gì?
Kiểu dữ liệu động
Điều kiện dừng đúng
Bộ nhớ heap lớn
Thư viện chuẩn mạnh
Trong Python, khi độ sâu đệ quy vượt giới hạn mặc định sẽ dẫn tới lỗi nào?
RecursionError xảy ra
TypeError xảy ra
OverflowError xảy ra
IndexError xảy ra
Công thức đệ quy chuẩn cho giai thừa n! với cơ sở là n = 0 là gì?
n!=2 nếu n=2, n!=n*(n−2)!
n!=0 nếu n=0, n!=n+(n−1)!
n!=1 nếu n=0, n!=n*(n−1)!
n!=1 nếu n=1, n!=n+(n−1)
Đâu là hai giá trị cơ sở thường dùng của dãy Fibonacci?
F2=0, F3=1
F1=1, F2=1
F1=0, F2=2
F0=2, F1=2
Xét hàm Python: def factorial(n): if n==0: return 1 else: return n*factorial(n-1). Giá trị trả về của factorial(3) là bao nhiêu?
8 bằng 4*1*2
3 bằng 2*1*0
6 bằng 3*2*1
9 bằng 3*3*1
Trong biểu đồ call stack của tính 6!, khung ngăn xếp giảm dần khi nào?
Khi cấp phát biến cục bộ
Khi in đầu chương trình
Khi tiếp tục gọi sâu hơn
Khi quay lui sau cơ sở
Điểm khác biệt chính giữa giải bài toán bằng vòng lặp và đệ quy là gì?
Đệ quy dùng gọi hàm lặp lại
Đệ quy không cần bộ nhớ
Vòng lặp không cần điều kiện
Vòng lặp luôn nhanh hơn
Với định nghĩa Fibonacci đệ quy F_n = F_{n−1} + F_{n−2}, nếu F_1=1,F_2=1 thì F_5 bằng bao nhiêu?
5 tính từ 1,1,2,3,5
6 tính từ 0,1,1,2,6
8 tính từ 2,3,5,8,13
3 tính từ 1,2,3,3,3
Khi phân tích 6! bằng đệ quy, biểu thức đầy đủ trước khi rút gọn thành 720 là gì?
6*5*4*3*2*1
6*6*5*4*3*2
6*5*3*2*1*0
6*5*4*3*3*1
Giá trị trả về của sqrt(25) trong Python là gì?
2.5
4.0
5.0
6.0
Hàm nào chuyển đổi độ sang radian trong mô-đun math?
degrees(x)
radians(x)
to_radian(x)
deg2rad(x)
Kết quả của log10(100) là bao nhiêu?
2.0
1.0
0.3010
10.0
Giá trị của exp(2) gần nhất với lựa chọn nào sau đây?
2.71828
6.38906
8.00000
7.38906
fabs(-2) trả về giá trị nào?
-2.0
-2
2
2.0
Giả sử x = 30. Giá trị trả về của radians(x) gần nhất với lựa chọn nào?
0.52360
0.50000
0.52359
0.53000
Trong Python, câu lệnh nào đúng để tính 5 mũ 2 bằng mô-đun math?
pow(5, 2)
5**2.0
power(5,2)
math.pow2(5)
Cho a = 3, b = 11, c = b/a. Giá trị round(c, 2) là gì?
3.70
3.66
3.67
3.68
Với c = 11/3, kết quả của round(c, 0) là gì?
4
3.0
3
4.0
Trong Python, để tạo một đối tượng ngày–giờ đại diện cho thời điểm hiện tại, câu lệnh nào là đúng?
x = date.datetime.todaytime()
x = datetime.now.current()
x = time.datetime.nowtime()
x = datetime.datetime.now()
Để tạo một đối tượng datetime cho ngày 17/05/2020 (không đặt thời gian), đoạn mã nào đúng chuẩn?
x = datetime.datetime('2020-05-17')
x = datetime.date(17, 5, 2020)
x = datetime.datetime(2020, 5, 17)
x = datetime.time(2020, 5, 17)
Phương thức nào của đối tượng datetime dùng để chuyển đối tượng thành chuỗi với định dạng tùy biến?
strftime()
tostring()
formatdate()
asctime()
Cho x = datetime.datetime(2018, 6, 1). Kết quả của x.strftime('%B') sẽ hiển thị điều gì?
Tên đầy đủ của tháng
Số thứ tự của tháng
Ba chữ cái viết tắt tháng
Tên ngày trong tuần
Để hiển thị năm dưới dạng bốn chữ số (ví dụ 2020) bằng strftime, bạn dùng mã định dạng nào?
%C
%G
%y
%Y
Bạn cần in ngày theo mẫu DD/MM/YYYY. Tổ hợp định dạng nào dùng với strftime là phù hợp nhất?
'%B %d, %y'
'%Y.%d.%m'
'%m-%d-%y'
'%d/%m/%Y'
Giả sử x là một datetime. Lựa chọn nào cho thấy cách lấy tên thứ trong tuần dạng viết tắt (Mon, Tue, ...)?
x.strftime('%a')
x.strftime('%A')
x.strftime('%w')
x.strftime('%u')
Vì sao cần import datetime trước khi dùng datetime.datetime(...) trong Python?
Vì datetime không phải kiểu dữ liệu tích hợp
Vì datetime chỉ chạy trong trình dịch C
Vì datetime yêu cầu quyền quản trị hệ thống
Vì datetime thay thế hoàn toàn thư viện time
Bạn muốn hiển thị giờ:phút:giây dạng 24h như 13:05:09. Tổ hợp mã nào là đúng?
'%h:%m:%s'
'%H:%M:%S'
'%T:%M:%S'
'%I:%M:%S'
Cho x = datetime.datetime(2018, 6, 1). Dòng nào in ra số của tháng và tên đầy đủ tháng cùng lúc, cách nhau bởi dấu cách (ví dụ '6 June')?
print(x.strftime('%m %b'))
print(x.strftime('%M %B'))
print(x.strftime('%-m %B'))
print(x.strftime('%B %d'))
