wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

GT lập trình

Total questions: 137

Worksheet time: 1hrs 9mins

Name
Class
Date
1.

Đâu là cú pháp tối giản đúng để định nghĩa và gọi một hàm in ra "Hi" đúng một lần?

a)

def hi() => print("Hi"); hi

b)

def hi(): print("Hi"); hi()

c)

def hi: print("Hi"); call hi

d)

function hi(): print("Hi"); hi()

2.

Trong Python, khái niệm nào mô tả một khối mã có tên, có thể nhận tham số và có thể được gọi nhiều lần để thực hiện một tác vụ?

a)

Vòng lặp ẩn danh, nhận biến toàn cục

b)

Biểu thức điều kiện có tên, chạy một lần

c)

Hàm được định nghĩa, nhận tham số

d)

Gói thư viện tự động, không tham số

3.

Khi một biến được khai báo bên ngoài mọi hàm và được tham chiếu bên trong hàm (không gán lại), nó được coi là gì?

a)

Biến cục bộ theo phạm vi hàm

b)

Biến toàn cục có thể đọc

c)

Tham số mặc định ẩn

d)

Hằng số kiểu đối tượng

4.

Hàm với tham số mặc định hoạt động thế nào khi người gọi không truyền giá trị cho tham số đó?

a)

Python ném lỗi đối số thiếu

b)

Tham số nhận giá trị None tự động

c)

Giá trị mặc định được sử dụng

d)

Hàm bỏ qua tham số hoàn toàn

5.

Chọn ví dụ đệ quy đúng tính giai thừa n với điều kiện dừng n<=1.

a)

def f(n): return n*f(n) if n>1 else 1

b)

def f(n): return f(n-1) if n<=1 else 1

c)

def f(n): return n*f(n-1) if n>1 else 1

d)

def f(n): while n>1: return n

6.

Bạn cần làm gì để dùng hàm sqrt và random() trong chương trình?

a)

khai báo global sqrt, random

b)

cài đặt lại trình thông dịch Python

c)

from core import sqrt, random

d)

import math, random rồi gọi

7.

Trong Python, khái niệm nào mô tả một khối mã được đặt tên, có thể tái sử dụng và được gọi để thực hiện một nhiệm vụ cụ thể?

a)

Hàm là khối mã đặt tên, tái sử dụng

b)

Biến là vùng nhớ lưu dữ liệu tạm

c)

Lớp là khuôn mẫu tạo ra đối tượng

d)

Module là tệp chứa toàn bộ chương trình

8.

Thành phần nào KHÔNG thuộc cấu trúc tổng quát của một hàm Python cơ bản?

a)

Từ khóa def và tên hàm

b)

Danh sách tham số trong ngoặc

c)

Hàm main bắt buộc có

d)

Khối lệnh thụt đầu dòng

9.

Cách gọi một hàm trong Python thường bao gồm điều nào sau đây?

a)

Gán hàm vào biến rồi chạy tự động

b)

Ghi lại toàn bộ định nghĩa hàm

c)

Nhập lại module chuẩn math

d)

Tên hàm theo sau là dấu ngoặc

10.

Phạm vi biến (variable scope) mô tả điều gì trong ngữ cảnh hàm Python?

a)

Kích thước bộ nhớ của mọi biến

b)

Thứ tự tham số khi gọi hàm

c)

Kiểu dữ liệu mà biến đang giữ

d)

Vùng chương trình nơi biến có hiệu lực

11.

Tham số mặc định trong Python có ý nghĩa gì?

a)

Đối số chỉ chấp nhận kiểu int

b)

Tên tham số phải viết hoa hết

c)

Giá trị bắt buộc phải truyền vào

d)

Giá trị dùng khi đối số bị bỏ qua

12.

Biểu thức lambda trong Python thường được dùng để làm gì?

a)

Tạo hàm vô danh ngắn gọn

b)

Tạo lớp kế thừa phức tạp

c)

Quản lý gói và môi trường

d)

Tối ưu hóa trình biên dịch

13.

Hàm đệ quy là gì trong lập trình Python?

a)

Hàm tự gọi lại chính nó

b)

Hàm chỉ chạy đúng một lần

c)

Hàm luôn chạy song song

d)

Hàm chỉ xử lý chuỗi

14.

Câu nào mô tả ĐÚNG về một số hàm thông dụng (built-in functions) trong Python?

a)

Mọi hàm đều cần import trước

b)

Các hàm như len, type có sẵn

c)

Chỉ chạy trên hệ điều hành Linux

d)

Chỉ dùng được trong module math

15.

Module trong Python được hiểu là gì?

a)

Tệp chứa mã Python tái sử dụng

b)

Thư mục chứa toàn bộ dự án

c)

Giao diện đồ họa người dùng

d)

Trình thông dịch ngôn ngữ Python

16.

Bạn cần viết một hàm có tham số mặc định b=10 nhưng cho phép ghi đè khi cần. Cú pháp nào phù hợp nhất?

a)

def f(a, b==10): ...

b)

def f(a; b=10) ...

c)

def f(a, b:10): ...

d)

def f(a, b=10): ...

17.

