What will be the output of the following C code?
4 phương ánCó giải thích
int a[5] = {1, 2, 3};
printf("%d", a[4]);Các phương án trả lời
Chọn một phương ánLờ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
What does the following program display?
#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ó lời giảiCâu hỏiConsider the following code:
int func(int* a, int n){
int S = 0;
for(int i = 0; i < n; i++) {
S = S + (a[i] % 2)*a[i];
}
return S;
}
What does the above code snippet do?Có lời giảiCâu hỏiWhat does the expression sizeof(arr) / sizeof(arr[0]) evaluate to, where arr is an array?Có lời giảiCâu hỏiCả 21 câu của chủ đề21 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây