What does the following program display?

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
int main() {
    int a[5] = {1, 2, 3};
    printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);
    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: "1 2 3 0 0". Khi danh sách khởi tạo có ít phần tử hơn kích thước mảng, C điền ba giá trị đã cho vào a[0], a[1], a[2] rồi khởi tạo toàn bộ phần còn lại bằng 0, đúng theo quy tắc khởi tạo thiếu của ngôn ngữ, nên a[3] và a[4] đều bằng 0 chứ không phải rác. "1 2 3 4 5" sai vì ngôn ngữ không suy diễn quy luật tăng dần từ ba số đầu, nó chỉ biết điền 0. "1 2 3 a[3] a[4]" sai vì printf với %d in giá trị của biểu thức, không bao giờ in lại tên phần tử; tên chỉ tồn tại trong mã nguồn, sau khi dịch không còn. "An error will be raised." sai vì khởi tạo thiếu phần tử là hợp lệ hoàn toàn, trình biên dịch không báo lỗi.

Cùng phần 7

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