Bạn muốn lọc các số chẵn trong danh sách nums bằng lambda và filter. Chọn lựa chọn đúng.

a)

nums.filter(lambda x: x%2==0)

b)

list(filter(x => x%2==0, nums))

c)

list(filter(lambda x: x%2==0, nums))

d)

filter(lambda x: x%2==0)(nums)

18.

Một hàm đệ quy tính giai thừa n cần điều kiện cơ sở nào để tránh lặp vô hạn?

a)

Khi n tăng dần vô hạn

b)

Khi n==0 trả về 1

c)

Khi n<0 trả về n

d)

Khi n==2 trả về 2

19.

Phát biểu nào mô tả đúng nhất về "hàm" trong Python?

a)

Khối lệnh có tên thực hiện công việc hoàn chỉnh

b)

Một chú thích giải thích ý nghĩa đoạn mã

c)

Một biến lưu tạm giá trị trong chương trình

d)

Một file chứa toàn bộ mã của dự án

20.

Vì sao nói hàm giúp "tái sử dụng" mã nguồn?

a)

Có thể gọi nhiều lần với tham số khác nhau

b)

Tự sinh giao diện người dùng mặc định

c)

Tự động tối ưu mọi vòng lặp trong mã

d)

Luôn chạy nhanh hơn câu lệnh thông thường

21.

Thuật ngữ nào thường dùng để gọi hàm như một chương trình con?

a)

Thread trong lập trình song song

b)

Macro trong tiền xử lý mã nguồn

c)

Coroutine trong xử lý bất đồng bộ

d)

Subroutine trong thiết kế phần mềm

22.

Chọn phát biểu đúng về hai loại hàm thường gặp.

a)

Hàm đệ quy và hàm vòng lặp chuẩn

b)

Hàm thư viện và hàm do người dùng tự định nghĩa

c)

Hàm hệ điều hành và hàm giao diện đồ họa

d)

Hàm tĩnh và hàm ẩn trong lớp đối tượng

23.

Điều kiện cần trước khi gọi một hàm trong Python là gì?

a)

Hàm phải được định nghĩa trước khi gọi

b)

Hàm phải được biên dịch thành tệp .exe

c)

Hàm phải có ít nhất ba tham số

d)

Hàm phải trả về giá trị kiểu số nguyên

24.

Đoạn mã Python nào dưới đây minh họa một hàm tự định nghĩa tính tổng hai số?

a)

def Tong(a, b): return a + b

b)

sum = a + b; print(sum)

c)

print('Tổng là', a + b)

d)

a, b = eval(input()); a + b

25.

Trong ví dụ sử dụng hàm thư viện để nhập hai số và in tổng, lời gọi hàm nào thuộc nhóm hàm thư viện?

a)

eval và def được dùng cùng nhau

b)

Tong và return trong phần định nghĩa

c)

return và eval ở cuối chương

d)

print và input trong cùng chương trình

26.

Nếu gọi một hàm trước khi định nghĩa trong cùng file Python, điều gì có khả năng xảy ra nhất?

a)

Kết quả không đổi nhưng tốc độ chậm đi

b)

Hàm vẫn chạy bình thường nhờ cơ chế hoisting

c)

Chương trình tự biên dịch lại để tạo thứ tự đúng

d)

Trình thông dịch báo lỗi do tên chưa được định nghĩa

27.

Trong Python, từ khóa nào dùng để khai báo và định nghĩa một hàm?

a)

lambda

b)

declare

c)

func

d)

def

28.

Thành phần nào thường đứng ngay sau tên hàm trong khai báo hàm Python?

a)

Khối lệnh không thụt dòng

b)

Câu lệnh return ngay lập tức

c)

Chuỗi docstring mở đầu

d)

Danh sách tham số trong ngoặc

29.

Phát biểu nào đúng về docstring trong hàm Python?

a)

Chuỗi dùng mô tả chức năng, đặt đầu thân

b)

Biến toàn cục bắt buộc cho mọi hàm

c)

Câu lệnh kết thúc hàm vĩnh viễn

d)

Cấu trúc rẽ nhánh thay cho if

30.

Điền vào chỗ trống: Khối lệnh thân hàm trong Python phải ____ so với dòng khai báo.

a)

được thụt vào

b)

không có khoảng trắng

c)

ghi hoa toàn bộ

d)

đặt trước def

31.

Trong ví dụ GiaiPTBac1(a, b), điều kiện nào dẫn tới chuỗi 'Vô số nghiệm!' được trả về?

a)

a != 0 và b != 0

b)

a == 0 và b == 0

c)

a == 0 và b != 0

d)

a != 0 và b == 0

32.

Mục đích của câu lệnh return trong hàm Python là gì?

a)

Ghi chú cho trình biên dịch

b)

Tạo tham số mặc định mới

c)

Tự động in ra màn hình

d)

Trả về giá trị và kết thúc hàm

33.

Xét khai báo: def GiaiPTBac1(a, b): ... Trong kiểu chú giải hiển thị (a: Any, b: Any) -> (str | None), điều gì là hợp lý nhất?

a)

Hàm có thể trả về chuỗi hoặc None

b)

