What does the following program display?
4 phương ánCó giải thích
#include <stdio.h>
int main()
{
int x[] = {1, 2, 3, 4, 5};
int y = 1;
printf("%d", x[y]);
return 0;
}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: "2". Mảng x được khởi tạo với năm giá trị và chỉ số đếm từ 0, nên x[0] là 1, x[1] là 2, x[2] là 3 rồi tiếp tục như thế; biến y bằng 1 nên x[y] chính là x[1], tức giá trị 2, và đặc tả %d in ra số nguyên đó. Bản chất của phép truy cập mảng là cộng địa chỉ: tên mảng cho địa chỉ ô đầu, chỉ số được nhân với kích thước một phần tử rồi cộng vào, vì vậy chỉ số 1 trỏ tới ô thứ hai. Giá trị "3" là x[2], tức cách đọc theo kiểu đếm từ 1 mà C không dùng. Giá trị "4" là x[3], lệch hai ô so với chỉ số đang dùng. Kết luận "An error will be raised." không đúng: mảng có năm ô nên chỉ số 1 nằm gọn trong dải hợp lệ; mà ngay cả khi chỉ số vượt biên thật, C cũng không báo lỗi mà lặng lẽ đọc vùng nhớ bên cạnh.
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 2 bộ đề
Đi tiếp từ đây