C程序設(shè)計(jì)教程后習(xí)題_第1頁(yè)
C程序設(shè)計(jì)教程后習(xí)題_第2頁(yè)
C程序設(shè)計(jì)教程后習(xí)題_第3頁(yè)
C程序設(shè)計(jì)教程后習(xí)題_第4頁(yè)
C程序設(shè)計(jì)教程后習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 C+語(yǔ)言簡(jiǎn)介1. 修改例1-1的Hello World!程序,使其能夠在計(jì)算機(jī)屏幕上顯示:I am a student, and I like programming!2. 修改例1-3的加法計(jì)算器程序,編寫(xiě)一個(gè)乘法計(jì)算器程序。 3. 修改例1-4的生日卡程序,使其能夠輸入和顯示日期。 4. 參考例1-5,使用梯形法計(jì)算下式定積分的值。其中積分區(qū)域等分?jǐn)?shù)可取為200,并將計(jì)算結(jié)果和手算結(jié)果相比較。提示:ex用標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)庫(kù)cmath中的庫(kù)函數(shù)exp(x)表示。5. 仿照例1-6,編寫(xiě)一個(gè)計(jì)算矩形面積的程序。第2章 基本數(shù)據(jù)類(lèi)型1 為例2-2添加數(shù)據(jù)檢驗(yàn)部分。給出三邊長(zhǎng),檢驗(yàn)其是否能構(gòu)成

2、一個(gè)三角形的方法是檢查是否任意兩邊和均大于第三邊。如果檢驗(yàn)不合格,輸出信息“Error Data!”2 輸入兩個(gè)角度值x、y,計(jì)算如下式子的值。3 編寫(xiě)一個(gè)程序,要求完成以下要求:1) 提示用戶輸入任意的3個(gè)小數(shù);2) 顯示這三個(gè)小數(shù);3) 將這三個(gè)小數(shù)相加,并顯示其結(jié)果;4) 將結(jié)果按四舍五入方法轉(zhuǎn)換成整數(shù)并顯示。4 從鍵盤(pán)輸入任意三個(gè)整數(shù),然后輸出這三個(gè)數(shù)并計(jì)算其平均值。5 編寫(xiě)一個(gè)程序,將字符串“Love”譯成密碼,譯碼方法采用替換加密法,其加密規(guī)則是:將原來(lái)的字母用字母表中其后面的第3個(gè)字母的來(lái)替換,如字母c就用f來(lái)替換,字母y用b來(lái)替換。提示:分別用4個(gè)字符變量來(lái)存儲(chǔ)'L&#

3、39;、'o'、'v'和'e',利用ASCII表中字母的排列關(guān)系,按照譯碼方法對(duì)各個(gè)變量進(jìn)行運(yùn)算后輸出即可。第3章 控制結(jié)構(gòu)1. 編寫(xiě)計(jì)算階乘 n!的程序。2. 計(jì)算1!+2!+3!+4!+.+10!,即3. 編寫(xiě)程序求斐波那契數(shù)列的第n項(xiàng)和前n項(xiàng)之和。斐波那契數(shù)列是形如0, 1, 1, 2, 3, 5, 8, 13, .其通項(xiàng)為:F0 = 0;F1 = 1;Fn = Fn-1+Fn-2。4. 編程求,其中。提示:結(jié)束條件可用 ,其中u為通項(xiàng),為預(yù)先給定的精度要求。5. 用牛頓迭代法求方程:2x34x2十3x一60在1.5附近的根。提示:迭代公式

4、 結(jié)束迭代過(guò)程的條件為()與()同時(shí)成立,其中為預(yù)先給定的精度要求。6. 求解猴子吃桃問(wèn)題。猴子在第一天摘下若干個(gè)桃子,當(dāng)即就吃了一半,又感覺(jué)不過(guò)癮,于是就多吃了一個(gè)。以后每天如此,到第10天想吃時(shí),發(fā)現(xiàn)就只剩下了一個(gè)桃子。請(qǐng)編程計(jì)算第一天猴子摘的桃子個(gè)數(shù)。7. 編寫(xiě)一個(gè)程序,尋找用戶輸入的幾個(gè)整數(shù)中的最小值。并假定用戶輸入的第一個(gè)數(shù)值指定后面要輸入的數(shù)值個(gè)數(shù)。例如:當(dāng)用戶輸入數(shù)列為: 5 20 15 300 9 700時(shí),程序應(yīng)該能夠找到最小數(shù)98. 有一分?jǐn)?shù)序列(即后一項(xiàng)的分母為前一項(xiàng)的分子,后項(xiàng)的分子為前一項(xiàng)分子與分母之和),求其前n項(xiàng)之和。9. 求a+aa+aaa+aaaa+. .+a