Hàm luôn trả về số thực

c)

Hàm không nhận bất kỳ tham số nào

d)

Hàm trả về danh sách các nghiệm

34.

Đâu là thứ tự hợp lý của các thành phần trong định nghĩa hàm Python hoàn chỉnh?

a)

def, tên, thân, tham số, return, docstring

b)

Tên, def, tham số, return, thân, docstring

c)

def, tham số, tên, thân, docstring, return

d)

def, tên, tham số, dấu hai chấm, docstring, thân, return

35.

Trong Python, khi một hàm CÓ giá trị trả về, cách gọi đúng để lưu kết quả là gì?

a)

function_name = result([tham_số]) để gán ngược

b)

function_name([tham_số]) rồi bỏ qua kết quả

c)

print = function_name([tham_số]) để in kết quả

d)

result = function_name([tham_số]) để nhận kết quả

36.

Cho định nghĩa: def Hello(name): print("Hello", name). Lời gọi nào dưới đây là đúng và không gây lỗi?

a)

Hello(name) khi chưa định nghĩa biến name

b)

Hello("Tèo") truyền một đối số phù hợp

c)

Hello(name="Tèo", age=18) truyền dư tham số

d)

Hello() không truyền tham số nào

37.

Giả sử hàm GiaiPTBac1(a, b) trả về nghiệm phương trình ax + b = 0. Kết quả của result = GiaiPTBac1(5, 8) và print(result) sẽ là gì?

a)

x = 1.6 vì 5x + 8 = 0

b)

x = -1.6 vì 5x + 8 = 0

c)

Vô nghiệm vì a khác 0 và b khác 0

d)

Vô số nghiệm vì a và b đều khác 0

38.

Khi hàm KHÔNG có giá trị trả về (chỉ print bên trong), cách sử dụng phù hợp là gì?

a)

Gán result = function_name() để dùng sau

b)

Gọi trực tiếp function_name([tham_số]) để thực thi

c)

Thêm return 0 khi gọi để nhận kết quả

d)

So sánh function_name() > 0 để kiểm tra

39.

Trong ngữ cảnh thực thi hàm, LIFO có nghĩa là gì?

a)

Vào trước ra sau, theo danh sách liên kết

b)

Vào ngẫu nhiên ra ngẫu nhiên, theo bảng băm

c)

Vào sau ra trước, theo ngăn xếp

d)

Vào trước ra trước, theo hàng đợi FIFO

40.

Khi chương trình chạy đoạn mã: def double(n): return 2*n; x = double(3); print(x) thì giá trị được in ra là gì?

a)

Lỗi vì hàm không có return

b)

9 vì nhân 3 lần

c)

6 vì hàm trả về 2*3

d)

3 vì chưa nhân đôi

41.

Trong quá trình gọi hàm, cấu trúc dữ liệu nào mô tả đúng hành vi vào sau ra trước của các khung ngăn xếp?

a)

Stack với thao tác push-pop

b)

Queue với thao tác enqueue-dequeue

c)

Tree với thao tác insert-remove

d)

Heap với thao tác allocate-free

42.

Xét chuỗi lời gọi: a() gọi b(); b() gọi c(); sau đó d() được gọi từ a(). Thứ tự các hàm kết thúc (return) là gì?

a)

c, b, a rồi d sau cùng

b)

a, b, c, d theo thứ tự gọi

c)

b, c, d, a theo FIFO

d)

c, b, d, a theo LIFO

43.

Trong sơ đồ thời gian, tại sao print(x) chỉ thực thi sau khi double(3) kết thúc?

a)

Vì Python thực thi song song nên chờ double

b)

Vì print có độ ưu tiên thấp hơn toán tử nhân

c)

Vì dòng sau chỉ chạy khi hàm trước đã trả về

d)

Vì biến x chỉ là hằng số nên bị khóa

44.

Điền khuyết: Khi b() gọi c(), khung ngăn xếp của ____ sẽ nằm trên khung của ____ cho đến khi ____ trả về.

a)

b, c, b

b)

d, a, d

c)

c, b, c

d)

a, d, a

45.

Nếu c() mất nhiều thời gian trước khi return, hệ quả trực tiếp lên b() và a() là gì?

a)

Chỉ print trong a() bị chặn, các câu lệnh khác chạy

b)

a() bị chặn, b() vẫn chạy tiếp bình thường

c)

b() và a() bị chặn cho đến khi c() trả về

d)

b() và a() tiếp tục chạy đồng thời với c()

46.

Trong ví dụ double, đâu là mô tả đúng về luồng dữ liệu và điều khiển?

a)

Giá trị 3 được in rồi mới truyền vào double

b)

Hàm print gọi double bên trong theo LIFO

c)

Giá trị 3 truyền vào double, trả 6, rồi in 6

d)

Giá trị 6 tính trước, sau đó mới gọi double

47.

Trong Python, “biến cục bộ” là gì?

a)

Biến chỉ đọc, không thể gán mới

b)

Biến tự động xóa khi chương trình kết thúc

c)

Biến khai báo trong hàm, chỉ dùng trong hàm

d)

Biến khai báo ngoài hàm, dùng mọi nơi

