已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复习题 2012 12 题型选择25 填空20 程序阅读40 程序15 1 C 源程序文件扩展名为 A cppB hC 1ibD obj2 根据C 语法 下列标识符中 不合法的用户标识符为 A a2bB intC a 10D PDA 3 在下列成对的表达式中 运算结果类型相同的一对是 A 7 2和7 0 2 0B 7 2 0和7 2C 7 0 2和7 2D 7 0 2 0和7 0 24 下面对于break和continue说法正确的是 A break语句只应用于循环体中B continue语句只应用于循环体中C break是无条件跳转语句 continue不是D break和continue的跳转范围不够明确 容易产生问题 5 函数默认参数在函数原型中说明 默认参数必须放在参数序列的 A 前部B 中部C 后部D 两端6 下列关于虚函数的描述中 正确的是 A 虚函数是一个static类型的成员函数 B 虚函数是一个非成员函数 C 基类中采用virtual说明一个虚函数后 派生类中定义相同原型的函数时可不必加virtual说明 D 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 7 下面不属于类的成员函数的是 A 静态成员函数B 友元函数C 构造函数D 析构函数 8 若有如下程序段 inti floatj 2 7 i int j 则执行完后i j的值为 A 2 2B 3 2C 2 2 7D 3 2 7 9 假定AB为一个类 则执行ABx 语句时将自动调用该类的 A 有参构造函数B 无参构造函数C 拷贝构造函数D 赋值构造函数10 设有函数TSum Tx Ty returnx y 其中T为模板类型 则下列语句中对该函数错误的使用是 A Sum 1 2 B Sum 3 0 2 2 C Sum A C D Sum A C includeusingnamespacestd voidmain inty 10 for y 0 y if y 3 0 cout y continue 习题一 includeusingnamespacestd classtest private intnum public test intTEST returnnum test test test num 0 test test cout Destructorisactive endl voidmain testx 3 cout Exitingmain endl 习题二 习题三 includeusingnamespacestd classMyClass public intnumber voidset inti intnumber 3 voidMyClass set inti number i voidmain MyClassMY1 intnumber 10 MY1 set 5 cout MY1 number endl MY1 set number cout MY1 number endl MY1 set number cout MY1 number endl includeclassbase intn public base inta cout constructingbaseclass endl n a cout n n endl base cout destructingbaseclass endl classsubs publicbase basebobj intm public subs inta intb intc base a bobj c cout constructingsubclass endl m b cout m m endl subs cout destructingsubclass endl voidmain subss 1 2 3 习题四 输出 constructingbaseclassn 1constructingbaseclassn 3constructingsubclassm 2destructingsubclassdestructingbaseclassdestructingbaseclass 注意 当派生类中含有对象成员时 构造函数的调用顺序如下 1 基类的构造函数2 对象成员的构造函数3 派生类的构造函数析构函数的调用顺序与之相反 习题五 includeusingnamespacestd classSimple intx y public Simple x y 0 Simple inti intj x i y j voidcopy Simple s voidsetxy inti intj x I y j voidprint cout x x y y endl voidSimple copy Simple s x s x y s y voidfunc Simples1 Simple s2 s1 setxy 30 40 s2 setxy 70 80 voidmain Simpleobj1 1 2 obj2 obj2 copy obj1 func obj1 obj2 obj1 print obj2 print 知识点 C语言基础 循环 数组 指针 类 构造函数 析构函数 复制构造函数 函数重载 继承与组合 构造函数 析构函数 函数重定义 虚函数与多态 纯虚函数 模板 模板函数 模板类 程序练习 用C 实现一个计算器控制台程序 要求输入两个数和运算符号 得到结果 include includeusingnamespacestd voidmain cout A cout B cout C doubleD 0 0 if B D A C if B D A C if B D A C if B D A C cout 结果是 D V1 include includeusingnamespacestd voidmain try cout NumberA cout strOperate cout NumberB doubleResult 0 0 V2 switch int strOperate caseint Result NumberA NumberB break caseint Result NumberA NumberB break caseint Result NumberA NumberB break caseint if NumberB 0 Result NumberA NumberB elsethrow 除数不能为0 break cout NumberA strOperate NumberB Result endl catch char msg cout msg 是面向对象程序设计 面向过程的程序设计方法 用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程 如计算器这个程序 先要求输入两个数和运算符号 然后根据运算符号判断选择如何运算 得到结果 这样的思维却使得程序只为满足实现当前的需求 程序不容易维护 不容易扩展 更不容易复用 从而达不到高质量代码的要求 例如 要求设计一个windows的计算器 刚才的代码能否复用 V3 classOperation public staticdoubleGetResult doublenumberA doublenumberB charoperate doubleresult 0 0 switch int operate caseint result numberA numberB break caseint result numberA numberB break caseint result numberA numberB break caseint result numberA numberB break returnresult voidmain try cout NumberA cout strOperate cout NumberB doubledResult 0 0 dResult Operation GetResult NumberA NumberB strOperate cout NumberA strOperate NumberB dResult endl catch char msg cout msg 需求变化 计算器要增加一个开根 sqrt 运算 如何改写程序 但这样新加一个功能 就要使得原有的运行良好的功能代码产生了变化 修改所带来的风险太大 需要修改Operation类 在switch中加一个分支 希望代码能做到 扩展开放 修改封闭 继承 多态 classOperation private doublem numberA 0 doublem numberB 0 public virtualdoubleGetResult doubleresult 0 returnresult doublegetA returnm numberA doublegetB returnm numberB voidsetA doublenumberA m numberA numberA voidsetB doublenumberB m numberB numberB 运算类 加法类 classOperationAdd publicOperation public doubleGetResult doubleresult 0 result getA getB returnresult classOperationSub publicOperation public doubleGetResult doubleresult 0 result getA getB returnresult 减法类 classOperationMul publicOperation public doubleGetResult doubleresult 0 result getA getB returnresult 乘法类 加法类 classOperationDiv publicOperation public doubleGetResult doubleresult 0 if getB 0 throw 除数不能为零 result getA getB returnresult 实例化对象问题就是让计算器知道使用那一个算法 这需要实例化相应的对象 另外将来可能增加新的算法 如开平方根运算 简单工厂模式使用一个单独的类完成创造实例对象的过程 这个类称为工厂类 classOperationFactory public staticOperation createOperate charoperate switch operate case returnnewOperationAdd case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CN119407147A 一种稀土金属陶瓷复合铸件的铸造方法及其应用 (内蒙古中天宏远稀土新材料股份公司)
- 原子吸收分光光度计检定规程手册
- 工厂项目全流程风险管控课件
- 制造工程服务化转型建设报告
- 中小制造企业降本增效方案
- 钳工工艺培训内容
- 项目部数字化资料归档管理规范
- 公共建筑室内照明系统优化改造方案
- 浙美版7光荣的奖章教学设计
- 浙教版科学七年级上 第三章 第六节 地球的板块 教学设计
- 2025年动力电池回收利用商业计划书
- 【新教材】2026秋统编版九年级上册历史第22课 活动课 唱响“国际歌”教案
- 2026泸州市江阳区公开考试招聘社区工作者133人笔试备考题库及答案详解
- 【新教材】2026秋人教PEP版六年级上册英语Unit 1 Amazing places 教案(2课时)
- CSCO黑色素瘤诊疗指南(2026版)完整版
- 2026-2031年中国死亡保险行业市场调查研究及发展前景预测报告
- 2026年秋季小学数学苏教版六年级上册数学教学计划含进度表
- 北师大版八年级数学上册教案合集
- 肺癌脑转移护理查房
- 2026年山东省拔尖选调面试真题及答案解析
- 《热爱班集体》教学设计-2026-2027学年统编版(新教材)小学道德与法治四年级上册
评论
0/150
提交评论