Which of the following is a complete function?
Trả lời:
Đáp án đúng: B
Một hàm hoàn chỉnh trong C/C++ cần có đầy đủ các thành phần sau:
- Kiểu trả về (ví dụ:
int
,void
,float
, ...). - Tên hàm (ví dụ:
funct
,function
, ...). - Danh sách tham số (có thể rỗng, nhưng phải có cặp ngoặc đơn
()
). Mỗi tham số cần có kiểu dữ liệu và tên biến. - Phần thân hàm, được bao trong cặp ngoặc nhọn
{}
, chứa các câu lệnh thực thi của hàm.
Phân tích các phương án:
- A.
int funct();
: Đây chỉ là khai báo hàm (function declaration), không phải định nghĩa hàm (function definition). Nó chỉ cho trình biên dịch biết rằng có một hàm tênfunct
trả về kiểuint
, nhưng không cung cấp phần thân hàm. Do đó, đây không phải là một hàm hoàn chỉnh. - B.
int funct(int x) {return x=x+1;}
: Đây là một hàm hoàn chỉnh. Nó có kiểu trả về làint
, tên hàm làfunct
, tham số làint x
, và phần thân hàm trả về giá trị củax + 1
. - C.
void function(int) {printf( “Hello” );
: Mẫu hàm này bị thiếu dấu ngoặc kép để kết thúc chuỗi định dạng và tham số truyền vào hàmprintf
, nó không hoàn chỉnh. - D.
void funct(x) {printf( “Hello” ); }
: Thiếu kiểu dữ liệu của tham sốx
. Trong C/C++, khi định nghĩa hàm, cần phải chỉ rõ kiểu dữ liệu cho mỗi tham số. Do đó, đây không phải là một hàm hoàn chỉnh.
Vậy, chỉ có phương án B là một hàm hoàn chỉnh.