沈阳师范大学C++ pta第4章 函数
判断题
1.重载函数可以带有默认值参数,但是要注意二义性。 — — — T
2.两个以上的函数,具有相同的函数名,且形参的个数或形参的类型不同,或返回的数据类型不同,则称之为函数的重载。 — — — F
3.在类的成员函数中,const关键字可以用作对重载函数的区分。 — — — T
4.int Sum (int a,int b=5,int c); 这个函数原型的声明没有什么不合适的地方。 — — — F
5.在C++语言中引入内联函数(inline function)的主要目的是降低空间复杂度,即缩短目标代码长度。— — — F
6.带有默认值的函数F的函数原型为F(int x=5, int x=9, int y, float m=10.0),则该函数在编译时会报错。— — — T
7.主程序调用内联函数(inline)时,不发生控制转移,无需保存和恢复环境变量等,因此,节省了系统开销。内联函数的声明以及最终的生效,是由程序员决定的。— — — F
8.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。— — — T
9.
#include
using namespace std;
int add(int x=4,int y=7)
{
return x+y;
}
int main()
{
cout<<add(3,6)<<endl;
cout<<add(3)<<endl;
cout<<add()<<endl;
}
则运行上述程序后,输出的结果为:
9
10
11
— — — T
单选题
下列关于函数重载的说法中,错误的是____。
A.重载函数的参数个数不同
B.重载函数的函数名必须相同
C.重载函数参数类型不同
D.重载函数的返回值类型不同
如果默认参数的函数声明为“ void fun(int a,int b=1,char c=‘a’,float d=3.2);”,则下面调用写法正确的是( )。
A.fun(2, ,‘c’,3.14)
B.fun(int a=1);
C.fun(2,3);
D.fun();
在( )情况下适宜采用inline定义内联函数。
A.函数代码多、不常调用
B.函数体含有递归语句
C.函数体含有循环语句
D.函数代码少、频繁调用
下面说法正确的是?
A.多个重载函数的参数个数必须不同
B.调用一个第二个和第三个参数都有缺省值的函数时,可以不写第二个实参而写第三个实参
C.两个函数,参数表相同,返回值类型不同,它们是重载关系
D.使用内联函数的目是提高程序运行速度
在C++中,关于下列设置缺省参数值的描述中,()是正确的。
A.设置缺省参数值时,必须全部都设置;
B.只能在函数的定义性声明中指定参数的缺省值;
C.不允许设置缺省参数值;
D.在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
当一个函数功能不太复杂,但要求被频繁调用时,选用____。
A.内联函数
B.嵌套函数
C.递归函数
D.重载函数
关于函数的返回值的说法,正确的是:
A.函数的返回值个数不确定
B.函数可以有一个返回值
C.函数必须有返回值
D.函数可以有多个返回值
重载函数在调用时选择的依据中,错误的是( )
A.参数的类型
B.函数的名字
C.函数的参数
D.函数的类型
以下有关函数的叙述中正确的是( )。
A.函数执行中形参的改变会改变实参
B.函数必须返回一个值
C.两个同名函数,参数表相同而返回值不同不算重载
D.函数体中必须有return语句
如有函数定义:void func(int x = 0, int y = 0){ …. },则下列函数调用中会出现问题的是____。
A.func(1,2);
B.func(1,2, 3);
C.func(1);
D.func();
决定C++语言中函数的返回值类型的是()
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
下面程序的运行结果是
#include using namespace std;
void fun(int * a, int * b) {
int x = *a;
*a = *b;
*b = x;
cout << *a << *b << " "; } int main() {
int x = 1, y = 2;
fun(&x, &y);
cout << x << y << endl;
return 0; }
A.21 21
B.12 21
C.21 12
D.12 12
以下正确的函数定义是:
A.void fun(int x) {
if(x<0) return;
else cout << “OK” << endl;
}B. int fun(int x, int y); {
return x+y;
}
C. void fun(int x, int y) { return x+y; }