wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Cấu trúc rẽ nhánh

Total questions: 81

Worksheet time: 41mins

Name
Class
Date
1.

Trong Python, câu lệnh nào phù hợp nhất để xử lý nhiều điều kiện loại trừ nhau theo thứ tự ưu tiên?

a)

Sử dụng vòng lặp while để kiểm tra

b)

Cấu trúc if–elif–else tuần tự

c)

Một if duy nhất với nhiều điều kiện

d)

Chuỗi if lồng nhau nhiều tầng

2.

Cho đoạn mã: x = 0.1 + 0.2; if x == 0.3: print('A'); else: print('B'). Kết quả in ra thường sẽ là gì?

a)

Lỗi cú pháp do toán tử '=='

b)

Không in gì vì dùng pass

c)

In 'B' do sai số dấu chấm động

d)

In 'A' vì phép cộng chính xác

3.

Bạn cần giữ chỗ trong thân if để triển khai sau mà không gây lỗi. Câu lệnh nào nên dùng?

a)

continue để bỏ qua điều kiện

b)

break để tạm dừng khối

c)

pass để bỏ qua thân khối

d)

return để kết thúc chương trình

4.

Biểu thức Boolean trả về giá trị nào sau khi đánh giá?

a)

Danh sách phần tử

b)

True hoặc False

c)

Chuỗi văn bản dài

d)

Chỉ số nguyên dương

5.

Thuật ngữ nào còn được gọi là Predicate trong ngữ cảnh logic?

a)

Biểu thức Boolean

b)

Biểu thức số học

c)

Biểu thức chuỗi

d)

Biểu thức mảng

6.

Toán tử nào kiểm tra bằng nhau trong Python?

a)

=>

b)

===

c)

:=

d)

==

e)

=

7.

Kết quả của 5 != 10 là gì?

a)

True

b)

False

c)

Không xác định

d)

Lỗi cú pháp

8.

Chọn phát biểu đúng về toán tử >.

a)

So sánh lớn hơn

b)

So sánh nhỏ hơn

c)

So sánh bằng nhau

d)

So sánh khác nhau

9.

Biểu thức 5 <= 10 sẽ cho kết quả nào?

a)

True

b)

False

c)

None

d)

Lỗi

10.

Toán tử nào trả về True nếu ít nhất một điều kiện đúng?

a)

and

b)

or

c)

xor

d)

not

11.

Toán tử and trả về True trong trường hợp nào?

a)

Ít nhất một điều kiện sai

b)

Không điều kiện nào đúng

c)

Cả hai điều kiện đều đúng

d)

Chỉ một điều kiện đúng

12.

Chức năng của toán tử not là gì?

a)

Đảo ngược giá trị Boolean

b)

So sánh bằng nhau

c)

Tăng giá trị số

d)

Kết hợp hai điều kiện

13.

Kết quả của not (x > 10) khi x = 7 là gì?

a)

True

b)

False

c)

None

d)

Lỗi

14.

Biểu thức (x > 0) and (x < 10) đúng với giá trị nào của x?

a)

x = 5

b)

x = 0

c)

x = -1

d)

x = 15

15.

Trong Python, toán tử nào dùng để so sánh khác nhau?

a)

==

b)

!=

c)

>=

d)

<=

16.

Biểu thức 10 > 5 đánh giá thành gì?

a)

None

b)

False

c)

Không xác định

d)

True

17.

Cặp toán tử nào đều là toán tử so sánh?

a)

and, or

b)

>, <=

c)

:=, ==

d)

not, or

18.

Phát biểu nào mô tả đúng vai trò của biểu thức Logic trong cấu trúc lập trình?

a)

Thay thế biến số

b)

Tăng tốc độ xử lý

c)

Làm điều kiện điều khiển

d)

Tạo vòng lặp vô hạn

19.

Biểu thức (x == 0) or (y == 0) sẽ trả về False trong trường hợp nào?

a)

Cả x và y đều bằng 0

b)

Chỉ x bằng 0 còn y không

c)

Chỉ y bằng 0 còn x không

d)

Cả x và y đều khác 0

20.

Kết quả của NB: sop (5 > 3) là gì?

a)

False

b)

Không xác định

c)

True

d)

NaN

21.

Biểu thức nào dưới đây cho kết quả True?

a)

10 == 10.0

b)

12 < 12

c)

1 != 1

d)

(5 == 5) and (2 > 6)

22.

Chọn kết quả đúng của biểu thức not (5 > 2).

a)

True vì 5 lớn hơn 2

b)

False vì phủ định mệnh đề đúng

c)

False vì 5 không lớn hơn 2

