1、C+程序设计参考资料复习参考A一、单项选择题1不存在的派生方式为( )A、private B、protected C、public D、static2. cin 是某个类的标准对象的引用,该类是( )A、ostream B、istream C、stdout D、stdin3关于this指针,不正确的是( )A、this指针是指向对象的指针 B、this指针是隐含的参数C、this指针可以显示声明 D、this不可以定义为整型变量名4用友元函数重载一元运算符,则显示调用方式为( )A、obj B、obj C、obj.operator() D、operator(obj)5. 根类的成员最多可以有的
2、不同的被访问的权限是( )A、1种 B、2种 C、3种 D、4种派生类的成员的被访问权限?p1336. 关于重载,不正确的是( ) A、类名可以重载 B、函数名可以重载 C、运算符可以重载 D、函数模板可以重载7static成员函数没有( )A、this指针 B、返回类型 C、函数名 D、参数构造函数?析构函数?8声明模板的关键字为( )Ainline B、template C、const D、define9若有X obj12;(X为类名),则调用构造函数的次数为( )A、0次 B、1次 C、12次 D、任意次10不能够有参数的是( )A、友元函数 B、(类类型)转换函数 C、运算符重载函数
3、D、构造函数二、多项选择题11面向对象的核心概念为( )A、抽象(数据封装) B、继承 C、多态性 D、模板 E、引用13根类的成员可能包括( )A、不可访问成员 B、私有成员 C、公有成员 D、保护成员 E、static成员14可以访问私有成员的有( )A、该类的static成员函数 B、该类的非static成员函数C、该类的友元函数 D.main函数 E、类的派生类的所有成员函数15简单成员函数的声明不能包含( )A、void B、static C、const D、int E、floatp107 三、名词解释16数据封装: p3917动态联编: p16918多继承:p130 四、 判断分析
4、题19构造函数不可以继承。 ( )p13220可以将派生类对象当作基类对象使用。 ( )p13421static 成员的初始化可以在类中进行。 ( )p10722析构造函数的返回类型可以是void。 ( )五、读程序题23#include class Aint a; public:A(int x)a=x;void put( ) coutaa=45;main( ) A objA(15);objA.put();objA.set3(&objA);objA.put();objA.set2(objA);objA.put();objA.set1(objA);objA.put();24#include cl
5、ass A public:A()cout“IN A n”;class B: public A public:B()cout“IN Bn”;class C: public B public: C()cout“IN Cn”;main()A objA;C objC;六、读程序题25#include class A public:const int b=2;main()cout b;26.#includeclass A int a;public:A(int x) a=x;void set( ) a=1;void put( ) cout”(友元函数实现);能够将极坐标对象转换为一个整数。29编写一个函数
6、模板,求一个变量的相反数。复习参考B一 、单项选择题1说明虚函数的关键字为( )A、inline B、virtual C、static D、define2. cout 是 类的标准对象的引用( )A、ostream B、istream C、stdout D、stdin3若在类外有函数调用X:func();则函数func是类 X的( )A、私有静态成员函数 B、公有非静态成员函数 C、公有静态成员函数 D、友元函数4说明内联函数的关键字为( )A、virtual B、static C、enum D、inline5.不能参与重载的是( )A、类 B、函数 C、函数模板 D、运算符6.一个类的所有对
7、象共享的是( )A、私有段数据成员 B、公有段数据成员 C、保护段数据成员 D、静态数据成员7.重载“”,为保证其连用性,重载函数的返回类型应为( )A、istream B、ostream C、istream & D、ostream &8.复制初始化构造函数对参数的要求是( )A、无特殊要求 B、指向对象的指针 C、自己类对象的常引用 D、对象9没有调用构造函数(X为类名) 的是( )A、X * p; B.X obj; C、X obj(1); D、X obj=2;二、 多项选择题12重载一个虚函数时,完全相同有( )。A、函数名 B、函数返回类型 C、参数个数D、参数类型 E、参数顺序三、名词
8、解释16对象:p37四、 判断分析题五、读程序23#include class A int a;public:void set(int x=0) a = x;void put()cout a “n”;void func() A objA1; objA1.set(200); put();set(300);objA1.put();put(); ;main()A objA;objA.set(100);objA.put();objA.func();objA.put();六、指出下列程序的错误;说明错误的原因;并改正25#include class A int a;int & ref=a;public:
9、void out( )a=120;coutref;main( )A objA;objA.out();p10626#include class A int A1;public:int A2;class B:public A int B1;public:int B2;void set()A1=1;A2=2;B1=3;B2=4;void main( )B objB;objB.set( );七、编程题28定义一个复数类Complex,定义带有2个参数(都为缺省参数)的构造函数;重载“/”(成员函数实现);重载“f( ) C.(*p).f( ) D.*p-f( )3区分同名函数,晚期匹配为( )A.根据
10、参数表区分 B.根据对象区分 C.根据类名区分 D.虚函数4关于空类,说法不正确的是( )A.空类没有类名 B. 空类没有成员函数 C.空类没有数据成员 D.可以定义空类的对象p905.若有float f=1.8; int i=(int)f; 则f的值为( )A.1 B.2 C.1.8 D.不确定二、 多项选择题1不能使用友元函数重载的运算符有( )A.* B.= C.( ) D.+ E.p1862区分同名函数,早期匹配是( )A.根据参数表区分 B.根据类名区分 C.根据不同类的对象区分D.根据虚函数区分 E.根据不同类对象的指针区分3可以实现封装的关键字是( )A. class B. st
11、ruct C. friend D. union E. enum4友元函数重载+(前缀重载),为保证隐式调用的正确性,说法不正确的是( )A. 不使用类类型作参数类型 B. 用对象本身作参数C. 用对象指针作参数 D. 用对象引用作参数E. 没有参数5不能有参数的函数是( )A. 构造函数 B. 析构函数 C. 类类型转换函数D. 静态成员函数 E. 友元函数三、名词解释1类类型转换函数2缺省参数(默认参数)p543抽象类p1744构造函数p755缺省构造函数p75四、 判断分析题1不可以定义抽象类的对象 ( )p1742C+语言中的任何函数都必须有函数体,即函数的实现 ( )p1733this
12、指针在类的所有成员函数中都隐含存在 ( )p1074class类和struct类没有区别 ( )p325C+定义的模板有函数模板和类模板两大类 ( )6可以定义空类的对象 ( )五、读程序1#include class Aint a; public:A(int x=0)a=x;void put( ) coutaa=x;main( ) A objA(1);objA.put();objA.set2(2, objA);objA.put();objA.set1(3, objA);objA.put();objA.set3(4, &objA);objA.put();2. #include class A
13、public:A( ) coutA is createdn;class B: public A public:B( ) coutB is createdn;class C: public B public:C( ) coutC is createdn;main( ) A objA;B objB;C objC;六、指出下列程序的错误;说明错误的原因;并改正1#include class A int a;public:A(int x) a=x;void set( ) const a=1; void put( ) couta; ;main( )A objA(10);objA.set(100);obj
14、A.put( );p1142#include class X public: int x; X(int a) x=a;class Y: X public: int y; Y(int b) y=b;main( ) X objX(1); Y objY=2;3. #include class A int a=1; static int b=2;main( ) A objA; coutA:a;p71p1074. #include class A int a; static int s;public: A(int x) a=x; void set( ) a=1; s=2; void put( ) cou
15、ts;main( ) A objA(10); coutobjA.a; coutA:a; objA.put();七、编程题1继承派生、纯虚函数、函数重载定义一个图形shape基类,数据成员为2个整数(表示图形的边界),有带参数的构造函数,有计算面积的虚函数GetArea(),在此基础上派生出三角形类Rectangle和圆Circle类,使用Rectangle类在创建一个派生类Square。三个派生类都有重载的GetArea()函数。2运算符重载定义一个复数类Complex,派生出一个极坐标中的点类Vector,要求复数类重载*(成员函数实现),Vector类重载+(友元函数实现),Vector类重载。3函数模板
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1