Bài 21 Câu lệnh lặp while

Lớp 10Tin Học22 câu hỏiBài tập

Phần 1

Câu 1

(Câu 21.1 trang 43 SBT Tin học 10) Cho đoạn chương trình:
i = 1
while i < 5:
print(1/(i + 2), end = " ")
i = i + 1
Chương trình trên in ra gì và khi nào kết thúc?
AIn lần lượt các giá trị gần đúng của 1/3, 1/4, 1/5, 1/6 trên cùng một dòng; chương trình dừng khi i = 5.
BIn lần lượt các giá trị gần đúng của 1/2, 1/3, 1/4, 1/5 trên cùng một dòng; chương trình dừng khi i = 4.
CKhông in gì vì điều kiện i < 5 sai ngay từ đầu.
DIn vô hạn các giá trị 1/(i + 2) vì i không thay đổi trong vòng lặp.

Câu 2

(Câu 21.1 trang 43 SBT Tin học 10) Cho đoạn chương trình:
i = 5
while i < 5:
print(1/(i + 2), end = " ")
i = i + 1
Chương trình trên cho kết quả nào?
AKhông in gì và kết thúc luôn vì điều kiện i < 5 không được thoả mãn.
BIn ra 1/7 rồi kết thúc.
CIn ra 1/7, 1/8, 1/9 rồi kết thúc.
DIn vô hạn vì i luôn nhỏ hơn 5.

Câu 3

(Câu 21.2 trang 44 SBT Tin học 10) Cho đoạn chương trình:
x = 1
while x > 0:
x = int(input("Thu nhập của hộ tiếp theo: "))
Đoạn chương trình trên thực hiện công việc gì?
ANhập dữ liệu thu nhập của các hộ gia đình cho tới khi giá trị nhập vào nhỏ hơn hoặc bằng 0 thì kết thúc.
BNhập đúng một lần thu nhập của hộ gia đình rồi kết thúc ngay.
CTính tổng thu nhập của các hộ gia đình.
DIn ra thu nhập trung bình của các hộ gia đình được khảo sát.

Câu 4

(Câu 21.3 trang 44 SBT Tin học 10) Cho hai đoạn chương trình:
Đoạn 1:
s = 0
for i in range(1, 11):
s = s + i
print(s)
Đoạn 2:
s = 0
i = 1
while i < 11:
s = s + i
i = i + 1
print(s)
Nhận xét nào đúng?
ACả hai đoạn chương trình đều tính và in ra tổng các số tự nhiên từ 1 đến 10.
BĐoạn 1 tính tổng từ 1 đến 10, còn Đoạn 2 tính tổng từ 1 đến 11.
CĐoạn 1 in ra 10, còn Đoạn 2 in ra 11.
DĐoạn 2 bị lặp vô hạn vì i không thay đổi.

Câu 5

(Câu 21.6 trang 45 SBT Tin học 10) Cho đoạn chương trình:
s = 0
i = 0
while s < 2:
i = i + 1
s = s + 1/i
print("Giá trị i cần tìm = ", i)
Đoạn chương trình trên thực hiện công việc gì?
ATìm số tự nhiên i nhỏ nhất sao cho tổng 1 + 1/2 + 1/3 + ... + 1/i lớn hơn hoặc bằng 2.
BTìm số tự nhiên i lớn nhất sao cho tổng 1 + 1/2 + 1/3 + ... + 1/i nhỏ hơn 2.
CTính tổng các số tự nhiên từ 1 đến i.
DTính tích các phân số 1/i cho tới khi tích lớn hơn 2.

Câu 6

(Câu 21.7 trang 45 SBT Tin học 10) Trong 100 số tự nhiên đầu tiên, cần đếm các số thoả mãn điều kiện hoặc chia hết cho 5 hoặc chia cho 3 dư 1. Kết quả đếm được là bao nhiêu?
A47.
B20.
C33.
D53.

Phần 2

Câu 1

(Câu 21.4 trang 44 SBT Tin học 10) Thay thế câu lệnh for bằng câu lệnh while trong đoạn chương trình tính tổng bình phương các số tự nhiên từ 5 đến 10. Nhận định nào sau đây đúng hoặc sai?
a)Có thể khởi tạo s = 0 trước vòng lặp.
b)Có thể gán i = 5 trước vòng lặp while.
c)Có thể dùng điều kiện while i < 11 để duyệt các giá trị i từ 5 đến 10.
d)Trong vòng lặp, không cần tăng i vì while tự động tăng biến đếm giống for.

Câu 2