5、a.a(n個(gè)),其中a為19之間的整數(shù)。例如:當(dāng)a = 1, n = 3時(shí),求1+11+111之和;當(dāng)a = 5, n = 7時(shí),求5555555555555555555555555555之和。10. 猜幻數(shù)游戲。由系統(tǒng)隨機(jī)給出一個(gè)數(shù)字(即幻數(shù)),讓游戲者去猜,如果猜對(duì),則打印成功提示;否則,打印出錯(cuò)提示,并提示游戲者選擇下一步動(dòng)作,最多可以猜5次。第4章 數(shù)組與字符串1使用數(shù)組來(lái)求斐波那挈數(shù)列的第n項(xiàng)和前n項(xiàng)之和。2編寫(xiě)程序,將4階方陣轉(zhuǎn)置,如下所示。 轉(zhuǎn)置前方陣A 轉(zhuǎn)置后方陣A3使用數(shù)組編寫(xiě)一個(gè)統(tǒng)計(jì)學(xué)生課程平均分的程序:輸入6個(gè)學(xué)生的學(xué)號(hào)和3門(mén)課程的成績(jī)(整數(shù)形式),統(tǒng)計(jì)每個(gè)學(xué)生3門(mén)課程的

6、平均分(整數(shù)形式),最后輸出統(tǒng)計(jì)結(jié)果。輸出格式:學(xué)號(hào)高數(shù)英語(yǔ)體育平均分-4. 編寫(xiě)一個(gè)程序,要求用戶輸入一個(gè)十進(jìn)制正整數(shù),然后分別轉(zhuǎn)換成為二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)輸出。5輸入10個(gè)字符到一維字符數(shù)組s中,將字符串置逆。即s0與s9互換,s1與8互換,.,s4與s5互換,輸出置逆后的數(shù)組s。6替換加密(愷撒加密法):加密規(guī)則是:將原來(lái)的小寫(xiě)字母用字母表中其后面的第3個(gè)字母的大寫(xiě)形式來(lái)替換,大寫(xiě)字母按同樣規(guī)則用小寫(xiě)字母替換,對(duì)于字母表中最后的三個(gè)字母,可將字母表看成是首未銜接的。如字母c就用F來(lái)替換,字母y用B來(lái)替換。請(qǐng)將字符串“I love you”譯成密碼。第5章 函數(shù)1編寫(xiě)字符串反轉(zhuǎn)函

7、數(shù)mystrrev( ),該函數(shù)的功能為將指定字符串中的字符順序顛倒排列。然后再編寫(xiě)主函數(shù)驗(yàn)證之。函數(shù)聲明為:void mystrrev(char string)該函數(shù)無(wú)需返回值。提示:求字符串長(zhǎng)度可以直接調(diào)用庫(kù)函數(shù)strlen( ),但在程序首部應(yīng)加上 #include <cstring>2編寫(xiě)一組求數(shù)組中最大最小元素的函數(shù)。該組函數(shù)的原型為int imax(int array, int count);/ 求整型數(shù)組的最大元素int imin(int array, int count);/ 求整型數(shù)組的最小元素其中參數(shù)count為待考察的數(shù)組中的元素個(gè)數(shù),函數(shù)的返回值即為求得的最

8、大或最小元素之值。要求同時(shí)編寫(xiě)出主函數(shù)進(jìn)行驗(yàn)證。3編寫(xiě)函數(shù)isprime(int a)用來(lái)判斷變量a是否為素?cái)?shù),若是素?cái)?shù),函數(shù)返回1,否則返回0。調(diào)用該函數(shù)找出任意給定的n個(gè)整數(shù)中的素?cái)?shù)。4打印出以下的楊輝三角形(要求打印出10行)11112113311464115101051 提示:打印楊輝三角形有兩種方法:1)楊輝三角形表現(xiàn)的是二項(xiàng)式的展開(kāi)式的系數(shù)。例如,, 故楊輝三角形的第三行(對(duì)應(yīng)n=2)為121一般地,二項(xiàng)式的展開(kāi)式為其中第m項(xiàng)。2)可直接根據(jù)楊輝三角形的形式來(lái)推出每項(xiàng)的值。由下面的楊輝三角形可以看出,楊輝三角形每行的第一個(gè)數(shù)和最后一個(gè)數(shù)均為1,除第一行外,每行中間的各數(shù)等于上一行位