d)

True vì not đảo dấu so sánh

23.

Biểu thức nào tương đương với (True and False) or True theo thứ tự ưu tiên chuẩn?

a)

True or (False and True)

b)

True and (False or True)

c)

(True or False) and True

d)

(True and False) or True

24.

Xác định giá trị của (8 < 4) or ('a' == 'a').

a)

False vì cả hai vế sai

b)

True vì một vế đúng

c)

False vì so sánh ký tự sai

d)

True vì cả hai vế đều đúng

25.

Trong Python, câu lệnh if cơ bản được thực thi khi nào?

a)

Khi điều kiện trả về True

b)

Khi có ít nhất hai điều kiện

c)

Khi điều kiện trả về False

d)

Khi điều kiện không xác định

26.

Xét đoạn mã: dtb = 5.0; if dtb >= 5: print('Bạn đã đậu!'); print('Hú hồn!'). Kết quả in ra là gì?

a)

In cả hai dòng thông báo

b)

Chỉ in dòng đầu tiên

c)

Chỉ in dòng thứ hai

d)

Không in dòng nào

27.

Bạn cần viết chương trình nhập một số nguyên n và in 'Số chẵn' nếu n chia hết cho 2. Lựa chọn nào sau đây đáp ứng yêu cầu đúng và tuân thủ quy tắc thụt đầu dòng của Python?

a)

if n % 2 == 0: print('Số chẵn')

b)

if (n % 2 == 0) { print('Số chẵn') }

c)

if n % 2 = 0: print('Số chẵn')

d)

if n // 2: print 'Số chẵn'

28.

Trong lưu đồ if-else, khi điều kiện đánh giá là False, khối lệnh nào được thực thi?

a)

if-block được chạy tuần tự

b)

else-block được chạy tiếp tục

c)

Không khối nào được chạy

d)

Cả hai khối đều được chạy

29.

Xét đoạn mã: dtb = 4.9. Nếu áp dụng cấu trúc if dtb >= 5: in('Bạn đã đậu!') else: in('Bạn chưa đậu!'), chương trình in ra gì?

a)

In cả hai thông báo

b)

Không in gì cả

c)

Bạn chưa đậu!

d)

Bạn đã đậu!

30.

Bạn cần viết chương trình yêu cầu nhập một số nguyên khác 0 và in 'Số dương' nếu số > 0, ngược lại in 'Số âm'. Biểu thức điều kiện thích hợp trong if là gì?

a)

n >= 0 để phân loại hai nhánh

b)

n > 0 để kiểm tra dương

c)

n != 0 để loại bỏ số 0

d)

n < 0 để tìm số âm

31.

Trong Python, cấu trúc nào cho phép kiểm tra nhiều điều kiện theo thứ tự và thực thi nhánh đầu tiên thỏa mãn?

a)

Toán tử điều kiện ba ngôi lặp lại

b)

Nhiều if độc lập cùng điều kiện

c)

Một chuỗi if-elif-else theo thứ tự

d)

Vòng lặp for lồng với if

32.

Cho đoạn mã: dtb=float(input()); if dtb>=9: print('Giỏi'); elif dtb>=7: print('Khá'); elif dtb>=5: print('Trung bình'); else: print('Yếu'). Khi nhập dtb = 7.0, chương trình in gì?

a)

In 'Khá' vì rơi vào nhánh elif thứ nhất

b)

In 'Giỏi' vì 7.0>=9 là sai

c)

In 'Trung bình' vì xét tất cả nhánh

d)

In 'Yếu' vì không thỏa điều kiện nào

33.

Một chương trình nhận giờ trong ngày (0–23) và in thông điệp: 5–11 'Buổi sáng', 12–17 'Buổi chiều', 18–21 'Buổi tối', còn lại 'Buổi khuya'. Nhập giờ=22 sẽ in gì?

a)

In 'Buổi sáng' vì 22>=5

b)

In 'Buổi tối' vì 22 thuộc 18–21

c)

In 'Buổi chiều' do 12–17 bao hàm

d)

In 'Buổi khuya' theo nhánh else

34.

Trong Python -origin 3.10 trở lên, từ khóa nào dùng để bắt đầu cấu trúc so khớp mẫu thay thế cho switch-case?

a)

match

b)

when

c)

switch

d)

select

35.

Trong đoạn mã: color = "red"; match color: case "red": print("Màu đỏ"); case "blue": print("Màu xanh dương"); case _: print("Không xác định"), giá trị nào sẽ kích hoạt nhánh mặc định?

a)

"cyan"

b)

"blue"

c)

"red"

d)

"green"

36.

