山东女子学院 面向对象程序设计期末复习题

上传人:黑** 文档编号:51053358 上传时间:2022-01-24 格式:DOCX 页数:24 大小:22.94KB
返回 下载 相关 举报
山东女子学院 面向对象程序设计期末复习题_第1页
第1页 / 共24页
山东女子学院 面向对象程序设计期末复习题_第2页
第2页 / 共24页
山东女子学院 面向对象程序设计期末复习题_第3页
第3页 / 共24页
点击查看更多>>
资源描述
1. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为AaBAA:aCa)DAA:a()【答案】A2. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为Aint*p=new int30;Bint *p=new int(30);Cint*p=new(30;D*p=new int30;【案答】A3. 当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储O个整数。AnBn+1Cn-1DI【答案】A4当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为AnBn+1Cn-1Dn-2【答案】C5. 设inta=15,b=26;”,贝!j cout(a,b);” 的输出结果是A15B26,15C15,26D26【答案】D6. 假定AB为一个类,则执行“ABrl=r2;”语句时将自动调用该类的A无参构造函数B带参构造函数C赋值重载函数D拷贝构造函数Aint p=&m;Bint*p=&m;Cint &p=*m,Dint *p=m;答案)B56假定变量m定义为“intm=7;”,则定义变量p的正确语句为Aint p=&m;Bint*p=&m;Cint &p=*m,Dint *p=m;答案)B57. 下列给字符数组St初值时,正确的是Achar slO=abcdef:Bchar s24=Habcd;Cchars33= abc”, ” xyz”;Dchar答案】A58. 假定指针变量p定义为“int*p=new int(lOO);”,要释放p所指向的动态内存,应使用语句Adelete p;.Bdelete *p;.Cdelete &p;Ddelete Dp;【答案】A1. 设置虚基类的目的是消除二义性A正确B错误【答案】正确2. 将-个函数声明为个类的友元函数必须使用关键字intA正确B错误【答案错误3. 面向对象程序设计思想的主要特征中不包括多态性A正确B错误【答案错误4设置虚基类的目的是为了解决多继承产生的菱形继承问题。A正确B错误【答案】正确5. 内联函数可以解决程序中代码量不大,但却被频繁调用的函数的调用效率问题A正确B错误【答案正确6. C+是既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言A正确B错误【答案】正确7. 友元函数不是类的成员函数A正确B错误答案)正确8. 类与类之间的友元关系可以继承A正确B错误【答案】错误9. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用递归调用A正确B错误【答案】错误10C+中,能够被派生类继承的函数是构造函数A正确B错误【答案】错误11.静态数据成员不是所有对象所共用的A正确B错误【答案错误12 .标识符可以与关键字相同。A正确13错误答案)错误13. 派生新类的类称为基类,而派生出的新类称派生类,又称为子类A正确B错误【答案】正确14. 在类中,如果不做特别说明,所有成员的访问权限均为公用的A正确B错误【答案】错误15. 对象有三个特征,标识、状态和行为。A正确B错误答案正确16. 一个类只能定义一个析构函数,但可以定义多个构造函数A正确B错误【答案正确17索引器可以用static修饰。A正确B错误答案)错误18.istream 类对象是 cinA正确B错误答案)正确19. C#中子类可以继承多个基类,也可以继承一个接以。A正确B错误答案】错误20. 静态成员不能由对象进行访问。A正确B错误【答案】正确1. 函数类型 function type答案(1)获取函数并返回值的类型。(2)获取函数但不返回值(void).(3)没有获取参数但返回值。(4)没有获取参数也不返回值。2. 形式参数parameter答案函数中需要使用变元(变量)时,将在函数定义时说明需要接受的变元,这些变元称为形式参数。形式参数对应于函数定义时的参数说明。其使用与局部变量类似。3. 栈 stack(答案)有两个含义:(1)指内存中为函数维护局部变量的区域。(2)指先进后处的序列。4. 全局变量 global variable【答案】定义在任何函数之外,可以被任一模块使用,在整个程序执行期间保持有效。当儿个函数要共享同一数据时全局变量将十分有效,但是使用全局变量是有一定弊端的:全局变量将在整个程序执行期间占有执行空间,即使它只在少数时间被用到:大帛:使用全局变昂:将导致程序混乱,特别是在程序较复杂时可能引起错误。5. 静态成员函数 static member function【答案】成员函数通过前面加static说明为静态的,但是静态成员函数只能存取类的其他静态成员,而且没有this指针。静态成员函数可以用来在创建对象前预初始化专有的静态数据。6. main函数【答案】由系统自动调用开始执行C+程序的第一个函数7. 作用域 action scope(scale)【答案】指标识符在程序中有效的范围,与声明位置有关,作用域开始于标识符的生命处。分:局部作用域,函数作用域,函数原型作用域,文件作用域,类作用域。8. 数组 array【答案】数组是一个由若干同类型变量组成的集合。9. 基类 base class(parent class)【答案】被继承的类称为基类,又称父类、超类或范化类。它是一些共有特性的集合,可以有其它类(派生类)继承它,这些的特性。1. 什么是多继承?多继承时,构造函数和析构函数执行顺序是怎样的?【答案多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是-个单继承。派生类构造函数的执行顺序是先执行所有基类的构造函数(顺序按照定义派生类时指定的各基类顺序),再执行派生类的构造函数,析构函数执行顺序,与构造函数完全相反。2. 程序的基本结构有哪几种?【答案】程序的基本结构有以下儿种:1)顺序结构;2)选择结构;3)循环结构3. 类成员的访问权限分为哪三类。【答案】公有继承,私有继承和保护继承4. 请说明索引和属性的异同?【答案】1)属性和索引器的作用都是为了进一步封装数据、组织数据并提供方便的访问方式;2)定义属性和定义索引相似,他们都具有get访问器和set访问器,并旦可以取舍以控制访问权限;3)所有的字段都可以有属性,字段是默认的和最简单的属性,但索引器不同:4)属性可以是实例成员,也可以是属于整个类的静态成员,但索引只能是实例成员,属于某一个具体的对象。5. 请简述什么是面向对象的语言答案(1)出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。(2)特点:是高级语言。将客观事物看作具有属性和行为的对象。通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承与多态实现代码重用。(3)优点:使程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。6. 构造函数的作用是什么答案】构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为个特定的状态。7. 请叙述 publiCx privatex protected、internal 修饰符的作用域?【案答】1)限定为public的成员,可以被所有的类访问:2)限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问;3)限定为private的成员,只能被这个类本身访问,如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例;4)internal:只能值包含该类的程序集中访问该类;8. 什么是类模板【答案】类模板是对批仅仅成员数据类型不同的类的抽象,程序员只要为这一一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。9. 解释重写和隐藏的区别和联系?【答案重写又称为覆盖,对于基类的virtual成员,在派生类中重新加以定义并用关键字override修饰的称为重写或者覆盖。隐藏是对于基类的成员,在派生类中重新加以定义,并用NEW关键词修饰的称为隐藏;重写和隐藏有相似的方面,但乂有实质的区别:隐藏和重写是基类和派生类的同名成员的两种不同关系,隐藏可以发生在数据成员和行为成员上,而重写只是对行为成员而言;10. 什么是this指针?它的主要作用是什么?【案答】this指针:隐含在非静态成员函数中的特殊指针,它是当前正在调用此成员函数的对象的指针。作用:主要是用于保证访问不能跨界和用于区分不同的对象。成员函数对成员变量的引用实际是通过this指针访问的,也就是说:成员变量this-成员变量:另外,如果成员函数需要访问当前对象,也可以通过this指针,文this就是当前对象。1试述函数重载的定义【答案函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。2. 试述单继承和多继承的概念【答案一个派生类只有一个基类,成为单继承;一个派生类拥有多个基类,成为多继承。3试述局部变量的定义答案)定义在函数内部的变量。局部变量只在定义它的模块内部起作用,当该段代码结束,这个变量就不存在了。也就是说一个局部变量的生命期就是它所在的代码块的执行期,而当这段代码再次被执行时该局部变量将重新被初始化而不会保持上一次的值(如果定义为静态变量,再次调用时将不会不会出事化而保持上次的值)。需要注意的是,如果主程序和它的一个函数有重名的变量,当函数被调用时这个变量名只代表当前函数中的变量,而不会影响主程序中的同名变量。4. 继承或多继承时,派生类构造函数的调用顺序【答案】1、调用基类的构造函数;2、调用内嵌成员对象的构造函数调用顺序按照它们在类中定义的顺序;3、派生类自己的构造函数。5. 试述编译过程的三个步骤【答案】词法分析、语法分析、代码生成6. 试述赋值兼容原则答案)赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员,而且所有成员的访问控制属性也和基类完全相同。7. 试述运算符被重载的规则【答案】1、重载后运算符的优先级与结合性不会改变。2、不能改变原运算符操作数的个数。3、不能冲在C+中没有的运算符。4、不能改变运算符的原有语义。8. 试述C+程序开发通常要经过5个阶段答案】编辑、预处理、编译、连接、运行与调试。9. 试述引用与指针的区别答案1.指针是一个实体,而引用仅是个别名;2.引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;4.引用没有const,指针有const,const的指针不可变;5.引用不能为空,指针可以为空;6. “sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身(所指向的变量或对象的地址)的大小:typeid(T)=typeid(T&)恒为真,sizeof(T)=sizeof(T&)恒为,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。7.指针和引用的自增( + +)运算意义不一样;【答案】D7. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为AabcB*thisCthisDthis&【答案C8. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为Ax(a)BxaCX-aDX.a【答案】D9. 假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的A带参构造函数B无参构造函数C拷贝构造函数D赋值重载函数【答案A10. 假定k是一个double类型的变量,则关于变量p的正确定义语句为Adouble p=&k;Bint *p=&k;Cdouble &p=*k;Dchar *p=Thank you!;【答案D11.类中定义的成员默认为()访问属性。Apublic.BprivateCprotectedDfriend答案B12.类的析构函数是一个对象被()时自动调用的。A建立B撤消C赋值D引用【答案】B13用new运算符创建一个含10个元素的一维整型数组的正确语句是Aint *p=new a10;Bint *p=new float10;cint *p=new int10);Dint *p=new int10=(lz 2, 3, 4, 5【答案】C14. 在多文件结构的程序中,通常把类的定义单独存放于()中。A主文件B实现文件C库文件D头文件答案)D15. 函数重载是指A两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C两个以上的函数名字不同,但形参的个数或类型相同D两个以上的函数取相同的函数名,并且函数的返回类型相同【答案】A16假定AA为一个类,a为该类私有的数据成员,GetValueO为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为Ax.aBx.a()Cx-GetValue()Dx.GetValue()答案】D17.在多文件结构的程序中,通常把含有main。函数的文件称为A主文件B实现文件C程序文件D头文件【答案】A18能作为C+程序的基本单位是A字符B语句C函数D源程序文件【答案】C19. 假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值A己经被改变B可能被改变C不变D受到函数调用的影响【答案】C20. 关于封装,下列说法中不正确的是通过封装,对象的全部属性和操作结合在一起,A形成一个整体B通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C通过封装,每个对象都成为相对独立的实体D通过封装,对象的属性都是不可见的【答案】D21. 假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为Aint rx=x;Bint rx=&x;Cint *rx=&x;Dint &rx=x;【答案】D22. 下列对引用的陈述中不正确的是A每一个引用都是其所引用对象的别名,因此必须初始化B形式上针对引用的操作实际上作用于它所引用的对象C一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D不需要单独为引用分配存储空间答案)C23假定AB为一个类,则执行“ABx;”语句时将自动调用该类的A带参构造函数B无参构造函数C拷贝构造函数D赋值重载函数答案)B24在关键字private后面定义的成员为类的()成员。A私有B公用C保护D任何(答案)A25.假定AB为一个类,则执行“AB*s=newAB(a,5);”语句时得到的一个动态对象为ASBS-aCs.aDS【答案】D26下列()的调用方式是引用调用A形参和实参都是变量B形参是指针,实参是地址值C形参是引用,实参是变量D形参是变量,实参是地址值答案)C27.假定AA是一个类,“AA&abc();”是该类中一个成员函数的原型,若该函数存在对大this赋值的语句,当用x.abc()调用该成员函数后,x的值A己经被改变B可能被改变C不变D不受函数调用的影响【答案】A28若需要使类中的个指针成员指向块动态存储空间,则通常在()函数中完成。A析构B构造C任一成员D友元答案)B29在C+程序中使用的cout标识符是系统类库中定义的()类中的一个对象。AistreamBostreamCiostreamDfstream(案答】B30以下叙述中正确的是A使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C在程序中使用内联函数使程序的可读性变差D在定义函数时可以在形参表的任何位置给出缺省形参值答案)B31. 假定指针变量p定义为“int*p=newint30;”,要释放p所指向的动态内存,应使用语句A delete p;B delete *p;C delete &p;D delete Dp;【答案】D32. 一个类的构造函数通常被定义为该类的()成员。A公用B保护C私有D友元【答案A33. 在类作用域中能够通过直接使用该类的()成员名进行访问。A私有B公用C保护D任何【答案】D34. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。A inB inlineC inLineD InLiner答案】B35. 假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为Aint AA:a()Bint AA:a(CAA:aODAA:int a()【答案】A36软件产品可被全部或部分地再用于新的应用的能力叫做软件的A可维护性B可复用性C兼容性D正确性【答案】B37. 一个类的析构函数通常被定义为该类的()成员。A私有B保护C公用D友元答案C38. 在C+程序中使用的cin标识符是系统类库中定义的()类中的一个对象。AistreamBostreamCiostreamDfstream【案答】A39在一个类的定义中,包含有()成员的定义。A数据B函数C数据和函数D数据或函数答案)D40在关键字public后面定义的成员为类的()成员。A私有B公用C保护D任何(答案B41.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为Apx(a)BpxaCpx-aDpx.a答案C42以下关于函数模板叙述正确的是A函数模板也是一个具体类型的函数B函数模板的类型参数与函数的参数是同一个概念C通过使用不同的类型参数,函数模板可以生成不同类型的函数D用函数模板定义的函数没有类型答案c43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择A内联函数B重载函数C递归函数D函数模板答案】A44. 下列的符号常量定义中,错误的定义是Aconst M=10;Bconst int M=20;Cconst char ch;Dconst bool mark=true;【答案】C45面向对象方法的多态性是指A一个类可以派生出多个特殊类B一个对象在不同的运行环境中可以有不同的变体C针对一消息,不同的对象可以以适合自身的方式加以响应D一个对象可以是由多个其他对象组合而成的答案)C46.采用重载函数的目的是A实现共享B减少空间C提高速度D使用方便,提高可读性【答案D47 一个C+程序文件的扩展名为A. hB. cC. cppD. cp【答案】C48. 软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的A可维护性B可复用性C兼容性D正确性答案)A49. 存储以下数据,占用存储字节最多的是A0BOC”0”DO【答案D50. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为A intBcharC AADAA*答案)D51在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于()中。A主文件B实现文件C库文件D头文件答案)B52结构中定义的成员默认为()访问属性。ABCDpublicprivateprotectedfriend【答案】A53类的构造函数是在定义该类的一个()时被自动调用执行的。A成员函数B数据成员C对象D友元函数【答案】C54.对于一个类的析构函数,其函数名与类名A完全相同B完全不同C只相差一个字符D无关系答案)55.假定变量m定义为“intm=7;“,则定义变量p的正确语句为
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!