C++语言程序设计复习题
更新时间:2023-09-20 11:35:01 阅读量: 医药卫生 文档下载
- c语言程序设计重点笔记推荐度:
- 相关推荐
《C++程序设计》复习题
一、 选择题
1. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )
A、类 B、对象 C、函数体 D、数据块 2.面向对象的程序设计语言必须具备的关键要素是( )
A、抽象和封装 B、抽象和多态性
C、抽象、封装、继承和多态性 D、抽象、封装和继承性 3.类的构造函数被自动调用执行的情况是在定义该类的( ) A、成员函数时 B、数据成员时 C、对象时 D、友元函数时
4.设有函数模板 template
则下列语句中对该函数模板错误的使用是( )
A、Sum(10,2); B、Sum(5.0,6.7);
C、Sum(15.2f,16.0f); D、Sum(″AB″,″CD″); 5.已知类A是类B的友元,类B是类C的友元,则( ) A、类A一定是类C的友元 B、类C一定是类A的友元
C、类C的成员函数可以访问类B的对象的任何成员 D、类A的成员函数可以访问类B的对象的任何成员 6.静态成员函数没有( ) A、返回值 B、this指针 C、指针参数
D、返回类型
7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( A、都是虚函数
B、只有被重新说明时才是虚函数
C、只有被重新说明为virtual时才是虚函数 D、都不是虚函数
8.下面叙述不正确的是( ) A、派生类一般都用公有派生
B、对基类成员的访问必须是无二义性的 C、赋值兼容规则也适用于多重继承的组合 D、基类的公有成员在派生类中仍然是公有的 9.在C++中实现封装是借助于( )
) A、枚举 C、数组 B、类 D、函数
10.所有在函数中定义的变量,都是( ) A、全局变量 B、局部变量 C、静态变量 D、寄存器变量 11.下列特性中,C与C++共有的是( )
A、继承 B、封装 C、多态性 D、函数定义不能嵌套 12.通常情况下,函数模板中的类型参数个数不能是( ) A、0 B、2 C、4 D、3
13.在下列成对的表达式中,运算符“+”的意义不相同的一对是( ) A、5.0+2.0和5.0+2 C、5.0+2.0和5+2
B、5.0+2.0和5+2.0 D、5+2.0和5.0+2
14.类的指针成员的初始化是通过函数完成的,这个函数通常是( ) A、析构函数 B、构造函数 C、其它成员函数 D、友元函数
15.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( ) A、const char *p=“ABCD”; C、char *const p=“ABCD”;
B、char const *p=“ABCD”;
D、const char * const p=“ABCD”;
16.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用
格式,该表达式还可表示为( ) A、operator*(i.operator++(),k) C、i.operator++().operator*(k) 17.下列说法中正确的是( )
A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D、在类体之外定义的函数成员不能操作该类的私有数据成员
18.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( )
A、私有成员 B、公有成员
C、保护成员 D、保护成员或私有成员 19.对基类和派生类的关系描述中,错误的是( )
A、派生类是基类的具体化 B、基类继承了派生类的属性 C、派生类是基类定义的延续 D、派生类是基类的特殊化
20.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( ) A、调用类A中的函数func()
B、operator*(operator++(i),k) D、k.operator*(operator++(i))
B、调用类B中的函数func()
C、根据p所指的对象类型而确定调用类A中或类B中的函数func() D、既调用类A中函数,也调用类B中的函数
答案:
1.B 2.C 3.C 4.D 5.D 6.B 7.A 8.D 9.B 10.B
11.D 12.A 13.C 14.B 15.D 16.B 17.B 18.A 19.B 20.A
二、 填空题
1.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为__________。
2.模板定义中标识类型的参数必须用关键字_________修饰。 3.表达式count< 4.通过C++语言中的_________机制,可以从现存类中构建其子类。 5.要在调用虚函数的时候强制进行静态联编,可以通过在调用中对虚函数加_________实现。 6.封装要求一个对象应具备明确的功能,并具有_________以便和其它对象相互作用。 7.在删除一个动态对象时,将自动调用该动态对象所属类的_________函数。 8.静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是_________。 9.在下面的类定义中,私有成员有_________。 class Location { int X,Y; protected: int zeroX,zerxY; int SetZero(intzeroX, intzeroY); private: int length,height; public: void init(int initX,int initY); int GetX(); int GetY(); }; 10.类的私有成员只能被它的成员函数和_________访问。 11.在用C++进行程序设计时,最好用___________________代替malloc。 12.函数模板中紧随template之后尖括号内的类型参数都要冠以保留字________________。 13.在ios类中定义的用于控制输入输出格式的枚举常量中,用于代表十进制、八进制和十六进制的3个枚举常量是dec、oct和___________________。 14.如果重载了运算符+,则相应的运算符函数名是___________________。 15.由static修饰的数据成员为该类的所有对象___________________。 16.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有______个类型参数。 17.在单继承和多继承方式中,面向对象的程序设计应尽量使用______继承。 18.语句序列 ifstream datafile; datafile.open(“data.dat”); 的功能可用一个语句实现,这个语句是______。 19.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。 20.一个抽象类的派生类可以实例化的必要条件是实现了所有的______。 21.在C++中,虚函数帮助实现了类的______性。 22.通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。 23.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义______。 24.在联合中,所有数据成员具有_____的地址,任一时刻只有_____个数据成员有效。 25.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句______。 26.为了实现多态性,派生类需重新定义基类中的___________________。 27.编译时的多态性通过___________________函数实现。 28.在派生类中实现基类成员的初始化,需要由派生类的构造函数调用_________________来完成。 29.在C++中,访问指针所指向的对象的成员使用运算符___________________。 30.重载函数在参数类型或参数个数上不同,但___________________相同。 答案: 1. ~AB(){}; 2. class(或typcname) 3.cout,sctf(ios::hex,ios::basefield)(或cout.setf(ios::hex),或cout< 16. 2; 17. 单一(或单); 18.ifstream datafile(“data.dat”) 19. this; 20.纯虚函数; 21. 多态; 22.继承机制; 23. 析构函数 24. 相同 一 (说明:答对一个给1分); 25. ip = new int[10];; 26.虚函数 27.重载; 28.基类的构造.函数; 29.->; 30.函数名 三、 改错题 1.指出下面程序中的错误,并说明出错原因。 #include void ConstFun(){} const int f5()const{return 5;} int Obj() {return 45;} int val; int f8(); }; int ConstFun::f8(){return val;} void main() { const ConstFun s; int i=s.f5(); cout<<″Value=″< 2.指出下面程序中的错误,并说明错误原因。 #include public:void fun(){cout<<″a.fun″< class B{ public:void fun(){cout<<″b.fun″< class C:public A,public B{ private:int b; public:void gun(){cout <<″c.gun<<″endl;} }; void main(){ c obj; obj.fun(); obj.gun(); } 3.指出下面程序段中的错误,并说明出错原因。 class Location { int X,Y; protected: int zeroX,zeroY; int SetZero(int zeroX,int zeroY){X=zeroX;Y=zeroY;} private: int length,height;
正在阅读:
C++语言程序设计复习题09-20
机械设计基础第二版(陈晓南 - 杨培林)题解 - 图文07-03
关于乡镇政府运行情况的调查和思考11-22
年产5000吨仲钨酸铵(APT)工厂设计12-06
高一新生该如何学好数学08-15
CCS使用指南08-15
“十三五”重点项目-涤纶项目节能评估报告(节能专篇)01-01
2022年宁波大学建筑工程与环境学院923材料力学考研仿真模拟题04-16
综合管网施工组织设计01-19
如果我是一只小鸟作文250字07-03
- 交通管制安全技术交底记录表 - 图文
- 2017绵阳三诊作文讲评(附绵阳市高2014级三诊作文审题立意及评分细则)
- 徐州市素质教育概论考试题及答案421页
- 人力资源四级复习zl
- 《市场营销》模拟试题8参考答案
- 最新高考物理备考中等生百日捷进提升系列:专题09 - 磁场 - 含解析
- 中医妇科学复习试题7套;中医妇科学复习重点,2013考试用!
- 自动组题试卷九及答案
- 2010学年一年期课题中期检查目录(4) - 图文
- 汽修专业工作过程教学模式论文
- 肺心病考试题
- 02本科毕业论文(设计)自然科学
- 2018-2019苏教版四年级语文上册每一课看拼音写词语
- 2019-2020学年最新二年级上册数学期中测试题 doc
- 行测专项:资料分析 - 图文
- RCNA考试题1(含答案)
- 镇党委议事规则
- 小学科学四上《饮食与健康》教案
- 2016年部编版最新审定一年级上册语文教案(表格式) - 图文
- 2018-2019学年中考数学专题复习 平方差公式及其应用(含解析)