Bỏ qua

Trắc Nghiệm Ôn Tập — Buổi 13: Vòng Lặp for

Hướng dẫn: Chọn đáp án đúng nhất. Xem đáp án ở cuối trang.


Phần 1: Lý Thuyết Vòng Lặp

Câu 1. Tác dụng chính của vòng lặp for là gì?

  • A. Rẽ nhánh luồng thực thi của chương trình
  • B. Thực hiện lặp đi lặp lại một đoạn code với số lần biết trước
  • C. Khai báo biến
  • D. Tính toán nhanh hơn

Câu 2. Vòng lặp for gồm 3 thành phần chính nằm trong dấu ngoặc tròn. Đó là những thành phần nào?

  • A. Khởi tạo, Bước nhảy, Kết thúc
  • B. Khởi tạo, Điều kiện, Bước nhảy
  • C. Nhập, Xử lý, Xuất
  • D. Điều kiện, Thực thi, Kết thúc

Câu 3. Thành phần "Khởi tạo" trong for (ví dụ int i = 1) được thực thi bao nhiêu lần?

  • A. Thực thi ở mỗi vòng lặp
  • B. Chỉ thực thi 1 lần duy nhất khi bắt đầu vòng lặp
  • C. Thực thi ở cuối mỗi vòng lặp
  • D. Không được thực thi

Câu 4. Trong các cấu trúc sau, đâu là cách khởi tạo biến tính TỔNG đúng nhất?

  • A. int sum;
  • B. int sum = 1;
  • C. int sum = 0;
  • D. long long sum = 1;

Câu 5. Lỗi "Lặp vô hạn" (Infinite loop) xảy ra khi nào?

  • A. Khi điều kiện lặp luôn luôn true
  • B. Khi điều kiện lặp luôn luôn false
  • C. Khi không có khối lệnh bên trong
  • D. Khi khởi tạo sai

Phần 2: Đọc Hiểu Mã Lệnh

Câu 6. Đoạn code sau in ra màn hình bao nhiêu dấu sao *?

for (int i = 1; i <= 5; i++) {
    cout << "*";
}
  • A. 4
  • B. 5
  • C. 6
  • D. Lỗi

Câu 7. Đoạn code sau in ra gì?

for (int i = 10; i > 0; i--) {
    if (i == 8) cout << i;
}
  • A. 10 9 8
  • B. 8
  • C. 10 9 8 7...
  • D. Không in gì

Câu 8. Vòng lặp sau chạy bao nhiêu lần?

for (int i = 0; i < 5; i += 2) {
    cout << "A";
}
  • A. 2 lần
  • B. 3 lần
  • C. 4 lần
  • D. 5 lần

Câu 9. Để tính giai thừa \(N! = 1 \cdot 2 \cdot 3 \dots N\), biến tich phải khởi tạo bằng bao nhiêu?

  • A. 0
  • B. 1
  • C. -1
  • D. N

Câu 10. Đoạn code sau bị lỗi biên dịch ở đâu?

for (int i = 1; i <= 5; i++) {
    int sum = 0;
    sum += i;
}
cout << sum;
  • A. Dòng int sum = 0;
  • B. sum += i;
  • C. Dòng cout << sum; vì biến sum được khai báo trong vòng lặp nên không tồn tại ở ngoài
  • D. Không bị lỗi

Phần 3: Vận Dụng

Câu 11. Để in ra các số chẵn từ 2 đến 10, vòng lặp nào sau đây là TỐI ƯU nhất?

  • A. for (int i = 1; i <= 10; i++) { if (i % 2 == 0) cout << i; }
  • B. for (int i = 2; i <= 10; i += 2) { cout << i; }
  • C. for (int i = 2; i < 11; i++) { cout << i; }
  • D. Cả A và B đều tốt như nhau

Câu 12. Đoạn code nào tính chính xác tổng các số từ 1 đến N?

  • A. int sum=0; for (int i=1; i<=N; i++) sum = sum + 1;
  • B. int sum=0; for (int i=1; i<=N; i++) sum = sum + i;
  • C. int sum=1; for (int i=1; i<=N; i++) sum = sum + i;
  • D. for (int i=1; i<=N; i++) int sum = 0; sum += i;

Câu 13. Biến i trong for (int i = 0; ...) là từ viết tắt phổ biến của từ gì trong tiếng Anh?

  • A. Integer
  • B. Increment
  • C. Iterator / Index
  • D. If

Câu 14. Vòng lặp sau có phải là vòng lặp vô hạn không?

for (int i = 1; i > 0; i++) {
    // do something
}
  • A. Có, vì i bắt đầu từ 1 và cứ tăng lên, luôn luôn > 0
  • B. Không, nó sẽ tự dừng
  • C. Lỗi biên dịch
  • D. Nó chạy 1 lần rồi dừng

Câu 15. Điều kiện dừng của vòng lặp for (int i = 0; i < N; i++) là khi:

  • A. i == N - 1
  • B. i == N
  • C. i > N
  • D. i == 0

Đáp Án

Xem đáp án
Câu Đáp án Giải thích
1 B Vòng lặp for giúp lặp lại đoạn code với số lần lặp đã biết trước
2 B Cú pháp: for (Khởi tạo; Điều kiện; Bước nhảy)
3 B Phần "Khởi tạo" (VD: int i = 1) chỉ thực hiện 1 lần lúc bắt đầu
4 C Tính tổng phải khởi tạo bằng 0 (vì a + 0 = a)
5 A Lặp vô hạn xảy ra khi điều kiện lặp luôn true, code không bao giờ thoát ra được
6 B Vòng lặp chạy với i từ 1 đến 5 \(\to\) 5 lần \(\to\) 5 dấu sao
7 B Vòng lặp chạy lùi từ 10 xuống 1. Khi i = 8, in ra 8
8 B i nhận các giá trị: 0, 2, 4 (chạy 3 lần). Khi i = 6 thì vi phạm < 5 nên dừng
9 B Tính tích (giai thừa) phải khởi tạo bằng 1 (vì a * 1 = a). Nếu = 0 thì kết quả luôn = 0
10 C Biến khai báo bên trong {} của for thì chỉ tồn tại bên trong nó (Local Scope)
11 B B tối ưu hơn vì nhảy trực tiếp qua các số chẵn, số lần lặp giảm một nửa so với A
12 B sum += i mới là cộng dồn các giá trị i (1, 2, 3...) vào sum
13 C i thường viết tắt của Iterator (trình lặp) hoặc Index (chỉ số)
14 A Lặp vô hạn, mặc dù sau khi chạy rất lâu i sẽ bị tràn (overflow) thành số âm và dừng, nhưng trên lý thuyết đó là lỗi vô hạn
15 B Nó chạy khi i < N. Khi i = N, điều kiện i < N trả về false và vòng lặp kết thúc