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
15 câu hỏi
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>]
}
Đá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>]
}
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ị>;
}
Đá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>
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ố.
Đá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>]
}
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.
Đá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.
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 ;
Đá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 ;
Để 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()
Đá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ố>])
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.
Đáp án đúng là: A
Thiếu kiểu dữ liệu của tên hà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
Đá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.
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.
Đá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.
Ký tự đặt trước một biến, được dùng để định nghĩa biến tham chiếu là?
*
!
&
$
Đá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.
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ộ
Đáp án đúng là: A
C++ sử dụng ký hiệu & để khai báo những tham số là tham chiếu.
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);
Đá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 đó.
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);
Đá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.
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);
Đá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ố
Đá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.>
