15 câu  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ó đáp án
Đề thi

15 câu 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ó đáp án

A
Admin
Tin họcLớp 1190 lượt thi
15 câu hỏi
1. Trắc nghiệm
1 điểm

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

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

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

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

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

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

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

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

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

Xem đáp án

Đáp án đúng là: C

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>]
}

2. Trắc nghiệm
1 điểm

Cú pháp của hàm có kết quả như sau:

<kiểu dữ liệu><tên hàm> ([<danh sách tham số>])
{

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

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

<kiểu dữ liệu> ([<danh sách tham số>])
{

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

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

<kiểu dữ liệu><tên hàm> ([<danh sách tham số>])
{
<các câu lệnh>;
}

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

Xem đáp án

Đáp án đúng là: A

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

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

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

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

3. Trắc nghiệm
1 điểm

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?

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

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

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

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

Xem đáp án

Đáp án đúng là: A

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>]

4. Trắc nghiệm
1 điểm

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

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

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ề.

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.

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

Xem đáp án

Đáp án đúng là: B

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.

5. Trắc nghiệm
1 điểm

Khẳng định nào sau đây là sai?

Đ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.

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.

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 ;

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 ;

Xem đáp án

Đáp án đúng là: D

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 ;

6. Trắc nghiệm
1 điểm

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

void tong(int x, int y)

void tong()

int tong(int x, int y)

int tong()

Xem đáp án

Đáp án đúng là: C

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> ([<danh sách tham số>])

7. Trắc nghiệm
1 điểm

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à:

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

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

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

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

Xem đáp án

Đáp án đúng là: A

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

8. Trắc nghiệm
1 điểm

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<

return 0;

}

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

-2

4

5

6

Xem đáp án

Đáp án đúng là: C

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.

9. Trắc nghiệm
1 điểm

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

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

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

Khó sửa chữa.

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

Xem đáp án

Đáp án đúng là: A

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.

10. Trắc nghiệm
1 điểm

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

*

!

&

$

Xem đáp án

Đáp án đúng là: C

Để 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.

11. Trắc nghiệm
1 điểm

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à:

Tham chiếu

Tham trị

Biến toàn cục

Biến cục bộ

Xem đáp án

Đáp án đúng là: A

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

12. Trắc nghiệm
1 điểm

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?

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

Max(a, 9.9) ;

Max(a, c);

Max(a, b);

Xem đáp án

Đáp án đúng là: B

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 đó.

13. Trắc nghiệm
1 điểm

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

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

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

<>

int t(int x) {}

int f(int a, int b);

Xem đáp án

Đáp án đúng là: D

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.

14. Trắc nghiệm
1 điểm

Cho khai báo hàm: int sub(int a, int b);

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

sub(10, 5);

sub(12, 5.4);

sub(5);

sub(3.2, 4);

Xem đáp án

Đáp án đúng là: A

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ố

15. Trắc nghiệm
1 điểm

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

return max;

}

int main()

{

cout<

return 0;

}

Lỗi cú pháp

0

12

4

Xem đáp án

Đáp án đúng là: B

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.>