Trắc nghiệm Tin học 10 Kết nối tri thức Bài 21: Câu lệnh lặp while - Đề 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: Đặc điểm nổi bật nào của câu lệnh lặp `while` khiến nó phù hợp cho các bài toán mà số lần lặp không được xác định trước khi bắt đầu vòng lặp?
- A. Nó luôn thực hiện khối lệnh ít nhất một lần.
- B. Vòng lặp tiếp tục cho đến khi một điều kiện logic trở thành `False`.
- C. Nó yêu cầu một biến đếm và giá trị cuối rõ ràng.
- D. Cú pháp của nó đơn giản hơn câu lệnh `for`.
Câu 2: Cho đoạn chương trình Python sau:
x = 5
while x > 0:
print(x, end=" ")
x = x - 2
Kết quả hiển thị trên màn hình là gì?
- A. 5 4 3 2 1
- B. 5 3 1 0
- C. 5 3 1
- D. 4 2 0
Câu 3: Điều gì xảy ra nếu điều kiện trong câu lệnh `while` ban đầu là `False`?
- A. Chương trình sẽ báo lỗi.
- B. Khối lệnh trong `while` sẽ được thực hiện một lần.
- C. Chương trình sẽ bị lặp vô tận.
- D. Khối lệnh trong `while` sẽ không bao giờ được thực hiện.
Câu 4: Đoạn chương trình nào sau đây sẽ dẫn đến vòng lặp vô tận (infinite loop)?
- A. i = 0
while i < 10:
print(i)
i += 1
- B. j = 1
while j > 0:
print(j)
- C. k = 5
while k >= 0:
print(k)
k -= 1
- D. m = 10
while m != 5:
print(m)
m = m - 1
Câu 5: Cho bài toán: Nhập vào một số nguyên dương N. Tính tổng các số nguyên dương liên tiếp bắt đầu từ 1 cho đến khi tổng đó lớn hơn N. Biến `tong` và biến đếm `i` được khởi tạo lần lượt là 0 và 1. Điều kiện nào cho vòng lặp `while` là phù hợp để giải bài toán này?
- A. while tong <= N:
- B. while tong > N:
- C. while i <= N:
- D. while i < N:
Câu 6: Xét đoạn chương trình sau, nhiệm vụ của đoạn mã này là gì?
n = int(input())
k = 0
while n >= 1:
n = n // 10
k = k + 1
print(k)
- A. Tính tổng các chữ số của n.
- B. Tìm chữ số lớn nhất của n.
- C. Đếm số chữ số của n.
- D. Kiểm tra n có phải số nguyên tố không.
Câu 7: Cho đoạn code:
i = 1
tong = 0
while i <= 5:
if i % 2 == 0:
tong += i
i += 1
Giá trị cuối cùng của biến `tong` sau khi vòng lặp kết thúc là bao nhiêu?
Câu 8: Trong cấu trúc lệnh lặp `while <điều kiện>:` thì `<điều kiện>` là gì?
- A. Một biểu thức logic (có giá trị `True` hoặc `False`).
- B. Một phép gán giá trị.
- C. Một câu lệnh in ra màn hình.
- D. Một danh sách các giá trị.
Câu 9: Cho đoạn chương trình:
a = 2
b = 5
while a < b:
a = a + 1
b = b - 1
print(a, b)
Kết quả in ra màn hình là gì?
- A. 4 4
- B. 4 3
- C. 3 4
- D. 3 3
Câu 10: Khi sử dụng vòng lặp `while`, điều quan trọng nhất để tránh vòng lặp vô tận là gì?
- A. Luôn sử dụng một biến đếm tăng dần.
- B. Đảm bảo điều kiện lặp sử dụng phép so sánh "nhỏ hơn" (<).
- C. Phải có ít nhất một câu lệnh bên trong khối lặp làm thay đổi giá trị của biến hoặc biểu thức trong điều kiện lặp.
- D. Chỉ sử dụng các biến kiểu số nguyên trong điều kiện.
Câu 11: Cho đoạn chương trình:
s =
- A. hello
- B. olleh
- C. h e l l o
- D. Chương trình báo lỗi.
Câu 12: Bài toán nào sau đây không phù hợp để giải quyết bằng câu lệnh lặp `while` một cách tự nhiên nhất so với `for`?
- A. Nhập dữ liệu từ người dùng cho đến khi họ nhập một giá trị hợp lệ.
- B. Tìm ước số chung lớn nhất (UCLN) của hai số bằng thuật toán Euclid.
- C. In tất cả các số chẵn từ 1 đến 100.
- D. Tìm số nguyên dương nhỏ nhất N sao cho tổng từ 1 đến N lớn hơn một giá trị K cho trước.
Câu 13: Cho đoạn chương trình:
count = 0
num = 12345
while num > 0:
num = num // 10
count += 1
print(count)
Kết quả in ra màn hình là bao nhiêu?
Câu 14: Xét đoạn code:
i = 10
while i >= 0:
print(i, end=" ")
i -= 3
Kết quả in ra màn hình là gì?
- A. 10 7 4 1
- B. 10 7 4 1 -2
- C. 10 7 4 1 0
- D. 10 7 4 1 -2
Câu 15: Trong Python, khối lệnh nằm bên trong vòng lặp `while` được xác định bằng cách nào?
- A. Bao quanh bởi cặp dấu ngoặc nhọn `{}`.
- B. Sử dụng dấu thụt lề (indentation) thống nhất.
- C. Bao quanh bởi cặp dấu ngoặc đơn `()`.
- D. Kết thúc bằng từ khóa `endwhile`.
Câu 16: Cho đoạn chương trình:
balance = 1000
target = 1200
interest_rate = 0.05
years = 0
while balance < target:
balance = balance * (1 + interest_rate)
years += 1
print(years)
Đoạn code này tính toán gì?
- A. Số tiền lãi nhận được sau một số năm cố định.
- B. Số tiền gốc ban đầu cần thiết để đạt mục tiêu sau một số năm.
- C. Số năm cần thiết để số dư tài khoản đạt được hoặc vượt quá một mục tiêu nhất định với lãi suất kép hàng năm.
- D. Lãi suất cần thiết để đạt mục tiêu sau một số năm cố định.
Câu 17: Cho đoạn chương trình:
x = 10
y = 3
while x % y != 0:
x = x + 1
print(x)
Kết quả in ra màn hình là gì?
Câu 18: Khi nào thì điều kiện trong câu lệnh `while <điều kiện>:` được kiểm tra?
- A. Trước mỗi lần thực hiện khối lệnh.
- B. Sau mỗi lần thực hiện khối lệnh.
- C. Chỉ một lần duy nhất trước khi vòng lặp bắt đầu.
- D. Khi gặp từ khóa `break`.
Câu 19: Cho đoạn code:
s = 0
i = 1
while s < 10:
s = s + i
i = i + 1
print(i)
Giá trị cuối cùng của biến `i` sau khi vòng lặp kết thúc là bao nhiêu?
Câu 20: Đoạn code sau có lỗi không? Nếu có, là lỗi gì?
i = 1
while i <= 5:
print(i)
- A. Không có lỗi, nó in ra các số từ 1 đến 5.
- B. Có lỗi logic, dẫn đến vòng lặp vô tận vì biến `i` không bao giờ thay đổi giá trị.
- C. Lỗi cú pháp, thiếu dấu hai chấm sau điều kiện.
- D. Lỗi cú pháp, biến `i` chưa được khởi tạo.
Câu 21: Để thoát khỏi vòng lặp `while` ngay lập tức, bất kể điều kiện lặp có còn đúng hay không, ta sử dụng câu lệnh nào?
- A. `break`
- B. `continue`
- C. `pass`
- D. `return`
Câu 22: Cho bài toán: Tìm số nguyên dương N nhỏ nhất sao cho N là số Fibonacci và N lớn hơn 100. Dãy Fibonacci bắt đầu 1, 1, 2, 3, 5, 8, ... Biến `a` và `b` lần lượt là hai số Fibonacci liên tiếp, khởi tạo là 1, 1. Biến `next_fib` là số Fibonacci tiếp theo. Điều kiện nào cho vòng lặp `while` là phù hợp?
- A. while next_fib <= 100:
- B. while next_fib < 100:
- C. while a <= 100 and b <= 100:
- D. while next_fib <= 100:
Câu 23: Cho đoạn chương trình:
i = 0
while True:
print(i)
i += 1
if i == 3:
break
Kết quả in ra màn hình là gì?
- A. 0 1 2 3
- B. 0 1 2
- C. 1 2 3
- D. Chương trình lặp vô tận.
Câu 24: Mục đích của việc sử dụng câu lệnh `continue` bên trong vòng lặp `while` là gì?
- A. Kết thúc vòng lặp ngay lập tức.
- B. Thực hiện lại khối lệnh từ đầu.
- C. Bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang kiểm tra điều kiện cho lần lặp tiếp theo.
- D. Tạm dừng thực hiện vòng lặp.
Câu 25: Cho đoạn code:
s =
- A. Python
- B. P
- C. Pytho
- D. Pyt
Câu 26: Xét đoạn chương trình:
num = 20
while num > 1:
is_prime = True
i = 2
while i * i <= num:
if num % i == 0:
is_prime = False
break
i += 1
if is_prime:
print(num, end=" ")
num -= 1
Đoạn code này thực hiện công việc gì?
- A. Tìm và in ra các số nguyên tố từ 2 đến 20 (theo thứ tự giảm dần).
- B. Tìm và in ra các số chẵn từ 2 đến 20 (theo thứ tự giảm dần).
- C. Tìm và in ra các số chia hết cho i (từ 2 đến căn bậc hai của num).
- D. Tìm ước số lớn nhất của num.
Câu 27: Cho bài toán: Mô phỏng việc rút tiền từ tài khoản ngân hàng cho đến khi số dư không đủ để rút nữa. Số dư ban đầu là `so_du`, số tiền cần rút mỗi lần là `so_tien_rut`. Điều kiện nào cho vòng lặp `while` là phù hợp để tiếp tục quá trình rút tiền?
- A. while so_du < so_tien_rut:
- B. while so_du >= so_tien_rut:
- C. while so_du > 0:
- D. while so_tien_rut > 0:
Câu 28: Cho đoạn chương trình:
ch = "a"
while ch <= "e":
print(ch, end=" ")
ch = chr(ord(ch) + 1)
Kết quả in ra màn hình là gì? (Biết `ord()` trả về mã ASCII của ký tự, `chr()` trả về ký tự từ mã ASCII).
- A. a b c d
- B. a b c d e f
- C. a b c d e
- D. Lỗi do không thể so sánh ký tự.
Câu 29: Đoạn code sau được dùng để làm gì?
flag = True
while flag:
password = input(
- A. Yêu cầu người dùng nhập mật khẩu liên tục cho đến khi nhập đúng.
- B. Chỉ cho phép người dùng nhập mật khẩu một lần.
- C. Kiểm tra mật khẩu và luôn báo
- D. Thực hiện một vòng lặp vô tận để nhập mật khẩu.
Câu 30: Cho đoạn chương trình:
x = 1
tong = 0
while x < 5:
tong += x
x += 1
print(tong)
Kết quả in ra màn hình là bao nhiêu?