首页资源分类编程语言C/C++ > C++期末复习资料

C++期末复习资料

已有 445117个资源

下载专区

文档信息举报收藏

标    签:C复习

分    享:

文档简介

该资料是专门为大学中学习C++语言的学生期末复习专用,可以很快将书本中的很多知识浓缩在一份资料内,很实用!

文档预览

 《面向对象程序设计》复习资料 一、填空题 1.C++程序中,有且仅有一个 主 函数。 2.C++程序是由 类 和 函数 组成的。 3.C++源程序的扩展名是 .cpp 。 4.使用class定义的表中,成员的默认访问权限是 私有 的;由struct定义的类中,成员的默认的访问权限是 公有 的。 5.如果一个类中没有定义任何构造函数时,系统会自动提供一个 默认 构造函数;同样,类中没有定义析构函数时,系统会自动提供一个 默认 析构函数。 6.友元函数是被说明在 类体 内的 非 成员函数,友元函数可访问该类中的 私有 成员。 7.静态成员是属于 类 的,它除了可以通过对象名来引用外,还可以使用类名限定来引用。 8.如果类A继承了类B,则类A被称为 派生 类,类B被称为 基 类。派生类继承了基类 9.当一个派生类中含有子对象时,该派生类的析构函数中应包含 子对象 的析构函数、 的析构函数和 子对象 的析构函数。 10.运算符重载函数的两种主要方式是 成员  函数和 友元  函数。 11.使用new创建一个A类堆对象并让p指向它,实参值为5,应该是 A*P; p=new int(5) ; 。 12.在保护继承方式下,基类的public成员成为派生类的 protected 成员,基类的protected成员成为派生类的 protected 成员。 13.C++语言多态性主要表现在动态联编、  函数  重载和  运算符  重载。 14.含有 纯虚拟函数 的类称为抽象类。它不能定义对象 ,但可以定义对象指针和对象引用。 二、单项选择题 1.下列各种高级语言中,不是面向对象的程序设计语言是(D )。 A.C++ B.Java C.VB D.C 2.下列关于对象的描述中,错误的是( B )。 A.对象是类的一个实例 B.对象是属性和行为的封装体 属性和服务的封装体 C.对象就是C语言中的结构变量 D.对象是现实世界中客观存在的某种实体 3.下列关于定义一个指向double型变量的指针,正确的是( C )。 A.int a(5);double *pd=a; B.double d(2.5),*pd=&d; C.double d(2.5),*pd=d; D.double a(2.5),pd=d; 4.下列关于创建一个int型变量的引用,正确的是( A )。 A.int a(3),&ra=a; B.int a(3),&ra=&a; C.double d(3.1);int &rd=d; D.int a(3),ra=a; 5.已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( B )。 A.&(a+1) B.&(p+1) C.&p[2] D.*p++ 6.已知:int a=1,b=2,*p[2];下列表达式中正确的是( )。 A.p=&a B.p=&b C.p[0]=&a,p[1]=&b D.p[ ]={&a,&b}; 7.已知:int a[5],*p=a;则与++*p相同的是( )。 A.*++p B.a[0] C.*p++ D.++a[0] 8.当一个函数没有返回值时,该函数类型应说明为( A )。 A.void B.int C.无 D.任意 9.下列选择重载函数的不同实现的判断条件中,错误的是( )。 A.参数类型不同 B.参数个数不同 C.参数顺序不同 D.函数返回值不同 10.已知:int fun (int &a),m=10;下列调用fum()函数的语句中,正确的是( )。 A.fun(&m); B.fun (m*2); C.fun (m); D.fun (m++); 11.在函数的传址调用中,函数的实参和形参分别应是( )。 A.变量值和变量 B.地址值和指针 C.变量名和引用 D.地址值和引用 12.说明一个内联函数时,应加关键字是( A )。 A.inline B.static C.void D.extern 13.下列关于成员函数的描述中,错误的是( A )。 A.成员函数的定义必须在类体外 B.成员函数可以是公有的,也可以是私有的 C.成员函数在类体外定义时,前加inline可为内联函数 D.成员函数可以设置参数的默认值 14.下列关于类的定义格式的描述中,错误的是( C )。 A.类中成员有3种访问权限 B.类的定义可分说明部分和实现部分 C.类中成员函数都是公有的,数据成员都是私有的 D.定义类的关键字通常用class,也可用struct 15.Void Set(A &a);是类A中一个成员函数的说明,其中A &a的含义是( )。 A.类A的对象引用a作该函数的参数 B.类A的对象a的地址值作函数的参数 C.表达式变量A与变量a按位与作函数参数 D.指向类A对象指针a作函数参数 16.下列关于运算符delete的描述中,错误的是( )。 A.使用该运算符可以释放用new运算符创建的对象或对象数组 B.使用该运算符可以释放所有对象 C.使用delete运算符时会自动调用析构函数 D.用它释放对象数组时,它作用的指针名前要加下标运算符[ ] 17.下列关于基类和派生类的描述中,错误的是( )。 A.一个基类可以生成多个派生类 B.基类中所有成员都是它的派生类的成员 C.基类中成员访问权限继承到派生类中不变 D.派生类中除了继承的基类成员还有自己的成员 18.派生类的对象可以直接访问的基类成员是( )。 A.公有继承的公有成员 B.保护继承的公有成员 C.私有继承的公有成员 D.公有继承的保护成员 D.基类public成员在protected派生类中仍是public成员 19.下列关键字中,用来说明虚函数的关键字是( )。 A.inline B.operator C.virtual D.public 20.下列关于抽象类的描述中,错误的是( )。 A.抽象类中至少应该有一个纯虚函数 B.抽象类可以定义对象指针和对象引用 C.抽象类通常用作类族中最顶层的类 D.抽象类的派生类必定是具体类 21.下列关于友元函数的描述中,错误的是( )。 A.友元函数不是成员函数 B.友元函数只可访问类的私有成员 C.友元函数的调用方法同一般函数 D.友元函数可以是另一类中的成员函数 22.下列关于子对象的描述中,错误的是( )。 A.子对象不可以是自身类的对象 B.子对象是另一个类的对象 C.子对象的初始化要包含在构造函数中 D.一个类中只能有一个子对象 23.下列关于虚函数的描述中,错误的是( )。 A.虚函数是一个成员函数 B.虚函数具有继承性 C.静态成员函数可以说明为虚函数 D.在类的继承的层次结构中,虚函数是说明相同的函数 三、判断对错(共20分,每题1分,对:√,错:×) 1.定义指针时不可以赋初值。 2.指针可以赋值,给指针赋值时一定要类型相同,级别一致。 3.指向数组元素的指针只可指向数组的首元素。 4.创建引用时要用一个同类型的变量进行初始化。 5.函数可以没有参数,但是不能没有返回值。 6.函数可以设置默认的参数值,默认参数值必须设置在函数定义时的形参上。 7.C语言是C++语言的一个子集。C++语言继承了C语言。 8.指针可以加上或减去一个int型数,也可以加上一个指针。 9.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。 10.函数定义时必须给出函数体,函数体内至少有一条语句。 11.类中的成员函数都是公有的,数据成员都是私有的。 12.定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数。 13.对象成员的表示方法与结构变量成员的表示方法相同。 14.静态成员都可以使用类名加作用域运算符的方法来引用。 15.对象指针可用同类对象的地址值给它赋值。 16.this指针是系统生成的指向当前被某个成员函数操作对象的指针。 17.派生类还可以作基类派生出新的派生类。 18.派生类的构造函数包含着直接基类的构造函数。 19.含有纯虚函数的类称为抽象类,与抽象类相对应的是具体类。 20.使用class定义的类,其默认的访问权限是公有的,使用struct定义的类,其默认的访问权限是私有的。 21.析构函数是一个函数体为空的成员函数。 22.对象数组的元素可以是不同类的对象。 23.子对象的初始化要在构造函数的成员初始化列表中进行。 24.单重继承是指派生类只有一个基类的情况。 25.基类中成员在派生类中都是可以访问的。 26.只要是成员函数就可以说明为虚函数,因为虚函数是一种成员函数。 四、程序阅读题 1、读程序,写出和程序输出格式一致的输出结果。 #include int a[]={10,9,6,5,4,2,1}; void main() { int n(7),i(7),x(7); while(x>*(a+i)) { *(a+i+1)=*(a+i); i--; } *(a+i+1)=x; for(i=0;i class A { public: A() { a1=a2=0; cout<<"Default constructor called.\n"; } A(int i,int j); ~A() { cout<<"Destructor called.\n"; } void Print() { cout<<"a1="< class A { public: A(int i):a(i) { cout<<"A:constructor called.\n"; } ~A() { cout<<"A:Destructor called.\n"; } void Print() { cout< class E { public: E(int i,int j) { e1=i; e2=j; cout<<"Constructor called."<<"e1="<e1; e2=e->e2; cout<<" Constructor called."<<"e1="<

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。