Khi nào nên ưu tiên dùng match-case? Chọn phương án đúng nhất.

a)

Khi muốn thay thế toàn bộ if-else mọi lúc

b)

Khi phiên bản Python cũ hơn 3.6 đang chạy

c)

Khi chỉ cần so sánh lớn hơn nhỏ hơn đơn giản

d)

Khi có nhiều trường hợp cụ thể cần xử lý

37.

Trong cú pháp minh họa, ký hiệu case _ có ý nghĩa gì?

a)

Nhánh mặc định khi không khớp giá trị

b)

So khớp kiểu dữ liệu chặt chẽ

c)

Bắt lỗi ngoại lệ khi so khớp

d)

Kết thúc khối match-case

38.

Cú pháp nào đúng để so khớp biến x với hai trường hợp 1 và 2, còn lại in "khác"?

a)

switch x: case 1 -> ...; case 2 -> ...; default: print("khác")

b)

match x: case 1: ...; case 2: ...; case _: print("khác")

c)

if x in (1,2): print("khác"); else: ...

d)

match(x){1:...;2:...;_:print("khác")}

39.

Đoạn mã nào KHÔNG gây lỗi cú pháp trong Python khi thân if chưa được viết?

a)

if a == 0: pass

b)

if a == 0: # chưa làm gì

c)

if a == 0:

d)

if a == 0: x

40.

Vì sao cần dùng pass trong cấu trúc rẽ nhánh hoặc vòng lặp khi chưa kịp viết logic?

a)

Để giữ đúng cú pháp yêu cầu thân khối không rỗng

b)

Để tự động sinh mã xử lý ngoại lệ

c)

Để trình biên dịch tối ưu và chạy nhanh hơn

d)

Để biến điều kiện thành luôn đúng trong lúc thử

41.

Cho đoạn mã: a = float(input()); b = float(input()); if a == 0: pass else: x = b/a. Phát biểu nào đúng nhất về hành vi khi a khác 0?

a)

Biểu thức pass bị bỏ qua, else tính x = b/a

b)

Pass ném lỗi vì khối if rỗng

c)

Pass gán x = 0 rồi else bị bỏ qua

d)

Pass làm else không được thực thi

42.

Trong Python, vì sao không nên so sánh số thực bằng toán tử == trực tiếp?

a)

Vì làm chậm chương trình ở mọi trường hợp

b)

Do số thực lưu chính xác tuyệt đối trong máy tính

c)

Do sai số biểu diễn dấu phẩy động gây lệch nhỏ

d)

Vì Python không hỗ trợ so sánh số thực

43.

Đoạn mã d1 = 1.11 - 1.10 và d2 = 2.11 - 2.10 thường cho kết quả nào?

a)

d1 lớn hơn d2 rất đáng kể

b)

d1 và d2 đúng bằng 0.01 giống hệt nhau

c)

d1 và d2 xấp xỉ 0.01 nhưng hơi khác nhau

d)

d1 và d2 đều bằng 0 do làm tròn

44.

Giá trị gần đúng nào mô tả hợp lý cho d1 và d2 khi chạy thực tế?

a)

d1 = 0.01; d2 = 0.02

b)

d1 = 0.0109; d2 = 0.0097

c)

d1 = 0.010000000000000009; d2 ≈ 0.009999999999999787

d)

d1 = 0.0; d2 = 0.0

45.

Khái niệm 'ngưỡng sai số cho phép' khi so sánh số thực là gì?

a)

Số ngẫu nhiên chọn bất kỳ cho tiện

b)

Giới hạn thời gian chạy của đoạn mã

c)

Giá trị epsilon nhỏ quyết định hai số coi như bằng nhau

d)

Kích thước bộ nhớ dành cho số thực

46.

Với diff = abs(d1 - d2) và epsilon = 1e-7, điều kiện coi d1 và d2 là bằng nhau nên là gì?

a)

diff <= epsilon để xét xấp xỉ bằng nhau

b)

Không cần điều kiện vì luôn bằng nhau

c)

diff >= epsilon để coi là bằng nhau

d)

diff == epsilon trong mọi trường hợp

47.

Lý do cần dùng abs (giá trị tuyệt đối) khi so sánh xấp xỉ là gì?

a)

Để loại bỏ dấu âm của sai số khi lấy hiệu

b)

Để tiết kiệm bộ nhớ khi tính toán

c)

Để tăng độ chính xác của dấu phẩy động

d)

Để chuyển số thực thành số nguyên

48.

Trong thực hành, lựa chọn epsilon nên dựa trên nguyên tắc nào?

a)

