版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第6~14章習(xí)題課,楊琦計算機教學(xué)實驗中心西安交通大學(xué),第6章 指針,習(xí)題6-1 用指針重新編寫冒泡排序程序。習(xí)題6-2 編寫程序,將某一個輸入的位數(shù)不確定的正整數(shù)按照標準的三位分節(jié)格式輸出,例如,當用戶輸入82668634時,程序應(yīng)該輸出82,668,634。習(xí)題6-3 編寫程序,把10個整數(shù)1、2、…、10賦予某個int型數(shù)組,然后用int型指針輸出該數(shù)組元素的值。習(xí)題6-4 用指針編寫一個程序,當輸入一個字符串后,要求不
2、僅能夠統(tǒng)計其中字符的個數(shù),還能分別指出其中大、小寫字母、數(shù)字以及其他字符的個數(shù)。,第6章 指針,習(xí)題6-5 編寫一個函數(shù), 用于將一個字符串轉(zhuǎn)換為整型數(shù)值。其原型為: int atoi(char *string);習(xí)題6-6 編寫一個函數(shù),用于生成一個空白字符串,其原型為:char *mystrspc(char *string, int n);,習(xí)題6-1冒泡排序程序,void bubble_up(int *ptr,
3、 int count){for(int i=0; ii; j=j-1)if(*(ptr+j-1)>*(ptr+j)){int tmp = *(ptr+j-1);*(ptr+j-1) = *(ptr+j);*(ptr+j) = tmp;}},ptr為指針,int main(){const int COUNT=16;int list[COUNT]={50
4、3, 87, 512, 61, 908, 170, 897, 275,653, 426, 154, 509, 612, 677, 765, 703};bubble_up(list, 16);cout << "The result is :" << endl;for(int i=0; i<16; i++)cout <<list[i] <<
5、" ";cout<<endl;return 0;},習(xí)題6-2,例如,當用戶輸入82668634時,程序應(yīng)該輸出82,668,634。,int main(){int num; char array[50];char *ptr=array;cout>num; int k=0;while(num!=0){*ptr=num%10+'0';num=nu
6、m/10;ptr++;k++;if(k%3==0){*ptr=',';ptr++;}};*ptr=0; strrev(array);cout<<"該整數(shù)按照標準的三位分節(jié)格式輸出為:";cout<<array<<endl;return 0;},習(xí)題6-5,編寫一個函數(shù),將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)
7、 函數(shù)原型: int atoi(char *string);,輸入與輸出:請輸入待轉(zhuǎn)換的字符串值:-529轉(zhuǎn)換后的整型數(shù)值是:-529,習(xí)題6-5,int atoi(char *string){int num=0;int s=1;if(*string=='-'){s=-1; string++;}if(*string=='+'){s=1;string++;
8、} while(*string!=0&&*string>='0'&&*string<='9'){num=num*10+*string-'0';string++;}return s*num;},習(xí)題6-6 char *mystrspc(char *string, int n);,char *mystrspc(cha
9、r * string, int n){char * ptr = string;while (n>0){*string=' ';string++;n--;}*string = 0;return ptr;},int main(){char *str;int n;cout>n;str=new char[n];cout<<“\n結(jié)果如下,
10、注意觀察#之間的空格數(shù):\n"<<endl;cout<<"#"<<mystrspc(str,n)<<"#"<<endl;cout<<" ";for(int i=0;i<n;i++)cout<<i%10; cout<<endl<<e
11、ndl;return 0;},第7章 函數(shù)與指針,習(xí)題7-1 使用遞歸算法編寫如下程序:對于任意給定的實數(shù)X和整數(shù)k>0,計算Xk。習(xí)題7-2 Ackermann函數(shù)ack(m,n)由以下遞歸定義:習(xí)題7-3 使用遞歸算法編寫求斐波那契數(shù)列的第n項的函數(shù),并編出主函數(shù)進行驗證。,,第7章 函數(shù)與指針,習(xí)題7-4 編寫一個求立方的函數(shù)cube,并重載它,使之可以對輸入的整型量和實型量數(shù)值求立方。習(xí)題7-5 重載判
12、斷兩個數(shù)值大小的函數(shù)max,這些數(shù)值可能是整型數(shù)、實型數(shù)和字符型,函數(shù)的返回值為兩個數(shù)值中的最大值。習(xí)題7-6 編寫一個函數(shù),用于去掉字符串尾部的空格符,其原型為:char *mytrim(char *string);習(xí)題7-7 編寫一個函數(shù),用于去掉字符串前面的空格,其原型為:char *myltrim(char *string);,第7章 函數(shù)與指針,習(xí)題7-8 編寫一個程序,當輸入一個整數(shù)以后,可以轉(zhuǎn)換成相應(yīng)的英文單詞輸
13、出。如:123轉(zhuǎn)換成one hundred twenty three。習(xí)題7-9 用牛頓法或者二分法編寫一個求方程f(x)=0在區(qū)間[a, b]中的實根的函數(shù), 其原型為: double equation(double (*func)(double), double a, double b, double eps);,習(xí)題7-2,#includeusing namespace std;int ack(int m, int n)
14、{if(m==0)return n+1;else if(n==0)return ack(m-1, 1);return ack(m-1, ack(m, n-1));},結(jié)果:ack (0,0)=1 ack(2,3)=9 ack(2,4)=11,習(xí)題7-6 mytrim(char *string);,char *mytrim(char *string){char *ptr=string;while(*pt
15、r!=0)ptr++;do{ptr--;}while(*ptr==' ');*(++ptr)=0;return string;},int main(){char str[] = "The art of computer programming ";cout << "截取前的原始字符串是: [" <<st
16、r<<']'<<endl;cout << "截取空格后的字符串是: [" <<mytrim(str)<<']';return 0;},習(xí)題7-7 myltrim(char *string);,char *myltrim(char * string){char *ptr=string;while(*ptr==
17、' ')ptr++;strcpy(string, ptr);return string;},第8章 結(jié)構(gòu)化設(shè)計方法,1.輸入某小組5個人的姓名、性別、出生年份等信息,統(tǒng)計男女人數(shù)以及1988年以后(含1988年)出生的人數(shù)。2.定義一個名為Circle(圓)的結(jié)構(gòu)體,其數(shù)據(jù)成員是圓的外接矩形的左上角和右下角兩點的坐標,計算該圓的面積。3.讀入5個用戶的姓名和電話號碼,按姓名的字典順序排列后,輸出每
18、個用戶的姓名和電話號碼。4.口袋中有紅、黃、藍、白、黑五種顏色的小球若干個。如果每次都從口袋中取出3個不同顏色的小球,共有多少種組合,請打印出每種組合的3種顏色。要求使用枚舉類型來表示小球的顏色。5.用自頂向下、逐步求精的程序設(shè)計方法找出2~10000之內(nèi)的所有完全數(shù)(所謂完全數(shù),即其各因子之和正好等于本身的數(shù)。如6=1+2+3,28=1+2+4+7+14,所以6,28都是完全數(shù)),第9章 類和對象,習(xí)題9-1設(shè)計一個Dog類,包含
19、name、age、sex和weight等屬性以及對這些屬性操作的方法。實現(xiàn)并測試這個類。 習(xí)題9-2設(shè)計并測試一個名為Ellipse的橢圓類,其屬性為外接矩形的左上角與右下角兩個點的坐標,并能計算出橢圓的面積。習(xí)題9-3.仿照Date類設(shè)計一個Time類,可以設(shè)置時間、進行時間的加減運算、按各種可能的格式輸出時間。,習(xí)題9-1設(shè)計一個Dog類,#include #include using namespace std;clas
20、s Dog{string name;intage;char sex;float weight;public:Dog(string Name, int Age, char Sex, float Weight);string GetName() {return name;}int GetAge() {return age;}char GetSex() {return sex;}float GetWeigh
21、t() {return weight;}void Speak() {cout<<"Arf!Arf!"<<endl;}};,Dog::Dog(string Name, int Age, char Sex, float Weight){name=Name;age = Age;sex = Sex;weight = Weight;}int main(){Dog dog1(&q
22、uot;ahuang", 3, 'm', 2.4);cout<<"Dog's name: "<<dog1.GetName()<<endl;cout<<"Dog's age: "<<dog1.GetAge()<<endl;cout<<"Dog'
23、s sex: "<<dog1.GetSex()<<endl;cout<<"Dog's weight: "<<dog1.GetWeight()<<endl;cout<<"Dog speak: ";dog1.Speak();return 0;},習(xí)題9-3.設(shè)計一個Time類,class T
24、ime{int hour,minute,second;public:int SecCalc();Time( int h = 0, int m = 0, int s = 0 );//構(gòu)造函數(shù)void SetTime(int h = 0, int m = 0, int s = 0 );//時間設(shè)置void print_12();void print_24();Time Add(Time&);T
25、ime Sub(Time&);};,第9章 類和對象,習(xí)題9-4.合并Date類和Time類為一個DateAndTime類,修改相應(yīng)的成員函數(shù),當時間遞增到新的一天時,應(yīng)能夠修改日期值。,#include #include class CDateTime{CTime t;public:CDateTime(int y,int m,int d,int h,int mm, int s){ t=CTim
26、e(y,m,d,h,mm,s); }void AddDay(int days){ t=t+CTimeSpan(days,0,0,0); }void IncDay(){ t=t+CTimeSpan(1,0,0,0); }void print_ymd(){ CString s=t.Format("%Y, %m %d");
27、 cout<<s<<endl; }};,int main(){CDateTime x(2007,4,27,1,2,3);x.print_ymd();x.AddDay(5);x.print_ymd();return 0;},第10章 類和對象(二),1.定義一個Dog類,包含name、age、sex、weight等屬性,設(shè)計一個構(gòu)造函數(shù),可以對這些屬性進行初始化。實現(xiàn)并測試這個
28、類。2.設(shè)計并測試一個名為Ellipse的橢圓類,其屬性為其圓心坐標以及半長軸和半短軸的長度。設(shè)計一個構(gòu)造函數(shù)對這些屬性進行初始化,并通過成員函數(shù)計算出橢圓的面積。3.仿照Date類設(shè)計一個Time類,設(shè)計多個重載的構(gòu)造函數(shù),可以設(shè)置時間、進行時間的加減運算、按各種可能的格式輸出時間。4.合并Date類和Time類為一個DateAndTime類,修改相應(yīng)的成員函數(shù),當時間遞增到新的一天時,應(yīng)能夠修改日期值。,習(xí)題10-1 定義一個
29、Dog類,class Dog{char name[20];intage;char sex;double weight;public:Dog(char *Name="", int Age=0, char Sex='m', double Weight=0){strcpy(name,Name);age = Age;sex = Sex;weight = Weig
30、ht;}char * GetName() {return name;}int GetAge() {return age;}char GetSex() {return sex;}double GetWeight() {return weight;}void Speak() {cout<<"Arf!Arf!"<<endl;}};,習(xí)題10-2 設(shè)計Ellipse類,cla
31、ss Ellipse{int x1,y1,x2,y2;public:Ellipse(int a=0,int b=0,int c=0,int d=0): x1(a),y1(b),x2(c),y2(d){} void GetPosition(int &a,int &b,int &c,int &d) { a=x1,b=y1,c=x2,d=y2; } doubl
32、e Area() { return (double)x2*y2*3.1415926; }};,習(xí)題10-3 設(shè)計Time類,class Time{int hour,minute,second;public:int SecCalc();Time( int h = 0, int m = 0, int s = 0 );//構(gòu)造函數(shù)void SetTime(int h = 0, int m = 0,
33、int s = 0 );//時間設(shè)置void print_12();void print_24();Time Add(Time&);Time Sub(Time&);};,第11章 繼承,習(xí)題11-1從類Person中派生出一個教師類,新增的屬性有:專業(yè)、職稱和主講課程(一門),并為這些屬性定義相應(yīng)的方法。習(xí)題11-2許多研究生既有學(xué)生的屬性,又有教師的屬性。試通過多重繼承說明一個研究生類。習(xí)題11
34、-3修改例10-4,從Point類中派生出一個Line類。Line類增加一個數(shù)據(jù)成員EndPoint,計算線的長度。試比較一下與直接使用Point類來構(gòu)造Line類的不同之處。習(xí)題11-4.從Date類和Time類派生一個DateAndTime類,修改相應(yīng)的成員函數(shù),當時間遞增到新的一天時,應(yīng)能夠修改日期值。,習(xí)題11-1從類Person派生Teacher類,class Person{protected:char Name[1
35、0];intAge;intSex;public:Person(char *name="", int age=0, char sex='m') {strcpy(Name, name);Age = age;Sex=(sex=='m'?0:1);}void ShowMe(){cout<<Name<<"
36、\t"<<Sex<<"\t"<<Age<<"\t";} };,習(xí)題11-1從類Person派生Teacher類,class Teacher: public Person {char Specialty[20];char Position[20]; char MajorCourse[20];public: Te
37、acher(char *name="xxx",int age=0,char sex='m',char *spec="x",char *pos="x",char *maj="x"):Person(name,age,sex){strcpy(Specialty,spec);strcpy(Position,pos);strcpy(
38、MajorCourse,maj);}void Teacher::ShowMe (){Person::ShowMe();cout<<Specialty<<"\t"<<Position<<"\t"<<MajorCourse<<endl;}};,第12章 多態(tài)性,習(xí)題12-2擴充例11-6,從中派生出一個正
39、方形類和圓柱體類,寫一個測試程序,輸出正方形的面積和圓柱體的體積。提示:正方形數(shù)據(jù)成員:一個頂點和邊長;圓柱體數(shù)據(jù)成員:圓和高。,Point,Square,Circle,Cylinder,,,,第12章 多態(tài)性,習(xí)題12-3擴充實例編程中的日期類,為Date類增加一個成員函數(shù),可以判斷一個日期是否是系統(tǒng)當前日期。從鍵盤輸入你的生日,如果今天是你的生日則顯示:“Happy Birthday!”,否則顯示“還有xx天是你的生日”或“你的生日
40、已經(jīng)過去了xx天,明年的生日要再等yy天”。,第13章 模板與異常處理,習(xí)題13-1 編寫一個求絕對值的函數(shù)模板,并測試。習(xí)題13-2 請將例4-5的冒泡排序函數(shù)改寫成為模板函數(shù)并編寫一個程序進行測試。習(xí)題13-3 例13-6中所定義的通用棧類實際上是不完善的,如無法根據(jù)用戶需求改變棧的大小,沒有提供棧滿溢出無法壓入和空棧無法彈出提示等,請改進該程序。。習(xí)題13-5例6-1給出的求階乘n!的函數(shù),當用戶的輸入太大時(如51),會
41、出現(xiàn)錯誤,請編寫一個程序,使用異常處理機制來解決這一問題。,第14章 標準庫和輸入/輸出流,習(xí)題14-1編寫一個程序,分別用不同的域?qū)挘?~10)打印出整數(shù)12345和浮點數(shù)1.2345。觀察當域?qū)捫∮跀?shù)值的實際需要的域?qū)挄r會發(fā)生什么情況。,輸出:1234512345123451234512345 12345 12345 12345 12345 12345,輸出:1.23451.23451
42、.23451.23451.23451.2345 1.2345 1.2345 1.2345 1.2345,第14章 標準庫和輸入/輸出流,習(xí)題14-2編寫一個程序,將華氏溫度0度~212度轉(zhuǎn)換為浮點型攝氏溫度,浮點數(shù)精度為3。轉(zhuǎn)換公式如下:Celsius = 5.0 / 9.0 * (Fahrenheit-32);,輸出:Fahrenheit Celsius 0 -
43、17.778 1 -17.222 2 -16.667…… 210 98.889 211 99.444 212 100.000,第14章 標準庫和輸入/輸出流,習(xí)題14-3編寫一個程序,打印出ASCII字符集中碼值為33~126的字符的ASCII碼表。要求輸出十進制值、
44、八進制值、十六進制值以及碼值所表示的字符。,輸出: dec oct hex char 33 41 21 ! 22 42 22 " 23 43 23 #…… 7c 174 7c | 7d 175 7d } 7e 176 7e ~,第14章 標準庫和輸入/輸出流,習(xí)題14-5編寫一個程序,可以讀入一個C++語言的源文件,每一行加上行號后保存到另一個后綴為.p
45、rn的同名文件中。,輸出:假定上述文件名為"test.cpp",程序執(zhí)行后生成"test.prn"文件,內(nèi)容如下: 1 // Exercise 13_5 2 #include 3 #include …… 26 out.close(); 27 return 0; 28 },學(xué)好程序設(shè)計語言的唯一途徑是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++程序設(shè)計基礎(chǔ)第版上習(xí)題解答
- c++程序設(shè)計教程2-
- c++面向?qū)ο蟪绦蛟O(shè)計第5版
- c語言程序設(shè)計教程 (第2版)
- 重大2016年c++程序設(shè)計語言 ( 第2次 )
- c++程序設(shè)計課程-說課
- c++程序設(shè)計
- c++程序設(shè)計
- 譚浩強c++程序設(shè)計(ppt版)
- c++程序設(shè)計基礎(chǔ)復(fù)習(xí)題a
- 《c++程序設(shè)計》譚浩強課后習(xí)題答案
- c語言程序設(shè)計ppt-第2版-第7章-指針程序設(shè)計
- c++程序設(shè)計基礎(chǔ)(第3版)課后習(xí)題答案及經(jīng)典算法
- 譚浩強c++程序設(shè)計課后習(xí)題答案
- c++程序設(shè)計基礎(chǔ)復(fù)習(xí)題a
- 《c++程序設(shè)計》譚浩強課后習(xí)題答案
- 重大2015年c++程序設(shè)計語言 ( 第2次作業(yè) )
- c++面向?qū)ο蟪绦蛟O(shè)計課后習(xí)題答案譚浩強版
- c++程序設(shè)計題解與上機指導(dǎo)習(xí)題程序.
- 《程序設(shè)計基礎(chǔ)c++》
評論
0/150
提交評論