JavaScript is required

What will be the output of the program?
Media VietJack

A.
6 6
B.
5 6
C.
Complier error
D.
None of above
Trả lời:

Đáp án đúng: A


Đề bài yêu cầu xác định kết quả in ra màn hình của đoạn code C++. Đoạn code khai báo một mảng `arr` kiểu `int` có kích thước 5 và khởi tạo các giá trị ban đầu là {1, 2, 3, 4, 5}. Tiếp theo, một con trỏ `ptr` kiểu `int` được gán địa chỉ của phần tử đầu tiên trong mảng `arr` (tức là `arr[0]`). Câu lệnh `*(ptr + 4) = *(ptr + 1) + 3;` thực hiện các bước sau: 1. `ptr + 4` trỏ tới phần tử thứ 5 của mảng `arr` (tức là `arr[4]`). 2. `ptr + 1` trỏ tới phần tử thứ 2 của mảng `arr` (tức là `arr[1]`, có giá trị là 2). 3. `*(ptr + 1) + 3` lấy giá trị của `arr[1]` (là 2) và cộng thêm 3, kết quả là 5. 4. `*(ptr + 4) = 5` gán giá trị 5 cho phần tử thứ 5 của mảng `arr` (tức là `arr[4]`). Như vậy, sau câu lệnh này, `arr[4]` có giá trị là 5. Cuối cùng, đoạn code in ra giá trị của `arr[1]` và `arr[4]`. `arr[1]` có giá trị ban đầu là 2. Vì không có sự thay đổi giá trị `arr[1]` nên giá trị của nó vẫn là 2. Tuy nhiên, sau khi thực hiện gán `*(ptr + 4) = *(ptr + 1) + 3;`, `arr[4]` có giá trị là 5. Vì vậy, chương trình sẽ in ra `2 5`. Tuy nhiên, do không có đáp án nào phù hợp, đáp án đúng là "None of above".

Câu hỏi liên quan