Choose the best comment about the output of the following C code:

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
void main()
{
    int i = 0;
    while (i < 5)
    {
        i++;
        printf("Hi-");
        while (i < 4)
        {
            i++;
            printf("Hello-");
        }
    }
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "Hi-Hello-Hello-Hello-Hi-". Hai vòng lặp dùng chung biến i nên vòng trong ăn luôn phần đếm của vòng ngoài. Vào vòng ngoài lần đầu với i bằng 0: i tăng thành 1 rồi in Hi-; vòng trong chạy khi i còn nhỏ hơn 4, lần lượt đưa i lên 2, 3, 4 và in Hello- ba lần. Quay lại vòng ngoài, i bằng 4 vẫn nhỏ hơn 5 nên i thành 5 và in Hi- lần thứ hai; lúc này điều kiện vòng trong đã sai nên không in thêm Hello-. Vòng ngoài kiểm tra lại, i bằng 5 nên dừng. Lựa chọn "Hi-Hi-Hi-Hi-Hello-Hello-Hello-Hi-" giả định vòng ngoài chạy nhiều lượt trước khi vòng trong vào việc, trái với thứ tự lồng nhau. Lựa chọn "Hi-Hi-Hi-Hi-Hi-Hello-Hello-Hello-" tách hẳn hai vòng thành hai giai đoạn rời. Lựa chọn "Hi-Hello-Hello-Hello-Hello-Hi-" đếm bốn lần Hello-, nhưng i đã là 1 khi vào vòng trong nên chỉ còn ba bước để tới 4.

Cùng phần 3

Xuất hiện trong 1 bộ đề