48.

Phát biểu đúng về biến toàn cục trong Python:

a)

Có thể truy cập ở trong và ngoài hàm

b)

Chỉ dùng trong hàm đã định nghĩa

c)

Chỉ dùng được trong tệp hiện tại

d)

Chỉ tồn tại khi chương trình tạm dừng

49.

Khi gán n = n + 1 bên trong hàm, với n đã được khai báo ngoài hàm, điều gì xảy ra nếu không dùng global?

a)

Tạo biến n mới ở phạm vi toàn cục

b)

n toàn cục được tăng bình thường

c)

UnboundLocalError do n bị coi là cục bộ

d)

Chương trình tự động ép kiểu n thành str

50.

Đoạn mã: n = 3; def increase(): n = 2; n = n + 1; increase(); print(n). Kết quả in ra là gì?

a)

4 vì n được tăng lên một

b)

2 vì n bị thay đổi trong hàm

c)

Lỗi vì print không thấy n toàn cục

d)

3 vì n trong hàm là cục bộ

51.

Trong hàm, muốn chỉnh sửa biến toàn cục s, bạn cần làm gì?

a)

Truyền s qua tham số rồi gán

b)

Khai báo global s trước khi gán

c)

Đổi tên s thành S cho khác phạm vi

d)

Không thể, luôn phải tạo biến mới

52.

Hệ quả của dòng global s trong hàm là gì?

a)

Các phép gán s tác động tới biến toàn cục

b)

s trở thành hằng số trong toàn chương trình

c)

Hàm không thể đọc s ở ngoài nữa

d)

Mọi biến khác đều thành toàn cục

53.

Vì sao đoạn mã sau gây lỗi? s = 'python.org'; def myFunction(): s = s + ' is great!'; myFunction()

a)

s bên trong bị coi là cục bộ chưa gán

b)

Hàm phải nhận tham số s thì mới dùng

c)

Biến s ngoài hàm chưa được khởi tạo

d)

Chuỗi không thể cộng trong Python

54.

Tên lỗi thường gặp khi gán vào biến đã có tên toàn cục bên trong hàm mà không global là gì?

a)

ValueError

b)

NameError

c)

TypeError

d)

UnboundLocalError

55.

Chọn phát biểu đúng về phạm vi biến:

a)

Biến toàn cục tự hủy khi thoát hàm

b)

Biến cục bộ luôn ghi đè biến toàn cục

c)

Biến toàn cục không thể đọc trong hàm

d)

Biến cục bộ chỉ tồn tại trong thời gian hàm chạy

56.

Khi thêm global s vào ví dụ, chuỗi in ra bên ngoài hàm là gì nếu s = 'python.org' ban đầu?

a)

' is great!python.org'

b)

'python.org'

c)

'python.org is great!'

d)

Lỗi UnboundLocalError

57.

Để tránh dùng global nhưng vẫn cập nhật giá trị, lựa chọn nào phù hợp hơn?

a)

Tạo biến toàn cục khác tên tạm thời

b)

In trực tiếp giá trị trong hàm

c)

Dùng biến cục bộ cùng tên rồi bỏ qua

d)

Trả về giá trị mới và gán bên ngoài

58.

Trong bối cảnh phạm vi biến, phát biểu nào là sai?

a)

Mọi tên xuất hiện trong hàm đều là toàn cục

b)

Đọc biến toàn cục trong hàm không cần global

c)

Gán vào tên trong hàm mặc định tạo biến cục bộ

d)

global cho phép tham chiếu biến ngoài phạm vi

59.

Trong Python, từ khóa nonlocal dùng để làm gì trong hàm lồng nhau?

a)

Tạo biến toàn cục mới trong module

b)

Ràng buộc biến chỉ đọc trong hàm

c)

Ẩn một biến cục bộ khỏi hàm con

d)

Tham chiếu biến trong phạm vi cha

60.

Phát biểu nào đúng về biến được khai báo trong một hàm?

a)

Nó là hằng số không thể thay đổi

b)

Nó có phạm vi là biến cục bộ của hàm

c)

Nó tự động trở thành biến toàn cục hệ thống

d)

Nó luôn truy cập được từ mọi hàm khác

61.

Khi một hàm được định nghĩa bên trong một hàm khác, điều gì xảy ra với biến cục bộ của hàm ngoài?

a)

Tự động được sao chép vào hàm trong

b)

Biến bị xóa khi định nghĩa hàm trong

c)

Biến trở thành toàn cục cho cả chương trình

d)

Không thể truy cập trực tiếp từ hàm trong

62.

Chọn câu mô tả đúng về tác dụng của nonlocal với gán giá trị.

a)

Cho phép gán giá trị mới cho biến ở phạm vi cha

b)

Chỉ cho phép đọc biến ở phạm vi toàn cục

c)

Tạo bản sao mới của biến trong hàm con

d)

Vô hiệu hóa biến cục bộ trong toàn bộ file

63.

Xét mã: def outer(): x="local"; def inner(): nonlocal x; x="nonlocal"; inner(); print(x). Kết quả in của outer là gì?

a)

local được in ra ngoài

b)

nonlocal được in ra ngoài

c)

Lỗi vì x không tồn tại

d)

None được in ra ngoài

64.

Trong ví dụ outer/inner, nếu bỏ dòng nonlocal x trong inner và vẫn gán x="nonlocal", điều gì xảy ra?

a)

inner tạo x mới cục bộ, outer vẫn in local

b)

x trở thành biến toàn cục ngoài module

c)

outer nhận giá trị nonlocal và in nonlocal

d)

Chương trình ném lỗi UnboundLocalError ngay lập tức

65.

Khi nào nên dùng nonlocal thay vì global trong hàm lồng nhau?

a)

Khi cần sửa biến ở phạm vi cha, không phải toàn cục

b)

Khi muốn chia sẻ biến giữa tất cả các module

c)

Khi muốn biến thành hằng số bất biến

d)

Khi muốn xóa biến khỏi bộ nhớ ngay lập tức

66.

Điền vào chỗ trống: nonlocal cho phép một hàm con ______ biến được định nghĩa trong hàm bao quanh.

a)

tham chiếu và cập nhật

b)

nhập khẩu và export

c)

đóng gói và serialize

d)

biên dịch và tối ưu

67.

Trong Python, tham số mặc định của hàm là gì?

a)

Giá trị được gán cho tham số khi khai báo hàm

b)

Giá trị được truyền khi gọi hàm bắt buộc

c)

Kiểu dữ liệu của đối số khi biên dịch

d)

Tên khác của biến cục bộ trong hàm

68.

Với định nghĩa def faculty(name = "Information Technology"): faculty() sẽ in gì?

a)

Welcome to Information Technology

b)

Welcome to Faculty Name

c)

Welcome to Default Parameter

d)

Welcome to Computer Science

69.

Gọi faculty("Economics") với định nghĩa ở trên sẽ cho kết quả nào?

a)

Welcome to Engineering

b)

Welcome to Information Technology

c)

Welcome to Data Science

d)

Welcome to Economics

70.

Ký hiệu "/" trong chữ ký hàm Python có ý nghĩa gì?

a)

Các tham số sau nó chỉ truyền theo vị trí

b)

Các tham số trước nó chỉ truyền theo vị trí

c)

Tất cả tham số chỉ truyền bằng keyword

d)

Hàm không cho phép tham số mặc định

71.

Cho định nghĩa def my_function(x, /): my_function(x=3) sẽ thế nào?

a)

Gây lỗi vì x là tham số chỉ vị trí

b)

Chạy bình thường và in 3

c)

Bị bỏ qua đối số và in None

d)

Tự đổi sang đối số vị trí

72.

Ký hiệu "*" trong chữ ký hàm def my_function(*, x): biểu thị điều gì?

a)

x là tham số biến độ dài

b)

x phải truyền theo vị trí

c)

x là tham số mặc định ẩn

d)

x phải truyền bằng keyword

73.

Với def my_function(*, x): cách gọi hợp lệ là gì?

a)

my_function(*[3])

b)

my_function(x)

c)

my_function(3)

d)

my_function(x=3)

74.

Chọn nhận định đúng về tham số mặc định và ràng buộc /, * trong Python.

a)

Có thể vừa có tham số mặc định vừa ràng buộc vị trí hoặc keyword

b)

Không thể dùng mặc định khi có / hoặc *

c)

/ và * chỉ có tác dụng khi có nhiều hơn ba tham số

d)

/ bắt buộc tất cả dùng keyword, * bắt buộc dùng vị trí

75.

Trong Python, khi định nghĩa hàm và thêm một dấu * trước tên tham số, tham số đó sẽ gom các đối số theo dạng gì?

a)

Dictionary khóa-giá trị

b)

Tập hợp không thứ tự

c)

Tuple chỉ đọc được

d)

Danh sách có thể thay đổi

76.

Mục đích chính của **kwargs trong định nghĩa hàm là gì?

a)

Gom cặp key=value vào dict

b)

Ràng buộc số lượng đối số

c)

Ép kiểu đối số về str

d)

Gom đối số vị trí vào list

77.

Cho hàm def f(*a): print(len(a)). Gọi f(1,2,3) sẽ in ra gì?

a)

(1, 2, 3)

b)

3

c)

2

d)

1

78.

Chọn câu đúng về sự khác nhau giữa *args và **kwargs:

a)

*args nhận đối số keyword, **kwargs nhận vị trí

b)

*args là tuple, **kwargs là dictionary

c)

*args và **kwargs đều là list

d)

*args là list, **kwargs là set

79.

Đoạn mã: def show_students(*names): for name in names: print(name) Lợi ích chính của thiết kế này là gì?

a)

Giới hạn đúng ba tên truyền vào

b)

Tự động sắp xếp tên theo abc

c)

Nhận số tên tùy ý qua vị trí

d)

Buộc mỗi tên phải có key riêng

80.

Với def show_info(**student): for k,v in student.items(): print(k,v) Lời gọi nào là phù hợp nhất?

a)

show_info('An',21,'IT')

b)

show_info(name='An', age=21)

c)

show_info(['name','age'])

d)

show_info({'name':'An'})

