TOP 40 câu Trắc nghiệm Tin học 11 C++ Bài 18 (có đáp án 2023): Ví dụ về cách định nghĩa và sử dụng hàm

Bộ 40 câu hỏi trắc nghiệm Tin học lớp 11 C++ Bài 18: Ví dụ về cách định nghĩa và sử dụng hàm có đáp án đầy đủ các mức độ giúp các em ôn trắc nghiệm Tin học 11 C++ Bài 18.

1 2,996 11/01/2023
Tải về


Trắc nghiệm Tin học 11 C++ Bài 18: Ví dụ về cách định nghĩa và sử dụng hàm

Câu 1. Hàm không có kết quả có cú pháp định nghĩa như thế nào?

A. void ([danh sách tham số])

{
[<dãy các lệnh>]
}

B. main <tên hàm>([danh sách tham số])

{
[<dãy các lệnh>]
}

C. void <tên hàm>([danh sách tham số])

{
[<dãy các lệnh>]
}

D.<tên hàm>([danh sách tham số])

{
[<dãy các lệnh>]
}

Đáp án: C

Giải thích:

Hàm không có kết quả có cú pháp định nghĩa như sau:
void <tên hàm>([danh sách tham số])

{
[<dãy các lệnh>]
}

Câu 2. Cú pháp của hàm có kết quả như sau:
A. <kiểu dữ liệu><tên hàm> ([])
{

<các câu lệnh>;

return <biểu thức giá trị>;
}

B. <kiểu dữ liệu> ([])
{

<các câu lệnh>;

return <biểu thức giá trị>;
}

C.<kiểu dữ liệu><tên hàm> ([])
{
<các câu lệnh>;
}

D. <tên hàm> ([])
{
<các câu lệnh>;
return <biểu thức giá trị>;
}

Đáp án: A

Giải thích:

Hàm có cấu kết quả có cấu trúc:

<kiểu dữ liệu><tên hàm>([])
{

<các câu lệnh>;

return <biểu thức giá trị>;
}

Câu 3. Cho hàm sau:

void CatDan(string s1, string &s2)

{

s2 = s1.substr(1) + s1[0];
 }

Khẳng định nào sau đây là đúng về hàm CatDan?

A. Hàm CatDan là hàm không có kết quả.

B. Hàm CatDan là hàm có kết quả.

C. Hàm CatDan là chương trình chính

D. Hàm CatDan là hàm không có các tham số.

Đáp án: A

Giải thích:

Hàm không có kết quả có cú pháp định nghĩa như sau:
void <tên hàm> ([danh sách tham số]){

[<dãy các lệnh>]
}

Câu 4. Phát biểu nào sau đây là đúng?

A. Nếu là hàm có kết quả thì trong thân hàm sẽ không có lệnh return.

B. Nếu là hàm có kết quả thì trong thân hàm sẽ có lệnh return và theo sau là dãy giá trị trả về.

C. Nếu là hàm có kết quả thì trong thân hàm sẽ là dãy các lệnh tính giá trị và không có lệnh return.

D. Nếu là hàm có kết quả thì trong thân hàm sẽ duy nhất lệnh return.

Đáp án: B

Giải thích:

Theo phân loại hàm: Hàm có kết quả (Fruitful functions) là loại hàm thực hiện một số thao tác nào đó và trả về một số giá trị theo sau lệnh return.

Câu 5. Khẳng định nào sau đây là sai?

A. Điểm khác nhau cơ bản giữa hàm không có kết quả và hàm có kết quả là việc thực hiện hàm có kết quả luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được trả về sau lệnh return.

B. Hàm có kết quả có định nghĩa tương tự như hàm không có kết quả, tuy nhiên có khác nhau phần đầu và phần thân.

C. Trong hàm có kết quả nếu hàm không có tham số hình thức thì không cần danh sách tham số nhưg vẫn phải có cặp ngoặc đơn ( và ) theo sau khai báo tên hàm. Trong thân hàm cần có lệnh trả về giá trị của hàm: return <biểu thức>;

D. Trong hàm có kết quả trong thân hàm không cần có lệnh trả về giá trị của hàm:
return <biểu thức>;

Đáp án: D

Giải thích:

Trong hàm có kết quả nếu hàm không có tham số hình thức thì không cần danh sách tham số nhưng vẫn phải có cặp ngoặc đơn ( và ) theo sau khai báo tên hàm. Trong thân hàm cần có lệnh trả về giá trị của hàm: return <biểu thức>;

Câu 6. Để tính tổng của 2 số nguyên x,y, ta viết phần đầu của hàm là:

A. void tong(int x, int y)

B. void tong()

C. int tong(int x, int y)

D. int tong()

Đáp án: C

Giải thích:

Vì tổng của 2 số nguyên trả về 1 giá trị nên ta viết hàm có kết quả theo cấu trúc của phần đầu là:

<kiểu dữ liệu> <tên hàm> ([])

Câu 7. Cho đoạn chương trình sau:

tong(int a1,int b1)

{

          s=a1+b1;

return s;

}

