1. Cú pháp chung của câu lệnh lặp "while" trong nhiều ngôn ngữ lập trình là gì?
A. for (khởi tạo; điều kiện; bước nhảy) { khối lệnh }
B. while (điều kiện) { khối lệnh }
C. do { khối lệnh } while (điều kiện);
D. switch (biến) { case giá_trị: ... }
2. Trong ngôn ngữ 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 lặp cụ thể.
B. Khi cần thực hiện một khối lệnh một lần duy nhất.
C. Khi muốn lặp lại một khối lệnh CHỪNG NÀO một điều kiện còn ĐÚNG.
D. Khi muốn thực hiện một khối lệnh cho đến khi gặp lệnh "break".
3. Nếu bạn muốn lặp lại một thao tác cho đến khi người dùng nhập đúng một ký tự cụ thể, câu lệnh "while" là lựa chọn phù hợp vì:
A. Số lần lặp đã biết trước.
B. Điều kiện dừng (nhập đúng ký tự) không rõ ràng về số lần lặp.
C. Cần thực hiện ít nhất một lần nhập.
D. Lệnh "while" hiệu quả hơn cho việc nhập liệu.
4. Đâu là cách diễn đạt ĐÚNG cho một vòng lặp "while" đếm ngược từ 5 về 1?
A. i = 5; while (i >= 1) { print(i); i = i + 1; }
B. i = 5; while (i > 0) { print(i); i = i - 1; }
C. i = 1; while (i <= 5) { print(i); i = i - 1; }
D. i = 5; while (i < 1) { print(i); i = i - 1; }
5. Đâu là cách diễn đạt ĐÚNG để lặp lại một chuỗi ký tự "ABC" đúng 3 lần bằng vòng lặp "while"?
A. count = 0; while (count < 3) { print("ABC"); count = count + 1; }
B. count = 1; while (count <= 3) { print("ABC"); count = count - 1; }
C. count = 3; while (count > 0) { print("ABC"); count = count + 1; }
D. count = 1; while (count < 3) { print("ABC"); count = count + 1; }
6. Xét đoạn mã giả: "x = 1; total = 0; while (x <= 5) { total = total + x; x = x + 1; }". Sau khi vòng lặp kết thúc, giá trị của "total" là bao nhiêu?
7. Tại sao việc sử dụng biến đếm (counter) bên trong vòng lặp "while" là một cách phổ biến để kiểm soát số lần lặp?
A. Vì biến đếm luôn đảm bảo vòng lặp kết thúc.
B. Để làm cho chương trình chạy chậm lại.
C. Vì biến đếm cho phép thay đổi giá trị và kiểm soát điều kiện thoát một cách rõ ràng.
D. Vì biến đếm là yêu cầu bắt buộc của mọi vòng lặp.
8. Nếu điều kiện trong câu lệnh "while" ban đầu đã sai, điều gì sẽ xảy ra?
A. Khối lệnh bên trong vòng lặp sẽ được thực thi đúng một lần.
B. Chương trình sẽ báo lỗi cú pháp.
C. Khối lệnh bên trong vòng lặp sẽ KHÔNG BAO GIỜ được thực thi.
D. Vòng lặp sẽ chạy vô hạn.
9. Câu lệnh "while" khác với "for" ở điểm nào cơ bản nhất về cách xác định số lần lặp?
A. "while" dùng cho vòng lặp vô điều kiện, "for" dùng cho vòng lặp có điều kiện.
B. "while" thường dùng khi số lần lặp CHƯA BIẾT TRƯỚC, "for" thường dùng khi số lần lặp ĐÃ BIẾT TRƯỚC.
C. "while" chỉ lặp khi điều kiện đúng, "for" lặp đúng số lần chỉ định.
D. Cả hai đều hoạt động giống nhau hoàn toàn.
10. Nếu bạn cần tính tổng của các số từ 1 đến N, và N là một số nhập từ bàn phím, cách tiếp cận nào với "while" là phù hợp nhất?
A. Sử dụng "while (tong <= N)" để cộng N vào tổng.
B. Sử dụng "while (so_hien_tai <= N)" để cộng "so_hien_tai" vào tổng và tăng "so_hien_tai".
C. Sử dụng "while (true)" và tự ngắt khi số hiện tại lớn hơn N.
D. Chỉ cần "while (N > 0)" và trừ N đi 1.
11. Câu lệnh "do-while" (hoặc tương tự) khác với "while" ở điểm nào quan trọng nhất?
A. "do-while" luôn chạy ít nhất một lần, "while" có thể không chạy lần nào.
B. "do-while" kiểm tra điều kiện ở cuối, "while" kiểm tra ở đầu.
C. "do-while" có cú pháp khác hoàn toàn.
D. Cả hai câu trả lời A và B đều đúng.
12. Xét đoạn mã giả: "while (x < 10) { x = x + 2; }". Nếu biến "x" ban đầu có giá trị là 4, sau khi thực thi vòng lặp, giá trị của "x" sẽ là bao nhiêu?
13. Trong Python, câu lệnh "while True:" sẽ tạo ra vòng lặp như thế nào?
A. Vòng lặp chạy đúng 100 lần.
B. Vòng lặp sẽ chạy đến khi gặp lệnh "break".
C. Vòng lặp sẽ chạy đúng 1 lần.
D. Vòng lặp sẽ báo lỗi.
14. Xét đoạn mã giả: "x = 10; while (x >= 0) { if (x % 2 == 0) print(x); x = x - 1; }". Số chẵn nào sẽ được in ra màn hình?
A. 10 8 6 4 2
B. 10 8 6 4 2 0
C. 9 7 5 3 1
D. 10 9 8 7 6 5 4 3 2 1 0
15. Tại sao câu lệnh "while" đôi khi được gọi là "entry-controlled loop" (vòng lặp kiểm soát ở đầu)?
A. Vì nó kiểm soát việc thoát khỏi vòng lặp.
B. Vì nó kiểm soát việc thực thi khối lệnh dựa trên điều kiện đặt ở đầu vòng lặp.
C. Vì nó kiểm soát việc khởi tạo biến.
D. Vì nó kiểm soát việc cập nhật biến.
16. Khi xử lý dữ liệu nhập từ người dùng bằng "while", mục đích chính của việc kiểm tra tính hợp lệ của dữ liệu trong điều kiện lặp là gì?
A. Để chương trình chạy nhanh hơn.
B. Để đảm bảo dữ liệu đầu vào đáp ứng yêu cầu, tránh lỗi hoặc hành vi không mong muốn.
C. Để lặp lại yêu cầu nhập dữ liệu vô số lần.
D. Để lưu trữ tất cả các lần nhập sai.
17. Đâu là yếu tố QUAN TRỌNG NHẤT cần chú ý để tránh vòng lặp vô hạn khi sử dụng câu lệnh "while"?
A. Luôn sử dụng biến đếm.
B. Điều kiện lặp phải thay đổi và có khả năng trở thành sai.
C. Luôn đặt lệnh "break" bên trong vòng lặp.
D. Khối lệnh bên trong vòng lặp phải luôn thay đổi giá trị.
18. Đoạn mã giả: "count = 0; while (count < 3) { print("Hello"); count = count + 1; }". Lần lặp thứ hai, giá trị của "count" là bao nhiêu trước khi lệnh "print" được thực thi?
19. Đoạn mã giả: "num = 5; while (num > 0) { print(num); num = num - 2; }". Kết quả in ra màn hình là gì?
A. 5 3 1
B. 5 3 1 -1
C. 5 4 3 2 1
D. 5 3
20. Lệnh "continue" trong vòng lặp "while" có tác dụng gì?
A. Thoát hoàn toàn khỏi vòng lặp.
B. Bỏ qua các lệnh còn lại trong khối lệnh 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 kế tiếp.
C. Tăng giá trị biến đếm lên một đơn vị.
D. In ra giá trị hiện tại của biến điều kiện.
21. Nếu bạn muốn chuyển đổi một vòng lặp "for" sang vòng lặp "while", bạn cần xác định rõ các thành phần nào của vòng lặp "for"?
A. Chỉ cần điều kiện lặp.
B. Khởi tạo biến, điều kiện lặp và phép cập nhật biến sau mỗi lần lặp.
C. Chỉ cần số lần lặp.
D. Chỉ cần khối lệnh bên trong.
22. Trong cấu trúc lặp "while", lệnh "break" được sử dụng để làm gì?
A. Tiếp tục vòng lặp với điều kiện mới.
B. Bỏ qua phần còn lại của khối lệnh trong lần lặp hiện tại và bắt đầu lần lặp tiếp theo.
C. Thoát khỏi vòng lặp ngay lập tức, bất kể điều kiện còn đúng hay sai.
D. Khởi tạo lại các biến đếm.
23. Đâu là một ví dụ về điều kiện có thể dẫn đến vòng lặp vô hạn trong "while"?
A. while (i > 0) { i = i - 1; }
B. while (true) { }
C. while (i < 10) { i = i + 0; }
D. Cả hai câu trả lời B và C đều đúng.
24. Đoạn mã giả sau: "i = 1; while (i <= 5) { print(i); i = i + 1; }". Kết quả in ra màn hình là gì?
A. 1 2 3 4 5
B. 1 2 3 4
C. 1 2 3 4 5 6
D. 2 3 4 5
25. Câu lệnh "while" thuộc loại vòng lặp nào?
A. Vòng lặp có số lần lặp cố định.
B. Vòng lặp có điều kiện.
C. Vòng lặp vô điều kiện.
D. Vòng lặp có cấu trúc định sẵn.