9、于該數(shù)左上方和正上方的兩數(shù)之和,即。5用弦截法求一元方程在區(qū)間之間的一個(gè)根。提示:考慮當(dāng)區(qū)間足夠小,在此區(qū)間中方程僅有一個(gè)單根的情況,如下圖所示。圖5.6 弦截法求方程的解此時(shí)如和異號(hào),則可用兩點(diǎn)間直線公式求出x2:然后用x2代入原式求出f(x2),判斷f(x2)與f(x1)和f(x0)中的哪一個(gè)同號(hào),就用x2和f(x2)代替之,即如果f(x2)和f(x0)同號(hào),就用x2和f(x2)代替x0和f(x0),反之用x2和f(x2)代替x1和f(x1),然后再繼續(xù)上述過(guò)程直至f(x)小于給定的誤差控制值。第6章 指針 1使用指針編寫(xiě)一個(gè)對(duì)整型數(shù)組進(jìn)行排序的函數(shù),排序方法使用例4-6的交換排序法(冒泡

10、排序法)。2編寫(xiě)程序,將某一個(gè)輸入的位數(shù)不確定的正整數(shù)按照標(biāo)準(zhǔn)的三位分節(jié)格式輸出,例如,當(dāng)用戶輸入82668634時(shí),程序應(yīng)該輸出82,668,634。3編寫(xiě)程序,把10個(gè)整數(shù)1、2、10賦予某個(gè)int型數(shù)組,然后用int型指針輸出該數(shù)組元素的值。4用指針編寫(xiě)一個(gè)程序,當(dāng)輸入一個(gè)字符串后,要求不僅能夠統(tǒng)計(jì)其中字符的個(gè)數(shù),還能分別指出其中大、小寫(xiě)字母、數(shù)字以及其他字符的個(gè)數(shù)。提示:要輸入包含空格的字符串需借助輸入流對(duì)象的get()成員函數(shù),如cin.get(str, 100); 語(yǔ)句就能將從鍵盤(pán)輸入的前99個(gè)字符(含可能出現(xiàn)在其中的任意個(gè)空格)存入到字符數(shù)組str中去,若用戶輸入字符數(shù)少于99,

11、則以回車(chē)換行表示輸入結(jié)束。5編寫(xiě)一個(gè)函數(shù), 用于將一個(gè)字符串轉(zhuǎn)換為整型數(shù)值。其原型為: int atoi(char *string); 其中參數(shù)string為待轉(zhuǎn)換的字符串(其中包括正、負(fù)號(hào)和數(shù)字),返回值為轉(zhuǎn)換結(jié)果。6編寫(xiě)一個(gè)函數(shù),用于生成一個(gè)空白字符串,其原型為:char *mystrspc(char *string, int n);其中參數(shù)string為字符串,n為空白字符串的長(zhǎng)度 (空格符的個(gè)數(shù))。返回值為指向string的指針。第7章 函數(shù)與指針1使用遞歸算法編寫(xiě)如下程序:對(duì)于任意給定的實(shí)數(shù)X和整數(shù)k>0,計(jì)算Xk。2Ackermann函數(shù)ack(m,n)由以下遞歸定義:ack

