![C語(yǔ)言答案刪減版_第1頁(yè)](http://file4.renrendoc.com/view/861e4ae4b3da147d5e080a831627be8c/861e4ae4b3da147d5e080a831627be8c1.gif)
![C語(yǔ)言答案刪減版_第2頁(yè)](http://file4.renrendoc.com/view/861e4ae4b3da147d5e080a831627be8c/861e4ae4b3da147d5e080a831627be8c2.gif)
![C語(yǔ)言答案刪減版_第3頁(yè)](http://file4.renrendoc.com/view/861e4ae4b3da147d5e080a831627be8c/861e4ae4b3da147d5e080a831627be8c3.gif)
![C語(yǔ)言答案刪減版_第4頁(yè)](http://file4.renrendoc.com/view/861e4ae4b3da147d5e080a831627be8c/861e4ae4b3da147d5e080a831627be8c4.gif)
![C語(yǔ)言答案刪減版_第5頁(yè)](http://file4.renrendoc.com/view/861e4ae4b3da147d5e080a831627be8c/861e4ae4b3da147d5e080a831627be8c5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
clrscr();C語(yǔ)言答案()第一章C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)習(xí)題參考答案五大構(gòu)成部分:輸入、輸出、CPU、控制器、存儲(chǔ)器;程序存儲(chǔ)、自動(dòng)執(zhí)行、邏輯判斷功能;二進(jìn)制的信息表示。1-6編輯、編譯、鏈接、執(zhí)行。1-7必須有一個(gè)主函數(shù),它是程序執(zhí)行的起點(diǎn);一個(gè)C語(yǔ)言程序由函數(shù)構(gòu)成;每一條可執(zhí)行語(yǔ)句都必須由分號(hào)結(jié)束;函數(shù)的代碼段必須由花括號(hào)對(duì)括住。一個(gè)函數(shù)中的語(yǔ)句組由聲明區(qū)和可執(zhí)行語(yǔ)句區(qū)兩部分構(gòu)成。1-8三個(gè)一縮;每遇到一個(gè)結(jié)構(gòu)時(shí)均縮格,每結(jié)束一個(gè)結(jié)構(gòu)時(shí)回退;縮格格式必須對(duì)齊。1-9試給出以下問(wèn)題的程序設(shè)計(jì)過(guò)程描述:1)求兩個(gè)數(shù)中之最大者。#include<>intmain(void){floatfA,fB;printf("Pleaseinputtwovalues(fA,fB)::");/*輸入要比較scanf("%f,%f",&fA,&fB);/*格式化輸入fA,fB*/if(fA>=fB)printf("themaxis%f",fA);if(fA<fB)printf("themaxis%f",fB);return0;}/*main()函數(shù)結(jié)束*/2)求三個(gè)數(shù)中之最大者。#include<>intmain(void){floatfA,fB,fC,fMax;printf("Pleaseinputthreevalues(fA,fB,fC)::");scanf("%f,%f,%f",&fA,&fB,&fC);if(fMax<fB)fMax=fB;if(fMax<fC)fMax=fC;printf("Themaxis%f\n",fMax);/*輸出最大值*/return0;}/*main()函數(shù)結(jié)束*/求1+2+3+…+100,即。#include<>intmain(void){inti,nSum;/*聲明變量i,循環(huán)的總和*/for(i=1,nSum=0;i<=100;i++){nSum+=i;printf("Sumis%d\n",nSum);/*輸出累加值*/return0;}intmain(void){inti,nSum;clrscr();除的個(gè)數(shù)*/{nSum+=i*6;}/*循環(huán)累加的過(guò)程*/printf("theSumis%d",nSum);/*輸出累加結(jié)果*/return0;}#include<>intmain(void){floata,b;printf("Pleaseinputtworealvalues(a,b)::");scanf("%f,%f",&a,&b);printf("\n%f+|%f|=%f\n",a,b,b>0a+b:a-b);/*利用三元條件運(yùn)算,詳見(jiàn)P52*/return0;}1-13試編寫(xiě)一個(gè)在五個(gè)整數(shù)中找出最大數(shù)的程序。#include<>intmain(void){floatval_1,val_2,val_3,val_4,val_5,fMax;/*聲明要比較的5個(gè)變量*/printf("Pleaseinput3values(val_1,val_2,val_3,val_4,val_5)::");scanf("%f,%f,%f,%f,%f",&val_1,&val_2,&val_3,&val_4,&val_5);fMax=val_1;/*假設(shè)最大值為val_1*/if(fMax<val_2)fMax=val_2;if(fMax<val_3)fMax=val_3;if(fMax<val_4)fMax=val_4;if(fMax<val_5)fMax=val_5;/*選出最大值的過(guò)程*/printf("themaxof%f,%f,%f,%f,%fis%f",\val_1,val_2,val_3,val_4,val_5,fMax);return0;}1-14編寫(xiě)程序,調(diào)用庫(kù)函數(shù)求下列函數(shù)的值:#include<>#include<>/*包含數(shù)學(xué)函數(shù)文件,詳見(jiàn)P391*/intmain(void){doubleval;printf("Pleaseinputthevalue::");scanf("%f",&val);printf("theresultis%lf",cos(val));/*調(diào)用數(shù)學(xué)函數(shù)中的doublecos(doublex)函數(shù)*/return0;}#include<>#include<>intmain(void){doubleval;printf("Pleaseinputtheval::");scanf("%lf",&val);printf("theresultis%lf\n",log(val));return0;}#include<>#include<>intmain(void){doubleval;printf("Pleaseinputthevalue(val):");scanf("%lf",&val);printf("theresultis%lf\n",sqrt(val));/*調(diào)用doublesqrt(doublex)函數(shù)*/return0;}#include<>#include<>intmain(void){doubleval;printf("Pleaseinputthevalue(val)::");scanf("%lf",&val);printf("theresultis%lf",exp(val));/*調(diào)用doubleexp(doublex)函數(shù)*/return0;}1-16見(jiàn)名知義;變量名和函數(shù)名小寫(xiě),符號(hào)常量一般大寫(xiě);多個(gè)單可以使用簡(jiǎn)單的符號(hào)變量名,如a,b,c,d,x,y,z等;注意一些容易混淆的字母的使用;匈牙利前綴數(shù)據(jù)類型表第二章C語(yǔ)言中的數(shù)據(jù)類型及其基本操作習(xí)題參考答案2-1為什么C的每個(gè)數(shù)據(jù)都必須屬于某種特定的數(shù)據(jù)類型解:變量存儲(chǔ)空間中的值必須屬于某種特定的數(shù)據(jù)類型才有意義,同時(shí),數(shù)據(jù)的類型不同,其取值范圍、所占存儲(chǔ)空間大小、能夠參加的運(yùn)算類型等才有意義。據(jù)類型,大部分都可以用signed,unsigned,long,short進(jìn)行修飾,以表示數(shù)據(jù)的取值范圍和數(shù)據(jù)所占存儲(chǔ)空間的字節(jié)數(shù)變化。2-2浮點(diǎn)數(shù)和定點(diǎn)數(shù)的區(qū)別在哪里解:在于小數(shù)點(diǎn)位置是否固定不變。2-3計(jì)算機(jī)中的數(shù)是精確的表示嗎解:不完全是。對(duì)整型數(shù)據(jù),在不超出表示值范圍時(shí)一般是精確表示的。對(duì)浮點(diǎn)數(shù),則一般是不能精確表示。原因在于計(jì)算機(jī)內(nèi)表示浮點(diǎn)數(shù)的存儲(chǔ)空間大小是固定的,因此,它所能表示出來(lái)的精度是有限的。例如,無(wú)限循環(huán)小數(shù)……在計(jì)算機(jī)內(nèi)部只能近似表示。2-4為測(cè)試數(shù)據(jù)類型所占存儲(chǔ)空間的大小,C提供了專門(mén)的運(yùn)算符sizeof(),它用于返回或計(jì)算給定數(shù)據(jù)變量或數(shù)據(jù)類型所占存儲(chǔ)空間的大小。請(qǐng)編寫(xiě)程序能夠測(cè)型所占存儲(chǔ)空間的大小。解:這里以int型為例。其它數(shù)據(jù)類型所占存儲(chǔ)空間大小的測(cè)試方法#include<>voidmain(){intnSize=sizeof(int);printf("%d",nSize);getch();}2-9為什么要強(qiáng)調(diào)“先聲明、后定義、再使用”的原則請(qǐng)闡述其理由。(2)0;解:因?yàn)樽兞渴褂们氨仨氁写鎯?chǔ)空間分配給它用來(lái)保存其值,對(duì)變量存儲(chǔ)空間的分配就是通過(guò)變量的聲明完成的。變量在被引用之前,其中的值應(yīng)當(dāng)是確定的某一個(gè)值,但變量的聲明并不能保證變量存儲(chǔ)空間中有一個(gè)合適的初始狀態(tài)值,而是一個(gè)隨機(jī)值。當(dāng)以錯(cuò)誤的初始值開(kāi)始變量的引用時(shí),會(huì)導(dǎo)致程序的執(zhí)行邏輯錯(cuò)誤。為此,一般需要在變量被引用之前賦予其一個(gè)合理的初始值。因此,在變量的使用上,一般應(yīng)當(dāng)遵循先聲明、后定義、在引DEFGH(3)ch1(S)+ch2(x)=203(4)nX=2nY=5nZ=12nX=1830nY=28nZ=38nX=3nY=6nZ=2(1)1;(3)0;(4)0;(5)2,2,5;(6)10;(7)3;(8)12,8,30,20,0,0;(9)15,5,324;m=0n=0k=-1m=1n=1k=-1m=0n=0k=0m=0n=0k=1m=1n=0k=12-17請(qǐng)問(wèn)C語(yǔ)言中的邏輯真和假的表示方法是什么均可被作為邏輯第三章C語(yǔ)言的程序結(jié)構(gòu)、語(yǔ)句分類和數(shù)據(jù)的輸入輸出習(xí)題參考答案3-1解:因?yàn)檩斎?、輸出是?jì)算機(jī)程序獲取源數(shù)據(jù)和輸出結(jié)果數(shù)據(jù)的基本手段。沒(méi)有輸入操作,程序無(wú)法將數(shù)據(jù)對(duì)象告知計(jì)算機(jī),沒(méi)有輸出時(shí),計(jì)算機(jī)程序的運(yùn)算對(duì)于計(jì)算任務(wù)來(lái)講是scanf(....);fscanf(...);fread(...);printf(..);fprintf(..);fgets(..);gets(..);3-2解:格式說(shuō)明符、普通字符、輸出格式控制字符、附加格式說(shuō)明域?qū)挘河渺洞娣泡敵鰯?shù)據(jù)的寬度。格式化輸入輸出函數(shù)的主要異同參見(jiàn)教材相關(guān)章節(jié)。3-3解:對(duì)小數(shù)部分截?cái)噍敵?四舍五入的原則)對(duì)整數(shù)部分沒(méi)有影響;與截?cái)辔坏木认嗤?;有單?dú)的符號(hào)位;符號(hào)位不占據(jù)域?qū)?。它們能夠表示的最大有效精度范圍分別為6位和17位小數(shù)位。多余的精度部分將被同時(shí),要注意,浮點(diǎn)數(shù)表示中,小數(shù)點(diǎn)不占域?qū)拰挾取=滩?。3-6請(qǐng)簡(jiǎn)述C語(yǔ)言程序的語(yǔ)句類型分類并對(duì)其使用方法作簡(jiǎn)要描述。intmain(void){inta;printf(”%d”,a);return0;}while()3-7請(qǐng)說(shuō)明使用格式化輸入語(yǔ)句完成輸入任務(wù)時(shí)和輸入緩沖區(qū)之間解:scanf是從標(biāo)準(zhǔn)輸入設(shè)備緩沖區(qū)數(shù)據(jù)流中自動(dòng)根據(jù)內(nèi)部格式控制字符串要求完成數(shù)據(jù)類型匹配,并把數(shù)據(jù)從左到右復(fù)制到參數(shù)列表變量地址空間的函數(shù),其過(guò)程分為以下幾個(gè)(1)函數(shù)執(zhí)行時(shí)由標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤(pán))輸入相關(guān)數(shù)據(jù),臨時(shí)存放在標(biāo)準(zhǔn)輸入設(shè)(2)scanf函數(shù)從數(shù)據(jù)流中復(fù)制數(shù)據(jù)從左到右一次匹配于變量列表中anf3-8解:在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒(méi)有非格式字符作輸入數(shù)據(jù)之間的間隔則$$$#100#100**+02*chise::dec=101oct=145hex=65ASCII=eiis101::dec=101oct=145hex=65ASCII=echisx::dec=120oct=170hex=78ASCII=xiis-4::dec=-4oct=177774hex=fffcASCII=1234537890123456789i=12j=6789x=y=printf(“m=%dn=%dk=%d\n”,m,n,k);printf(“x=%fy=%fz=%f\n”,x,y,z);printf(“x+y=%.2fy+z=%.2ftxyyzzintxprintf(“u=%-9un=%9ld”,u,n);printf(“ch1=%cor%d\n”,ch1,ch1);printf(“ch2=%cor%d\n”,ch2,ch2);4,3,3,2從右往左開(kāi)始算3-14請(qǐng)分析和給出以下程序段的輸出結(jié)果。#include<>intmain(void)/*主函數(shù)*/{inti=59;floatfX;doubledY,dZ;printf("i=%d\n",i);printf("i=%5d\n",-i);printf("i=%5o\n",i);printf("i=%5x\n,i");printf("i=%ld\n",i);fX=dY=;Zprintf("%f\n",fX);printf("%f\n",dZ);printf("%e\n",dZ);printf("%.4f\n",fX);printf("%.8f\n",dY);*********printf("%.3e\n",dZ*********printf("%.18f\n”,dY);printf("%\n",dY);printf("%\n",dY);printf("%2e\n",dZ);rerturn0;}/*main()函數(shù)結(jié)束*/3-15編寫(xiě)一個(gè)程序顯示如下的方框,橢圓,箭頭,或者菱形圖****************************************************************intmain(void){printf("************\n");printf("**\n");printf("**\n");printf("**\n");printf("**\n");printf("**\n");printf("************\n");return0;3-17intmain(){ntnumintsquare[11];intcube[11];for(num=0;num<=10;num++){square[num]=num*num;cube[num]=num*num*num;}printf("numbersquarecube\n");printf("--------------------------------------\n");for(num=0;num<=10;num++){printf("%-10d%-10d%-10d\n",num,square[num],cube[num]);}return0;}第四章程序設(shè)計(jì)的算法基礎(chǔ)習(xí)題參考答案4-1試分析給出人們?nèi)粘I钪袑?duì)問(wèn)題求解的一般過(guò)程和步驟。解:首先:(必須)知道一些已知條件或約束條件;第二,確定或?qū)ふ裔槍?duì)該問(wèn)題的求解方法;第三,根據(jù)選擇的求解方法確定具體的問(wèn)題求解步驟;第四,進(jìn)行問(wèn)題求解的實(shí)際演算和推理活動(dòng);最后,得到并整理求解結(jié)論。4-2解:(1)1)睜開(kāi)雙眼;2)穿好衣服、褲子及鞋子等;3)下4)洗漱(包括洗臉、刷牙等);5)吃早餐(包括飯后洗碗等工作);6)上課學(xué)習(xí);7)吃午餐;8)午休;9)上課學(xué)習(xí);10)11)課外活動(dòng)(包括看電視、寫(xiě)作業(yè)等等);12)洗漱;13)14)脫衣服、褲子及鞋子等;15)睡覺(jué)。(2)1)整理好課本;2)從座位上站起來(lái);3)走出教室;4)走5)排隊(duì);6)判斷是否已經(jīng)輪排到自己,若否,則轉(zhuǎn)5),否7)刷卡;8)點(diǎn)菜、買(mǎi)飯。(3)1)尋找座位;2)坐下;3)用筷子夾起飯菜;4)將飯菜5)細(xì)嚼慢咽;6)判斷是否已經(jīng)吃飽或者飯菜已經(jīng)吃完,若否,則轉(zhuǎn)7),7)重復(fù)3)~5)過(guò)程;8)整理餐具,從座位上站起;9)端10)尋找水龍頭,洗碗;11)帶著餐具回寢室;12)到達(dá)寢13)做個(gè)人衛(wèi)生;14)午睡;4-4怎么理解Wirth提出的程序=算法+數(shù)據(jù)結(jié)構(gòu)的深刻含義解:程序是在數(shù)據(jù)的某種特定表示方法和結(jié)構(gòu)基礎(chǔ)上對(duì)抽象算法的具體描述,它揭示了面向過(guò)程程序設(shè)計(jì)的本質(zhì)。將程序設(shè)計(jì)問(wèn)題分為算法和數(shù)據(jù)結(jié)構(gòu),充分顯示了算法在程序設(shè)計(jì)過(guò)程中的重要性。算法注重問(wèn)題求解的過(guò)程和步驟描述,主要考慮問(wèn)題求解的方法;程序是對(duì)算法具體實(shí)現(xiàn)的描述,它需要考慮與程序語(yǔ)言及編程環(huán)境有關(guān)的實(shí)現(xiàn)細(xì)節(jié),如語(yǔ)言環(huán)境、操作系統(tǒng)環(huán)境4-6解:算法的實(shí)質(zhì)是對(duì)問(wèn)題求解方法和過(guò)程的描述,它由解決問(wèn)題的基本操作及控制操作過(guò)程次序的控制結(jié)構(gòu)組成。其中基本操作包括算術(shù)、關(guān)系、邏輯等基本運(yùn)算和輸入輸出以及函數(shù)、位操作、文件操作等;控制結(jié)構(gòu)主要是順序、選擇和循環(huán)三種基本的控制結(jié)構(gòu)。算法的三組成要素:1)操作;2)控制結(jié)構(gòu);3)數(shù)據(jù)結(jié)構(gòu);2)動(dòng)作序列只有一個(gè)起點(diǎn)(即初始動(dòng)作);3)每一動(dòng)作只有一個(gè)后繼動(dòng)作;4)動(dòng)作序列的終止表示問(wèn)題得解或無(wú)解(不保證一定能得解)。1)傳統(tǒng)流程圖和標(biāo)準(zhǔn)流程圖符號(hào)體系的表示方法;2)傳統(tǒng)流程圖符號(hào)表示的結(jié)構(gòu)化表示方法;3)無(wú)流程線流程圖符號(hào)的結(jié)構(gòu)化表示方法;4)問(wèn)題分析圖的結(jié)構(gòu)化表示方法;5)偽代碼的結(jié)構(gòu)化程序表示方法。傳統(tǒng)流程圖符號(hào)是一些專門(mén)設(shè)計(jì)的圖形符號(hào),用于表示程序或算法中的各類操作,用線條表示這些操作之間的執(zhí)行順序。標(biāo)準(zhǔn)流程圖符號(hào)是針對(duì)傳統(tǒng)流程圖符號(hào)體系的改進(jìn)。在算法描述中使用他們來(lái)描述算法過(guò)程,能很好地表達(dá)程序設(shè)計(jì)的結(jié)構(gòu)與梗概,方便同人的交流。傳統(tǒng)流程圖運(yùn)用起來(lái)靈活、自由、形象、直觀,流程線指向的任意轉(zhuǎn)向使得繪制過(guò)程比較隨意、自由,易被接受和運(yùn)用。但是流程線的不加限制帶來(lái)了算法流程繪制的隨意性和不規(guī)則性容易導(dǎo)致繪制出來(lái)的流程圖零亂,閱讀不變,修改和維護(hù)也比較困無(wú)流程線流程圖顯得更緊湊和清晰,其結(jié)構(gòu)化繪制具有強(qiáng)迫性,繪制2)選擇;結(jié)構(gòu)化流程圖的過(guò)程也更加容易和方便,克服了傳統(tǒng)流程圖的缺陷,同時(shí)保留了流程圖的直觀和簡(jiǎn)單特點(diǎn)。但是該表示法的圖形嵌套層次不能太多,尤其是對(duì)多層次條件選擇的嵌套清形,并且對(duì)圖形的修改和維護(hù),也不如傳統(tǒng)流程圖方便。問(wèn)題分析圖PAD采用PAD圖形符號(hào)描述算法,比較方便,當(dāng)問(wèn)題過(guò)程方法優(yōu)勢(shì)更為明顯,同時(shí)它克服了傳統(tǒng)流程圖的隨意和非結(jié)構(gòu)化特征,也套層次的增加內(nèi)層矩形框急劇縮小所帶來(lái)的表述上的不方便。偽代碼的結(jié)構(gòu)化程序表示方法,比基于圖形符號(hào)的方法自由度大,同時(shí)它可以使用自然語(yǔ)言和程序語(yǔ)言進(jìn)行比較自由的算法描述,可以不嚴(yán)格遵守程序語(yǔ)言的嚴(yán)格語(yǔ)法約束,另外,由于直接使用了程序語(yǔ)言的要素,在算法的程序語(yǔ)言實(shí)現(xiàn)時(shí)更加的方便。但它要遵守結(jié)構(gòu)化描述這一基本的要求。4-8C語(yǔ)言提供了哪些用于結(jié)構(gòu)化程序設(shè)計(jì)的基本技術(shù)1)順序;3)循環(huán)。N-S流程圖(方法2__逐一比較):#include<>intmain(void){floatfa,fb,fc,max;clrscr();printf("pleaseinputthreevalues(fa,fb,fc)::");scanf("%f,%f,%f",&fa,&fb,&fc);if(fa<fb)return0;}N-S流程圖(方法3__兩兩比較):#include<>intmain(void){floatfa,fb,fc,temp,max;printf("pleaseinputthreevalues(fa,fb,fc)::");scanf("%f,%f,%f",&fa,&fb,&fc);clrscr();if(fa<fb)return0;}2)如果,轉(zhuǎn)3);否則轉(zhuǎn)4);n6);4)初始化fac=1;i=1;然后轉(zhuǎn)5);ac7)輸出n!的值(n非法時(shí)寫(xiě)‘非法’)......①#include<>intmain(void){intsteps=7;elsesteps++;}printf("thereare%dsteps!\n",steps);return0;}2)計(jì)算i!;3)計(jì)算1/i!;4)對(duì)1/i!累計(jì)求和;5)判斷求解的誤差(e-sum)是否小于門(mén)限值;6)若是,則轉(zhuǎn)7);否則,做i++,然后轉(zhuǎn)2);7)輸出滿足條件時(shí)i的取值.#include<>intmain(void){floate;floateps;floatfac=1;floatsum=0;inti=1;/for(i=0;i<=r_length;i=i+spacing)/*計(jì)算單側(cè)大道綠化所需{}printf("thetotalof%dtreesarerequired!\n",2*j);/*輸需要的總樹(shù)苗數(shù)量2j*/活動(dòng)樹(shù)苗費(fèi)用*/printf("the%dtrees'totalpriceis%d\n",2*j,sum);/*輸?shù)目傎M(fèi)用sum*/return0;}4-19#include<>#include<>intmain(void){inti,j;clrscr();for(i=1;i<=9;i++){for(j=1;j<=i-1;j++){printf("\t");}for(j=1;j<=9-i+1;j++){printf("%d*%d=%d\t",i,(i+j-1),i*(i+j-1));}printf("\n");}return0;}intmain(void){intnumber=0;while(number++<=1){printf("*%d\n",number);}printf("**%d\n",number);return0;}分析:首先我們清楚自加運(yùn)算符中前加(++i)和后加(i++)的區(qū)別:運(yùn)算時(shí),只要引用過(guò)其表達(dá)式就必然會(huì)加1。采用后加(number++),則number++<=1對(duì)應(yīng)于是0<=1(成立),并且number由0執(zhí)行下一條語(yǔ)句“printf(“**%d\n”,number);”輸出:**3并換行,然后繼續(xù)向下執(zhí)行操作系統(tǒng),結(jié)束。由此得到該程序段的執(zhí)行結(jié)果即如下所示!intmain(void){intnumber=0;while(number<=1){number++;printf("*%d\n",number);printf("**%d\n",number);}return0;}們可以清楚地看到該程序段與程序段1最明顯的差別在于:while條件表達(dá)式中完成,其輸出有在循環(huán)體內(nèi),有在循環(huán)體外;而該程序段的自加和輸出numbernumberwhile(成立),進(jìn)入while循環(huán),執(zhí)行“number++;”語(yǔ)句,此時(shí)number由0句(成立),進(jìn)入while循環(huán),執(zhí)行“number++;”語(yǔ)句,此時(shí)number由1句(不成立),退出while循環(huán),執(zhí)行“return0;”語(yǔ)句,返回操作系統(tǒng),結(jié)束。由此得到該程序段的執(zhí)行結(jié)果即如下所示!習(xí)題參考答案5-1.分析:知道最后一天的梨數(shù),可以一天一天倒推到第一天的梨的因此,迭代公式為Xn-1=2(Xn+1),初始條件為X18=1。#include<>intmain(){longpear=1;inti;clrscr();for(i=17;i>0;i--){pear=(pear+1)*2;printf("Day::%2dPears::%ld\n",i,pear);}return0;}5-2請(qǐng)給出2個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)的算法描述和程序?qū)?include<>intmain(void){intnum1,num2,temp,p,r;printf("Pleaseinputtwonums::");scanf("%d,%d",&num1,&num2);if(num1<num2)/*比較兩個(gè)數(shù)的大小,將大的數(shù)放在num1*/{temp=num1;num1=num2;num2=temp;}p=num1*num2;{r=num1%num2;num1=num2;num2=r;}printf("TheGcdis::%d\n",num1);printf("Theleastcommonmultipleis::%d\n",p/num1);return0;}#include<>/*最大公約數(shù)*/intgcd(inta,intb){if(a<b){t=a;a=b;b=t;}if(b==0)returna;returngcd(b,a%b);}/*最小公倍數(shù)*/intlcm(inta,intb){returna*b/gcd(a,b);}voidmain(void){intn,data[100],g,l;inti;printf("Thenumberis:");scanf("%d",&n);for(i=0;i<n;++i){scanf("%d",&data[i]);}g=data[0];for(i=1;i<n;++i)g=gcd(g,data[i]);l=1;for(i=0;i<n;++i)l*=data[i]/g;l*=g;printf("gcd=%d\n",g);printf("Icm=%d\n",l);return;}#include<>intmain(){intplatter=0;intx=1,y=1,z=1,i;for(i=1;i<=5;i++){x*=i;}for(i=1;i<=3;i++){y*=i;}for(i=1;i<=(5-3);i++){z=i;}platter=x/(y*z);printf("Thekindsofplatter::%d",platter);return0;}5-5對(duì)例5-20(百錢(qián)買(mǎi)百雞問(wèn)題),請(qǐng)讀者用標(biāo)記法完成正確解的輸出#include<>intmain(void){intnCock,nHen,nChick;intflag=0;/*換行控制標(biāo)記,取值范圍0,1,2*/for(nCock=0;nCock<=100;nCock++){for(nHen=0;nHen<=100;nHen++){for(nChick=0;nChick<=100;nChick++){if(flag%3==0)/*換行控制及標(biāo)記回0*/{printf("\n");flag=0;}if(nCock+nHen+nChick==100&&nCock*5+nHen*3+nChick/3==100){printf("cock=%d\t,hen=%d\t,chick=%d\t",nCock,nHen,nChick);}}}}return0;}#include<>intmain(void){雞雛數(shù)*/clrscr();ncock=0;nhen=0;nchick=0;if((ncock+nhen+nchick==100)&&(ncock*5+nhen*3+nchick/3==100))printf("cock=%dhen=%dchick=%d\n",ncock,nhen,nchick);nchick++;}while(nchick<=100);/*雞雛數(shù)不能超出100只*/nhen++;whilenhen);/*雞母數(shù)不能超出100只*/ncock++;whilencock00);/*雞翁數(shù)不能超出100只*/return0;}#include<>intmain(void){intncock,nhen,nchick;clrscr();ncock=0;while(ncock<=100)/*雞翁數(shù)不能超出100只*/{nhen=0;while(nhen<=100)/*雞母數(shù)不能超出100只*/{nchick=0;while(nchick<=100)/*雞雛數(shù)不能超出100只*/{if((ncock+nhen+nchick==100)&&(ncock*5+nhen*3+nchick/3==100))printf("cock=%dhen=%dchick=%d\n",ncock,nhen,nchick);nchick++;}nhen++;}ncock++;}return0;}5-9輸入一行字符,分別統(tǒng)計(jì)其中的英文字母、空格、數(shù)字、和其他#include<>得intmain(void){charc;intletters=0,space=0,digit=0,others=0;printf("Pleaseinputastring::\n");while((c=getchar())!='\n'){letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;others++;}printf("letters::%d\nspace::%d\ndigit::%d\nothers::%d\n",letters,space,digit,others);}即#include<>#include<>intmain(){inta,n,result;inti;printf("Pleaseinputa,n::");scanf("%d%d",&a,&n);result=0;for(i=1;i<=n;i++){result+=i*pow(10,n-i);}result*=a;printf("Theresultofa+aa+...+a...aaa=%d",result);return0;}5-11試找出所有“水仙花數(shù)”,即對(duì)一個(gè)三位數(shù),各個(gè)數(shù)字位的立方和等于該數(shù)本身的#include<>intmain(void){示該三位數(shù)*/intss個(gè)數(shù)*/clrscr();{{k=0;{num=i*100+j*10+k;if(num==i*i*i+j*j*j+k*k*k){printf("thereasult%dis%d\n",s,num);}}}}return0;}相等的數(shù),如6=1+2+3.在輸出時(shí)要求輸出該數(shù)本身及其因子。#include<>intmain(void){intnum,s,fac;for(num=2;num<1000;num++){for(fac=1;fac<num;fac++)if((num%fac)==0)s=s+fac;if(s==num){printf("%dfactorsare::",num);for(fac=1;fac<num;fac++)if(num%fac==0)printf("%d",fac);printf("\n");}}return0;}5-13試求#include<>nn{inta=1,i;for(i=0;i<n;i++){a*=i;}returna;}intmain(){floatpart1=0,part2=0,part3=0;floatresult,i;intktfor(k=1;k<=100;k++){t=factorial(k);part1+=1/(float)t;}for(k=1;k<=36;k++){part2+=(k*k);}for(k=1;k<=30;k++){part3+=1/(float)k;}result=part1+part2+part3;printf("Resultis%f",result);return0;}#include<>intmain(void){inti,t,n=20;floatDen=2,Mol=1,s=0;for(i=1;i<n;i++){s=s+Den/Mol;t=Den;Den=Den+Mol;/*將前一項(xiàng)分子與分母之和作為下一項(xiàng)的分子*/Mol=t;/*將前一項(xiàng)的分子作為下一項(xiàng)的分母*/}printf("sum=%\n",s);return0;}5-15試用四種選擇控制結(jié)構(gòu)完成求4個(gè)數(shù)的最大和最小值的程序。思考如何實(shí)現(xiàn)任意多個(gè)數(shù)中求最大和最小值#include<>intmain(void){intnum1,num2,num3,num4,temp;printf("Pleaseinput4nums::");scanf("%d,%d,%d,%d",&num1,&num2,&num3,&num4);printf("num1=%d,num2=%d,num3=%d,num4=%d\n",num1,num2,num3,num4);if(num1>num2){temp=num1;num1=num2;num2=temp;}if(num1>num3){temp=num1;num1=num3;num3=temp;}if(num1>num4){temp=num1;num1=num4;num4=temp;}if(num2>num3){temp=num2;num2=num3;num3=temp;}if(num2>num4){temp=num2;num2=num4;num4=temp;}if(num3>num4){temp=num3;num3=num4;num4=temp;}printf("Thesortof4numsis::");printf("%d,%d,%d,%d\n",num1,num2,num3,num4);}#include<>#defineTRUE1#defineFALSE0#defineMAX4voidbubble_sort(int*a,intn){inti,j,temp;for(i=n-1;i>=1;--i){for(j=0;j<i;++j){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}voidinput(int*p,intn){inti;printf("Inputthesequence(MAX=%d)::",MAX);for(i=0;i<n;i++){scanf("%d",&p[i]);}}voidoutput(int*p,intn){inti;for(i=0;i<n;i++){printf("%d",p[i]);}}intmain(void){intnArr[MAX],i;clrscr();input(&nArr[0],MAX);bubble_sort(&nArr[0],MAX);output(&nArr[0],MAX);return0;}5-17試用牛頓迭代法求以下方程在附近的根。#include<>#include<>intmain(void){floatx0,x1,f,f1;/*x0代表前一次的近似根,x1代表后一次的近似根*/{x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;/*f的導(dǎo)函數(shù)*/x1=x0-f/f1;/**/}while(fabs(x1-x0)>=1e-5);printf("Therootis%\n",x1);}5-18試用二分法求方程在之間的根。#include<>#include<>intmain(void){floatx0,x1,x2,fx0,fx1,fx2;{printf("Pleaseinputx1,x2::");scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x=%\n",x0);return0;}分別打印出每一位#include<>voidmain(){intN,arr[5];/*arr[5]對(duì)應(yīng)存放輸入的數(shù)的每位數(shù)*/inti=10,j=10,t=1;printf("Inputthenumber::");scanf("%d",&N);while(i>=10)/*求位數(shù)*/{j=10;}printf("Medianis::%d\n",t);for(i=0;i<t;i++)/*求每一位數(shù)*/{arr[t-i]=N%10;N=N/10;printf("%d",arr[t-i]);}printf("\n");for(i=1;i<=t;i++)/*逆序輸出*/{printf("%d",arr[i]);}}#include<>voidmain(){longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;printf("Inputtheprofit::");scanf("%ld",&i);bonus1=100000*;bonus2=bonus1+100000*;bonus4=bonus2+200000*;bonus6=bonus4+200000*;bonus10=bonus6+400000*;if(i<=100000)bonus=i*;elseif(i<=200000)bonus=bonus1+(i-100000)*;elseif(i<=400000)bonus=bonus2+(i-200000)*;elseif(i<=600000)bonus=bonus4+(i-400000)*;elseif(i<=1000000)bonus=bonus6+(i-600000)*;bonus=bonus10+(i-1000000)*;printf("bonus=%d",bonus);}5-23請(qǐng)對(duì)以下條件語(yǔ)句進(jìn)行邏輯梳理使邏輯關(guān)系更加清晰:if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elseif(a<d)if(b<c)x=4;elsex=5;elsex=6;elsex=7;if(a<b)if(c<d)x=1;if(a<c)if(b<d)x=2;x=3;if(a<d)if(b<c)x=4;x=5;x=6;x=7;(2)檢查其有無(wú)多余或矛盾的判斷條件;x=4處矛盾:此時(shí)循環(huán)語(yǔ)句的條件是a<b,d<c,c<a,a<d,b<cx=5處矛盾:此時(shí)循環(huán)語(yǔ)句的條件是a<b,d<c,c<a,a<d,c<bx=6處矛盾:此時(shí)循環(huán)語(yǔ)句的條件是a<b,d<c,c<a,d<a(3)重寫(xiě)一個(gè)等效的和簡(jiǎn)潔的條件語(yǔ)句。fabelsex=3;x=2;elsex=4;x=1;5-25(1)#include<>intmain(void){charch;ch=getchar();while(ch!=''){putchar(ch);ch=getchar();}return0;}分析:while循環(huán)限制為輸入字符為""時(shí)不進(jìn)入循環(huán),所以輸出不含intmain(void){charch;while((ch=getchar())!='')putchar(++ch);return0;}分析:while循環(huán)限制為輸入字符為""時(shí)不進(jìn)入循環(huán),所以輸出不含"",而在計(jì)算機(jī)中intmain(void){while(putchar(getchar())!='');return0;}所以當(dāng)執(zhí)行完最后一個(gè)putchar()是輸出的是'',這是退出循環(huán)。5-26寫(xiě)一個(gè)程序計(jì)算任意給定的一個(gè)整數(shù)之各位數(shù)字之和。要求整#include<>#defineMAX20voidmain(){longarr[MAX];Ninti=10,j=10,t=1,add=0;printf("Inputthenumber::");scanf("%d",&N);while(i>=10){j=10;}for(i=0;i<t;i++){arr[t-i]=N%10;N=N/10;add+=arr[t-i];}printf("Add::%d",add);}5-30(1)#include<>voidmain(void){inti,j;clrscr();for(i=0;i<9;i++){for(j=0;j<9;j++){if(j<=i)printf("");elseprintf("*");}printf("\n");}}voidmain(void){inti,j;for(i=0;i<9;i++){for(j=0;j<i;j++){printf("*");}printf("\n");}}voidmain(void){inti,j;clrscr();for(i=0;i<9;i++){for(j=9;j>0;j--){if(j<=i)printf("*");elseprintf("");}printf("\n");}}voidmain(void){inti,j;clrscr();for(i=9;i>0;i--){for(j=i;j>0;j--){if(j<i)printf("*");elseprintf("");}printf("\n");}}#include<>#defineMAX20intmain(void){inti,j=0;floatavg=0;printf("Inputthenumbers::\n");for(i=0;i<MAX;i++){scanf("%d",&i);if(i==9999)break;/*退出循環(huán)*/avg+=i;}avg=avg/j;printf("Theaverageis%f.",avg);return0;}#include<>intmain(){intnumber,T1,T2,i,temp;printf("Inputthesequence:(Firstisthenumberofthesequence)\n");scanf("%d",&number);scanf("%d",&T1);for(i=1;i<number;i++){scanf("%d",&T2);if(T1>T2){temp=T1;T1=T2;T2=temp;}}printf("Theminofthesequenceis%d.",T1);return0;}5-36對(duì)例5-21請(qǐng)考慮1~1000之間能被任意給定的三個(gè)數(shù)整除的數(shù)#include<>intmain(void){intn_lcm;intnl_flag=0;ntnuminta,b,c;printf("Inputthenumbers::");scanf("%d%d%d",&a,&b,&c);n_lcm=a*b*c;num=n_lcm;while(num<1000){if(nl_flag%4==0){printf("\n");nl_flag=0;}printf("num=%d\t",num);num+=n_lcm;nl_flag++;}}#include""#defineprintf("min=%d\n",(num1<num2)num1:num2)intmain(void){tabprintf("pleaseinputtwonumbers:\n");scanf("a=%db=%d",&a,&b);MIN(a,b);/*※*/MIN(num1,num2)return0;}解析:程序第8行即※處經(jīng)過(guò)宏替換后為printf("min=%d\n",(num1<num2)num1:num2)a=162b=46min=46#include""#defineMAX3(num1,num2,num3)num3>(num1>num2num1:num2)num3:(num1>num2num1:num2)intmain(void){inta,b,c,d;printf("pleaseinputthreenumbers:\n");scanf("%d,%d,%d",&a,&b,&c);d=MAX3(a,b,c);printf("d=%d\n",d);return0;}hreenumbers234,165,790d=790#include""#defineIS_UPPER_CASE(n)('A'<=n&&n<='Z')1:0intmain(void){inti;charch;printf("pleaseinputachar:\n");scanf("ch=%c",&ch);i=IS_UPPER_CASE(ch);/*※*/printf("i=%d\n",i);return0;}、((a)>(((b)>(((c)>(d)(c):(d)))(b):(((c)>(d)(c):(d)))))(a):(((b)>(((c)>(d)(c):(d)))(b):(((c)>(d)(c):(d))))7-8、a=7aa=20a=40a=60a=80a=100a=632aaaaaa7-9、m=1n=0k=0m=2n=2k=1m=0n=0k=-17-10、i=7解析:本題考點(diǎn)在于函數(shù)reset()和workerover()對(duì)變量i的改變沒(méi)函數(shù)的輸出結(jié)果。由于沒(méi)有將最新的i返回主函數(shù),所以主函數(shù)的輸#include""#defineMAX(num)'A'<=num&&num<='Z'num+=32:num/*※*/intmain(void){chara,ch;printf("pleaseinputachar:\n");scanf("%c",&a);ch=MAX(a);printf("d=%c\n",ch);return0;}解析:宏定義#defineMAX(num)'A'<=num&&num<='Z'num+=32:num是是大寫(xiě)字符時(shí),令其num+=32,否則返回原值num。、#include""#defineMAX(num1,num2)num1=num1-num2;num2=num1+num2;num1=num2-num1;intmain(void){tabprintf("pleaseinputtwonumbers:\n");scanf("a=%db=%d",&a,&b);MAX(a,b);printf("a=%d,b=%d\n",a,b);return0;}解析:該方法的優(yōu)勢(shì)在于沒(méi)有借助中間變量,通過(guò)兩元素自身的變換來(lái)交換兩參數(shù)的值。解析:因?yàn)槿绻麑⒑瘮?shù)調(diào)用中的宏全部經(jīng)過(guò)宏代換后(簡(jiǎn)單的字符串替換)恰好和直接利用printf()輸出的格式一致。第八章數(shù)組8-1:編寫(xiě)函數(shù)實(shí)現(xiàn)將任意數(shù)列順序進(jìn)行逆序處理,并用它處理以下序#include<>#include<>voidmain(){intdataNum=0;inti;int*pArray;printf("Howmanydatadoyouwanttoprocess\n");scanf("%d",&dataNum);pArray=(int*)malloc(dataNum*sizeof(int));printf("Nowpleaseinputthedata::\n");for(i=0;i<dataNum;i++)intFibonacci(intIndex);{printf("theArray[%d]is::",i);scanf("%d",&pArray[i]);}printf("Thedatabeforeprocessis::\n");for(i=0;i<dataNum;i++){printf("%d",pArray[i]);}printf("\n");printf("Thedataprocessedis::\n");for(i=0;i<dataNum;i++){printf("%d",pArray[dataNum-i-1]);}}8-2:編寫(xiě)函數(shù)實(shí)現(xiàn)Fibonacci數(shù)列的計(jì)算,并用它來(lái)計(jì)算第32個(gè)Fibonacci數(shù)列元素.#include<>#include<>voidmain(){intindex;printf("Whichelementdoyouwanttocaculate\n");scanf("%d",&index);Fibonacci(index);}intFibonacci(intIndex){inttempA=1,tempB=1;inti;int*pArray=(int*)malloc(Index*sizeof(int));pArray[0]=tempA;pArray[1]=tempB;for(i=2;i<Index;i++){pArray[i]=pArray[i-1]+pArray[i-2];}printf("The%delementis:%d\n",Index,pArray[Index-1]);printf("Theallelementis::\n");for(i=0;i<Index;i++){printf("%d",pArray[i]);}return0;}8-4:#include<>#include<>voidmain(){charString[80];charcstemp;intindex=0,stringNum=0,dataNum=0,spaceNum=0;inti;printf("pleaseinputthestringandendwith'z'::\n");while(1){cstemp=getchar();if(cstemp=='z'||cstemp=='Z')break;String[index]=cstemp;dex}printf("thestringis:\n");for(i=0;i<index;i++){printf("%c",String[i]);}printf("\n");for(i=0;i<index;i++){if(String[i]>'a'&&String[i]<'z')stringNum++;elseif(String[i]>'A'&&String[i]<'Z')stringNum++;elseif(String[i]>'0'&&String[i]<'9')dataNum++;elseif(String[i]='\0')spaceNum++;}printf("thestringNumis%d,thedataNumis%d,thespaceNumis%d",stringNum,dataNum,spaceNum);}8-10:編寫(xiě)程序計(jì)算矩陣的兩個(gè)對(duì)角線上元素之和;#include<>#defineN10intmain(){intarr[N][N];inti,j,n,m;intsum1=0,sum2=0,sum=0;printf("pleaseinputarr[n][n],(n>0):\n");printf("n=");scanf("%d",&n);if(n<=0)exit(1);printf("pleaseinputthevalueofmatr
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年鮑片魚(yú)翅項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2031年中國(guó)電腦移圈羅紋提花布行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年度企業(yè)信用貸款貨款墊付代付及信用評(píng)估合同
- 2025年家禽養(yǎng)殖廢棄物綜合利用示范項(xiàng)目合同
- 2025年度新能源項(xiàng)目合同擔(dān)保書(shū)集錦
- 2025年度國(guó)家級(jí)農(nóng)業(yè)科技創(chuàng)新合同
- 2025年國(guó)際貿(mào)易與實(shí)務(wù)實(shí)訓(xùn)報(bào)告質(zhì)量監(jiān)控合同
- 2025年度國(guó)有股權(quán)轉(zhuǎn)讓協(xié)議稅務(wù)處理與稅務(wù)風(fēng)險(xiǎn)預(yù)警合同
- 2025年度冠梁工程施工臨時(shí)用電管理與安全合同
- 2025年合肥珺和府地下車庫(kù)停車管理服務(wù)合同
- 2025年1月浙江省高考政治試卷(含答案)
- 教體局校車安全管理培訓(xùn)
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)綜合物理試題(含答案)
- 導(dǎo)播理論知識(shí)培訓(xùn)班課件
- 20以內(nèi)加減法口算題(10000道)(A4直接打印-每頁(yè)100題)
- 中國(guó)人婚戀狀況調(diào)查報(bào)告公布
- 早產(chǎn)兒視網(wǎng)膜病變
- GB 10665-1997碳化鈣(電石)
- 《中小學(xué)教育懲戒規(guī)則》重點(diǎn)內(nèi)容學(xué)習(xí)PPT課件(帶內(nèi)容)
- 板帶生產(chǎn)工藝5(熱連軋帶鋼生產(chǎn))課件
- 2022年同等學(xué)力英語(yǔ)考試真題及詳解
評(píng)論
0/150
提交評(píng)論