What is the output when the sample code below is executed?

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
int  main()
{
        int x=7;
        for(;x>3;)
            printf("Yes");
            x--;
    return 0;
}

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: "Infinite loop". Phạm vi của thân vòng lặp do ngoặc nhọn quyết định, không do thụt lề: for ở đây không mở ngoặc nhọn nên thân nó chỉ ôm đúng một lệnh là printf, còn x-- nằm ngoài vòng lặp dù được thụt vào cho giống thân. Vì vậy x giữ nguyên giá trị 7, điều kiện x lớn hơn 3 mãi đúng, chương trình in Yes không ngừng và x-- không bao giờ tới lượt chạy. Lựa chọn "Compile time error" sai vì for cho phép bỏ trống cả phần khởi tạo và phần cập nhật, chỉ cần giữ hai dấu chấm phẩy, nên mã này dịch được. Lựa chọn "YesYesYesYes" là kết quả nếu x-- được đưa vào trong ngoặc nhọn cùng printf, khi đó x giảm từ 7 xuống 3 và in bốn lần. Lựa chọn "Yes" đòi vòng lặp chỉ chạy một lượt, điều chỉ xảy ra nếu có break hoặc nếu điều kiện hỏng ngay sau lượt đầu.

Cùng phần 3

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