版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的程序设计第3阶段江南大学练习题答案共三个阶段,这是其中一个阶段,答案在最后。江南大学网络教育第三阶段练习题答案考试科目:《面向对象的程序设计》第1章至第10章(总分100分)学习中心(教学点)批次:______层次:______专业:______学号:______身份证号:______姓名:______得分:______一、单选题(共8题,总分值8分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。)1.关于函数模板,描述错误的是()。(1分)A.函数模板必须由程序员实例化为可执行的函数模板。B.函数模板的实例化由编辑器实现。C.一个类定义中,只要有一个函数模板,则这个类是类模板。D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化。2.关于read()函数的下列描述中,()是正确的。(1分)A.该函数只能从键盘输入中获取字符串。B.该函数只能用于文本文件的操作。C.该函数只能按规定读取指定数目的字符。D.从输入流中读取一行字符。3.在ios类中提供的控制格式标志字中,()是转换为十六进制形式的标志常量。(1分)A.hexB.octC.decD.right4.进行文件输入操作时应包含()文件。(1分)A.ifstream.hB.fstream.hC.ofstream.hD.iostream.h5.关于异常的描述中,错误的是()。(1分)A.异常既可以被硬件引发,又可以被软件引发。B.运行异常可以预料,但不能避免,它是由系统运行环境造成的。C.异常是指从发生问题的代码区域传递到处理问题的代码区域的一个对象。D.在程序运行中,一旦发生异常,程序立即中断运行。6.假设有函数模板定义如下:template<typenameT>Max(Ta,Tb,T&c){c=a+b;}下列选项正确的是()。(1分)A.floatx,y;floatz;Max(x,y,z);B.intx;floaty,z;Max(x,y,z);C.intx,y;floatz;Max(x,y,z);D.floatx;doubley,z;Max(x,y,z);7.关于对getline()函数的下列描述中,()是错误的。(1分)A.该函数可以从输入流中读取一行字符。B.该函数可以指定读取的字符数。C.该函数可以指定读取的分隔符。D.该函数可以读取空格。二、填空题(共2题,总分值10分,将答案填写在答题卡上。)8.在C++中,类的构造函数和析构函数的名称分别为______和______。(2分)9.在C++中,动态内存分配的运算符为______,释放内存的运算符为______。(2分)三、简答题(共3题,总分值12分,将答案填写在答题卡上。)10.请简述C++中的多态性。(4分)11.请简述C++中的继承性。(4分)12.请简述C++中的友元函数和友元类。(4分)38.为了使用异常类,需要包含相应的头文件。其中,异常基础类exception定义于<exception>中,bad_alloc定义于<new>中,其他异常类定义于不同的头文件中。39.如果打开文件失败,则流对象的值为null。40.异常处理是指在程序执行过程中,当出现意外情况时,程序能够捕获并处理这些异常,使程序能够正常运行或者优雅地退出,而不是直接崩溃。41.C++语言的流类库中将ios类作为其派生类的虚基类,是为了避免多重继承时出现的二义性问题,使得派生类可以正确地继承ios类的成员函数和数据成员。42.定义一个分数类fraction,通过重载的运算符“<<”以分数形式输出分数的结果,如将三分之二输出为2/3。classFraction{private:intnumerator;//分子intdenominator;//分母public:Fraction(intn=0,intd=1):numerator(n),denominator(d){}friendostream&operator<<(ostream&os,constFraction&f){os<<f.numerator<<"/"<<f.denominator;returnos;}};43.编写一个程序来统计文件file.txt的字符个数。include<iostream>include<fstream>usingnamespacestd;intmain(){ifstreamfin("file.txt");if(!fin.is_open()){cout<<"Failedtoopenfile."<<endl;return0;}intcount=0;charch;while(fin.get(ch)){count++;}cout<<"Thenumberofcharactersinfile.txtis:"<<count<<endl;fin.close();return0;}44.从键盘输入x的值,计算y=ln(2x+1)的值,要求用异常处理“负数求对数”的情况。include<iostream>include<cmath>usingnamespacestd;intmain(){doublex,y;cout<<"Enterthevalueofx:";cin>>x;try{if(2*x+1<=0){throw"Negativelogarithm.";//抛出异常}y=log(2*x+1);cout<<"Thevalueofyis:"<<y<<endl;}catch(constchar*msg){//捕获异常cerr<<"Error:"<<msg<<endl;}return0;}45.用函数模板实现求整数、实数平方根的程序。include<iostream>include<cmath>usingnamespacestd;template<typenameT>Tsqrt(Tx){returnsqrt(x);}intmain(){intn=25;doubled=25.0;cout<<"Thesquarerootof"<<n<<"is:"<<sqrt(n)<<endl;cout<<"Thesquarerootof"<<d<<"is:"<<sqrt(d)<<endl;return0;}46.include<iostream>usingnamespacestd;classNomilk{public:Nomilk():count(0){}Nomilk(inthow_many):count(how_many){}intget_money(){returncount;}private:intcount;};intmain(){intmoney,milk;doubledpg;try{cout<<"Enternumberofmoney:";cin>>money;cout<<"Enternumberofglassesofmilk:";cin>>milk;if(milk<=0){throwNomilk(money);}dpg=money/double(milk);cout<<money<<"yuan"<<endl<<milk<<"glassesofmilk."<<endl<<"Youhave"<<dpg<<"yuanforeachglassofmilk."<<endl;}catch(Nomilke){cout<<e.get_money()<<"yuan,andNoMilk!"<<endl;}return0;}解析过程:使用指针变量作为函数参数可以实现对原变量的修改,而使用值传递只能修改函数内部的副本。7.答案:C解析过程:使用const关键字修饰函数参数可以防止函数内部误修改参数的值。8.答案:B解析过程:在使用多态时,基类指针可以指向派生类对象,通过虚函数实现动态绑定,从而实现运行时多态。剔除下面文章的格式错误,删除明显有问题的段落,然后再小幅度的改写每段话。解析过程:函数模板实例化时,实际参数类型替换模板参数。虽然这种参数替换具有类型检查功能,但没有普通传值参数的类型转换机制,因此程序运行时,B、C和D会出错。解析过程:getline()函数的作用是从输入流中读取一行字符。函数要么在读取到指定个字符后终止,要么在读取到指定的终止符时终止。getline()函数使用的终止符可以是换行符,也可以是其他字符。二多选题(共5题,总分值5分,下列选项中至少有2个或2个以上选项符合题目要求,请在答题卡上正确填涂。)解析过程:选项B、C和D都是正确的。解析过程:选项B、C和D都是正确的。ios:app方式表示以追加方式打开文件,ios::out方式表示以写方式打开文件,如果用ofstream类来创建一个文件流对象,则隐含为输出流,因此B、C、D语句都是以写的方式打开文件“myfile.dat”。解析过程:选项A、B和D都是正确的。解析过程:选项A和B都是正确的。解析过程:选项A和C都是正确的。第21页/共21页三判断题(共10题,总分值10分正确的填涂“A”,错误的填涂“B”。)解析过程:是正确的。解析过程:是正确的。解析过程:是错误的。迭代器并不仅仅是指针。指针可以指向内存中的一个地址,然后通过这个地址访问相应的内存单元;而迭代器更为抽象,它可以指向容器中的一个位置,然后就可以直接访问这个位置的元素。解析过程:是正确的。解析过程:是正确的。解析过程:是错误的。如果异常处理程序捕获到异常后,还无法完全确定异常的处理方式,这时才可能需要在catch语句中抛出该异常。解析过程:是错误的。C++标准库中仍需要异常类,因为这些异常类可以为程序设计人员,特别是自定义类库的开发人员提供一些经验。解析过程:是错误的。流格式标志字的每一位表示一种格式,格式位之间会有依赖关系。例如,dec、oct和hex在一个时刻只能有一个位被设置。解析过程:是错误的。抛出异常后并不是马上终止程序。当异常被抛出以后,catch处理程序按其在try块后出现的顺序被检查。如果没有找到合适的处理程序,则继续检查外层的try块。此处理析),每行末尾自动添加一个换行符。◆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 疾病预防控制中心在公共卫生中的作用
- 2026-2032年中国发动机塑料进气歧管行业市场全景评估及未来前景研判报告
- 基于大数据分析的建筑安全预警系统研究
- 零售业财务规划师面试流程解析
- 客户关系管理的关键要素及实施策略
- 2025年虚拟数字人动作捕捉技术在数字军事中的创新
- 零售业百货商场总经理的招聘面试要点概览
- 篮球比赛运动中受伤应依公平责任原则分担损失
- 零售业采购经理岗位招聘面试全攻略
- 快消品企业市场拓展经理面试技巧
- 2025年贵州省高考物理试卷真题(含答案)
- 2026贵州省气象部门第二批公开招聘应届毕业生22人笔试备考试题及答案解析
- 昆明市公安局盘龙分局2026年第一批勤务辅警招聘(120人)笔试模拟试题及答案解析
- 医院感染预防护理培训课件
- 医护一体化业务查房制度
- 第2课 幸福生活是奋斗出来的 课件+视频-2025-2026学年道德与法治三年级下册统编版
- 2026年c语言考试题库100道【历年真题】
- 2025-2026学年统编版七年级道德与法治下册全册教案
- 2026年春季学期小学五年级下册信息科技(清华版·贵州)教学计划含进度表
- 山西出版传媒集团招聘笔试题库2026
- 2026年技术专利授权合同协议
评论
0/150
提交评论