版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3次作业一、填空题(本大题共20分,共5小题,每小题4分)假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为2.类型兼容原则指的是:任何在需要 对象的地方,都可以用 的对象去替代。3.重新抛出异常的表达式为: 。4.以下程序的执行结果是 。#include<iostream>usingnamespacestd;classBase{public:Base(){cout<<”1”;}~Base(){cout<<”2”;}};classDerived:publicBase{public:Derived(){cout<<”3”;}~Derived(){cout<<”4”;}};voidmain(){Derivedd;5.以下程序的执行结果是 。#include<iostream>usingnamespacestd;classA{intx;public:A(intx){this->x=x;}A&operator--(){x--;return*this;}Aoperator--int){Aa(x-=2);returna;}voidshow(){cout<<x;}};voidmain(){Aa(3),b(3);(a--).show();(--b).show();}二、程序阅读题(本大题共40分,共5小题,每小题8分)1.写出下面程序运行结果。#include<iostream.h>voidrev(inta[],intn){intt;for(inti=0,j=n-1;i<j;i++,j--)t=a[i],a[i]=a[j],a[j]=t;}intmain(){intb[]={1,2,3,4,5,6,7,8,9};rev(b,9);for(inti=0;i<9;i++)cout<<b[i]<<"";cout<<endl;return0;}2.#include<iostream>usingnamespacestd;intmain(){inti,j,m=3;for(i=0;i<m;i+=2)for(j=m-1;j>=0;j--)cout<<i+j<<(char)(j?'H':'$');cout<<endl;return0;}3.#include<iostream>#include<cstring>intcount(char*s,char*t);intmain(){chars1[200]="ab1234cdabcdabcABCDAGBCDdabcd";chars2[100]="bc";cout<<"count="<<count(s1,s2)<<endl;return0;}intcount(char*s,char*t){inti=0,c=0;while(*(s+i)){if(strncmp(s+i,t,strlen(t))==0)c++;i++;}returnc;}4.#include<iostream>intavere(intx,inty,intz);doubleaver(doublex,doubley,doublez);intmain(){intai=1,bi=2,ci=3;doublead=1.5,bd=5.5,cd=7.5;cout<<"ai+bi+ci="<<aver(ai,bi,ci)<<endl;cout<<"ad+bd+cd="<<aver(ad,bd,cd)<<endl;return0;}intaver(intx,inty,intz){returnx+y+z;}doubleaver(doublex,doubley,doublez){returnx+y+z;}5.#include<iostream>inta,b,c,d;intmain(){voidp(inta,intb);cout<<a<<","<<b<<","<<c<<","<<d<<endl;p(a,b);cout<<a<<","<<b<<","<<c<<","<<d<<endl;return0;}voidp(inta,intb){staticintc;a++,b++;c-=1,d+=1;if(a<3){p(a,b);cout<<a<<","<<b<<","<<c<<","<<d<<endl;}}三、程序设计题(本大题共40分,共8小题,每小题5分)1.一个正整数与3的和是5的倍数,与3的差是6的倍数,编程序求出符合此条件的最小正整数。2.编制程序实现功能:将从键盘输入的若干字符依次存入到磁盘文件data.txt中,直到输入字符#时为止。3.设计并实现一个抽象类Polygon表示多边形,及其子类Triangle,表示三角形。要求:Polygon不具有任何的数据成员,只具有如下纯虚函数表示多边形应该具备的外部接口:voidshow();打印多边形每个顶点的位置doublegetPerimeter();得到多边形的边长doublegetArea();得到多边形的面积设计并实现Point类来表示多边形的顶点,其具有x,y两个数据成员和得到它们的值的外部接口getX()和getY()。子类Triangle除了实现父类的纯虚函数之外,可根据需要设计成员变量、构造函数等。在main函数中申明Triangle的对象,并打印每个对象的顶点位置、边长和面积。4.定义两个类Point和Triangle代表点和三角形。Point类有两个double成员,分别代表了x,y坐标。Triangle类中有三个Point成员,分别代表三个顶点。在main函数中定义一个Triangle对象,并求得Triangle对象的面积。要求除了main函数之外,所有的函数都只能定义为成员函数。提示:Point中可以定义成员函数求两个点之间的距离。实现时使用sqrt(double)求平方根。Triangle类中定义成员函数求面积,使用海伦公式s=sqrt(s*(s-a)*(s-b)*(s-c)),s是周长的一半。Point有(但不仅限于)构造函数Point(double,double),Triangle有构造函数Triangle(Point,Point,Point)5.“爬动的蠕虫”问题:一条蠕虫长度为1厘米,在一口深度为n厘米的井底。已知蠕虫每分钟可以向上爬u厘米,但必须休息1分钟后才能接着往上爬。在休息的过程中,蠕虫又下滑了d厘米。这样反复进行上爬和下滑过程,请设计一个函数返回蠕虫爬出井所需的时间,若不能爬出返回-1。假定:1)初始时蠕虫趴在井底(高度为0)2)上爬过程中,蠕虫头部到达井的顶部就算出井3)计算时间时,不足一分钟按一分钟计算6.已知二进制文件data.txt中10个整型数据,请编制程序求出这些整数的平均值。要求读取文件数据部分用独立的函数实现。7.设计枚举类型MONTH代表一年的12个月的英文名称。设计结构体Date代表日期,包括年、月、日,其中的月成员为MONTH类型;Date还包括一个show成员函数来输出形如"2015-10-1"的日期格式。设计类Holiday来代表假期,其中有两个数据成员:n表示假期天数,ptr表示放假的日期。其中ptr是指向动态生成的Date数组的首地址。构造函数和析构函数负责开辟和释放内存空间。Holiday类还有show成员函数来输出假期中每一天的日期。在main函数中生成一个具有多天的假期,并输出其中每一天的日期。编写程序实现功能:将指定文件中的小写字母修改为对应的大写字母答案:一、填空题(20分,共5题,每小题4分)参考答案:a+(i*N)*sizeof(a[0][0])a+i*sizeof(a[i])解题方案:二维数组评分标准:每空2分参考答案:基类、公有派生类解题方案评分标准3.参考答案throw;解题方案评分标准4.参考答案解题方案:评分标准:参考答案:12解题方案:评分标准:二、程序阅读题(40分,共5题,每小题8分)1.参考答案:987654321解题方案:评分标准:参考答案:2H1H0$4H3H2$解题方案:评分标准:参考答案:count=3解题方案:评分标准:参考答案:ai+bi+ci=6ad+bd+cd=14.5解题方案:评分标准:5.参考答案:0,0,0,02,2,-3,31,1,-3,30,0,0,3解题方案:评分标准:三、程序设计题(40分,共8题,每小题5分)1.参考答案:#include<iostream>usingnamespacestd;intmain(){intn=1;if((n+3)%5==0&&(n-3)%6==0)break;n++;}cout<〈"满足条件的最小整数是:"<<n<<endl;return0;}解题方案:评分标准:2.参考答案:#include<iostream>#include<fstream>usingnamespacestd;intmain(){charc;ofstreamp;p.open("data.txt");if(!p)cout<<"CannotOpenFile!"<<endl;return-1;while((c=getchar())!='#')p.put(c);p.close();return0;}解题方案:评分标准:3.参考答案:#include<iostream>usingnamespacestd;classPoint{private:doublex,y;public:Point(doublex,doubley);Point();doublegetX();doublegetY();doublegetDistance(Pointp);};Point::Point(doublex,doubley){this->x=x;this->y=y;}Point::Point(){}doublePoint::getX(){returnx;}doublePoint::getY(){returny;}doublePoint::getDistance(Pointp){returnsqrt(pow(x-p.x,2)+pow(y-p.y,2));}classPolygon{public:virtualvoidshow()=0;virtualdoublegetPerimeter()=0;virtualdoublegetArea()=0;};classTriangle:publicPolygon{private:Pointp1,p2,p3,p4;public:Triangle(Pointp1,Pointp2,Pointp3);voidshow();doublegetPerimeter();doublegetArea();};Triangle::Triangle(Pointp1,Pointp2,Pointp3){this->p1=p1;this->p2=p2;this->p3=p3;}voidTriangle::show(){TOC\o"1-5"\h\zcout<< "(" << p1.getX() << ","<< p1.getY() << ")";cout<< "(" << p2.getX() << ","<< p2.getY() << ")";cout<< "(" << p3.getX() << ","<< p3.getY() << ")";cout<<endl;}doubleTriangle::getPerimeter(){returnp1.getDistance(p2)+p2.getDistance(p3)+p3.getDistance(p1);}doubleTriangle::getArea(){doublea=p1.getDistance(p2);doubleb=p2.getDistance(p3);doublec=p3.getDistance(p1);doubles=(a+b+c)/2;returnsqrt(s*(s-a)*(s-b)*(s-c));}voidmain(){Pointp1(1,0),p2(0,1),p3(-1,0);Trianglet(p1,p2,p3);t.show();cout<<t.getPerimeter()<<endl;cout<<t.getArea()<<endl;}解题方案:评分标准:4.参考答案:#include<iostream>usingnamespacestd;classPoint{private:doublex,y;public:Point(){};Point(doublexVal,doubleyVal);doublegetDistance(Pointp);};classTriangle{private:Pointp1,p2,p3;public:Triangle(Pointpoint1,Pointpoint2,Pointpoint3);doublegetArea();};Point::Point(doublexVal,doubleyVal){x=xVal;y=yVal;}doublePoint::getDistance(Pointp){returnsqrt(pow(x-p.x,2)+pow(y-p.y,2));Triangle::Triangle(Pointpoint1,Pointpoint2,Pointpoint3){p1=point1;p2=point2;p3=point3;}doubleTriangle::getArea(){doublea=p1.getDistance(p2);doubleb=p2.getDistance(p3);doublec=p3.getDistance(p1);doubles=(a+b+c)/2;returnsqrt(s*(s-a)*(s-b)*(s-c));}voidmain(){Pointp1(0,0),p2(3,0),p3(0,4);Trianglet(p1,p2,p3);cout<<t.getArea()<<endl;}解题方案:评分标准:5.参考答案:#include<iostream>usingnamespacestd;inttheWorm(intn,intu,intd);intmain(){intn,u,d,time;cout<<"?n,u,d:";cin>>n>>u>>d;time=theWorm(n,u,d);if(time==-1)cout<<"Thewormcan'tescapesfromwell."<<endl;elsecout<<"time="<<time<<endl;return0;}inttheWorm(intn,intu,intd){inttime=0,curh=0;if(u<=d&&n>u)return-1;while(1){curh+=u;time++;if(curh>=n)break;curh-=d;time++;}returntime;}解题方案:评分标准:6.参考答案:#include<iostream>#include<fstream>#include<ctime>usingnamespacestd;intmain(){voidreadfile(ifstream&myf,int*v);ints[10],i;doublesum=0;ifstreammyFile("data.txt",ios::binary);if(!myFile)cout<<"Can'topenfile."<<endl;return-1;}readfile(myFile,s);myFile.close();for(i=0;i<10;i++){sum+=s[i];}cout<<"average="<<sum/10<<endl;return0;}voidreadfile(ifstream&myf,int*v){myf.read((char*)v,sizeof(int)*10);}解题方案:评分标准:7.参考答案:#include<iostream>enumMONTH{JANUARY=1,FEBRUARY,MATCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER};structDate{intyear;MONTHmonth;intday;voidshow();};voidDate::show(){cout<<year<<"-"<<month<<"-"<<day<<endl;}classHoliday{private:Da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保法规与尾气排放标准测试及答案
- 成人高考专升本试题及答案
- 建筑工地事故预防与处理在A证考试中的重要性
- 德勤面试bi备知识招聘测试题详解
- 2025年社区工作者考试试题库附完整答案
- 物体打击事故专项应急预案
- 售后服务经理2025年年底总结及明年工作计划
- 北师大版三年级数学下册第六单元达标卷
- 2025年公共设施租赁合同协议
- 2025年工业自动化控制系统协议合同
- 中国马克思主义与当代2024版教材课后思考题答案
- 2025河南郑州巩义市金桥融资担保有限公司招聘3人考试笔试备考题库及答案解析
- 物联网应用技术大学生职业生涯规划书
- 光伏储能可行性研究报告
- 教师与家长沟通技巧培训:做一名会说话的教师
- 儿童故事狼和小羊
- 2025年安徽省合肥市高一数学上册期中考试试卷及答案
- 六年级上语文期中考试检测试卷及参考答案
- 人工智能在金融投资决策支持中的应用研究报告
- GB/T 615-2006化学试剂沸程测定通用方法
- 土的孔隙率试验检测报告
评论
0/150
提交评论