
TRẮC NGHIỆM TIN HỌC 10 KẾT NỐI TRI THỨC BÀI 20. CÂU LỆNH LẶP FOR
A. PHẦN ĐÚNG SAI
Câu 1: Dựa trên kiến thức về lệnh lặp
for trong Python, hãy xác định các ý sau đây là đúng hay sai:
a). Biến k trong lệnh for k in range(n): sẽ lần lượt nhận các giá trị
từ 0 đến n-1.
b). Vùng giá trị của lệnh range(n) gồm n số nguyên liên tiếp từ 1 đến n.
c). Câu lệnh if k%2 == 0 được sử dụng để kiểm tra xem k có phải là số
chẵn hay không.
d). Đoạn mã sau sẽ tính tổng các số là bội của 3 nhỏ hơn n.
n = 20
C = 0
for k in range(n):
if k%3 == 0: # Điều kiện k là bội của 3 là k%3 = 0
C = C + 1
print(C)
Đáp án:
a). Đ. Lệnh range(n) trả về một dãy giá trị từ 0 đến n-1, vì vậy biến
k sẽ lần lượt nhận các giá trị này.
b). S. Vùng giá trị của lệnh range(n) bắt đầu từ 0 và kết thúc tại
n-1, không bắt đầu từ 1.
c). Đ. Điều kiện k%2 == 0 đúng khi k là số chẵn, tức là chia hết cho
2.
d). S. Đoạn mã chỉ đếm số lượng các số là bội của 3 nhỏ hơn n, không
tính tổng.
Câu 2: Hãy xác định các câu sau về cách sử dụng lệnh for trong
Python là đúng hay sai:
a). Vùng giá trị của lệnh range(1, n+1) sẽ bao gồm các số từ 1 đến
n.
b). Tổng giá trị của S trong đoạn mã S = 0; for k in range(1, n+1):
S = S + k sẽ bằng tổng của 1+2+...+n.
c). Đoạn mã for k in range(1, n+1): S = S + k sẽ tính tổng của các số
từ 0 đến n-1..
d). Lệnh range(1, n+1) và lệnh range(n) sẽ trả về cùng một vùng giá
trị nếu n=1.
Đáp án:
a). Đ. range(1, n+1) bắt đầu từ 1 và kết thúc tại n (vì n+1 không được
bao gồm trong dãy).
b). Đ. Đoạn mã này tính tổng các số từ 1 đến n, đúng với công thức tổng
1+2+...+n.
c). S. Đoạn mã này tính tổng từ 1 đến n, không bao gồm 0 và không chỉ
tính đến n-1.
d). S. range(1, n+1) sẽ trả về [1] trong khi range(n) với n=1 sẽ trả
về [0].
Câu 3: Dựa trên kiến thức về lệnh range trong Python, hãy xác định các ý sau đây là đúng hay sai:
a) Lệnh range(1, 51) sẽ tạo ra vùng giá trị gồm các số từ 1 đến 50.
b) Lệnh range(5, 11) sẽ tạo ra vùng giá trị gồm các số từ 5 đến 10.
c) Lệnh range(0, 2) sẽ tạo ra vùng giá trị gồm các số 0 và 1.
d) Lệnh range(10) sẽ tạo ra vùng giá trị gồm số 10.
Đáp án:
a). Đ. Lệnh range(1, 51) sẽ tạo ra vùng giá trị bắt đầu từ 1 và kết
thúc tại 50 (vì stop là 51, nhưng không được bao gồm).
b). Đ. Lệnh range(5, 11) sẽ tạo ra vùng giá trị bắt đầu từ 5 và kết
thúc tại 10 (vì stop là 11, nhưng không được bao gồm).
c). Đ. Lệnh range(0, 2) sẽ tạo ra vùng giá trị từ 0 đến 1 (vì stop
là 2, nhưng không được bao gồm).
d). S. Lệnh range(10) sẽ tạo ra vùng giá trị từ 0 đến 9 (vì lệnh này
chỉ có một tham số, mặc định start là 0, và stop là 10).
Câu 4: Hãy xác định các câu sau về cách
sử dụng lệnh range trong Python là đúng hay sai:
a) Lệnh range(1, 101) sẽ tạo ra vùng giá trị gồm các số từ 1 đến
100.
b) Lệnh range(0, 99) sẽ tạo ra vùng giá trị gồm các số từ 0 đến 98.
c) Lệnh range(100, 1) sẽ tạo ra vùng giá trị gồm các số từ 100 đến
1.
d) Lệnh range(1, 2) sẽ tạo ra vùng giá trị gồm số 1.
Đáp án:
a). Đ. Lệnh range(1, 101) sẽ tạo ra vùng giá trị bắt đầu từ 1 và kết
thúc tại 100 (vì stop là 101, nhưng không được bao gồm).
b). Đ. Lệnh range(0, 99) sẽ tạo ra vùng giá trị từ 0 đến 98 (vì stop
là 99, nhưng không được bao gồm).
c). S. Lệnh range(100, 1) sẽ trả về vùng rỗng vì start lớn hơn stop
và không có bước giảm mặc định.
d). Đ. Lệnh range(1, 2) sẽ tạo ra vùng giá trị bắt đầu từ 1 và kết
thúc tại 1 (vì stop là 2, nhưng không được bao gồm).
TRẮC NGHIỆM MỘT LỰA CHỌN
1. NHẬN BIẾT
Câu
1: Cho đoạn chương trình:
j = 0
for i in range(5):
j = j + i
print(j)
Sau khi thực hiện chương trình giá trị của
biến j bằng bao nhiêu?
A. 10.
B. 12.
C. 15.
D. 14.
Câu
2: Cho đoạn lệnh sau:
for i in range(1,10,2):
print(i)
Trên màn hình i có các giá trị là
A. 1,3,5,7,9.
B. 1,2,3,4,5,6,7,8,9,10.
C. 1,3,5,7,9,10.
D. 1,3,5,7,10.
Câu 3: Số công việc cần phải lặp với số lần xác định?
1) Đếm số học sinh của lớp.
2) Đếm số chia hết cho 5 trong đoạn từ 10 tới
100.
3) Đọc tên lần lượt từng học sinh của một lớp
có 30 em.
4) Chạy 5 vòng sân bóng.
5) Tính tổng các số có 2 chữ số.
A. 3.
B. 4.
C. 5.
D. 2.
Câu
4: Xác định số vòng lặp
cho bài toán: tính tổng các số nguyên từ 1 đến 100?
A. 1.
B. 100.
C. 99.
D. Tất cả đều sai.
Câu
5: Cho đoạn lệnh sau:
for i in range(5):
print(i)
Trên màn hình i có các giá trị là
A. 0 1 2 3 4 5.
B. 1 2 3 4 5.
C. 0 1 2 3 4.
D. 1 2 3 4.
Câu 7: Cho đoạn chương trình sau:
s=0
for i in range(6):
s=s+i
Sau khi thực hiện đoạn chương trình
trên giá trị của s là
A. 1.
B. 15.
C. 6.
D. 21.
Câu
8: Trong Python, đoạn
chương trình sau đưa ra kết quả gì?
for i in range(10, 0, -1):
print(i, ‘’)
A. 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
B. Đưa ra 10 dấu cách.
C. 1 2 3 4 5 6 7 8 9 10.
D. Không đưa ra kết quả gì.
Câu
9: Lệnh range (n) cho vùng
gồm các số nào?
A. 0, 1, ...., n - 1.
B. 1, ...., n - 1.
C. 0, 1, ...., n + 1.
D. Chương trình báo lỗi.
Câu
10: Trong câu lệnh lặp:
j = 0
for j in range(10):
print("A")
Khi kết thúc câu lệnh trên lệnh có bao
nhiêu chữ “A” xuất hiện?
A. 10 lần.
B. 1 lần.
C. 5 lần.
D. Không thực hiện.
2. THÔNG HIỂU
Câu
1: Điền phần còn thiếu …
trong đoạn code sau để được kết quả dưới đây?
55555
44444
33333
22222
11111
for i in range(5, 0, …):
print(str(i)*5)
A. -1.
B. 0.
C. None.
D. 1.
Câu
2: Cho biết kết quả khi chạy
đoạn chương trình sau:
s = 0
for i in range(3):
s = s+2*i
print(s)
A. 12.
B. 10.
C. 8.
D. 6.
Câu
3: Biến chạy trong vòng lặp
for i in range(<giá trị cuối>) tăng lên mấy đơn vị sau mỗi lần lặp?
A. 1.
B. 2.
C. 0.
D. Tất cả đều sai.
Câu 4: Lệnh nào in ra màn hình các giá trị sau?
11111
22222
33333
44444
55555
A. for i in range(1, 6): print(i, i, i, i,
i).
B. for i in range(1, 6):
print(str(i)*5).
C. for i in range(1, 5): print(str(i)*5).
D. for i in range(0, 5): print(str(i)*5).
Câu
5: Trong câu lệnh lặp:
j=0
for j in range(10):
j = j + 2
print(j)
Khi kết thúc câu lệnh trên, câu lệnh
print(j) được thực hiện bao nhiêu lần?
A. 10 lần.
B. 1 lần.
C. 5 lần.
D. Không thực hiện.
Câu
6: Cho đoạn chương trình
sau:
S=0
for i in range(1,6):
S= S * i
Sau khi thực hiện xong, kết quả S bằng
A. 15.
B. 0.
C. Kết quả khác.
D. 120.
Câu 7: Cấu trúc lặp với số lần biết trước có dạng như thế nào?
A. for < biến đếm > in range([giá trị
đầu], < giá trị cuối >, [bước nhảy]):
B. for < biến đếm > in
range([giá trị đầu], < giá trị cuối >, [bước nhảy]): < lệnh >
C. for < biến đếm > in range([giá trị
đầu], < giá trị cuối >, [bước nhảy]) < lệnh >
D. for < biến đếm > in range([giá trị
đầu] to < giá trị cuối >, [bước nhảy]): < lệnh >
Câu
8: Cho các câu lệnh sau,
hãy chỉ ra câu lệnh đúng?
A. x = 0
for i in range(10): x = x + 1
B. x = 0
for i in range(10): x:= x + 1
C. x = 0
for i in range(10) x = x + 1
D. x:= 0
for i in range(10): x = x + 1
[next]
3. VẬN DỤNG
Câu
1: Đoạn chương trình sau
có lỗi tại một dòng lệnh. Theo em, đó là lỗi ở câu lệnh nào:
# program to display student's marks from
record
student_name = 'Soyuj'
marks = {'James': 90, 'Jules': 55,
'Arthur': 77}
for student in marks:
if student == student_name:
print(marks(student))
break
else:
print('No entry with that name found.')
A. Sai kí hiệu chú thích.
B. Sai khi khai báo danh sách.
C. Sai khi gọi tới phần tử của
danh sách.
D. Không có lỗi sai ở câu lệnh nào.
Câu
2: Bạn An thực hiện đoạn
chương trình sau nhưng chương trình báo lỗi. Theo em, bạn An sai ở dòng thứ mấy:
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
sum == 0
## iterate over the list
for val in numbers:
sum = sum+val
print("The sum is", sum)
A. 4.
B. 3.
C. 2.
D. 5.
Câu
3: Cho các câu lệnh sau,
hãy chỉ ra câu lệnh đúng:
A. x = 0
for i in range(10): x = x + 1
B. x = 0
for i in range(10): x:= x + 1
C. x = 0
for i in range(10) x = x + 1
D. x:= 0
for i in range(10): x = x + 1
4. VẬN DỤNG CAO
Câu
1: Đoạn chương trình sau
giải bài toán nào?
t = 0
for i in range(1, 101):
if(i % 3 == 0 and i % 5 == 0):
t = t + i
print(t)
A. Tính tổng các số chia hết cho 3 hoặc 5
trong phạm vi từ 1 đến 100.
B. Tính tổng các số chia hết cho 3 hoặc 5
trong phạm vi từ 1 đến 101.
C. Tính tổng các số chia hết cho 3 và 5
trong phạm vi từ 1 đến 101.
D. Tính tổng các số chia hết cho
3 và 5 trong phạm vi từ 1 đến 100.
Post A Comment:
0 comments: