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 i,j,result=0;
    for(i=3;i<=5;i++){
            for(j=5;j>i;j--)
            result+=j;
        }
    printf("%d",result);
            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: "14". Vòng trong for(j=5;j>i;j--) không có ngoặc nhọn nên thân nó chỉ gồm đúng một lệnh result+=j; phạm vi khối trong C do ngoặc nhọn quyết định, không do thụt lề. Lần theo từng lượt: i bằng 3 thì j nhận 5 rồi 4, cộng được 9; i bằng 4 thì j chỉ nhận 5, result thành 14; i bằng 5 thì j khởi tạo bằng 5 không thoả j>i nên vòng trong không chạy lần nào. Chương trình in 14. Cần công bố khuyết điểm: bản khoá in kèm ghi 16, con số đó không khớp với bất kỳ lần lần theo trung thực nào của hai vòng lặp. "15" là tổng 5+4+3+2+1, chỉ ra được nếu bỏ ràng buộc j>i và cho j chạy tới 1. "16" lớn hơn tổng thật 2 đơn vị mà không lượt lặp nào cộng thêm 2. "20" đòi cộng cả những giá trị j mà điều kiện j>i đã chặn.

Cùng phần 3

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