What will be the output of the following C code?

4 phương ánCó giải thích
Đề bài
int a[5] = {1, 2, 3};
printf("%d", a[4]);

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: "0". Khi danh sách khởi tạo có ít giá trị hơn số phần tử khai báo, chuẩn C bắt phần còn lại phải được khởi tạo như đối tượng tĩnh, nghĩa là bằng 0 với kiểu số. Mảng này có năm ô, ba ô đầu nhận 1, 2, 3 còn hai ô cuối được điền 0, nên phần tử ở chỉ số 4 là 0 và lệnh in cho ra 0. Chính quy tắc đó là lý do người ta hay viết cặp ngoặc với một số 0 duy nhất để xoá trắng cả mảng. Lựa chọn "3" là giá trị ở chỉ số 2, tức giá trị khởi tạo cuối cùng được viết ra. Lựa chọn "Runtime error" sai vì chỉ số 4 vẫn nằm trong năm phần tử đã khai báo, không có truy cập ngoài biên. Lựa chọn "Compilation error" sai vì viết thiếu giá trị khởi tạo là hợp lệ; chỉ viết nhiều hơn số phần tử mới bị báo lỗi.

Cùng phần 7

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