(Câu 21.5 trang 44 SBT Tin học 10) Với câu lệnh for dạng tổng quát for in range(gia_tri1, gia_tri2): , nhận định nào sau đây đúng hoặc sai?
a)Có thể thay bằng cách gán = gia_tri1 trước vòng lặp while.
b)Điều kiện lặp tương ứng có thể viết là while < gia_tri2.
c)Sau khi thực hiện , cần tăng thêm 1.
d)Khi thay for bằng while, không cần khởi tạo biến điều khiển vòng lặp.

Câu 3

(Câu 21.7 trang 45 SBT Tin học 10) Viết chương trình đếm trong 100 số tự nhiên đầu tiên có bao nhiêu số thoả mãn điều kiện hoặc chia hết cho 5 hoặc chia cho 3 dư 1. Nhận định nào sau đây đúng hoặc sai?
a)Có thể khởi tạo dem = 0 trước vòng lặp.
b)Có thể dùng vòng lặp while i < 101 để xét các số từ 1 đến 100.
c)Điều kiện kiểm tra có thể viết là (i%5 == 0) or (i%3 == 1).
d)Sau mỗi lần lặp, không cần tăng i vì điều kiện while tự động thay đổi.

Câu 4

(Câu 21.8 trang 45 SBT Tin học 10) Sử dụng câu lệnh while để giải bài toán “Gà và Chó”: vừa gà vừa chó có 36 con, 100 chân. Nhận định nào sau đây đúng hoặc sai?
a)Nếu k là số gà thì số chó là 36 - k.
b)Tổng số chân có thể tính bằng k*2 + (36 - k)*4.
c)Có thể dùng vòng lặp while k < 37 để xét các khả năng số gà.
d)Nếu k*2 + (36 - k)*4 == 100 thì số chó bằng k.

Câu 5

(Câu 21.8 trang 45 SBT Tin học 10) Về kết quả bài toán “Gà và Chó” có 36 con, 100 chân, nhận định nào sau đây đúng hoặc sai?
a)Số gà là 22.
b)Số chó là 14.
c)Với 22 con gà và 14 con chó, tổng số chân là 100.
d)Số gà là 14 và số chó là 22.

Câu 6

(Câu 21.9 trang 45 SBT Tin học 10) Viết chương trình tính tổng các chữ số của một số tự nhiên n được nhập từ bàn phím. Nhận định nào sau đây đúng hoặc sai?
a)Có thể nhập n bằng lệnh n = int(input("Nhập số nguyên dương n = ")).
b)Có thể khởi tạo tong = 0 trước vòng lặp.
c)Trong vòng lặp, có thể cộng chữ số hàng đơn vị vào tổng bằng tong = tong + n % 10.
d)Để bỏ chữ số hàng đơn vị vừa xét, cần dùng lệnh n = n * 10.

Câu 7

(Câu 21.9 trang 45 SBT Tin học 10) Về chương trình tính tổng các chữ số của số tự nhiên n, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng biến luu = n để lưu lại giá trị ban đầu của n.
b)Vòng lặp while n > 0 giúp lần lượt xử lí các chữ số của n.
c)Phép n // 10 giúp loại bỏ chữ số hàng đơn vị của n.
d)Phép n % 10 giúp lấy tất cả các chữ số của n cùng một lúc.

Câu 8

(Câu 21.10 trang 45 SBT Tin học 10) Viết chương trình in các số tự nhiên từ 1 tới 100 thành một bảng có 10 hàng, mỗi hàng có 10 số theo trình tự từ trái qua phải, từ trên xuống dưới. Nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng hai vòng lặp while lồng nhau để in bảng số.
b)Biến i có thể dùng để xác định hàng của bảng.
c)Biến j có thể dùng để in lần lượt 10 số trong mỗi hàng.
d)Chỉ cần một lệnh print(100) là in được bảng 10 hàng, mỗi hàng 10 số.

Câu 9

(Câu 21.10 trang 45 SBT Tin học 10) Về chương trình in bảng số từ 1 tới 100, nhận định nào sau đây đúng hoặc sai?
a)Có thể khởi tạo i = 0 và dùng điều kiện while i < 10 cho vòng lặp ngoài.
b)Trong mỗi hàng, có thể khởi tạo j = 1 và dùng điều kiện while j < 11.
c)Giá trị i*10 + j giúp in đúng các số từ trái qua phải, từ trên xuống dưới.
d)Sau khi in xong một hàng, không cần dùng print("") để xuống dòng.

Câu 10

