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", a[0]);
    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". Khi danh sách khởi tạo có ít giá trị hơn số phần tử, C lấp lần lượt từ đầu mảng rồi tự đặt 0 cho những phần tử còn lại, nên a giữ các giá trị 1, 2, 3, 0, 0. Chỉ số trong C đếm từ 0, vì vậy a[0] là phần tử đầu tiên và bằng 1, đúng cái mà printf in ra. Ý "3" sai vì 3 nằm ở a[2], tức là phần tử thứ ba của mảng. Ý "2" sai vì 2 nằm ở a[1]; nhầm lẫn này bắt nguồn từ việc tưởng chỉ số bắt đầu từ 1. Ý "An error will be raised." sai vì khởi tạo thiếu giá trị là hợp lệ và được chuẩn quy định rõ ràng; trình biên dịch không báo lỗi, cũng không để các phần tử còn lại mang giá trị rác.

Cùng phần 7

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