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

Tin học 2026 · Có lời giải chi tiết · Cập nhật

Câu 4.(Khoa học máy tính)

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:

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++:

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)
    (Đáp án: Sai)

    Hàm F có đúng một tham số.

  • b)
    (Đáp án: Đúng)

    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)
    (Đáp án: Đúng)

    Nếu nhận vào hai đối số, mảng A là (5, 6, 7, 4, 2, 3, 1) và n = 7, thì hàm F trả về giá trị 7.

  • d)
    (Đáp án: Sai)

    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.

Lời giải

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

a) Sai: hàm F có hai tham số là A và n.

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

c) Đúng: với A = (5, 6, 7, 4, 2, 3, 1), sau khi chạy A trở thành (6, 4, 2, 5, 7, 3, 1); hàm trả về A[0] + A[6] = 6 + 1 = 7.

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

Còn chỗ nào chưa hiểu?

Hỏi AI, câu trả lời bám theo lời giải đã được kiểm tra.

Thử sức với cả đề này

28 câu · 50 phút · chấm điểm ngay khi nộp, xem lời giải từng câu. Miễn phí, đăng nhập để lưu bài làm.