Trắc nghiệm Tin 10 Cánh diều Bài 8: Câu lệnh lặp - Đề 01 đượ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: Mục đích chính của việc sử dụng cấu trúc lặp trong lập trình là gì?
- A. Thực hiện một khối lệnh chỉ một lần duy nhất.
- B. Thực hiện một khối lệnh nhiều lần dựa trên một điều kiện hoặc số lần lặp xác định.
- C. Lựa chọn một trong hai hoặc nhiều nhánh lệnh để thực hiện.
- D. Khai báo các biến và hằng số cần thiết trong chương trình.
Câu 2: Trong Python, câu lệnh lặp `for` thường được sử dụng hiệu quả nhất trong trường hợp nào?
- A. Khi số lần lặp không xác định trước và phụ thuộc vào một điều kiện logic thay đổi.
- B. Khi cần đảm bảo khối lệnh bên trong được thực hiện ít nhất một lần, ngay cả khi điều kiện ban đầu sai.
- C. Khi số lần lặp được xác định trước hoặc khi cần lặp qua các phần tử của một dãy (sequence).
- D. Để tạo ra các quyết định dựa trên nhiều điều kiện khác nhau.
Câu 3: Trong Python, câu lệnh lặp `while` phù hợp nhất cho trường hợp nào?
- A. Khi bạn cần lặp lại một khối lệnh một số lần cố định, ví dụ 10 lần.
- B. Khi bạn cần lặp lại một khối lệnh miễn là một điều kiện logic vẫn còn đúng và số lần lặp không xác định trước.
- C. Chỉ khi bạn cần lặp lại một khối lệnh duy nhất một lần.
- D. Để duyệt qua tất cả các ký tự trong một chuỗi đã cho.
Câu 4: Lời gọi hàm `range(7)` trong Python sẽ tạo ra dãy số nguyên nào?
- A. 1, 2, 3, 4, 5, 6, 7
- B. 0, 1, 2, 3, 4, 5, 6
- C. 0, 1, 2, 3, 4, 5, 6, 7
- D. 1, 2, 3, 4, 5, 6
Câu 5: Lời gọi hàm `range(3, 8)` trong Python sẽ tạo ra dãy số nguyên nào?
- A. 3, 4, 5, 6, 7, 8
- B. 0, 1, 2, 3, 4, 5, 6, 7
- C. 3, 4, 5, 6, 7
- D. 4, 5, 6, 7, 8
Câu 6: Lời gọi hàm `range(2, 12, 3)` trong Python sẽ tạo ra dãy số nguyên nào?
- A. 2, 5, 8, 11
- B. 2, 5, 8
- C. 2, 5, 8, 11, 14
- D. 3, 6, 9, 12
Câu 7: Đoạn chương trình Python sau sẽ in ra màn hình bao nhiêu dòng chữ
Câu 8: Sau khi thực hiện đoạn chương trình Python sau, giá trị cuối cùng của biến `tong` là bao nhiêu?
```python
tong = 0
for i in range(1, 6):
tong = tong + i
```
Câu 9: Sau khi vòng lặp `for` trong đoạn mã sau kết thúc, giá trị cuối cùng của biến `bien_lap` là bao nhiêu?
```python
for bien_lap in range(7):
pass # Lệnh pass không làm gì cả
```
- A. 6
- B. 7
- C. 0
- D. Không xác định được vì không có lệnh print.
Câu 10: Đoạn chương trình sau sẽ in ra màn hình các giá trị nào?
```python
count = 0
while count < 4:
print(count)
count = count + 1
```
- A. 0, 1, 2, 3 (mỗi số một dòng)
- B. 1, 2, 3, 4 (mỗi số một dòng)
- C. 0, 1, 2, 3, 4 (mỗi số một dòng)
- D. Chỉ in số 0 vô hạn.
Câu 11: Sau khi thực hiện đoạn chương trình Python sau, giá trị cuối cùng của biến `tich` là bao nhiêu?
```python
tich = 1
so = 3
while so <= 9:
tich = tich * so
so = so + 3
```
Câu 12: Đoạn mã Python sau có lỗi logic gì?
```python
i = 10
while i > 0:
print(i)
# Thiếu dòng cập nhật biến "i"
```
- A. Lỗi cú pháp (Syntax Error) do thiếu dấu hai chấm.
- B. Vòng lặp sẽ không chạy lần nào vì điều kiện ban đầu sai.
- C. Vòng lặp sẽ chạy vô hạn (Infinite Loop).
- D. Chương trình sẽ in ra số 10 và sau đó kết thúc bình thường.
Câu 13: Đoạn chương trình Python sau có in ra giá trị nào không?
```python
for j in range(10, 5):
print(j)
```
- A. Có, in ra các số 10, 9, 8, 7, 6.
- B. Có, in ra các số 10, 9, 8, 7, 6, 5.
- C. Không in ra gì cả.
- D. Gây ra lỗi chương trình do start lớn hơn stop.
Câu 14: Giả sử bạn cần viết một chương trình mô phỏng tung xúc xắc cho đến khi xuất hiện mặt 6. Số lần tung không biết trước. Cấu trúc lặp nào phù hợp nhất?
- A. Câu lệnh `for` với `range()` cố định.
- B. Câu lệnh `while` với điều kiện là mặt xúc xắc chưa phải là 6.
- C. Chỉ cần cấu trúc rẽ nhánh `if-else`.
- D. Sử dụng đệ quy để gọi lại hàm tung xúc xắc.
Câu 15: Đoạn mã nào sau đây sử dụng vòng lặp `for` và hàm `range()` để in ra các số chẵn từ 2 đến 10 (bao gồm cả 2 và 10)?
- A. ```python
for i in range(10):
if i % 2 == 0:
print(i)
```
- B. ```python
for i in range(2, 11, 2):
print(i)
```
- C. ```python
for i in range(2, 10):
if i % 2 == 0:
print(i)
```
- D. ```python
for i in range(1, 11, 2):
print(i)
```
Câu 16: Xem xét đoạn mã Python sau. Khi vòng lặp `while` kết thúc, giá trị của biến `x` là bao nhiêu?
```python
x = 1
while x < 20:
x = x * 2
```
Câu 17: Đoạn chương trình Python sau sẽ in ra màn hình những số nào?
```python
for i in range(1, 6):
if i % 2 != 0:
print(i)
```
- A. 1, 2, 3, 4, 5
- B. 2, 4
- C. 1, 3, 5
- D. Không in ra gì cả.
Câu 18: Để tính tổng các số lẻ từ 1 đến 100, đoạn mã Python nào sau đây sử dụng vòng lặp `for` hiệu quả nhất?
- A. ```python
tong = 0
for i in range(1, 101, 2):
tong = tong + i
print(tong)
```
- B. ```python
tong = 0
for i in range(1, 100):
if i % 2 != 0:
tong = tong + i
print(tong)
```
- C. ```python
tong = 0
for i in range(101):
if i % 2 != 0:
tong = tong + i
print(tong)
```
- D. ```python
tong = 0
i = 1
while i <= 100:
tong = tong + i
i = i + 2
print(tong)
```
Câu 19: Xem xét đoạn mã Python sau. Giá trị cuối cùng của biến `i` và `j` khi vòng lặp `while` kết thúc là bao nhiêu?
```python
i = 1
j = 10
while i < j:
i = i + 2
j = j - 1
```
- A. i = 7, j = 7
- B. i = 9, j = 6
- C. i = 5, j = 8
- D. i = 3, j = 9
Câu 20: Để viết chương trình tìm số nguyên dương `N` nhỏ nhất sao cho tổng `1 + 2 + ... + N` lớn hơn 100, cấu trúc lặp nào và điều kiện lặp nào là phù hợp nhất?
- A. Câu lệnh `for` với `range(100)`.
- B. Câu lệnh `while` với điều kiện `N < 100`.
- C. Câu lệnh `while` với điều kiện tổng hiện tại nhỏ hơn hoặc bằng 100.
- D. Cấu trúc rẽ nhánh `if-elif-else`.
Câu 21: Đoạn mã nào sau đây sẽ gây ra lỗi hoặc không thực hiện được số lần lặp mong muốn?
- A. ```python
for i in range(5):
print(i)
```
- B. ```python
i = 0
while i < 5:
print(i)
i = i + 1
```
- C. ```python
for i in range(10, 0):
print(i)
```
- D. ```python
i = 10
while i > 0:
print(i)
i = i - 1
```
Câu 22: Để lặp lại một khối lệnh đúng 20 lần, cách nào sử dụng `for` loop là chính xác nhất?
- A. ```python
for i in range(20):
# Khối lệnh
```
- B. ```python
for i in range(21):
# Khối lệnh
```
- C. ```python
for i in range(1, 20):
# Khối lệnh
```
- D. ```python
i = 0
while i < 20:
# Khối lệnh
i = i + 1
```
Câu 23: Đoạn mã nào sau đây tính tổng các số từ 1 đến 50 bằng vòng lặp `while`?
- A. ```python
tong = 0
i = 1
while i < 50:
tong = tong + i
i = i + 1
```
- B. ```python
tong = 0
i = 1
while i <= 50:
tong = tong + i
i = i + 1
```
- C. ```python
tong = 0
for i in range(1, 51):
tong = tong + i
```
- D. ```python
tong = 0
i = 1
while tong <= 50:
tong = tong + i
i = i + 1
```
Câu 24: Điều gì xảy ra nếu điều kiện của vòng lặp `while` ban đầu đã là `False`?
- A. Vòng lặp sẽ chạy vô hạn.
- B. Khối lệnh bên trong vòng lặp sẽ được thực hiện ít nhất một lần.
- C. Khối lệnh bên trong vòng lặp sẽ không được thực hiện lần nào.
- D. Chương trình sẽ báo lỗi cú pháp.
Câu 25: Đoạn mã Python sau sẽ in ra màn hình kết quả gì?
```python
dem = 0
for num in range(10, 21):
if num % 5 == 0:
dem = dem + 1
print(dem)
```
Câu 26: Để lặp ngược từ 10 về 1, sử dụng `for` loop, lời gọi hàm `range()` nào là đúng?
- A. `range(10, 1)`
- B. `range(10, 0)`
- C. `range(1, 11, -1)`
- D. `range(10, 0, -1)`
Câu 27: Giả sử bạn muốn viết một chương trình tính số tiền lãi kép sau mỗi năm cho đến khi tổng số tiền đạt đến một mục tiêu nhất định. Số năm cần thiết không cố định. Cấu trúc lặp nào phù hợp nhất?
- A. Câu lệnh `while` với điều kiện là tổng số tiền chưa đạt mục tiêu.
- B. Câu lệnh `for` với số lần lặp cố định (ví dụ 10 năm).
- C. Cấu trúc rẽ nhánh `if-else` lồng nhau.
- D. Sử dụng hàm `range()` để xác định số lần lặp.
Câu 28: Đoạn mã Python sau sẽ in ra màn hình những số nào?
```python
i = 10
while i > 5:
print(i)
i = i - 3
```
- A. 10, 9, 8, 7, 6
- B. 10, 7, 4
- C. 10, 7
- D. Chỉ in số 10.
Câu 29: Đoạn mã nào sau đây tính và in ra tổng các số chẵn từ 1 đến 20 bằng vòng lặp `while`?
- A. ```python
tong = 0
i = 2
while i <= 20:
tong = tong + i
i = i + 2
print(tong)
```
- B. ```python
tong = 0
i = 1
while i <= 20:
if i % 2 == 0:
tong = tong + i
i = i + 1
print(tong)
```
- C. ```python
tong = 0
for i in range(2, 21, 2):
tong = tong + i
print(tong)
```
- D. ```python
tong = 0
i = 20
while i >= 2:
tong = tong + i
i = i - 2
print(tong)
```
Câu 30: Xem xét đoạn mã sau. Giả sử người dùng nhập lần lượt các số 10, 0, 5, -1. Chương trình sẽ in ra những dòng nào trước khi kết thúc?
```python
so = 0
while so >= 0:
so_str = input(
- A. Đã nhập: 10
Đã nhập: 0
Đã nhập: 5
Đã nhập: -1
Kết thúc.
- B. Đã nhập: 10
Đã nhập: 0
Kết thúc.
- C. Đã nhập: 10
Đã nhập: 0
Đã nhập: 5
Kết thúc.
- D. Đã nhập: 10
Đã nhập: 0
Đã nhập: 5
Kết thúc.