Lỗi sai trong đoạn chương trình trên là:

A. Thiếu kiểu dữ liệu của tên hàm.

B. Thiếu kiểu dữ liệu của các tham số.

C. Thiếu tham số hình thức.

D. Thiếu lệnh return giá trị cần trả về ở cuối thân hàm.

Đáp án: A

Giải thích:

Thiếu kiểu dữ liệu của tên hàm.

Câu 8. Cho đoạn chương trình sau:

 int tong(int a1,int b1)

{

          s=a1+b1;

return s;

}

int main()

{

cin>>a>>b;

cout<<tong(a,b);

return 0;

}

Với a=2, b=3 thì kết quả sau khi thực hiện là:

A. -2                                                             

B. 4

C. 5                                                              

D. 6

Đáp án: C

Giải thích:

Vì hàm tong(a1,b1) dùng để tính tổng của 2 số a và b nhập vào từ chương trình chính.

Câu 9. Phát biểu nào về hàm là đúng?

A. Tránh lặp lại một đoạn lệnh nhiều lần.

B. Tăng tốc độ xử lý của chương trình.

C. Khó sửa chữa.

D. Lặp lại nhiều đoạn lệnh.

Đáp án: A

Giải thích:

Một trong những lợi ích của việc dùng hàm đó là bạn có thể gọi lại nó nhiều lần, vậy nên nó giúp ta tránh viết lặp lại nhiều lần một đoạn code.

Câu 10. Ký tự đặt trước một biến, được dùng để định nghĩa biến tham chiếu là?

A. *                                                              

B. !

C. &                                                             

D. $

Đáp án: C

Giải thích:

Để phân biệt tham chiếu và tham trị, C++ sử dụng ký hiệu & để khai báo những tham số là tham chiếu.

Câu 11. Cho đoạn chương trình sau:

Void Hoan_doi(int &x, int &y)

{
 int tg = x;
x = y;
y = tg;
}

Biến x,y trong chương trình trên là:

A. Tham chiếu                                    

B. Tham trị

C. Biến toàn cục                                 

D. Biến cục bộ

Đáp án: A

Giải thích:

C++ sử dụng ký hiệu & để khai báo những tham số là tham chiếu.

Câu 12. Cho lệnh khai báo hàm:

float Max(float &x, float &y);

Và các khai báo biến: float a, b, c;

Lời gọi hàm nào sau đây là sai?

A. Max(Max(a, b), c);

B. Max(a, 9.9) ;

C. Max(a, c);

D. Max(a, b);

Đáp án: B

Giải thích:

Khi truyền tham số bằng tham chiếu, thì khi gọi hàm, các đối số truyền vào phải là một biến. Không thể nhận bởi một giá trị hoặc hằng số nào đó.

Câu 13. Trong các đoạn lệnh sau đây, đoạn nào là khai báo một hàm?

A. int f(int a, int b) { return a+b; }

B. void f() { cout << “Hello World!”; }

C. int t(int x) {}

D. int f(int a, int b);

Đáp án: D

Giải thích:

Vì khai báo là giới thiệu sự tồn tại của một định danh (một type, function, hoặc class) và mô tả nó. Khai báo giúp compiler biết được về sự tồn tại của một định danh trước khi chúng ta định nghĩa nó. Compiler không cần phải cấp vùng nhớ khi khai báo.

Câu 14. Cho khai báo hàm: int sub(int a, int b);

Đâu là lời gọi hàm đúng

A. sub(10, 5);                           

B. sub(12, 5.4);

C. sub(5);                                 

D. sub(3.2, 4);

Đáp án: A

Giải thích:

sub(3.2, 4) sai vì 3.2 là số thực

sub(12, 5.4); sai vì 5.4 là số thực

sub(5); sai vì thiếu đối số

Câu 15. Kết quả của đoạn chương trình sau là gì?

#include

using namespace std;

int max(int a, int b)

{

int max=a;

max=(b<a)*b;

return max;

}

int main()

{

cout<<max(4,12);

return 0;

}

A. Lỗi cú pháp                                                        

B. 0

C. 12                                                                      

D. 4

Đáp án: B

Giải thích:

Trong câu lệnh max = (b < a) * b, khi truyền 4, 12 vào hàm, thì ta có a = 4 và b = 12. Khi đó (b < a) sẽ trả về giá trị 0 (vì b = 12 > a = 4), mà 0 * b = 0.

Các câu hỏi trắc nghiệm Tin học lớp 11 C++ có đáp án, chọn lọc khác:

Trắc nghiệm Bài 14: Kiểu dữ liệu tệp có đáp án

Trắc nghiệm Bài 15: Kiểu tệp có đáp án

Trắc nghiệm Bài 16: Ví dụ làm việc với tệp có đáp án

Trắc nghiệm Bài 17: Chương trình con và phân loại có đáp án

Trắc nghiệm Bài 19: Thư viện chương trình con chuẩn có đáp án

1 2,996 11/01/2023
Tải về


Xem thêm các chương trình khác: