《北航1212考试批次《C++程序设计》复习题一-答案》由会员分享,可在线阅读,更多相关《北航1212考试批次《C++程序设计》复习题一-答案(3页珍藏版)》请在金锄头文库上搜索。
1、奥鹏远程教育中心助学服务部 http:/ 北航1212考试批次C+程序设计复习题一一、客观题 单项选择题(本大题共20小题,每小题1.5分,共30分)1、在面向对象的程序设计中,一切都是围绕着_展开的( B )。 A语言 B类 C数据类型 D结构2、以下关于类和对象的叙述中,正确的是( D )。 A类和对象间没有联系 B一个类的成员函数可以任意被调用 C对象是抽象的,而类是具体实现 D一般只有通过具体的对象才能访问类的成员函数3、关于C+语言和C语言的关系的下列描述中,错误的是( D )。 AC语言是C+语言的一个子集 BC+语言对C语言做了些改进 CC+语言与C语言兼容 DC语言和C+语言都
2、是面向对象的语言4、下列函数中,可以为虚函数的是( D )。 A自定义的构造函数 B拷贝构造函数 C静态成员函数 D析构函数5、在一个被调用函数中,关于return语句使用的描述,错误的是( C )。 A被调用函数中可以不用return语句; B被调用函数中可以使用多个return语句; C被调用函数中,一个return语句可以返回多个值给调用函数; D被调用函数中,如果有返回值,就一定要有return语句;6、若用数组名作为函数调用时的实参,则实际上传递给形参的是( A) A、数组首地址 B、数组的第一个元素值 C、数组中全
3、部元素的值 D、数组元素的个数7、在以下关于C+语言的注释的叙述中,不正确的是(C ) A、C+程序中,注释可用“/*”、“*/”形式表示,也可用“/”形式表示 B、C+编译器在编译一个程序时,将跳过注释,不对其进行处理 C、C+编译器在编译一个程序时,可发现注释中的单词拼写错误 D、程序中注释的多少不会影响所生成的可执行文件的长度8、下列关于C+函数的叙述中,正确的是(C) A、每个函数至少要具有一个参数 B、每个函数都必须返回一个值
4、; 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、继承
5、性 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私有派生类的成员函数可以访问基类的私有成员; C无论公有派生还是私有派
6、生,派生类的成员函数均可以访问基类的私有成员; D无论公有派生还是私有派生,派生类的成员函数均可以访问基类的公有成员;15、对于全局函数 int f(void),与其完全等价的函数原型为( B )。 Aint &f( ) Bconst int f( ) Cint f(void ) const D以上都不是16、在C+语言中,为了使重载函数具有通用的函数体,应使用( D )。 A虚函数 B纯虚函数 C友元函数 D函数模板17、编译预处理工作是在_完成的( A )。 A编译前 B编译时 C编译后 D连接时18、下列运算符中优先级别最高的是( A )。 A+ B?: C!= D+=19、下列
7、说法中,错误的是( C )。 A带有纯虚函数的类称为抽象类; B不能定义抽象类的对象,但可以说明抽象类的指针和引用; C不能定义抽象类的对象,也不能说明抽象类的指针和引用; D定义抽象类的目的是为整个类族规定一个统一接口形式;20、为了取代C中带参数的宏,在C+中使用 (B ) A、重载函数 B、内联函数 C、递归函数 D、友元函数二、主观题 应用题(本大题共3小题,每题15分,共计45分)21、请解释面向对象中“封装”的含义。答:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也
8、就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类的成员。22、写出下面程序的运行结果。#include "stdio.h"int a=1,3,5,7,9;int *p=a,a+1,a+2,a+3,a+4;void main()printf("%dt%dt%dn",a4,*(a+2),*p1);printf("%dt%dt%dn",*(p+1)+a2,*(p+4)-*(p+0),*(a+3)%a4);程序运行结果为: 9 5 3 8 4 7 密封线23、写出下面程序运行结果。#include <io
9、stream.h>void SB(char ch) switch(ch) case 'A': case 'a':密封线 cout <<"well!" break; case 'B': case 'b':密封线 cout <<"good!" break; case 'C': case 'c': cout <<"pass!" break; default: cout <<"bad!
10、" break; void main() char a1='b',a2='C',a3='f' SB(a1);SB(a2);SB(a3);SB('A'); cout <<endl;程序运行结果为:good!pass!bad!well! 程序设计题(本大题共1小题,每小题25分,共25分)24、声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。#include <iostream>using namespace std;template<class numtype>
11、;/声明一个类模板class Comparepublic:Compare(numtype a,numtype b) x=a;y=b; numtype max() return (x>y)?x:y; numtype min() return (x<y)?x:y; private: numtype x,y; ;int main()Compare<int> cmp1(3,7); cout<<cmp1.max()<<" is the Maximum of two inteder numbers."<<endl; cout&
12、lt;<cmp1.min()<<" is the Minimum of two inteder numbers."<<endl<<endl; Compare<float> cmp2(45.78,93.6); cout<<cmp2.max()<<" is the Maximum of two float numbers."<<endl; cout<<cmp2.min()<<" is the Minimum of two float n
13、umbers."<<endl<<endl; Compare<char> cmp3('a','A'); cout<<cmp3.max()<<" is the Maximum of two characters."<<endl; cout<<cmp3.min()<<" is the Minimum of two characters."<<endl; return 0; 心系天下求学人 3 专业 专注 周到 细致