What will be the output of the C program?
4 phương ánCó giải thích
char temp;
char arr[10] = {1, 2, 3, 4, 5, 6, 7, 8};
temp = (arr + 1)[2];
printf("%d\n", temp);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: "4". Cách viết chỉ số trong C chỉ là đường tắt của phép tính trên con trỏ: viết x[i] đồng nghĩa với lấy nội dung tại x cộng i. Vì vậy (arr + 1)[2] chính là lấy nội dung tại arr cộng 1 cộng 2, tức là arr[3]. Mảng được khởi tạo bằng các số từ 1 đến 8 nên arr[3] mang giá trị 4; kiểu phần tử là char nhưng các giá trị khởi tạo là số nguyên nhỏ, và đặc tả %d in ra số 4 chứ không in ký tự. Ý "1" sai vì 1 nằm ở arr[0], giá trị đó chỉ ra nếu bỏ cả hai lượng cộng. Ý "2" sai vì 2 nằm ở arr[1], ứng với việc chỉ cộng 1 mà bỏ mất chỉ số 2. Ý "3" sai vì 3 nằm ở arr[2], đó là kết quả nếu quên lượng cộng 1 và chỉ đọc arr[2].
Cùng phần 5
What will be the output of the following C code?
#include <stdio.h>
void main()
{
int *ptr, a = 10;
ptr = &a;
*ptr += 1;
printf("%d,%d\n", *ptr, a);
}Có lời giảiCâu hỏi(Choose 1 answer)
What is the output of this C code?
#include <stdio.h>
#include <conio.h>
int main() {
int n = 267, *pn = &n;
char* pc = pn;
*pc = 0;
printf("n = %d", n);
return 0;
}Có lời giảiCâu hỏiWhat will be the output of the C program?
int arr[5] = { 2, 3, 5, 4, 7 };
int *ptr = (&arr + 1);
printf("%d %d\n", *(arr + 1), *(ptr - 1));Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây