09zc++re1.docx
- 文档编号:9147594
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:25.92KB
09zc++re1.docx
《09zc++re1.docx》由会员分享,可在线阅读,更多相关《09zc++re1.docx(26页珍藏版)》请在冰豆网上搜索。
09zc++re1
C++复习
一、判断题(对√,错X)
1.构造函数的功能是对对象进行初始化。
√
2.C++是一个纯正的面向对象的语言。
X
3.一个类中只能定义一个析构函数。
√
4.函数的默认参数没有顺序要求,可以随意定义。
X
5.在C++中,小数点前的0可以省略,但小数点不可以省略。
√
6.拷贝构造函数用它所在类的对象作为参数。
X
7.析构函数不指定参数,而构造函数可以指定参数。
√
8.在C++中,动态分配内存是通过new函数来实现的。
X
9.在私有继承中,派生类的对象不可访问基类中的任何成员。
√
10.派生类中继承的基类成员的访问权限到派生类保持不变。
X
11.一个类只能有一个对象。
X
12.在程序中可以直接调用构造函数。
X
13.C++中的所有函数调用都是传值调用。
X
14.对象数组的元素可以是不同类的对象。
X
15.在C++语言中,”A”占两个字节,而’A’占一个字节。
√
16.友元函数不是成员函数,但它可以访问类中私有成员。
17.构造函数和析构函数都可以重载,因为它们都是成员函数。
18.用class定义的类中,默认的访问权限是公有的。
19.假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为1次。
20.运算符new可以创建变量或对象,也可以创建数组。
二、填空题
1.定义重载函数时,应在形参的__________或形参的_________上有所不同。
2.当使用new运算符动态生成一个类的对象时,隐含着调用该类的________函数。
3.带有函数的类是抽象类。
4.在C++中,类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的____,共同行为被描述为类中的______。
5.假定用户没有给一个名为AA的类定义构造函数,则系统为其定义的默认构造函数形式为______。
6.用于输出表达式值的标准输出流对象是______,用于从键盘上为变量输入值的标准输入流对象是______。
7.组成C++语言的基本符号包括:
、数字和特殊符号。
C++语言的标识符是以字母或开头的。
8.如果类A继承了类B,则类A称为类,类B称为类。
9.函数的参数个数、类型及位置都相同,只是返回值的类型不同,这不是重载函数。
10.若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上________关键字。
11.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上_______和两个冒号分隔符。
12.假定用户只为类AB定义了一个构造函数“AB(intaa,intbb=0){a=aa;b=bb;}”,则定义该类的对象时,其实参表中至多带有____个实参。
13.应用程序jisuan.cpp中只有一个函数,则这个函数的名称是。
14.类中数据成员的默认访问权限是。
15.一个C++程序的执行从函数开始。
16.定义在类内部的函数默认为___________,该函数的函数体会在编译时被
插入到每一个调用它的地方。
17.若一个类的某成员函数只是读其数据域的值,而不能修改它,则应在函数头的最后用
关键字修饰。
18.在C++程序中,对刚创建的对象进行初始化的工作由函数来完成;而对象被删除前的一些清理工作则是由函数来完成的。
19.一个C++程序的开发步骤通常包括:
、编译、、运行和调试。
20.一般情况下,按照面向对象方法的要求,把类中数据成员的访问控制属性定义为__类型,而把成员函数的访问控制属性定义为____类型。
21.C++中,对类中的成员函数和属性的访问是通过_ _、_ ___和_ __这3个关键字来控制的。
22.C++程序主要有三种基本控制结构,分别是顺序结构、 和 。
23.描述命题"A大于B且小于C"的C++表达式为 。
24.执行下列语句后,a的值是,inta=5;a+=a-=a*a;
25.若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句 。
26.如果要将基类Shape中的方法floatArea()声明为纯虚函数,使用的语句为 。
27.设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的 。
28.抽象类不能实例化,即不能定义抽象类的__。
29.类拥有两类成员,即______________和______________。
30.类中的构造函数有_____个,析构函数有______个。
31.在C++中,____运算符用来对指定类型对象动态分配内存,而
_______运算符则用来删除动态分配的内存空间。
32.非成员函数应声明为类的________,才能访问这个类的private成员。
33.设置虚基类的目的是。
可通过关键字标识虚基类。
34.在类中定义和实现的函数称为________。
35.假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造函数形式为______。
MyClass(){}
36.假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数形式为______。
~MyClass(){}
三、单项选择题
1.如有下列类的声明:
ClassFOO{intbar;};则类的成员bar是。
A.公有数据成员B.公有成员函数
C.私有数据成员D.私有成员函数
2.下列关于类和对象叙述错误的是。
A.一个类只能有一个对象B.对象是类的具体实例
C.类是对某一类对象的抽象D.类和对象的关系是数据类型与变量的关系
3.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为。
A.constchar*ptr=“xyz”;B.charconst*ptr=“xyz”;
C.char*constptr=“xyz”;D.constchar*constptr=“xyz”;
4.假定AB为一个类,则执行“ABA[10];”语句时,系统自动调用该类的构造函数的次数为。
A.10B.9C.8D.7
5.关于动态联编的下列描述中,错误的是。
A.动态联编是以虚函数为基础的
B.动态联编是在运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用
D.动态联编是在编译时确定所调用的函数代码的
6.如果类B被说明成类A的友元,则。
A.类A的成员即类B的成员B.类B的成员函数可以访问类A的成员
C.类B的成员即类A的成员D.类A也是类B的友元
7.面向对象程序设计思想的主要特征中不包括。
A.封装性B.功能分解,逐步求精
C.继承性D.多态性
8.假定AB为一个类,则为该类的拷贝构造函数的原型说明是。
A.AB(ABx);B.AB(AB&x);
C.voidAB(AB&x);D.AB(intx);
9.在公有继承的情况下,基类的私有成员在派生类中的访问权限是。
A.不可访问 B.可以访问C.公有的 D.保护的
10.下列关于C++类的各种描述中,错误的是。
A.类是对逻辑上相关的数据与函数的封装
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
11.在下列各种符号常量的定义中,错误的定义是。
A.constfloatf=10.6;B.constintM=20;
C.constcharch;D.constboolmark=true;
12.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,
则执行“delete[]px;”语句时,自动调用该类析构函数的次数为C。
A.0B.1C.nD.n+1
13.假定AA为一个类,a为该类私有的数据成员,Geta()为该类公有函数成员,它返回a的值,obj为该类的一个对象,则访问obj对象中数据成员a的格式为。
A.obj.aB.obj.a()C.obj->Geta()D.obj.Geta()
14.假定VOLUME为一个类,在类体中包含如下函数原型:
VOLUMEoperator-(VOLUMEc2);
关于这个函数的叙述中,错误的是。
A.这是重载运算符-的函数
B.这个函数所重载的运算符是一个一元运算符
C.这是一个成员函数
D.这个函数不改变类的任何数据成员的值
15.在C++中实现封装性是借助于。
A.枚举B.类C.数组D.函数
16.语句“int*constp;”,说明不能修改的是。
A.p指针本身的值B.p指针指向的变量的值
C.p指针指向的数据类型D.上述A.B.C.三者
17.下列声明“A为虚基类,派生B类”,正确的是。
A.classvirtualB:
publicAB.virtualclassB:
publicA
C.classB:
publicAvirtualD.classB:
virtualpublicA
18.已知print()函数是一个类的常成员函数,下列声明中正确的是。
A.voidprint()const;
B.constvoidprint();
C.voidconstprint();
D.voidprint(const);
19.下面叙述错误的是。
A.基类中的private成员在public派生类中是不可直接访问的
B.基类中的private成员在public派生类中是private的
C.基类中的public成员在public派生类中是public的
D.基类中的protected成员在public派生类中是protected的
20.下列静态数据成员特性中,错误的是。
A.说明静态数据成员时前边要加修饰符static
B.静态数据成员要在类体外进行初始化
C.静态数据成员不是所有对象共有的
D.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域分辨符
21.若类中的成员在定义时紧接着类名称,且没有使用访问控制属性关键字,
则该成员缺省定义为。
A.publicB.privateC.protectedD.friend
22.在下列关于设置参数默认值的各种描述中,正确的是。
A.不允许设置参数的默认值
B.设置参数默认值时,应该是先设置左边的再设置右边的
C.设置参数默认值时,应该是先设置右边的再设置左边的
D.设置参数默认值时,应该全部参数都设置
23.一个函数功能很简单,但要求被频繁调用,最好定义为。
A.内联函数B.重载函数
C.递归函数D.嵌套函数
24.如果一个类至少有一个纯虚函数,那么就称该类为。
A.抽象类B.虚基类C.派生类D.以上都不对
25.要实现动态联编,调用虚函数必须通过。
A.对象指针B.成员名限定C.对象名D.派生类名
26.假定A为一个类,则执行“Ax;”语句时将自动调用该类的。
A.有参构造函数B.无参构造函数
C.拷贝构造函数D.赋值构造函数
27.通过一个基类类型的调用虚函数时,采用动态绑定。
A.派生类名 B.对象C.成员名限定D.指针
28.定义析构函数时,正确的是。
A.其名与类名完全相同 B.无形参,也没有返回值
C.返回类型是void类型 D.函数体中必须有delete语句
29.C++源程序文件的缺省扩展名是。
A.exeB.cppC.objD.lik
30.下面的函数声明中,是“voidBC(inta,intb);”的重载函数B。
A.intBC(inta,intb)B.voidBC(intx,inty)
C.floatBC(inta,intb,intc=0)D.voidBC(inta,intb=0)
31.下面的哪一个函数头格式不正确?
___________。
A.AA(inta,intb) B.AA(inta,intb=0)
C.AA(inta=0,intb=0) D.AA(inta=0,intb)
32.C++语言中规定,函数的返回值的类型是由。
A.return语句中的表达式类型所决定
B.调用该函数时的主调用函数类型所决定
C.在定义该函数时所指的数据类型所决定
D.调用该函数时系统临时决定
33.C++语言中基本数据类型是。
A.整型、浮点型、逻辑型和无值型B.整型、字符型、浮点型和无值型
C.整型、浮点型、字符型和逻辑型D.整型、字符型、逻辑型和无值型
34.关于成员函数特征的描述中,不正确的是___________。
A.成员函数的第一个参数有一个隐含的this指针
B.成员函数可以是常成员函数,逻辑上不改变对象的状态
C.成员函数不可以是静态的,只有数据域是静态的
D.作用在常对象的非常成员函数在编译中会出现错误或警告
35.假定k是一个int类型的变量,则关于变量pointer的正确定义语句是_________。
A.doublepointer=&kB.int*pointer=&k
C.int&pointer=*kD.char*pointer=”hello”;
36.不能重载的运算符是___________。
A.“[]”运算符B.“?
:
”运算符
C.“()”运算符D.“+”运算符
37.下面关于友元的描述中,错误的是。
A.友元函数可以访问该类的私有数据成员。
B.一个类的友元类中的成员函数都是这个类的友元函数。
C.友元函数是类的非成员函数。
D.类与类之间的友元关系可以传递。
38.与C语言printf("Helloworld\n");语句功能相同的C++语句是。
A.cout>>"Helloworld\n"; B.cin>>"Helloworld\n";
C.cout<<"Helloworld\n"; D.cin<<"Helloworld\n";
39.设intarr[5]={0},*p=arr;下面的表达式,哪个最有可能不是0的是___________
A.arr[0]B.*(p+5)
C.*pD.arr[2]
40.构造函数不具备的特征的是__________。
A.构造函数的函数名与类名相同B.构造函数可以重载
C.构造函数可以设置默认参数D.构造函数必须指定返回类型
41.与数学式1 A.1 C.x>1ANDx<10D.x>1&&x<10 42.以下关于函数模板叙述正确的是。 A.函数模板也是一个具体类型的函数 B.函数模板的类型参数与函数的参数是同一个概念 C.通过使用不同的类型参数,函数模板可以生成不同类型的函数 D.用函数模板定义的函数没有类型 43.关于封装,下列说法中不正确的是。 A.通过封装,对象的全部属性和操作结合在一起,形成一个整体 B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C.通过封装,每个对象都成为相对独立的实体 D.通过封装,对象的属性都是不可见的 44.函数重载是指。 A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同 45.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的。 A.无参构造函数B.带参构造函数 C.赋值重载函数D.拷贝构造函数 46.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为。 A.int*p=newint[30];B.int*p=newint(30); C.int*p=new[30];D.*p=newint[30]; 47.以下关于函数模板叙述正确的是。 A.函数模板也是一个具体类型的函数 B.函数模板的类型参数与函数的参数是同一个概念 C.通过使用不同的类型参数,函数模板可以生成不同类型的函数 D.用函数模板定义的函数没有类型 48.一个类的友元函数能够访问该类的。 A.私有成员B.保护成员 C.公有成员D.所有成员 49.在类的定义形式中,数据成员、函数成员和组成了类定义体。 A.成员的访问控制信息B.公有信息 B.私有信息D.保护信息 50.关于成员函数特征的下述描述中,错误的是。 A.成员函数可以重载B.成员函数一定是内联函数 C.成员函数可以是静态的D.成员函数可以设置参数的默认值 51.友元的作用是。 A.加强类的封装性B.增加成员函数的种类 C.提高程序的运行效率D.实现数据的隐藏性 四、程序阅读题 1.源程序如下: #include classA { public: staticintx; inty; }; intA: : x=15; voidmain() { Aa; a.y=30; cout< : x< cout< }; 2.源程序如下: #include"iostream.h" classA { public: A(inti=0){m=i;cout<<"Constructor"< voidset(inti){m=i;} voidprint(){cout< ~A(){cout<<"Destructor"< private: intm; }; voidmain() { Aa; Ab(5); b.print(); } 3.源程序如下: #include voidmain() { intx=20,&r=x; r=r+3; cout<<"A: x="< r=x+10; cout<<"B: r="< } 4.源程序如下: #include classB0 {intn; public: B0(inta) { cout<<"constructingB0"< n=a;cout<<"n="< ~B0(){cout<<"destructingB0"< }; classB1: publicB0 { intm; public: B1(inta,intb): B0(a) {cout<<"constructingB1"< m=b;cout<<"m="< ~B1(){cout<<"destructingB1"< }; voidmain() { B1b1(2,4); } 5.源程序如下: #include usingnamespacestd; classClass { public: Class(intn=10,intm=20); ~Class(); voidSet(intn,intm){x=n;y=m;} private: intx,y; }; Class: : Class(intn,intm) { Set(n,m); cout<<"Construct: x="< } Class: : ~Class() { cout<<"Destruct: x="< } voidmain() { Classx (1); Classy(2,3); cout<<"exiting…\n"; } 6.源程序如下: #include"iostream.h" classOurobj { inti,s; staticintk; public: Ourobj(){s=0;for(i=1;i<=10;i++){s+=i;k++;}} voiddisplay(){cout<<"i="< }; intOurobj: : k=0; voidmain() {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09 zc re1