版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+复习基础习题课,1、每个类( )构造函数 A.只能有一个 B.只可有公有的 C.可以有多个 D.只可有缺省的,答案为 C,2、已知类A中的一个成员函数的说明如下:void Set(A 则该函数的参数“A B.static void f( ); C.friend f( ); D.friend void f( );,答案为 D,9.下列关于析构函数的描述中,错误的是( ) A.类中有且仅有一个析构函数 B.析构函数可以有形参 C.析构函数没有函数类型 D.析构函数在对象消失时被自动执行,答案为 B,10.下面对静态数据成员的描述中,正确的是( ) A.静态数据成员可以在类体内进行初始化 B.静
2、态数据成员不可以被类的对象调用 C.静态数据成员不能受private控制符的作用 D.静态数据成员可以直接用类名调用,答案为 D,11.下面关于友元函数的描述中,正确的是( ) A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数 C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员,答案为 C,12.下列关于new运算符的描述中,错误的是( ) A.使用运算符new创建对象组时必须定义初始值 B.使用运算符new创建对象时,会调用类的构造函数 C.运算符new可以用来动态创建对象和对象数组 D.使用new运算符创建的对象可以运用运算符delete删除,答案为 A
3、,13.下列对类的构造函数和析构函数的描述中,正确的是( ) A.构造函数可以重载,析构函数不能 B.构造函数不能重载,析构函数可以 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载,答案为 A,14.在C+中,数据封装要解决的问题是( ) A.数据的规范化 B.便于数据转换 C.避免数据丢失 D.防止不同模块之间数据的非法访问,答案为 D,15.假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数. A.void MyClass(); B.MyClass(int n); C.MyClass(); D.MyClass();,答案为 D,16
4、.为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为() A.public B.protected C.private D.static,答案为 A,17.下列对与拷贝初始化构造函数的描述中,正确的( ) A.在C+ 语言中,如果不自定义类的拷贝初始化构造函数,则每个类都有默认的拷贝初始化构造函数 B.必须为每个类定义拷贝初始化构造函数 C.如果要使用拷贝初始化构造函数,则必须在类中定义 D.当定义了类的构造函数时,如果要使用拷贝初始化构造函数,则必须定义拷贝初始化构造函数,答案为 A,18.对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50
5、的语句(划线处)应该是( )class MyClasspublic: MyClass(int x) n=x;void SetValue(int n1) n=n1;private: int n;int f() MyClass *ptr=new MyClass(45);_;A.MyClass(50) B.SetValue(50) C.ptr - SetValue(50) D.ptr - n=50,答案为 C,19.类MyClass的定义如下:class MyClasspublic:MyClass() value=0;setVariable(int i) value=i;private: int v
6、alue;则以下各项对如下语句序列的描述中,正确的是( ).MyClass *p , my; p = ”会调用两次类MyClass的构造函数 C.对语句”*p.SetVariable(5)”的调用是正确的 D.语句”p - SetVariable(5)”与语句”my.SetVariable(5)”等价,答案为 D,20.下面类的定义,有( )错误. class MyClass int i=0; public: void MyClass(); MyClass(int Value); ; A.1 B.2 C.3 D.4,答案为 C,21.定义析构函数时,应该注意( ) A.其名与类名完全相同 B.
7、返回类型是void类型 C.无形参,也不可重载 D.函数体中必须有delete语句,答案为 C,22.构造函数不具备的特征的是( ) A.构造函数的函数名与类名相同 B.构造函数可以重载 C.构造函数可以设置默认参数 D.构造函数必须指定返回类型,答案为 D,23.类的析构函数是在什么时间被自动调用的( ) A.类创建时 B.创建对象时 C.删除对象时 D.不自动调用,答案为 C,24.对于任何一个类,析构函数最多有( ) 个 A.0 B.1 C.2 D.3 25.通常,拷贝构造函数的参数是( ) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名,答案为 B,答
8、案为 C,26.面向对象程序设计中的数据隐藏指的是( ) A.输入数据必须输入保密口令 B.数据经过加密处理 C.对象内部数据结构上建有防火墙 D.对象内部数据结构的不可访问性,答案为 D,27.下列关于类的访问权限的描述中,错误的是( ). A.说明为公有的成员可以被程序中的任何代码访问 B.说明为私有的成员只能被类的成员和说明为友元类的成员函数访问 C.说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问 D.类的所有成员都可以被程序中的任何代码访问,答案为 D,28.一个类的友元函数或友元类可以访问该类的( ) A.私有成员 B.保护成员
9、C.公有成员 D.所有成员,答案为 D,29.下列关于成员函数特征的描述中,错误的是( ) A.成员函数一定是内联函数 B.成员函数可以重载 C.成员函数可以设置参数的默认值 D.成员函数可以是静态的,答案为 A,30.下面对类中静态数据成员的描述中,正确的是( ) A.静态数据成员是类的所有对象共享的数据 B.类的每个对象都有自己的静态数据成员 C.类的不同对象有不同的静态数据成员 D.静态数据成员不能通过类的对象调用,答案为 A,31.下列虚基类的声明中,正确的是( )。A.class virtual B:public A B.virtual class B:public A C.clas
10、s B:public A virtual D.class B: virtual public A,答案为 D,32.C+类体系中,不能被派生类继承的有( )。A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数 33.下列说法错误的是( )。A.公有继承的基类中的public成员在派生类中仍是public的 B.公有继承的基类中的private成员在派生类中仍是private的 C.私有继承的基类中的public成员在派生类中变成private的 D.保护继承的基类中的public成员在派生类中变成protected的,答案为 A,答案为 B,34.下列对基类和派生类关系的描述中,错误
11、的是( )。A.派生类是基类的具体化 B.派生类是基类的子集 C.派生类是基类定义的延续 D.派生类是基类的组合,答案为 B,35.C+中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。A.复用 B.继承 C.封装 D.引用,答案为 B,36.C+类体系中,能被派生类继承的是( )。A.构造函数 B.虚函数 C.析构函数 D.友元函数,答案为 B,37.在重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是( )。A.一元非成员运算符 B.一元成员运算符 C.二元非成员运算符 D.二元成员运算符,答案为 B,38.关于多继承二义性的描述
12、,( )是错误的。A.派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性 B.一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性 C.解决二义性最常用的方法是作用域运算符对成员进行限定 D.派生类和它的基类中出现同名函数时,将可能出现二义性,答案为 D,39.下列对派生类的描述中,( )是错误的。A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的成员除了它自己的成员外,还包含了它的基类成员 D.派生类中继承的基类成员的访问权限到派生类保持不变,答案为 D,40.若类A和类B的定义如下:class A int
13、 i,j;public:int geti()return i;class B: public A int k;public:void make()k=i*j;则上述中, ( )是非法的表达式。A.k=i*j B.int k; C.return i; D.void make();,答案为 A,41.关于公有继承,下列说法错误的是( )。 A.基类的公有成员和保护成员被继承后作为派生类的公有成员和保护成员。 B.派生类的其他成员可以直接访问基类的公有成员和保护成员。 C.派生类的对象可以访问基类的私有成员。 D.派生类成员和对象都无法访问基类的私有成员。,答案为 C,42.下列说法中错误的是( )
14、。 A.公有继承时基类中的public成员在派生类中仍是public的; B.公有继承时基类中的private成员在派生类中仍是private的; C.私有继承时基类中的public成员在派生类中是private的; D.保护继承时基类中的public成员在派生类中是protected的;,答案为 B,43.在公有继承中,基类中的公有成员作为派生类的( )。 A.公有成员 B.私有成员 C.保护成员 D.私有成员函数,答案为 A,44.基类中的( )不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。 A.公有成员 B.私有成员 C.保护成员 D.私有成员函数,
15、答案为 C,45.设置虚继承的声明中,正确的是( )。A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码,答案为 B,46.下面叙述错误的是( )。A.基类的protected成员在派生类中仍然是protected B.基类的protected成员在public派生类中仍然是protected的 C.基类的protected成员在private派生类中是private的 D.基类的protected成员不能被派生类的对象访问,答案为 A,47.派生类的对象对它的基类成员中( )是可以访问的。 A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公
16、有成员,答案为 A,48.下列对派生类的描述中,错误的是( )。A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的缺省继承方式是private D.派生类只含有基类的公有成员和保护成员,答案为 D,49.继承具有( ),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A.规律性 B.传递性 C.重复性 D.多样性,答案为B,50、看程序写结果#include class Base int i;public:Base(int n)cout Constucting base class endl;i=n;Base()cout Destruct
17、ing base class endl;void showi()cout i ,;int Geti()return i;,class Derived:public Base int j;Base aa;public:Derived(int n,int m,int p):Base(m),aa(p)cout Constructing derived class endl;j=n;Derived()cout Destructing derived classendl;void show()Base:showi();cout j, aa.Geti() endl;void main() Derived
18、obj(8,13,24);obj.show();,Constucting base classConstucting base classConstructing derived class13,8,24Destructing derived classDestructing base classDestructing base class,51、指出并改正下面程序中的错误。#includeclass A public:int x;A(int a=0) x=a;void display() coutA.x=xendl; ;class B public:int x;B(int a=0) x=a;
19、void display() coutB.x=xendl; ;,class C:public A,public B int y;public:C(int a,int b,int c) :A(a),B(b) y=c; int gety() return y; ;void main() C myc(1,2,3);myc.x=10;myc.display();,myc.A:x=10; myc.A:display();或myc.B:x=10; myc.B:display();,52、写出程序运行结果:#include using namespace std;class basepublic:void
20、who()coutbase classendl;class derive1:public basepublic:void who()coutderive1 classendl;class derive2:public basepublic:void who()coutderive2 classendl;void main()base obj1;obj1.who();derive1 obj2;obj2.base:who();derive2 obj3;obj3.base:who();,base classbase classbase class,53.阅读下列程序,写出程序运行结果。#includ
21、e using namespace std;class Personpublic:Person()coutConstructor of Personendl;Person()coutDestructor of Personendl;class Student:public Personpublic:Student()coutConstructor of Studentendl;Student()coutDestructor of Studentendl;class Teacher:public Personpublic:Teacher()coutConstructor of Teacheren
22、dl;Teacher()coutDestructor of Teacherendl;int main()Student s;Teacher t;return 0;,Constructor of PersonConstructor of StudentConstructor of PersonConstructor of TeacherDestructor of TeacherDestructor of PersonDestructor of StudentDestructor of Person,54.写出下列程序运行结果:#include using namespace std;class B0public:void display()coutdisplay();p=,B0:display()B0:display()B0:display(),55、写出程序运行结果:#include using namespace std;class Baseint x;public:Base(int xx=0):x(xx)coutConstructor of Baseendl;Base()coutDestr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 9月住院医师规范化培训《放射肿瘤科》试题与答案(附解析)
- 超级电容包装设备项目可行性研究报告
- 字体设计课件 项目7 艺术展览中的字体设计
- 医药行业药品研发创新与市场前景分析
- 股票投资分析与决策:入门指南
- 设计背后的秘密:探究品牌设计与策划的策略
- 高性能计算技术与大数据处理
- 技术驱动的重交沥青工程施工成本控制探讨
- 中小企业转型升级的战略规划
- 跨国公司海外服务流程与文化融合策略
- 2026年吉安职业技术学院单招综合素质考试题库含答案详解
- 2026年安徽林业职业技术学院单招综合素质考试题库含答案解析
- 薄抹灰施工方案
- 2026年餐饮服务标准操作流程培训
- 2026年南京交通职业技术学院单招职业技能考试题库及答案详解(基础+提升)
- 卫生院防雷安全生产制度
- 绍兴2025年浙江绍兴市政务服务办公室招聘政务服务专员6人笔试历年参考题库附带答案详解
- 中华人民共和国药品管理法实施条例培训宣贯
- 2024新版2026春北师大版八年级数学下册全册教案教学设计
- 【生物】2025-2026学年人教版生物七年级下册核心知识点
- 基层信访工作培训课件
评论
0/150
提交评论