「面向对象程序设计C++」考试复习题资料知识点复习考点归纳总结_第1页
「面向对象程序设计C++」考试复习题资料知识点复习考点归纳总结_第2页
「面向对象程序设计C++」考试复习题资料知识点复习考点归纳总结_第3页
「面向对象程序设计C++」考试复习题资料知识点复习考点归纳总结_第4页
「面向对象程序设计C++」考试复习题资料知识点复习考点归纳总结_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、选择题电大考试电大小抄电大复习资料1、重载函数在调用时选择的依据中,错误的是a参数个数 b参数类型 c函数名字 d.函数类型2、有关构造函数的说法不正确的是a.构造函数名字和类的名字一样 b.构造函数在说明变量时自动执行c.构造函数无任何函数类型 d.构造函数有且只有一个3、下列关于c+函数的叙述中,正确的是( )。 a)每个函数至少要具有一个参数 b)每个函数都必须返回一个值 c)函数在被调用之前必须先声明 d)函数不能自己调用自己4、下列关于类和对象的叙述中,错误的是( )。 a)一个类只能有一个对象 b)对象是类的具体实例 c)类是对某一类对象的抽象 d)类和对象的关系是一种数据类型与变量的关系5、在c+中,用于实现运行时多态性的是( )。 a)内联函数 b)重载函数 c)模板函数 d)虚函数6、下列关于运算符重载的叙述中,正确的是( )。 a)通过运算符重载,可以定义新的运算符 b)有的运算符只能作为成员函数重载 c)若重载运算符+,则相应的运算符函数名是+ d)重载二元运算符时,必须声明两个形参7、对于语句 coutxendl;错误的是描述是( )。 a)“cout”是一个输出流对象 b)“endl”的作用是输出回车换行 c)“x”是一个变量 d)“”称作提取运算符8、有如下类声明,则类myderived中保护的数据成员和成员函数的个数是( )。 class mybase private: int k; public: void set(int n) k=n; int get( )const return k; ; class myderived: protected mybase protected: int j; public: void set(int m, int n) mybase:set(m); j=n; int get( ) const return mybase:get( )+j; ;a)4 b)3 c)2 d)19、下列关于派生类构造函数的描述中,错误的是a派生类构造函数应包含直接基类和所有间接基类的构造函数b派生类构造函数仅包含直接基类构造函数和其他(如子对象)类构造函数等c派生类构造函数通常带有成员初始化表d派生类默认构造函数中隐含包括直接基类的默认构造函数10、已知在一个类体中包含如下函数原型: volume operator-(volume)const;,下列关于这个函数的叙述中,错误的是( )。 a)这是运算符-的重载运算符函数 b)这个函数所重载的运算符是一个一元运算符 c)这是一个成员函数 d)这个函数不改变类的任何数据成员的值11、执行如下的程序段后,输出结果是( )。 cout.fill(*); cout.width(6); cout.fill(#); cout 123 endl; a)#123 b)123# c)*123 d)123*12、在下列函数原型中,可以作为类aa构造函数的是( )。 a)void aa(int); b)int aa(); c)aa(int)const; d)aa(int);13、下面四个选项中,( )是用来声明虚函数的。 a)virtual b)public c)include d)using namespace14、实现运行时的多态性要使用( )。 a)重载函数 b)构造函数 c)析构函数 d)虚函数15、要实现动态联编,必须通过( )调用虚函数。 a)对象指针 b)成员名限定 c)对象名 d)派生类名16、以下( )成员函数表示纯虚函数。 a)virtual int vf(int); b)void vf(int)=0; c)virtual void vf()=0; d)virtual void vf(int)17、在每个c+程序中都必须包含有这样一个函数,该函数的函数名为。a.mainb.mainc.named.function18、设x和y均为bool量,则x&y为真的条件是。a.它们均为真b.其中一个为真c.它们均为假d.其中一个为假19、下面的哪个保留字不能作为函数的返回类型?。a.voidb.intc.newd.long20、假定a为一个整型数组名,则元素a4的字节地址为。a.a+4b.a+8c.a+16d.a+3221、假定ab为一个类,则执行“aba(4),b3,*p2;”语句时,自动调用该类构造函数的次数为。a.3b.4c.6d.922、假定要对类ab定义加号操作符重载成员函数,实现两个ab类对象的加法,并返回相加结果,则该成员函数的声明语句为:。a.aboperator+(ab&a,ab&b)b.aboperator+(ab&a)c.operator+(aba)d.ab&operator+()23、有如下类声明:class xa private: int x; public: xa(int n) x=n; ; class xb: public xa private: int y; public: xb(int a,int b); ; 在构造函数xb的下列定义中,正确的是( )。 a)xb:xb(int a,int b): x(a),y(b) b)xb:xb(int a,int b): xa(a),y(b) c)xb:xb(int a,int b): x(a),xb(b) d)xb:xb(int a,int b): xa(a),xb(b) 24、在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。则 operator+ 有 个参数,operator* 有 参数。( ) a)2、2 b)2、1 c)1、2 d)1、125、应在下列程序划线处填入的正确语句是( )。 class base public: void fun()coutbase:funendl; ;class derived:public base void fun() /显示调用基类的函数fun() coutderived:funfun();26、下列关于继承的描述中,正确的是a.继承不是类之间的一种关系 b.c+语言仅支持单一继承c.继承会增加程序的冗余性 d.继承是面向对象方法中一个很重要的特性27、在int b3=1,3,2,4,5,6,0中,a22的值是a. 0 b. 5 c.6 d.2 28、下列给字符数组进行的初始化中,正确的是a. char s1=abcd; b.char s23=xyz;c. char s3=a,x,y; d.char s423=xyz,mnp;29、已知:int a,&ra=a;关于ra的描述中正确的是a. ra是int型变量a的地址值 b.a是int型变量ra的地址值c. ra是int型变量a的引用 d. ra是int型变量a的指针30、对于int *pa5;的描述,正确的是a. pa是一个指向数组的指针,所指向的数组是5个int型元素b. pa是一个指向某数组中第5个元素的指针,该元素是int型变量c. pa5表示某个数组中的第5个元素的值d. pa是一个具有5个元素的指针数组,每个元素是一个int型指针31、有关类的说法不正确的是a类是一种用户自定义的数据类型b. 类中的成员函数可以存取类中的私有数据c. 在类中,如果不作特别说明,所有的数据均为私有类型d. 在类中,如果不作特别说明,所有的成员函数均为公有类型32、c+语言中规定函数的返回值的类型是由a return语句中的表达式类型所决定 b 调用该函数时的主调用函数类型所决c 调用该函数时系统临时决定 d 在定义该函数时所指定的函数类型所决定33、有一个int类型变量,在程序中频繁使用,最好定义它为aregister b auto c extern dstatic 34、如果a=1,b=2,c=3,d=4,则条件表达式ab?a:cd?c:d的值为a1 b2 c3 d435、下列运算符中,在c+中不能重载运算符是a?: b+ c- d=36、如果一个类至少有一个纯虚函数,那么就称该类为a抽象类 b虚基类 c派生类 d以上都不对37、在下列关键字中,用以说明类中公有成员的是apublic bprivate cprotected dfriend38、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用a内联函数 b重载函数 c递归调用 d嵌套调用39、功能为对对象进行初始化的是a析构函数 b数据成员 c构造函数 d静态成员函数40、下述静态数据成员的特性中,错误的是 a说明静态数据成员时前边要加修饰符staticb静态数据成员要在类体外进行初始化c引用静态数据成员时,要在静态数据成员前加类名和作用域运算符d静态数据成员不是所有对象所共有的41、在c+中,关于下列设置参数默认值的描述中,正确的是a不允许设置参数的默认值b设置参数默认值只能在定义函数时设置c设置参数默认值时,应该是先设置右边的再设置左边的d设置参数默认值时,应该全部参数都设置42、print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 avoid print() const bconst void print()cvoid const print() dvoid print(const)二、填空题1、面向对象程序设计有四个主要特点,即抽象、封装、_和_。2、非成员函数应声明为类的_函数才能访问这个类的private成员。3、派生类中的成员不能直接访问基类中的_成员。4、在用class定义一个类时,数据成员和成员函数的默认访问权限是_。5、运算符重载函数可能是类的_函数,也可以是类的_函数,还可以是普通函数。6、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是_,与之作用相同的控制符名称是_。7、含有纯虚函数的类称为_。8、使用cin和cout进行输入输出操作的程序必须包含头文件_ ,其语句格式为_ 。9、c+语言中使用const定义常量时需要指出_ 、_ 和 _ 。10、派生类的构造函数的初始化表中,通常应包含_ 构造函数和_ 构造函数。11、c+语言支持两种多态性,分别是_ 和_ 。12、函数调用excc(v1,v2),(v3,v4,v5),v6);语句中实参的个数是_ 。 13、c+语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。14、执行“coutchar(a+2)5的相反表达式为。18、假定一个一维数组的定义为“char*a8;”,则该数组所含元素的个数为,所占存储空间的字节数为。19、变量分为全局和局部两种,变量没有赋初值时,其值是不确定的。20、假定a是一个二维数组,则aij的指针访问方式为。21、假定一个结构类型定义为“structdinta;unionintb;doublec;d*d2;”,则该类型的大小为字节。22、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的实现。23、假定ab为一个类,则执行“aba10;”语句时,系统自动调用该类的构造函数的次数为。242、假定类ab中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为。三、程序的填空、程序的执行1、以下程序是定义一个计数器类counter,对其重载运算符“+”,请填空。class counter private: int n; public: counter() n=0; counter(int i)n=i; _ /运算符重载函数 counter t; t.n=n+c.n; return t; void disp() coutn=nendl;void main() counter c1(5),c2(10),c3; c3=c1+c2; c1.disp(); c2.disp(); c3.disp(); 2、下列程序的输出结果为2,请将程序补充完整。class base public: _ void fun() cout1; ;class derived: public base public: void fun( ) coutfun( ); delete p; return 0; 3、写出执行下面程序的输出结果。void fun(int &x, int y) int t=x; x=y; y=t; int main( ) int a2 = 23, 42; fun(a1,a0); std:couta0,a1std:endl; return 0; 27、写出执行下面程序的输出结果。class a public: a() couta; ;class b public: b() coutb; ;class c : public a b b; public: c() coutc; ;int main( ) c obj; return 0; 4、写出执行下面程序的输出结果。class base private: char c; public: base(char n):c(n) virtual base()coutc; ; class der:public base private: char c; public: der(char n):base(n+1),c(n) der()coutc; ; int main() der(x); return 0; 5. #include void fun(int *s,int n1,int n2)int i,j,t;i=n1;j=n2;while (ij)t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i+; j-;void main()int a10=1,2,3,4,5,6,7,8,9,0,i,*p=a; 输出结果为:fun(p,0,3);fun (p,4,9);fun(p,0,9);for (i=0;i10;i+)cout *(a+i);cout endl;6. 有如下程序#include #include class girl char *name , *dial;public:girl(char *n, char *d) name=new charstrlen(n)+1; strcpy(name, n);dial= new charstrlen(d)+1; strcpy(dial,d);friend void disp(girl &);girl() delete name; de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论