JavaScript is required

Khai báo hàm đọc một text file vào một mảng các số nguyên, hãy chọn khai báo đúng

A.
void Read( char* fName, int a[]);
B.
void Read(char* fName, int a);
C.
void Read(char* fName, int *a);
D.
void Read(char* fName, int *&a, int &n);
Trả lời:

Đáp án đúng: D


Đáp án đúng là D. void Read(char* fName, int *&a, int &n); Giải thích: * **char* fName:** Tham số này là một con trỏ trỏ đến chuỗi ký tự (C-style string) biểu diễn tên của file cần đọc. * **int *&a:** Tham số này là một tham chiếu đến con trỏ kiểu int. Điều này cho phép hàm `Read` cấp phát bộ nhớ động cho mảng `a` và trả về mảng này cho hàm gọi. Sử dụng tham chiếu ở đây là cần thiết để thay đổi giá trị của con trỏ `a` bên ngoài hàm `Read`. Nếu không có tham chiếu (&), việc cấp phát bộ nhớ bên trong hàm sẽ không ảnh hưởng đến con trỏ `a` ở hàm gọi. * **int &n:** Tham số này là một tham chiếu đến một số nguyên. Nó được sử dụng để trả về kích thước (số lượng phần tử) của mảng đã đọc. Tương tự như `a`, sử dụng tham chiếu cho phép hàm `Read` thay đổi giá trị của `n` và trả về kích thước mảng cho hàm gọi. Các lựa chọn khác không đúng vì: * **A. void Read( char* fName, int a[]);** `int a[]` tương đương với `int *a`, nhưng nó không cho phép hàm thay đổi con trỏ `a` ở hàm gọi. Do đó, hàm không thể cấp phát bộ nhớ cho mảng. * **B. void Read(char* fName, int a);** `int a` chỉ là một số nguyên, không phải mảng. * **C. void Read(char* fName, int *a);** Tương tự như A, hàm không thể cấp phát bộ nhớ cho mảng và trả về mảng đã cấp phát cho hàm gọi.

Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


22 câu hỏi 60 phút

Câu hỏi liên quan