Chọn epsilon phù hợp độ chính xác mong muốn của bài toán

b)

Luôn đặt epsilon = 0 để chính xác tuyệt đối

c)

Chọn epsilon ngẫu nhiên để tránh trùng lặp

d)

Đặt epsilon càng lớn càng tốt để dễ bằng nhau

49.

Trong Python, vì sao biểu thức 1.1 + 2.2 thường không bằng 3.3 khi dùng float?

a)

Do Python tự động chuyển sang kiểu phức khi cộng

b)

Do lưu trữ phần thập phân bằng nhị phân gây xấp xỉ

c)

Do phép cộng float bị hạn chế độ dài chuỗi

d)

Do làm tròn theo cơ số thập phân chính xác tuyệt đối

50.

Mặc định số thực (float) trong Python có đặc điểm nào sau đây?

a)

Chính xác tối đa 15 chữ số phần thập phân

b)

Chính xác tối đa 5 chữ số phần thập phân

c)

Luôn chính xác tuyệt đối với mọi số

d)

Không giới hạn chữ số phần thập phân

51.

Kết quả in ra của a = 1.1 + 2.2 khi dùng float thường gần với giá trị nào?

a)

3.3000000000000000 chính xác tuyệt đối

b)

3.3000000000000003 gần với 3.3

c)

3.2999999999999990 gần với 3.2

d)

3.3333333333333333 gần với 3.4

52.

Vì sao decimal.Decimal('0.05') khác với decimal.Decimal(0.05)?

a)

Vì Decimal không thể nhận đối số dạng chuỗi

b)

Vì số thực luôn tròn về 0 khi ép kiểu

c)

Vì chuỗi giữ giá trị thập phân chính xác hơn

d)

Vì chuỗi tạo ra số nhị phân ngẫu nhiên

53.

Để so sánh chính xác 1.1 + 2.2 với 3.3, cách nào phù hợp nhất?

a)

Làm tròn float đến 1 chữ số rồi so sánh

b)

Dùng Decimal('1.1') + Decimal('2.2') và so với Decimal('3.3')

c)

So sánh trực tiếp a == 3.3 với a là float

d)

Ép kiểu về int rồi so sánh bằng nhau

54.

Mục đích của hàm decimal.getcontext().prec là gì?

a)

Đổi kiểu Decimal sang float nhanh hơn

b)

Tạo số ngẫu nhiên có độ chính xác cao

c)

Chọn cơ số nhị phân cho dấu phẩy động

d)

Thiết lập số chữ số chính xác cho Decimal

55.

Giả sử decimal.getcontext().prec = 10. Kết quả của Decimal(1) / Decimal(13) sẽ có đặc điểm gì?

a)

Tự động chuyển sang dạng phân số chính xác

b)

Chỉ còn 3 chữ số phần thập phân hiển thị

c)

Chuỗi chữ số vô hạn không bị cắt ngắn

d)

Chuỗi chữ số có độ dài khoảng 10 chữ số có nghĩa

56.

Nhận định nào đúng về biểu diễn 0.1 trong hệ nhị phân?

a)

Không thể biểu diễn trên máy tính hiện đại

b)

Là số đặc biệt được mã hóa đúng tuyệt đối

c)

Là dãy nhị phân hữu hạn nên lưu chính xác

d)

Là dãy nhị phân vô hạn nên chỉ xấp xỉ

57.

Trong Python, cú pháp rút gọn dùng để gán theo điều kiện có dạng nào sau đây?

a)

expression1 if condition else expression2

b)

if condition then expression1 else expression2

c)

expression1 unless not condition else expression2

d)

condition ? expression1 : expression2

58.

Giả sử viết: c = 10 if x > y else 20. Nhận định nào đúng về giá trị của c?

a)

c đổi giữa 10 và 20 ngẫu nhiên mỗi lần

b)

c bằng 20 khi x lớn hơn y, bằng 10 khi khác

c)

c luôn bằng 10 vì điều kiện luôn đúng

d)

c nhận 10 khi x lớn hơn y, ngược lại 20

59.

Cấu trúc nào chỉ kiểm tra một điều kiện và chỉ thực hiện khi điều kiện đúng, không xử lý trường hợp sai?

a)

if-elif-else

b)

match-case

c)

if-else

d)

if

60.

Ưu điểm chính của if-else là gì?

a)

Linh hoạt với nhiều nhánh tuần tự

b)

Đơn giản, dễ dùng cho một nhánh

c)

Rõ ràng, xử lý đầy đủ hai nhánh

d)

Gọn gàng, hỗ trợ pattern nâng cao

61.

