C++类与对象例题
更新时间:2024-03-05 03:42:01 阅读量: 综合文库 文档下载
1. 概念填空题
1.1 类定义的关键字是 class 。类的数据成员通常指定为 私有 成员。类的函数成员通常指定为 公有 成员,指定为 公有 的类成员可以在类对象所在域中的任何位置访问它们,类的 私有和保护 只能被该类的成员函数或友元函数访问。 1.2类的访问限定符包括 public、 private 和 protected 。类成员默认的访问方式是 private 。访问限定符在类中 无 先后次序,各限定符 允许 (允许/不允许)多次出现。
1.3 构造函数的任务是 建立对象 。类中可以有 多 个构造函数,它们由 参数 区分。如果类说明中没有给出构造函数,则C++编译器会提供构造函数,该函数 不完成 (完成/不完成)对象初始化工作。
1.4复制构造函数的参数是 对象的复制 ,当程序没有给出复制构造函数时,编译系统会提供 默认复制构造函数 ,完成类对象的 复制 。复制构造函数被调用情况有 3 种。 1.5析构函数在对象 释放 时被自动调用。类中没有定义析构函数时,编译系统会提供一个默认的析构函数。该函数 不完成 (完成/不完成)具体对象的清理工作。
2.1类与对象的概念是客观世界的反映。
2.2 引用作为函数参数时能实现两个实参之间的数据交换,对应实参不能为引用,返回值为引用的函数可以作为左值。
2.3友元函数的函数体内访问对象成员时,必须用对象名加运算符”.”再加对象成员名。
3.选择题
3.1 数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( B )。
A.类 B.对象 C.函数体 D.数据块 3.2 类的实例化是指( B )。
A.定义类 B.创建类的对象 C.指明具体类 D.调用类的成员 3.3下列说法中正确的是( B )。
A.类定义中只能说明函数成员的函数头,不能定义函数体 B.类中的函数成员可以在类体中定义,也可以在类体之外定义 C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D.在类体之外定义的函数成员不能操作该类的私有数据成员 3.4有如下类定义: class sample { int n; public: sample (int i=0):n(i){ } void setValue(int n0); };
下列关于setValue成员函数的实现中,正确的是( B )。
A.sample::setValue(int n0){n=n0;} B.void sample::setValue(int n0){n=n0;} C.void setValue(int n0){n=n0;} D.setValue(int n0){n=n0;}
3.5在下面的类定义中,错误的语句是( C )。 class sample{ public:
sample(int val); //① ~sample( ); //② private: int a=2.5; //③ public: sample( ); //④ }; A.① B.② C.③ D.④
3.6类的构造函数被自动调用执行的情况是在创建该类的(C)。 A.成员函数时 B.数据成员时 C.对象时 D.友元函数时 3.7(A)是析构函数的特征。
A.一个类中只能定义一个析构函数 B.析构函数名与类名不同
C.析构函数的定义只能在类体内 D.析构函数可以有一个或多个参数
3.8 在下列函数原型中,可以作为类AA构造函数的是( D )。 A.void AA(int); B.int AA( ); C.AA(int) const; D.AA(int) 3.9关于成员函数特征的下述描述中,(A)是错误的。 A.成员函数一定是内联函数 B.成员函数可以重载
C.成员函数可以设置参数的默认值 D.成员函数可以是静态的 3.10不属于成员函数的是(B )。
A.静态成员函数 B.友元函数 C.构造函数 D.析构函数
3.11已知类A是类B的友元,类B是类C的友元,则(C )。 A.类A一定是类C的友元 B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员 D.类A的成员函数可以访问类B的对象的任何成员 3.12有如下类定义: class AA{ int a; public: int getRef( ) const {return &a;} //①返回类型为int, return &a为地址 int getValue( ) const {return a;} //② void set(int n) const{a=n;} //③常函数不能修改成员 friend void show(AA aa) const {cout<
其中的四个函数定义中正确的是(B)。 A. ① B.② C.③ D.④ 3.13有如下类定义: class Test{ public: Test( ){a=0;c=0;} //①常成员必须在初始化列表中初始化 int f(int a) const {this->a=a;} //②常函数不能修改成员 void h(int b) {Test::b=b;}; //③ static int g( ) {return a;} //④静态函数要通过对象访问成员 private: int a; static int b; const int c;
};
int Test::b=0;
在标注号码的行中,能被正确编译的是(C)。 A.① B.② C. ③
4写出程序程序执行结果。 4.1#include
int Test::n=1; int main( ){ Test* p = new Test; delete p; cout<<”n=”< 4.2#include D.④ int get( ) const{ return n+1;} }; int main( ){ AA a(5); const AA b(6); cout< 4.3#include int number=3; void MyClass::set (int i){ number=i; } void main( ){ MyClass my1; int number=10; my1.set(5); cout< 4.4#include int Test::val=200; int Test::func( ){ return val++; } void Test::sfunc(Test &r){ r.a=125; cout<<\} void main( ){ cout<<\ Test a; cout<<\ a.sfunc(a); } Result1=200 Result2=201 Result1==125 5.编程题 5.1 构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月用枚举类型,并完成测试(包括用成员函数和用普通函数)。 #include enum YR{Y2000,Y2001,Y2002,Y2003,Y2004,Y2005};//枚举名必须是标识符 enum MT{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}; class Timedate{ private: YR year; MT month; int date; int hh; int mm; int ss; public: Timedate(){year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;} Timedate(YR a,MT b,int c){ year=a; month=b; date=c; hh=12;mm=30;ss=0; } void getdate(YR &,MT &,int &);//体会用引用的优点,一次可返回3个值 void gettime(int &,int &,int &); void putdate(YR ,MT ,int ); void puttime(int ,int ,int );
正在阅读:
C++类与对象例题03-05
小学数学毕业复习试题-数的认识-通用版12-19
小学四年级英语老师工作总结报告范文02-26
液压复习要求及练习题2 及答案06-19
2014山东高级维修电工题库06-29
2015年中学语文教师资格《学科知识与教学能力》试题及答案(1)09-29
工程材料课后题答案04-07
歇后语老牛拉破车02-12
文化软实力语境下文化创意产业发展探讨08-16
- 清真菜谱
- 我国国民经济和社会发展十二五规划纲要(全文)
- 高三物理机械振动和机械波复习2
- 浙江省公路山岭隧道机械化装备应用指导手册 doc - 图文
- 2018届高三数学文科二轮复习:专题检测(九) 导数的简单应用
- 2015年上海市公务员录用考试《行政职业能力测验》试卷(B类)
- 七年级道德与法制下册
- 大班户外游戏教案
- 病虫害预警 - 图文
- 某养鱼场为了提高经营管理水平
- 汉中市勉县尧柏余热汽机规程 10
- 烹饪试卷
- 事业单位考试公共基础知识专项分类题库训练
- 语文:第2课 走一步,再走一步 课堂导学案(人教版 七上)
- 天汉使用手册
- 人教版小学三年级数学下册教学计划
- 房地产销售管理完全操作手册122页
- 2009年评审通过具有中学高级教师专业技术资格人员名单...
- 《15秋公共关系学》作业1
- 2017最新版监理公司三标一体管理手册
- C++
- 例题
- 对象