(Câu 21.11 trang 45 SBT Tin học 10) Viết chương trình hỗ trợ khảo sát thu nhập hộ gia đình, nhập dữ liệu cho tới khi nhập vào số 0. Nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng biến so_ho_gd để đếm số hộ gia đình được khảo sát.
b)Có thể dùng biến tongthunhap để cộng tổng thu nhập của các hộ được khảo sát.
c)Có thể dùng biến thunhap = 1 ban đầu để vòng lặp while thunhap > 0 được thực hiện.
d)Khi người dùng nhập 0, chương trình vẫn phải tính thêm một hộ gia đình có thu nhập bằng 0 vào kết quả khảo sát.

Câu 11

(Câu 21.11 trang 45 SBT Tin học 10) Về việc xác định các hộ gia đình có thu nhập dưới 20 triệu đồng trong chương trình khảo sát, nhận định nào sau đây đúng hoặc sai?
a)Nếu thunhap < 20 và thunhap > 0 thì có thể tính hộ đó là hộ có thu nhập dưới 20 triệu đồng.
b)Có thể dùng biến so_ho_ngheo để đếm số hộ có thu nhập dưới 20 triệu đồng.
c)Có thể dùng biến tongthunhap_ngheo để tính tổng thu nhập của các hộ có thu nhập dưới 20 triệu đồng.
d)Nếu không có hộ nào dưới 20 triệu đồng thì vẫn tính thu nhập bình quân nhóm này bằng tongthunhap_ngheo/so_ho_ngheo.

Câu 12

(Câu 21.12 trang 45 SBT Tin học 10) Trong chương trình giải Câu 21.11, có thể tìm thấy các cấu trúc lập trình cơ bản nào? Nhận định nào sau đây đúng hoặc sai?
a)Chương trình có cấu trúc tuần tự qua các lệnh khởi tạo biến.
b)Chương trình có cấu trúc lặp thông qua câu lệnh while thunhap > 0.
c)Chương trình có cấu trúc rẽ nhánh thông qua các câu lệnh if.
d)Chương trình chỉ có cấu trúc tuần tự, không có lặp và không có rẽ nhánh.

Câu 13

(Câu 21.13 trang 45 SBT Tin học 10) Số Palindrom là số mà nếu viết các chữ số của số đó theo trình tự ngược lại ta thu được số có giá trị bằng chính số ban đầu. Về chương trình xác định một số tự nhiên có phải là số Palindrom hay không, nhận định nào sau đây đúng hoặc sai?
a)Có thể dùng biến so_bandau để lưu số được nhập từ bàn phím.
b)Có thể dùng biến so_nghichdao để lần lượt tạo số viết theo trình tự ngược lại.
c)Trong vòng lặp, có thể cập nhật so_nghichdao = so_nghichdao*10 + k % 10.
d)Muốn tạo số nghịch đảo, cần cập nhật k = k * 10 sau mỗi bước.

Câu 14

(Câu 21.13 trang 45 SBT Tin học 10) Về cách kiểm tra số Palindrom, nhận định nào sau đây đúng hoặc sai?
a)Sau khi tạo số nghịch đảo, nếu so_nghichdao == so_bandau thì số đã cho là Palindrom.
b)Nếu so_nghichdao != so_bandau thì số đã cho không phải là Palindrom.
c)Số 121 là một số Palindrom.
d)Mọi số tự nhiên có ba chữ số đều là số Palindrom.

Câu 15

(Câu 21.14 trang 45 SBT Tin học 10) Số hoàn hảo là số tự nhiên có giá trị bằng tổng các ước thực sự của nó. Nhận định nào sau đây đúng hoặc sai?
a)Các ước thực sự của một số là các ước nhỏ hơn chính số đó.
b)Số 6 là số hoàn hảo vì 1 + 2 + 3 = 6.
c)Số 28 là số hoàn hảo vì 1 + 2 + 4 + 7 + 14 = 28.
d)Số hoàn hảo là số luôn lớn hơn tổng các ước thực sự của nó.

Câu 16

(Câu 21.14 trang 45 SBT Tin học 10) Viết chương trình xác định số hoàn hảo đầu tiên lớn hơn số tự nhiên n được nhập vào từ bàn phím. Nhận định nào sau đây đúng hoặc sai?
a)Có thể bắt đầu kiểm tra từ số n + 1.
b)Có thể dùng biến tim_ra = False để điều khiển vòng lặp tìm kiếm.
c)Với mỗi số cần kiểm tra, có thể tính tổng các ước thực sự bằng cách duyệt i từ 1 đến so_hoanhao - 1.
d)Nếu tong_uocso != so_hoanhao thì cần dừng chương trình ngay vì không còn số hoàn hảo nào lớn hơn n.