81.

Khi gọi my_function(fname="Tobias", lname="Refsnes"), trong thân hàm def my_function(**kid): biểu thức kid["lname"] trả về gì?

a)

'kid'

b)

'Refsnes'

c)

'Tobias'

d)

'lname'

82.

Cho def g(a,b,*c,**d): pass. Lời gọi nào hợp lệ và phản ánh đúng cách gom đối số?

a)

g(1,b=2,3,4,5)

b)

g(1,2,x=5,y=6,3,4)

c)

g(a=1,b=2,3,4,x=5)

d)

g(1,2,3,4,x=5,y=6)

83.

Trong Python, biểu thức lambda dùng để tạo gì?

a)

Gói thư viện ngoài luồng

b)

Hàm ẩn danh không tên

c)

Biến toàn cục cố định

d)

Lớp đối tượng có tên

84.

Cú pháp tổng quát của lambda phù hợp nhất là gì?

a)

new lambda(tham_so) -> kieu

b)

lambda: khoi_lenh_nhieu_dong

c)

def ten(): bieu_thuc_duy_nhat

d)

lambda tham_so: bieu_thuc

85.

Phát biểu nào đúng về số lượng tham số của hàm lambda?

a)

Chỉ đúng một tham số bắt buộc

b)

Có thể có bất kỳ số tham số

c)

Luôn không có tham số nào

d)

Phải trùng với tên biến toàn cục

86.

Hàm lambda có thể chứa bao nhiêu biểu thức được đánh giá để trả về?

a)

Chỉ một biểu thức duy nhất

b)

Hai biểu thức độc lập

c)

Nhiều câu lệnh phức tạp

d)

Một khối try–except

87.

Chọn nhận định đúng về phạm vi sử dụng của lambda trong mã Python.

a)

Chỉ dùng trong file chính

b)

Có thể dùng ở bất cứ nơi nào cần

c)

Chỉ dùng cùng từ khóa def

d)

Chỉ dùng trong thân lớp riêng

88.

Dòng mã nào tạo hàm bình phương bằng lambda đúng cách?

a)

square(x) = lambda x: x + 2

b)

square = lambda: x * x * x

c)

square = def x: x ** 2

d)

square = lambda x: x ** 2

89.

Vì sao lambda thường không phù hợp cho logic phức tạp?

a)

Vì luôn chậm hơn hàm def

b)

Vì không được dùng trong hàm

c)

Vì không thể nhận tham số

d)

Vì chỉ cho phép một biểu thức

90.

Kết quả của đoạn sau là gì? add = lambda a, b: a + b; print(add(3, 4))

a)

In ra 7 trên màn hình

b)

In ra 12 trên màn hình

c)

In ra (3, 4) trên màn hình

d)

Không in gì vì lỗi

91.

Trong Python, hàm bậc cao là gì?

a)

Hàm trả về một số thực

b)

Hàm nhận hoặc trả về một hàm khác

c)

Hàm chỉ có một tham số

d)

Hàm không có giá trị trả về

92.

Kết quả của lệnh ret1 = handle(lambda x : x % 2 == 0, 7) là gì nếu handle(f, x) trả về f(x)?

a)

False vì 7 không chia hết cho 2

b)

0 vì phép chia lấy dư bằng 0

c)

7 vì f trả về chính x

d)

True vì 7 chia hết cho 2

93.

Trong biểu thức lambda x, y: x + y được truyền vào handle(f, x, y) và handle trả về f(x, y), thì sum bằng bao nhiêu với x=7, y=9?

a)

63 vì nhân hai số

b)

7 vì chỉ lấy x

c)

9 vì chỉ lấy y

d)

16 vì cộng hai số

94.

Mục đích của việc truyền lambda vào hàm handle(f, x) là gì?

a)

Giảm số biến toàn cục cần dùng

b)

Tạo nhanh một hàm tạm thời theo yêu cầu

c)

Thay thế hoàn toàn định nghĩa hàm chuẩn

d)

Tăng tốc độ thực thi mọi trường hợp

95.

Vì sao đôi khi cần định nghĩa một hàm độc lập thay vì viết lambda phức tạp?

a)

Lambda không thể nhận tham số

b)

Lambda không hỗ trợ biểu thức phức tạp nhiều dòng

c)

Lambda không thể trả về giá trị

d)

Lambda luôn chậm hơn hàm thường

96.

Giả sử def SoChan(x): return x % 2 == 0. Khi gọi ret2 = handle(lambda x: SoChan(x), 6), giá trị ret2 là gì?

a)

False vì 6 là số lẻ

b)

6 vì trả về đối số x

c)

None vì lambda không trả về

d)

True vì 6 là số chẵn

97.

Với def SoLe(x): return x % 2 == 1, kết quả của handle(SoLe, 6) là gì?

a)

True vì 6 lẻ

b)

0 vì phần dư bằng 0

c)

6 vì hàm trả về x

d)

False vì 6 chẵn

98.

Cho hàm SoNguyenTo(x) đếm số ước của x và trả về dem == 2. Giá trị của handle(SoNguyenTo, 5) và handle(lambda x: SoNguyenTo(x), 9) lần lượt là gì?

