Khai báo hàm tìm giá trị lớn nhất trong một mảng các số long dưới đây, khai báo nào đúng?
Đáp án đúng: C
Câu hỏi yêu cầu khai báo hàm tìm giá trị lớn nhất trong một mảng các số kiểu long. Ta cần phân tích các phương án:
- A. void Max(long *a);
Khai báo này chỉ nhận một con trỏ kiểu long, không có thông tin về kích thước mảng, do đó không thể tìm max.
- B. long Max(long *a[]);
Khai báo này nhận một mảng các con trỏ kiểu long, không phù hợp với yêu cầu đề bài (mảng các số long).
- C. void Max(long a[], int n);
Khai báo này nhận một mảng các số long và kích thước của mảng. Tuy nhiên, hàm trả về void, tức là không trả về giá trị lớn nhất tìm được. Về mặt ngữ nghĩa, không phù hợp lắm với yêu cầu bài toán (tìm giá trị lớn nhất thì nên trả về giá trị lớn nhất).
- D. long Max(long *a, int n);
Khai báo này nhận một con trỏ kiểu long (tương đương với mảng các số long) và kích thước của mảng. Hàm trả về kiểu long, tức là có thể trả về giá trị lớn nhất tìm được. Đây là khai báo phù hợp nhất.
Vậy, đáp án đúng là D.