1. Trong cấu trúc `while (điều_kiện) { khối_lệnh; }`, nếu `điều_kiện` ban đầu là sai, điều gì sẽ xảy ra?
A. Khối lệnh sẽ được thực hiện đúng một lần.
B. Khối lệnh sẽ không bao giờ được thực hiện.
C. Chương trình sẽ báo lỗi.
D. Khối lệnh sẽ được thực hiện cho đến khi điều kiện trở thành đúng.
2. Phát biểu nào sau đây mô tả cách **tốt nhất** để tránh vô hạn lặp trong vòng lặp `while`?
A. Đặt một biến đếm và tăng biến đó trong vòng lặp.
B. Đảm bảo rằng có một cách để điều kiện lặp trở thành sai.
C. Sử dụng câu lệnh `break` để thoát vòng lặp.
D. Thường xuyên kiểm tra giá trị của các biến liên quan đến điều kiện.
3. Đoạn mã giả: `num = 10; while (num % 2 == 0) { print(num); num = num / 2; }`. Nếu `num` ban đầu là 20, đầu ra sẽ là gì?
A. 20 10 5
B. 20 10
C. 10 5
D. 20 10 5 2.5
4. Cho đoạn mã giả: `i = 1; while (i <= 5) { print(i); i = i + 1; }`. Đầu ra của đoạn mã này là gì?
A. 1 2 3 4 5
B. 1 2 3 4
C. 1 2 3 4 5 6
D. 5 4 3 2 1
5. Câu lệnh `while (true) { ... }` trong nhiều ngôn ngữ lập trình sẽ dẫn đến hiện tượng gì nếu không có cơ chế thoát?
A. Thực thi khối lệnh đúng một lần.
B. Vô hạn lặp.
C. Dừng chương trình và báo lỗi.
D. Thực thi khối lệnh 10 lần.
6. Khi nào việc sử dụng vòng lặp `while` hiệu quả hơn so với vòng lặp `for`?
A. Khi số lần lặp đã được xác định rõ ràng trước khi bắt đầu vòng lặp.
B. Khi điều kiện dừng lặp phụ thuộc vào một biến có thể thay đổi giá trị một cách không dự đoán trước.
C. Khi muốn lặp qua từng phần tử của một mảng hoặc danh sách.
D. Khi cần thực hiện một khối lệnh cố định một số lần nhất định.
7. Phát biểu nào sau đây là **đúng** về vai trò của biến điều kiện trong vòng lặp `while`?
A. Biến điều kiện chỉ được kiểm tra một lần duy nhất.
B. Biến điều kiện phải luôn luôn là một số nguyên.
C. Biến điều kiện được kiểm tra trước mỗi lần thực hiện khối lệnh.
D. Biến điều kiện chỉ được thay đổi bên ngoài vòng lặp.
8. Phát biểu nào sau đây mô tả đúng nhất cách thức hoạt động của vòng lặp `while`?
A. Thực hiện khối lệnh, sau đó kiểm tra điều kiện, nếu sai thì dừng.
B. Kiểm tra điều kiện, nếu đúng thì thực hiện khối lệnh, sau đó lặp lại kiểm tra.
C. Thực hiện khối lệnh một lần, sau đó kiểm tra điều kiện.
D. Kiểm tra điều kiện, nếu sai thì thực hiện khối lệnh, sau đó lặp lại kiểm tra.
9. Phát biểu nào sau đây là **sai** về cách sử dụng câu lệnh `while` trong lập trình?
A. Nó là một vòng lặp có điều kiện.
B. Nó có thể được sử dụng thay thế cho vòng lặp `for` trong mọi trường hợp.
C. Nó yêu cầu một điều kiện để bắt đầu vòng lặp.
D. Nó cần có một cách để điều kiện trở thành sai.
10. Đâu là ví dụ về việc sử dụng `while` để chờ một sự kiện xảy ra?
A. Tính tổng các số từ 1 đến 10.
B. Chờ cho đến khi người dùng nhấn một phím cụ thể.
C. Lặp qua tất cả các mục trong danh sách.
D. Đếm ngược từ 10 về 1.
11. Phát biểu nào sau đây mô tả một trường hợp **không phù hợp** để sử dụng vòng lặp `while`?
A. Thực hiện một thao tác cho đến khi người dùng nhập đúng định dạng dữ liệu.
B. Tính tổng của các phần tử trong một mảng có kích thước cố định.
C. Tìm kiếm một giá trị trong danh sách mà không biết trước vị trí.
D. Lặp lại một hành động cho đến khi một điều kiện phức tạp được thỏa mãn.
12. Trong cấu trúc `while (điều_kiện) { khối_lệnh; }`, nếu `khối_lệnh` không bao giờ làm thay đổi `điều_kiện` để nó trở thành sai, điều gì sẽ xảy ra?
A. Vòng lặp sẽ kết thúc sau một số lần nhất định.
B. Chương trình sẽ dừng và báo lỗi.
C. Vòng lặp sẽ chạy mãi mãi (vô hạn lặp).
D. Khối lệnh sẽ được thực hiện một lần duy nhất.
13. Trong lập trình Python, cú pháp của vòng lặp `while` là gì?
A. for (điều_kiện):
B. while điều_kiện:
C. loop while điều_kiện:
D. repeat while điều_kiện:
14. Cho đoạn mã giả: `count = 3; while (count > 0) { print(Hello); count = count - 1; }`. Đầu ra của đoạn mã này là gì?
A. Hello Hello Hello
B. Hello
C. Hello Hello
D. Hello Hello Hello Hello
15. Phân tích đoạn mã giả sau: `x = 0; while (x < 5) { x = x + 2; }`. Sau khi vòng lặp kết thúc, giá trị của `x` là bao nhiêu?
16. Trong lập trình, câu lệnh lặp `while` được sử dụng khi nào?
A. Khi biết trước số lần cần lặp.
B. Khi điều kiện lặp không chắc chắn và có thể thay đổi trong quá trình thực thi.
C. Khi cần thực hiện một hành động duy nhất.
D. Khi cấu trúc vòng lặp được xác định rõ ràng bởi một chuỗi các lệnh.
17. Câu lệnh `while` thực hiện khối lệnh bao nhiêu lần nếu điều kiện ban đầu là sai?
A. 1 lần
B. Số lần tùy thuộc vào độ phức tạp của điều kiện.
C. 0 lần
D. 10 lần
18. Yếu tố nào là bắt buộc phải có trong một vòng lặp `while` để đảm bảo nó có thể kết thúc?
A. Một biến đếm được khởi tạo.
B. Một câu lệnh `break` bên trong khối lệnh.
C. Một cơ chế thay đổi điều kiện để nó có thể trở thành sai.
D. Một câu lệnh `continue` để bỏ qua lần lặp hiện tại.
19. Nếu bạn muốn một vòng lặp `while` thực hiện đúng 5 lần, bạn có thể sử dụng biến đếm như thế nào?
A. Khởi tạo biến đếm bằng 1, lặp `while` biến đếm < 6.
B. Khởi tạo biến đếm bằng 0, lặp `while` biến đếm < 5.
C. Khởi tạo biến đếm bằng 5, lặp `while` biến đếm > 0.
D. Cả ba cách trên đều có thể.
20. Nếu bạn có một danh sách các số và muốn tìm số lớn nhất bằng vòng lặp `while`, bạn cần làm gì trong mỗi lần lặp?
A. So sánh số hiện tại với số đầu tiên của danh sách.
B. So sánh số hiện tại với số nhỏ nhất đã tìm thấy.
C. So sánh số hiện tại với số lớn nhất đã tìm thấy và cập nhật nếu cần.
D. Thêm số hiện tại vào một biến tổng.
21. Xét đoạn mã giả: `sum = 0; i = 1; while (i <= 10) { sum = sum + i; i = i + 1; }`. Giá trị cuối cùng của `sum` là bao nhiêu?
22. Đâu là hậu quả có thể xảy ra nếu điều kiện trong vòng lặp `while` luôn đúng?
A. Chương trình sẽ chạy nhanh hơn.
B. Chương trình sẽ bị treo (vô hạn lặp).
C. Chương trình sẽ tự động kết thúc.
D. Chương trình sẽ báo lỗi cú pháp.
23. Phát biểu nào sau đây là **sai** về vòng lặp `while`?
A. Vòng lặp `while` luôn kiểm tra điều kiện trước khi thực thi.
B. Vòng lặp `while` có thể không thực thi lần nào.
C. Vòng lặp `while` được sử dụng khi số lần lặp đã biết trước.
D. Vòng lặp `while` có thể dẫn đến vô hạn lặp nếu điều kiện luôn đúng.
24. Đâu là một ví dụ về việc áp dụng vòng lặp `while` để xử lý dữ liệu đầu vào không xác định trước?
A. Tính tổng của 100 số tự nhiên đầu tiên.
B. Đọc và xử lý từng dòng từ một tệp văn bản cho đến khi hết tệp.
C. In ra các số từ 1 đến 10.
D. Thực hiện một phép tính 5 lần.
25. Xét đoạn mã giả: `while (a < 10) { a = a + 1; }`. Nếu ban đầu `a = 5`, sau khi thực thi vòng lặp, giá trị của `a` sẽ là bao nhiêu?