a)

True và True vì cả hai đều nguyên tố

b)

False và True vì 5 không nguyên tố, 9 nguyên tố

c)

True và False vì 5 nguyên tố, 9 không nguyên tố

d)

False và False vì cả hai không nguyên tố

99.

Khái niệm nào mô tả việc một hàm tự gọi lại chính nó trong quá trình thực thi?

a)

Nạp chồng toán tử

b)

Gọi hàm song song

c)

Lặp vô hạn tối ưu

d)

Đệ quy trong chương trình

100.

Trong một hàm đệ quy đúng, thành phần nào bắt buộc để tránh gọi hàm liên tục?

a)

Điểm dừng rõ ràng

b)

Ba tham số mặc định

c)

Biến toàn cục chung

d)

Kiểu trả về phức tạp

101.

Cặp thành phần cơ bản của thiết kế hàm đệ quy là gì?

a)

Hàm main và import

b)

Vòng lặp và bộ đếm

c)

Tham chiếu và con trỏ

d)

Điểm dừng và bước đệ quy

102.

Phát biểu đúng về ưu tiên lựa chọn phương pháp giải khi có thể dùng cả lặp và đệ quy:

a)

Chỉ dùng lặp cho mảng

b)

Ưu tiên đệ quy trước

c)

Ưu tiên lặp trước, đệ quy sau

d)

Luôn dùng đệ quy mọi lúc

103.

Công thức đệ quy chuẩn cho giai thừa n! là gì?

a)

n!=1 nếu n=0, n*(n−1)! nếu n>0

b)

n!=2 nếu n=1, n*(n−2)! nếu n>1

c)

n!=n nếu n=0, n*(n−1) nếu n>0

d)

n!=0 nếu n=0, n+(n−1)! nếu n>0

104.

Trong ví dụ Python, giá trị trả về của factorial(0) là bao nhiêu?

a)

1 theo điểm dừng

b)

0 theo khởi tạo

c)

-1 theo báo lỗi

d)

None theo mặc định

105.

Dãy Fibonacci trong tài liệu được nêu với hai phần tử đầu và quy luật nào?

a)

F1=1, F2=1, Fn=Fn−1+Fn−2

b)

F1=0, F2=1, Fn=Fn−1−Fn−2

c)

F1=2, F2=2, Fn=2*Fn−1

d)

F1=1, F2=2, Fn=Fn−2*2

106.

Khi độ sâu đệ quy vượt quá giới hạn mặc định của Python, lỗi nào sẽ xảy ra?

a)

RecursionError được ném ra

b)

TypeError về tham số

c)

IndexError ngoài phạm vi

d)

TimeoutError quá thời gian

107.

Trong quá trình tính 6! bằng đệ quy, lời gọi cuối cùng trước khi quay lui là gì?

a)

factorial(3) trả 6

b)

factorial(0) trả 1

c)

factorial(2) trả 2

d)

factorial(1) trả 0

108.

Quan sát sơ đồ ngăn xếp khi tính factorial(6), điều gì xảy ra với số khung ngăn xếp khi đi sâu hơn?

a)

Giảm đều theo thời gian

b)

Tăng dần rồi giảm khi quay lui

c)

Biến thiên ngẫu nhiên

d)

Không đổi ở mọi thời điểm

109.

Phát biểu nào mô tả đúng nhược điểm thường gặp của đệ quy nếu xử lý không khéo?

a)

Tự động song song hoá

b)

Tối ưu hoá mọi trường hợp

c)

Giảm kích thước mã nguồn

d)

Dẫn đến tràn bộ đệm ngăn xếp

110.

Vì sao biết (n−1)! giúp tính được n! trong phương pháp đệ quy?

a)

Vì n!=(n−1)!+n theo quy tắc

b)

Vì n!=n*(n−1)! theo quy luật

c)

Vì n!=n−(n−1)! theo biến đổi

d)

Vì n!=n/(n−1)! theo định nghĩa

111.

Trong Python, nhóm nào sau đây KHÔNG thuộc danh sách các hàm thông dụng nêu ra: toán học, round, datetime, random, exit, eval?

a)

Hàm đánh giá biểu thức

b)

Hàm tạo số ngẫu nhiên

c)

Hàm toán học cơ bản

d)

Hàm nhập xuất tệp nâng cao

112.

Hàm round trong Python chủ yếu được dùng để làm gì?

a)

Làm tròn giá trị số

b)

Đánh giá chuỗi biểu thức

c)

Tạo số ngẫu nhiên

d)

Kết thúc chương trình

113.

Bộ thư viện hoặc hàm nào liên quan đến xử lý ngày giờ trong Python?

a)

eval xử lý ngày giờ

b)

datetime dùng cho ngày giờ

c)

random dùng cho ngày giờ

d)

exit quản lý ngày giờ

114.

Hàm hoặc mô-đun nào thường dùng để sinh số giả ngẫu nhiên phục vụ mô phỏng?

a)

round cho số ngẫu nhiên

b)

exit cho số ngẫu nhiên

c)

random cho số ngẫu nhiên

d)

eval cho số ngẫu nhiên

