JavaScript is required

Khai báo hàm tính tổng các phần tử trong một mảng các số nguyên dưới đây, khai báo nào đúng:

A.

void Sum( int a[]);

B.

long Sum( int *a);

C.

void Sum(int a[], int n);

D.

Cả 3 phương án trên đều sai.

Trả lời:

Đáp án đúng: D


Câu hỏi yêu cầu khai báo hàm tính tổng các phần tử trong mảng số nguyên. Để tính tổng, ta cần biết mảng đó là mảng gì (kiểu dữ liệu, tên biến), và có bao nhiêu phần tử (nếu không có thông tin này thì không thể tính tổng một cách tổng quát). * **Phương án A:** `void Sum( int a[]);` - Thiếu thông tin về số lượng phần tử của mảng. Hàm `Sum` không thể biết mảng `a` có bao nhiêu phần tử để tính tổng. Vì vậy, phương án này không đầy đủ. * **Phương án B:** `long Sum( int *a);` - Tương tự như phương án A, thiếu thông tin về số lượng phần tử của mảng. Tuy `long` là kiểu trả về hợp lý cho tổng (để tránh tràn số nếu các phần tử lớn), nhưng việc thiếu kích thước mảng làm cho phương án này không hoàn chỉnh. * **Phương án C:** `void Sum(int a[], int n);` - Khai báo này đầy đủ hơn. `int a[]` là mảng các số nguyên, và `int n` là số lượng phần tử của mảng. Như vậy, hàm `Sum` có thể duyệt qua `n` phần tử của mảng `a` và tính tổng. Lưu ý rằng kiểu trả về `void` có nghĩa là hàm này có thể in ra tổng, hoặc lưu tổng vào một biến toàn cục, hoặc truyền một con trỏ đến một biến để lưu tổng. * **Phương án D:** `Cả 3 phương án trên đều sai.` - Phương án C đúng, do đó phương án này sai. Như vậy, phương án C là khai báo đầy đủ nhất để thực hiện tính tổng các phần tử trong mảng.

Câu hỏi liên quan