12、(0, n)=n+1ack(m, 0)=ack(m-1, 1)ack(m, n)=ack(m-1, ack(m, n-1) 其中m>0, n>0編寫(xiě)一個(gè)計(jì)算此函數(shù)的遞歸程序。3使用遞歸算法編寫(xiě)求斐波那契數(shù)列的第n項(xiàng)的函數(shù),并編出主函數(shù)進(jìn)行驗(yàn)證。4編寫(xiě)一個(gè)求立方的函數(shù)cube,并重載它,使之可以對(duì)輸入的整型量和實(shí)型量數(shù)值求立方。5重載判斷兩個(gè)數(shù)值大小的函數(shù)max,這些數(shù)值可能是整型數(shù)、實(shí)型數(shù)和字符型,函數(shù)的返回值為兩個(gè)數(shù)值中的最大值。6編寫(xiě)一個(gè)函數(shù),用于去掉字符串尾部的空格符,其原型為:char *mytrim(char *string);其中參數(shù)string為字符串,返回值為指向s

13、tring的指針。7編寫(xiě)一個(gè)函數(shù),用于去掉字符串前面的空格,其原型為:char *myltrim(char *string);其中參數(shù)string為字符串,返回值為指向string的指針。8編寫(xiě)一個(gè)程序,當(dāng)輸入一個(gè)整數(shù)以后,可以轉(zhuǎn)換成相應(yīng)的英文單詞輸出。如:123轉(zhuǎn)換成one hundred twenty three.9. 用牛頓法或者二分法編寫(xiě)一個(gè)求方程f(x)=0在區(qū)間a,b中的實(shí)根的函數(shù), 其原型為: double equation(double (*func)(double), double a, double b, double eps);其中參數(shù)func, a和b分別為求根函數(shù)和區(qū)

14、間兩端點(diǎn), eps為精度。第8章 結(jié)構(gòu)化設(shè)計(jì)方法1輸入某小組5個(gè)人的姓名、性別、出生年份等信息,統(tǒng)計(jì)男女人數(shù)以及1988年以后(含1988年)出生的人數(shù)。2定義一個(gè)名為Circle(圓)的結(jié)構(gòu)體,其數(shù)據(jù)成員是圓的外接矩形的左上角和右下角兩點(diǎn)的坐標(biāo),計(jì)算該圓的面積。3讀入5個(gè)用戶的姓名和電話號(hào)碼,按姓名的字典順序排列后,輸出每個(gè)用戶的姓名和電話號(hào)碼。4口袋中有紅、黃、藍(lán)、白、黑五種顏色的小球若干個(gè)。如果每次都從口袋中取出3個(gè)不同顏色的小球,共有多少種組合,請(qǐng)打印出每種組合的3種顏色。要求使用枚舉類(lèi)型來(lái)表示小球的顏色。5用自頂向下、逐步求精的程序設(shè)計(jì)方法找出210000之內(nèi)的所有完全數(shù)(所謂完全數(shù)

15、,即其各因子之和正好等于本身的數(shù)。如6=1+2+3,28=1+2+4+7+14,所以6,28都是完全數(shù))第9章 類(lèi)和對(duì)象(1)1定義一個(gè)Dog類(lèi),包含name、age、sex、weight等屬性以及對(duì)這些屬性操作的方法。實(shí)現(xiàn)并測(cè)試這個(gè)類(lèi)。2設(shè)計(jì)并測(cè)試一個(gè)名為Ellipse的橢圓類(lèi),其屬性為外接矩形的左上角與右下角兩個(gè)點(diǎn)的坐標(biāo),并能計(jì)算出橢圓的面積。3仿照Date類(lèi)設(shè)計(jì)一個(gè)Time類(lèi),按各種可能的格式輸出時(shí)間。第10章 類(lèi)和對(duì)象(2)1定義一個(gè)Dog類(lèi),包含name、age、sex、weight等屬性,設(shè)計(jì)一個(gè)構(gòu)造函數(shù),可以對(duì)這些屬性進(jìn)行初始化。實(shí)現(xiàn)并測(cè)試這個(gè)類(lèi)。2設(shè)計(jì)并測(cè)試一個(gè)名為Ellips

16、e的橢圓類(lèi),其屬性為其圓心坐標(biāo)以及半長(zhǎng)軸和半短軸的長(zhǎng)度。設(shè)計(jì)一個(gè)構(gòu)造函數(shù)對(duì)這些屬性進(jìn)行初始化,并通過(guò)成員函數(shù)計(jì)算出橢圓的面積。3仿照Date類(lèi)設(shè)計(jì)一個(gè)Time類(lèi),設(shè)計(jì)多個(gè)重載的構(gòu)造函數(shù),可以設(shè)置時(shí)間、進(jìn)行時(shí)間的加減運(yùn)算、按各種可能的格式輸出時(shí)間。4合并Date類(lèi)和Time類(lèi)為一個(gè)DateAndTime類(lèi),修改相應(yīng)的成員函數(shù),當(dāng)時(shí)間遞增到新的一天時(shí),應(yīng)能夠修改日期值。第11章 繼承1從類(lèi)Person中派生出一個(gè)教師類(lèi),新增的屬性有:專業(yè)、職稱和主講課程(一門(mén)),并為這些屬性定義相應(yīng)的方法。2許多研究生既有學(xué)生的屬性,又有教師的屬性。試通過(guò)多重繼承說(shuō)明一個(gè)研究生類(lèi)。3修改例11-5,從Point類(lèi)

17、中派生出一個(gè)Line類(lèi)。Line類(lèi)增加一個(gè)數(shù)據(jù)成員EndPoint,計(jì)算線的長(zhǎng)度。試比較一下與直接使用Point類(lèi)來(lái)構(gòu)造Line類(lèi)的不同之處。4從Date類(lèi)和Time類(lèi)派生一個(gè)DateAndTime類(lèi),修改相應(yīng)的成員函數(shù),當(dāng)時(shí)間遞增到新的一天時(shí),應(yīng)能夠修改日期值。第12章 多態(tài)性1定義一個(gè)類(lèi)Base,該類(lèi)含有虛函數(shù)display,然后定義它的兩個(gè)派生類(lèi)FirstB和SecondB,這兩個(gè)派生類(lèi)均含有公有成員函數(shù)display,在主程序中,定義指向基類(lèi)Base的指針變量ptr,并分別定義Base、FirstB、SecondB的對(duì)象b1、f1、s1,讓ptr分別指向b1、f1、s1的起始地址,然后

18、執(zhí)行這些對(duì)象的成員函數(shù)display。2擴(kuò)充例12-6,從中派生出一個(gè)正方形類(lèi)和圓柱體類(lèi),寫(xiě)一個(gè)測(cè)試程序,輸出正方形的面積和圓柱體的體積。提示:正方形數(shù)據(jù)成員:一個(gè)頂點(diǎn)和邊長(zhǎng);圓柱體數(shù)據(jù)成員:圓和高。3擴(kuò)充實(shí)例編程中的日期類(lèi),為Date類(lèi)增加一個(gè)成員函數(shù),可以判斷一個(gè)日期是否是系統(tǒng)當(dāng)前日期。從鍵盤(pán)輸入你的生日,如果今天是你的生日則顯示:“Happy Birthday!”,否則顯示“還有xx天是你的生日”或“你的生日已經(jīng)過(guò)去了xx天,明年的生日要再等yy天”。第13章 模板與異常處理1 編寫(xiě)一個(gè)求絕對(duì)值的函數(shù)模板,并測(cè)試。2 請(qǐng)將例4-6的冒泡排序法改寫(xiě)成為模板函數(shù)并編寫(xiě)一個(gè)程序進(jìn)行測(cè)試。3 例

19、13-6中所定義的通用棧類(lèi)實(shí)際上是不完善的,如無(wú)法根據(jù)用戶需求改變棧的大小,沒(méi)有提供棧滿溢出無(wú)法壓入和空棧無(wú)法彈出提示等,請(qǐng)改進(jìn)該程序。4 C+中的數(shù)組類(lèi)型比較簡(jiǎn)單,它的下標(biāo)只能從0開(kāi)始,沒(méi)有負(fù)數(shù)下標(biāo),而且沒(méi)有數(shù)組越界檢查。請(qǐng)用類(lèi)模板設(shè)計(jì)一個(gè)newArray類(lèi),該類(lèi)的對(duì)象可以是整型、浮點(diǎn)型、字符型等任何元素類(lèi)型的數(shù)組,而且當(dāng)訪問(wèn)數(shù)組成員時(shí),如果下標(biāo)越界,程序可以報(bào)錯(cuò)并終止。如下是一些例子:newArray <int> A1(3)/同傳統(tǒng)類(lèi)型的整型數(shù)組/包含5個(gè)元素的浮點(diǎn)型數(shù)組,其成員為A2-2, A2-1, A20, A21, A22newArray <float> A2(-2, 3) 請(qǐng)編寫(xiě)一個(gè)測(cè)試程序。5 例5-1給出的求階乘n!的函數(shù),當(dāng)用戶的輸入太大時(shí)(如50),會(huì)出現(xiàn)錯(cuò)誤,請(qǐng)編寫(xiě)一個(gè)程序,使用異常處理機(jī)制來(lái)解決這一問(wèn)題。第14章 標(biāo)準(zhǔn)庫(kù)和輸入輸出流1編寫(xiě)一個(gè)程序,分別用不同的域?qū)挘?10)打印出整數(shù)12345和浮點(diǎn)數(shù)1.2345。觀察當(dāng)域?qū)捫∮跀?shù)值的實(shí)際需要的域?qū)挄r(shí)會(huì)發(fā)生什么情況。2編寫(xiě)一個(gè)程序,將華氏溫度0度212度轉(zhuǎn)換為浮點(diǎn)型攝氏溫度,浮點(diǎn)數(shù)精度為3。轉(zhuǎn)換公式如下:Celsius = 5.0 / 9.0 * (Fahrenhei

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論