115.

Mục đích chính của exit trong chương trình Python là gì?

a)

Tạo ngày và giờ

b)

Thoát khỏi chương trình

c)

Làm tròn số thực

d)

Đánh giá biểu thức

116.

Hàm eval thường được dùng để:

a)

Đánh giá chuỗi như biểu thức

b)

Làm tròn số đến chữ số

c)

Sinh số nguyên ngẫu nhiên

d)

Kết thúc tiến trình chạy

117.

Trong Python, hàm nào trong module math trả về căn bậc hai của 25?

a)

log10(25)

b)

pow(25, 0.5)

c)

sqrt(25)

d)

exp(25)

118.

Kết quả của lệnh pow(5, 2) trong Python là gì?

a)

25.0

b)

10.0

c)

5.0

d)

2.5

119.

Giá trị gần đúng của log(2) (logarit tự nhiên) theo module math là gì?

a)

3.1416

b)

1.4142

c)

2.3026

d)

0.6931

120.

Lệnh nào chuyển 30 độ sang radian bằng module math?

a)

log10(30)

b)

exp(30)

c)

degrees(30)

d)

radians(30)

121.

Lựa chọn nào đúng về log10(100) trong Python?

a)

Trả về 2.0

b)

Trả về 10.0

c)

Trả về 1.0

d)

Trả về 0.0

122.

Giá trị của fabs(-2) theo module math là bao nhiêu?

a)

0.0

b)

1.0

c)

-2.0

d)

2.0

123.

Bạn cần tính sin của 30 độ. Quy trình đúng là gì?

a)

Dùng log rồi sin để chuẩn hóa

b)

Đổi 30 độ sang radian rồi dùng sin

c)

Dùng degrees trước rồi sin

d)

Dùng sin trực tiếp với 30 độ

124.

Cú pháp tổng quát của hàm làm tròn số thập phân trong Python là gì?

a)

round_giá_trị(precision)

b)

round(độ chính xác, giá trị)

c)

round(giá trị, độ chính xác)

d)

round.value(precision, base)

125.

Cho a = 3, b = 11, c = b/a trong Python. Kết quả của round(c, 2) là gì?

a)

3.60

b)

3.67

c)

3.66

d)

3.68

126.

Với c = 11/3, điều nào sau đây mô tả đúng ảnh hưởng của tham số precision âm trong round(c, -2)?

a)

Làm tròn đến bội số của 100 ở phần nguyên

b)

Làm tròn xuống về 0 không điều kiện

c)

Cắt bỏ hoàn toàn phần thập phân

d)

Làm tròn lên đến số nguyên gần nhất

127.

Giả sử c = 11/3. Lựa chọn nào sau đây cho kết quả của round(c, 0)?

a)

3.0

b)

3.7

c)

4.0

d)

3.5

128.

Mục đích chính của mô-đun datetime trong Python là gì?

a)

Quản lý bộ nhớ và tiến trình

b)

Xử lý chuỗi văn bản nâng cao

c)

Vẽ biểu đồ dữ liệu trực tiếp

d)

Làm việc với ngày và giờ chuẩn

129.

Lệnh nào tạo đối tượng ngày giờ hiện tại?

a)

time.time().now()

b)

datetime.date.today()

c)

datetime.now.time()

d)

datetime.datetime.now()

130.

Đoạn mã nào khởi tạo một datetime cho ngày 1/6/2018?

a)

datetime.time(2018, 6, 1)

b)

datetime.datetime(2018, 6, 1)

c)

datetime.date(1, 6, 2018)

d)

datetime.datetime(6, 1, 2018)

131.

Phương thức nào dùng để định dạng đối tượng datetime thành chuỗi?

a)

strftime()

b)

formatdt()

c)

tostring()

d)

strformat()

132.

Khi x = datetime.datetime(2018, 6, 1), x.strftime("%B") thường trả về giá trị nào?

a)

June

b)

06

c)

2018

d)

Fri

133.

Vì sao cần import datetime trước khi dùng datetime.datetime()?

a)

Để kích hoạt môi trường ảo Python

b)

Để tối ưu tốc độ chạy chương trình

c)

Để nạp lớp và hàm liên quan

d)

Để cấp quyền truy cập hệ thống

134.

Định dạng nào in ra số tháng có hai chữ số từ datetime?

a)

%Y

b)

%m

c)

%B

d)

%a

135.

Bạn cần lấy tên thứ viết tắt (ví dụ Mon). Mã định dạng phù hợp là gì?

a)

%A

b)

%a

c)

%d

d)

%w

136.

Cho x = datetime.datetime(2020, 5, 17). Biểu thức nào in ra "2020-05"?

a)

x.strftime("%Y-%m")

b)

x.strftime("%y-%M")

c)

x.strftime("%m-%Y")

d)

x.strftime("%Y/%m")

137.

Bạn muốn hiển thị ngày theo dạng "01/06/2018" từ x = datetime.datetime(2018, 6, 1). Mẫu định dạng nào đúng?

a)

"%d-%m-%y"

b)

"%Y/%m/%d"

c)

"%m/%d/%Y"

d)

"%d/%m/%Y"