Hạn chế nào thường gặp khi dùng if-elif-else với rất nhiều nhánh?

a)

Dễ rối nếu có quá nhiều nhánh

b)

Không xử lý trường hợp sai

c)

Chỉ dùng được cho một điều kiện

d)

Chỉ chạy trên Python ≥ 3.10

62.

Cho x=3, y=5, z=7. Giá trị của biểu thức x == 3 là gì?

a)

None

b)

Zero

c)

True

d)

False

63.

Cho x=3, y=5. Kết quả của biểu thức x < y là gì?

a)

False

b)

Error

c)

Undefined

d)

True

64.

Cho x=3, y=5. Giá trị của x >= y là gì?

a)

True

b)

False

c)

None

d)

Zero

65.

Cho x=3, y=5. Biểu thức x != y - 2 cho ra kết quả nào?

a)

True

b)

False

c)

TypeError

d)

Zero

66.

Với i=5, j=3, k=7 chạy đoạn mã rẽ nhánh lồng nhau như trên. Giá trị in ra là gì?

a)

i=7, j=3, k=7

b)

i=3, j=5, k=7

c)

i=5, j=3, k=7

d)

i=5, j=5, k=7

67.

Với i=7, j=3, k=5 chạy đoạn mã rẽ nhánh lồng nhau đã cho. Kết quả là gì?

a)

i=5, j=7, k=5

b)

i=5, j=3, k=5

c)

i=7, j=3, k=5

d)

i=7, j=7, k=5

68.

Nhập số tháng m (1–12). Tháng nào luôn có 31 ngày?

a)

1,3,5,7,8,10,12

b)

2,4,6,9,11

c)

3,6,9,12

d)

1,4,7,10,12

69.

Nhập tháng m. Tháng nào có 30 ngày?

a)

4,6,9,11

b)

1,3,5,7

c)

2,8,10,12

d)

3,6,10,12

70.

Năm nhuận theo lịch Gregory làm tháng 2 có bao nhiêu ngày?

a)

30 ngày

b)

28 ngày

c)

29 ngày

d)

31 ngày

71.

Tháng 2 của năm không nhuận có bao nhiêu ngày?

a)

28 ngày

b)

29 ngày

c)

30 ngày

d)

31 ngày

72.

Điều kiện năm nhuận đơn giản trong lập trình thường dùng là gì?

a)

n%4!=0 and n%400==0

b)

n%100==0 or n%400!=0

c)

n%4==0 and n%100==0

d)

n%400==0 or (n%4==0 and n%100!=0)

73.

Giải pt bậc hai ax2+bx+c=0ax^2 + bx + c = 0 . Khi nào phương trình vô nghiệm (trong R)?

a)

a=0

b)

Δ>0

c)

Δ=0

d)

Δ<0

74.

Phương trình ax2+bx+c=0ax^2 + bx + c = 0 có hai nghiệm phân biệt khi nào?

a)

Δ=0

b)

b=0

c)

Δ<0

d)

Δ>0

75.

Khi a=0 trong ax2+bx+c=0ax^2 + bx + c = 0 , bài toán chuyển thành dạng nào?

a)

Phương trình vô nghiệm chắc chắn

b)

Bất phương trình bậc hai

c)

Hệ phương trình hai ẩn

d)

Phương trình bậc nhất bx+c=0

76.

Nhập số nguyên n có tối đa 2 chữ số. Chuỗi đọc chữ cho n=35 là gì?

a)

Ba mươi năm

b)

Năm mươi ba

c)

Ba mươi lăm

d)

Ba năm

77.

Nhập vào ngày d/m/y hợp lệ. Ngày kế sau ngày 28/2 của năm nhuận là gì?

a)

27/2/y

b)

29/2/y

c)

1/3/y

d)

2/3/y

78.

Nhập a,b và phép toán op thuộc {'+','-','*','/'}. Với a=8, b=2, op='/' kết quả là gì?

a)

4.0

b)

16.0

c)

0.25

d)

6.0

79.

Với match-case, nhập 'car' thì chương trình nên in gì?

a)

Không xác định phương tiện

b)

Đây là ô tô

c)

Đây là xe đạp

d)

Đây là xe máy

80.

Với match-case, chuỗi 'bus' sẽ cho thông điệp nào?

a)

Không xác định phương tiện

b)

Đây là xe máy

c)

Đây là ô tô

d)

Đây là xe buýt

81.

Khi nhập tên phương tiện không khớp với car/motorbike/bicycle/bus, chương trình nên in gì?

a)

Đây là ô tô

b)

Không xác định phương tiện

c)

Đây là xe đạp

d)

Đây là xe máy