.
北航1212考试批次《C++程序设计》复习题一
一、客观题 单项选择题(本大题共20小题,每小题1.5分,共30分)
1、在面向对象的程序设计中,一切都是围绕着___展开的( B )。 A.语言 B.类 C.数据类型 D.结构 2、以下关于类和对象的叙述中,正确的是( D )。
A.类和对象间没有联系 B.一个类的成员函数可以任意被调用 C.对象是抽象的,而类是具体实现
D.一般只有通过具体的对象才能访问类的成员函数
3、关于C++语言和C语言的关系的下列描述中,错误的是( D )。 A.C语言是C++语言的一个子集 B.C++语言对C语言做了些改进 C.C++语言与C语言兼容 D.C语言和C++语言都是面向对象的语言 4、下列函数中,可以为虚函数的是( D )。
A.自定义的构造函数 B.拷贝构造函数 C.静态成员函数 D.析构函数 5、在一个被调用函数中,关于return语句使用的描述,错误的是( C )。 A.被调用函数中可以不用return语句; B.被调用函数中可以使用多个return语句; C.被调用函数中,一个return语句可以返回多个值给调用函数; D.被调用函数中,如果有返回值,就一定要有return语句; 6、若用数组名作为函数调用时的实参,则实际上传递给形参的是( A)
A、数组首地址 B、数组的第一个元素值 C、数组中全部元素的值 D、数组元素的个数 7、在以下关于C++语言的注释的叙述中,不正确的是(C )
A、C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示 B、C++编译器在编译一个程序时,将跳过注释,不对其进行处理 C、C++编译器在编译一个程序时,可发现注释中的单词拼写错误 D、程序中注释的多少不会影响所生成的可执行文件的长度 8、下列关于C++函数的叙述中,正确的是(C)
A、每个函数至少要具有一个参数 B、每个函数都必须返回一个值 C、函数在被调用之前必须先声明 D、函数不能自己调用自己
9、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( B)。
A、AB operator+(AB & a , AB & b) B、AB operator+(AB & a) C、operator+(AB a) D、AB & operator+( ) 10、面向对象系统不具有( C)特性。
A、继承性 B、封装性 C、过程性 D、多态性
11、下面四组运算符中,全都不能重载为友元函数的一组是( D )。
A.=,(),[],-> B.[],->,*,++ C.=,(),++,-- D.*,++,--,/ 12、动态联编要求类中应有( D )。
A.成员函数 B.内联函数 C.构造函数 D.虚函数 13、下列字符中不能构成标识符的是( C )。
A.数字字符 B.大写字母 C.连接符 D.下划线字符 14、下面说法中,正确的是( D )。
A.公有派生类的成员函数可以访问基类的私有成员; B.私有派生类的成员函数可以访问基类的私有成员;
精选word范本!
.
C.无论公有派生还是私有派生,派生类的成员函数均可以访问基类的私有成员; D.无论公有派生还是私有派生,派生类的成员函数均可以访问基类的公有成员; 15、对于全局函数 int f(void),与其完全等价的函数原型为( B )。
A.int &f( ) B.const int f( ) C.int f(void ) const D.以上都不是 16、在C++语言中,为了使重载函数具有通用的函数体,应使用( D )。 A.虚函数 B.纯虚函数 C.友元函数 D.函数模板 17、编译预处理工作是在___完成的( A )。
A.编译前 B.编译时 C.编译后 D.连接时 18、下列运算符中优先级别最高的是( A )。 A.++ B.?: C.!= D.+= 19、下列说法中,错误的是( C )。 A.带有纯虚函数的类称为抽象类;
B.不能定义抽象类的对象,但可以说明抽象类的指针和引用; C.不能定义抽象类的对象,也不能说明抽象类的指针和引用; D.定义抽象类的目的是为整个类族规定一个统一接口形式; 20、为了取代C中带参数的宏,在C++中使用 (B )
A、重载函数 B、内联函数 C、递归函数 D、友元函数 二、主观题 应用题(本大题共3小题,每题15分,共计45分) 21、请解释面向对象中“封装”的含义。
答:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类的成员。 22、写出下面程序的运行结果。 #include \
int a[]={1,3,5,7,9};
int *p[]={a,a+1,a+2,a+3,a+4}; void main(){
printf(\
printf(\
}
程序运行结果为: 9 5 3 8 4 7 23、写出下面程序运行结果。 #include
switch(ch){ case 'A': case 'a':
cout <<\ case 'B': case 'b':
cout <<\
精选word范本!
.
case 'C': case 'c':
cout <<\ default:
cout <<\ } }
void main() {
char a1='b',a2='C',a3='f';
SB(a1);SB(a2);SB(a3);SB('A'); cout < 程序运行结果为:good!pass!bad!well! 程序设计题(本大题共1小题,每小题25分,共25分) 24、声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。 #include template Compare(numtype a,numtype b) {x=a;y=b;} numtype max() {return (x>y)?x:y;} numtype min() {return (x numtype x,y; }; int main() {Compare cout< cout< cout< cout< cout< 精选word范本!