C++程序設(shè)計(jì)語言 ( 第3次 )_第1頁
C++程序設(shè)計(jì)語言 ( 第3次 )_第2頁
C++程序設(shè)計(jì)語言 ( 第3次 )_第3頁
C++程序設(shè)計(jì)語言 ( 第3次 )_第4頁
C++程序設(shè)計(jì)語言 ( 第3次 )_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3次作業(yè)一、填空題(本大題共20分,共5小題,每小題4分)假定一個(gè)二維數(shù)組為a[M][N],則a[i]的地址值(以字節(jié)為單位)為2.類型兼容原則指的是:任何在需要 對(duì)象的地方,都可以用 的對(duì)象去替代。3.重新拋出異常的表達(dá)式為: 。4.以下程序的執(zhí)行結(jié)果是 。#include<iostream>usingnamespacestd;classBase{public:Base(){cout<<”1”;}~Base(){cout<<”2”;}};classDerived:publicBase{public:Derived(){cout<<”3”;}~Derived(){cout<<”4”;}};voidmain(){Derivedd;5.以下程序的執(zhí)行結(jié)果是 。#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.寫出下面程序運(yùn)行結(jié)果。#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;}}三、程序設(shè)計(jì)題(本大題共40分,共8小題,每小題5分)1.一個(gè)正整數(shù)與3的和是5的倍數(shù),與3的差是6的倍數(shù),編程序求出符合此條件的最小正整數(shù)。2.編制程序?qū)崿F(xiàn)功能:將從鍵盤輸入的若干字符依次存入到磁盤文件data.txt中,直到輸入字符#時(shí)為止。3.設(shè)計(jì)并實(shí)現(xiàn)一個(gè)抽象類Polygon表示多邊形,及其子類Triangle,表示三角形。要求:Polygon不具有任何的數(shù)據(jù)成員,只具有如下純虛函數(shù)表示多邊形應(yīng)該具備的外部接口:voidshow();打印多邊形每個(gè)頂點(diǎn)的位置doublegetPerimeter();得到多邊形的邊長doublegetArea();得到多邊形的面積設(shè)計(jì)并實(shí)現(xiàn)Point類來表示多邊形的頂點(diǎn),其具有x,y兩個(gè)數(shù)據(jù)成員和得到它們的值的外部接口getX()和getY()。子類Triangle除了實(shí)現(xiàn)父類的純虛函數(shù)之外,可根據(jù)需要設(shè)計(jì)成員變量、構(gòu)造函數(shù)等。在main函數(shù)中申明Triangle的對(duì)象,并打印每個(gè)對(duì)象的頂點(diǎn)位置、邊長和面積。4.定義兩個(gè)類Point和Triangle代表點(diǎn)和三角形。Point類有兩個(gè)double成員,分別代表了x,y坐標(biāo)。Triangle類中有三個(gè)Point成員,分別代表三個(gè)頂點(diǎn)。在main函數(shù)中定義一個(gè)Triangle對(duì)象,并求得Triangle對(duì)象的面積。要求除了main函數(shù)之外,所有的函數(shù)都只能定義為成員函數(shù)。提示:Point中可以定義成員函數(shù)求兩個(gè)點(diǎn)之間的距離。實(shí)現(xiàn)時(shí)使用sqrt(double)求平方根。Triangle類中定義成員函數(shù)求面積,使用海倫公式s=sqrt(s*(s-a)*(s-b)*(s-c)),s是周長的一半。Point有(但不僅限于)構(gòu)造函數(shù)Point(double,double),Triangle有構(gòu)造函數(shù)Triangle(Point,Point,Point)5.“爬動(dòng)的蠕蟲”問題:一條蠕蟲長度為1厘米,在一口深度為n厘米的井底。已知蠕蟲每分鐘可以向上爬u厘米,但必須休息1分鐘后才能接著往上爬。在休息的過程中,蠕蟲又下滑了d厘米。這樣反復(fù)進(jìn)行上爬和下滑過程,請(qǐng)?jiān)O(shè)計(jì)一個(gè)函數(shù)返回蠕蟲爬出井所需的時(shí)間,若不能爬出返回-1。假定:1)初始時(shí)蠕蟲趴在井底(高度為0)2)上爬過程中,蠕蟲頭部到達(dá)井的頂部就算出井3)計(jì)算時(shí)間時(shí),不足一分鐘按一分鐘計(jì)算6.已知二進(jìn)制文件data.txt中10個(gè)整型數(shù)據(jù),請(qǐng)編制程序求出這些整數(shù)的平均值。要求讀取文件數(shù)據(jù)部分用獨(dú)立的函數(shù)實(shí)現(xiàn)。7.設(shè)計(jì)枚舉類型MONTH代表一年的12個(gè)月的英文名稱。設(shè)計(jì)結(jié)構(gòu)體Date代表日期,包括年、月、日,其中的月成員為MONTH類型;Date還包括一個(gè)show成員函數(shù)來輸出形如"2015-10-1"的日期格式。設(shè)計(jì)類Holiday來代表假期,其中有兩個(gè)數(shù)據(jù)成員:n表示假期天數(shù),ptr表示放假的日期。其中ptr是指向動(dòng)態(tài)生成的Date數(shù)組的首地址。構(gòu)造函數(shù)和析構(gòu)函數(shù)負(fù)責(zé)開辟和釋放內(nèi)存空間。Holiday類還有show成員函數(shù)來輸出假期中每一天的日期。在main函數(shù)中生成一個(gè)具有多天的假期,并輸出其中每一天的日期。編寫程序?qū)崿F(xiàn)功能:將指定文件中的小寫字母修改為對(duì)應(yīng)的大寫字母答案:一、填空題(20分,共5題,每小題4分)參考答案:a+(i*N)*sizeof(a[0][0])a+i*sizeof(a[i])解題方案:二維數(shù)組評(píng)分標(biāo)準(zhǔn):每空2分參考答案:基類、公有派生類解題方案評(píng)分標(biāo)準(zhǔn)3.參考答案throw;解題方案評(píng)分標(biāo)準(zhǔn)4.參考答案解題方案:評(píng)分標(biāo)準(zhǔn):參考答案:12解題方案:評(píng)分標(biāo)準(zhǔn):二、程序閱讀題(40分,共5題,每小題8分)1.參考答案:987654321解題方案:評(píng)分標(biāo)準(zhǔn):參考答案:2H1H0$4H3H2$解題方案:評(píng)分標(biāo)準(zhǔn):參考答案:count=3解題方案:評(píng)分標(biāo)準(zhǔn):參考答案:ai+bi+ci=6ad+bd+cd=14.5解題方案:評(píng)分標(biāo)準(zhǔn):5.參考答案:0,0,0,02,2,-3,31,1,-3,30,0,0,3解題方案:評(píng)分標(biāo)準(zhǔn):三、程序設(shè)計(jì)題(40分,共8題,每小題5分)1.參考答案:#include<iostream>usingnamespacestd;intmain(){intn=1;if((n+3)%5==0&&(n-3)%6==0)break;n++;}cout<〈"滿足條件的最小整數(shù)是:"<<n<<endl;return0;}解題方案:評(píng)分標(biāo)準(zhǔn):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;}解題方案:評(píng)分標(biāo)準(zhǔn):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;}解題方案:評(píng)分標(biāo)準(zhǔn):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;}解題方案:評(píng)分標(biāo)準(zhǔn):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;}解題方案:評(píng)分標(biāo)準(zhǔn):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);}解題方案:評(píng)分標(biāo)準(zhǔn):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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論