# Câu 4 Phần II · Đề chính thức Tin học 2026 (Bộ GD&ĐT) – mã đề 0537

Tin học · 2026 · Đề chính thức Bộ GD&ĐT · mã đề 0537 · 50 phút  
Đáp án đối chiếu với file đáp án của Bộ GD&ĐT.  
Cập nhật: 27/10/2026. Nguồn: PrepMoon (https://prepmoon.com).

Cho hàm sau đây được viết bằng ngôn ngữ lập trình Python và C++, trong đó *A* là một mảng gồm *n* số nguyên dương:

Python:

```python
def F(A, n):
    j = 0
    for i in range(n):
        if A[i] % 2 != 0:
            if A[j] % 2 == 0:
                t = A[i]
                A[i] = A[j]
                A[j] = t
            j = j + 1
    return A[0] + A[n - 1]
```

C++:

```cpp
int F(int A[], int n) {
    int j = 0;
    for (int i = 0; i < n; i++)
        if (A[i] % 2 != 0) {
            if (A[j] % 2 == 0) {
                int t = A[i];
                A[i] = A[j];
                A[j] = t;
            }
            j = j + 1;
        }
    return A[0] + A[n - 1];
}
```

Sau khi chọn một trong hai ngôn ngữ lập trình Python hoặc C++ để tìm hiểu hàm trên, có các ý kiến sau:

- **a)** Hàm *F* có hai tham số.
- **b)** Sau khi thực hiện hàm *F*, mảng *A* không tồn tại phần tử có giá trị chẵn nào có chỉ số lớn hơn chỉ số của phần tử có giá trị lẻ.
- **c)** Nếu nhận vào hai đối số, mảng *A* là *(2, 7, 6, 1, 4, 3, 5)* và *n = 7*, thì hàm *F* trả về giá trị 9.
- **d)** Với mảng *A* bất kì, giả sử mảng *B* được tạo ra bằng cách sao chép mảng *A* rồi hoán đổi vị trí của một số phần tử thì kết quả trả về của hai lần gọi hàm *F(A, n)* và *F(B, n)* là bằng nhau.

**Đáp án:** a) Đúng, b) Sai, c) Đúng, d) Sai

**Lời giải:**

Biến *j* đánh dấu vị trí dành cho số lẻ tiếp theo; mỗi khi gặp *A\[i\]* lẻ mà *A\[j\]* chẵn thì đổi chỗ. Sau khi chạy, mọi số lẻ đứng trước mọi số chẵn.

a**) Đúng.** Hàm *F* có hai tham số là *A* và *n*.

b**) Sai.** Sau khi chạy, các số chẵn dồn về cuối mảng, nên phần tử chẵn có chỉ số lớn hơn chỉ số của các phần tử lẻ (khi mảng có cả số chẵn và số lẻ).

c**) Đúng.** Với A = (2, 7, 6, 1, 4, 3, 5): i = 1 đổi 7 với 2 → (7, 2, 6, 1, 4, 3, 5); i = 3 đổi 1 với 2 → (7, 1, 6, 2, 4, 3, 5); i = 5 đổi 3 với 6 → (7, 1, 3, 2, 4, 6, 5); i = 6 đổi 5 với 2 → (7, 1, 3, 5, 4, 6, 2). Hàm trả về A\[0\] + A\[6\] = 7 + 2 = 9.

d**) Sai.** Kết quả phụ thuộc thứ tự phần tử. Ví dụ A = (1, 3, 2) cho 1 + 2 = 3, còn B = (3, 1, 2) cho 3 + 2 = 5.

Cả đề, có đáp án và lời giải: https://prepmoon.com/de-thi/tin-hoc/de-chinh-thuc-tin-hoc-2026-bo-gd-dt-ma-de-0537  
Trang câu hỏi: https://prepmoon.com/de-thi/tin-hoc/de-chinh-thuc-tin-hoc-2026-bo-gd-dt-ma-de-0537/phan-2-cau-4-cs
