练习(3)
更新时间:2023-10-27 16:19:01 阅读量: 综合文库 文档下载
C++作业(3)及参考答案
一、选择填空
(1)关于常成员(const)的描述中,错误的是( B )
A.常成员包含常数据成员和常成员函数两种 B.常数据成员必须是公有的 C.常数据成员要使用构造函数成员初始化列表进行初始化 D.常成员函数是为常对象定义的
2)下面对静态数据成员的描述中,正确的是( B )。 A.静态数据成员可以在类体内进行初始化 B.静态数据成员必须在类体外进行初始化
C.静态数据成员不能受private控制符的作用 D.静态数据成员可以直接用类名调用 (3)下面对静态数据成员的描述中,正确的是( A )。
A.静态数据成员是类的所有对象共享的数据 B.类的每一个对象都有自己的静态数据成员
C.类的不同对象有不同的静态数据成员值 D.静态数据成员不能通过类的对象调用 (4) 下列关于对象数组的描述中,( A)是错误的。 A.对于对象数组只能赋初值而不能再赋值 B.对象数组的下标从0开始
C.对象数组的每个元素都是相同类的对象 D.对象数组的数组名是一个常量指针
(5)下列关于子对象的描述中,(D )是错误的。(子对象:当一个类的成员是某一个类的对象时,该对象就为子对象)
A. 子对象是类的一种数据成员,它是另一个类的对象(防止递归) B. 子对象不可以是自身类的对象
C. 对子对象的初始化要包含在该类的构造函数中 D. 一个类中只能含有一个子对象作其成员
(6)关于指向类的成员指针的描述中,错误的是(D)
A.指向类成员指针与指向对象的指针是不同的。 B.指向类成员函数指针可用该类的成员函数名给它赋值。 C.指向类数据成员指针可用该类的数据成员地址给它赋值。 D.指向类成员指针必须指向类的公有成员。
(7)已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的;
A.void print() const;B.const void print(); C.void const print();D.void print(const); 参考答案:1-7 BBAAD DA
二、程序改错
(1) class Example { public:
Example{ int y = 10 } { data = y; }//构造函数名后应为()
int getIncrementedData() const { return ++data; }//不修改数据成员值
static int getCount()//不能直接访问普通成员变量,要指明变量所属对象名 {
cout << \ return count;
}
private:
int data;
static int count //没有分号 };
参考答案:
#include
public: Example( int y = 10 ) { data = y; } int getIncrementedData() const { int a = data; return ++a; }
static int getCount(Example &d) {
cout << \ return count; }
private:
int data;
static int count; };
(2)#include Y=1.0; //Y是常数,不能进行赋值运算 } void SetX(int a) { X=a; } void Print() {cout<<\private: int X; const float Y; }; void main(){ const MyClass my(10); my.SetX(20); //常对象不能访问普通成员函数 my.Print(); //常对象不能访问普通成员函数 } 参考答案: #include class MyClass{ public: MyClass(int a, float b=1.0):Y(b) { cout< void main() { MyClass my(10); my.SetX(20); my.Print(); } 三、程序填空 1.输出所有pumpkin的总重量。 #include static void total_display() { cout<<\ } private: int weight; static int total_weight; }; (3) void main(){ pumpkin p1(15),p2(20),p3(12); (4) } 参考答案: (1) pumkin(int w) (2) cout<<\(3) int pumkin::total_weight = 0; (4) pumkin::total_display(); 或 p1.total_display(); 2.下面是一个程序片段,根据注释填充 #include double A::z=100.0; void main(){ A a(1.5,2.6),*pa=&a; void (A::*pfun)() const; //定义指向A类返回值为void、无参数的函数指针pfun(); pfun = A::outputxy; //将pfun指向A类中的outputxy函数 (a.*pfun)(); //通过a和pfun调用outputxy()函数 (pa->*pfun)(); //通过pa和pfun调用outputxy()函数 double A::*pm; //定义指向A类double类型指针pm pm = &A::x; //将pm指向A类中的x成员; pa->*pm = 8.8; //通过pa和pm给其成员x赋值 double *spm = &(A::z); //定义指向A类double类型静态成员指针spm *spm = 9.9; //通过spm给其成员z赋值} 四、将下列程序分离类定义和主函数,改成多文件结构。主函数使用类的方式采取包含类定义的头文件的方法。写出运行结果。 #include int GetAge(); void SetAge(int age); void Meow(); protected: int itsAge; }; int Cat::GetAge() { return itsAge;} void Cat::SetAge(int age) { itsAge=age;} void Cat::Meow() { cout<<”Meow.\\n”;} void main(){ Cat frisky; frisky.SetAge(5); frisky.Meow(); cout <<\ < 运行结果: Meow. frisky is a cat who is 5 years old。Meow.。 五、分析程序运行结果: 1.#include
正在阅读:
练习(3)10-27
成立质量监督小组及管理职责和管理流程11-09
刘顺达董事长在集团公司2012年工作会议上的讲话、陈进行总经理所作的工作报告和总结讲话08-25
那一天我与你相遇作文600字06-25
新世纪大学英语综合教程1 课后答案 第二版 秦秀白 Unit 5 Knowing Yoursel01-02
借贷合同最新4篇03-22
桥梁盖梁专项施工方案06-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 练习
- 天津大学18秋《多媒体技术》在线作业二1(100分)
- 英文翻译之金融类词汇总结版
- 高中语文 1.2.2《再别康桥》学案 新人教版必修1
- 党员考核星级方案 - 图文
- 第二十三章旋转学案
- 夹浦兴隆加油站尽职调查报告 - 图文
- 院级文明寝室评选通知 - 图文
- 大连长兴岛临港工业区石化园区情况介绍1
- 01-安全生产监督管理办法
- 党的十七大报告(简答50题目)
- 练习题
- 2017年南开奥鹏《制药工程学》纸考复习资料
- 2016年电视购物现状及发展趋势分析
- java技能考核试题
- 上海市徐汇区2018年高三化学二模试卷
- 创世记(4)19-24章讲解(王子)
- 2009年公务员考试行测资料分析练习84题(含答案)
- 农田水利安全监理细则 - 图文
- 汉字的传统文化解读笔记(一~八)
- 试题与答案