一.判断题
1-1 可以将结构体变量作为一个整体进行输入或输出。
答:F,输入输出时均必须指明结构体的成员。
1-2 通过命名空间可以区分具有相同名字的函数。
答:T,命名空间由程序员设计并命名,用来存放自定义的变量等标识符,从而与其他同名标识符区分开来。
1-3 使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值。
答:T,解析为题干。
1-4 可以通过下标随机访问向量vector中的元素。
答:T。随机访问指读取第n个数据时,不需要读取前n-1个数据而直接访问第n个元素,vector允许通过下标随机访问。
1-5 vector容器可以使用push_front()和pop_front()函数对元素进行插入、删除。
答:F。push_front 与 pop_front 均为对容器(STL文件)的开头进行处理,因为执行效率过于低下,所以被vector容器所禁用。
1-6 函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
答:T。函数重载的关键在于让函数具有不同的特征标识,如参数的个数、类型,排列顺序,但与返回值的类型无关。
1-7 重载函数可以带有默认值参数,但是要注意二义性。
答:T。如对Student类编写一种构造函数Student(int a = 1,int b = 2),同时编写默认构造函数Student()。会导致编译器无法分辨应当调用哪个构造函数而产生二义性。
1-8 在C++语言中引入内联函数(inline function)的主要目的是降低空间复杂度,即缩短目标代码长度。
答:F。内联函数的实现能提高代码的运行效率,却会增加空间的复杂度。
1-9 形参 int fun(int a=1,int b,int c=2)合法。
答:F。默认参数定义的顺序是从右向左,如果某个参数设定了默认值,则其右边所有的参数均须设定默认值。
1-10 判断数组声明及初始化语句 char str[]={'H','e','l','l','o'};是否正确。
答:T。用{'H','e','l','l','o'}初始化了字符数组,长度为5,但不是字符串。
1-11 int Sum (int a,int b=5,int c); 这个函数原型的声明没有什么不合适的地方。
答:F。同1-9.
1-12 两个以上的函数,具有相同的函数名,且形参的个数或形参的类型不同,或返回的数据类型不同,则称之为函数的重载。
答:同1-6。
二.选择题
2-1.命名空间应用于:
A.在类外定义类的成员函数
B.避免各个不同函数、变量等的名称冲突
C.提高代码的执行速度
D.以上答案都正确
答:B,同1-2。
2-2.如果在函数中定义的局部变量与命名空间中的变量同名时,()被隐藏。
A.函数中的变量
B.命名空间中的变量
C.两个变量都
D.两个变量都不
答:B,函数定义的局部变量和命名空间的变量同名时,命名空间的变量被隐藏。
2-3.要说明标识符是属于哪个命名空间时,需要在标识符和命名空间名字之间加上:
A. ::
B. ->
C. .
D. ( )
答:A。B为类成员指针访问运算符。C为成员访问运算符。D为函数调用运算符。
2-4.按照标识符的要求,( )不能组成标识符。
A.连接符
B.下划线
C.大小写字母
D.数字字符
答:A。标识符要求开头为下划线或者字母