Cprimerplus課后編程練習(xí)答案_第1頁
Cprimerplus課后編程練習(xí)答案_第2頁
Cprimerplus課后編程練習(xí)答案_第3頁
Cprimerplus課后編程練習(xí)答案_第4頁
Cprimerplus課后編程練習(xí)答案_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章概覽編程練習(xí)1您剛剛被MacroMuscle有限公司(SoftwareforHardBodies)聘用。該公司要進(jìn)入歐洲市場,需要一個將英寸轉(zhuǎn)換為厘米(1英寸=cm)的程序。他們希望建立的該程序可提示用戶輸入英寸值。您的工作是定義程序目標(biāo)并設(shè)計該程序(編程過程的第1步和第2步)。1. 將英寸值轉(zhuǎn)化為厘米值2. 顯示“輸入英寸值”->得到該值->轉(zhuǎn)換為厘米值->存儲->告知用戶已結(jié)束第二章C語言概述編程練習(xí)1 編寫一個程序,調(diào)用printf()函數(shù)在一行上輸出您的名和姓,再調(diào)用一次printf()函數(shù)在兩個單獨(dú)的行上輸出您的名和姓,然后調(diào)用一對printf()函數(shù)在

2、一行上輸出您的名和姓。輸出應(yīng)如下所示(當(dāng)然里面要換成您的姓名):AntonBrucknerAntonBrucknerAntonBruckner第一個輸出語句第二個輸出語句仍然是第二個輸出語句第三個和第四個輸出語句#include<>intmain(void)printf("HeJinn");printf("Hen");printf("Jinn");printf("HeJinn");return(0);2編寫一個程序輸出您的姓名及地址。#include<>intmain(void)printf

3、("Name:HeJinn");printf("Address:CAUCn");return(0);3 編寫一個程序,把您的年齡轉(zhuǎn)換成天數(shù)并顯示二者的值。不用考慮平年(fractionalyear)和閏年(leapyear)的問題。#include<>intmain(void)intage=22;printf("Age:%dn",age);printf("Day:%dn",age*356);return(0);4 編寫一個能夠產(chǎn)生下面輸出的程序:Forhe'sajollygoodfellow!F

4、orhe'sajollygoodfellow!Forhe'sajollygoodfellow!Whichnobodycandeny!程序中除了main()函數(shù)之外,要使用兩個用戶定義的函數(shù):一個用于把上面的夸獎消息輸出一次:另一個用于把最后一行輸出一次。#include<>voidprintf1(void);voidprintf2(void);intmain(void)printf1();printf1();printf1();printf2();return(0);voidprintf1(void)printf("Forhe'sajollygoo

5、dfellow!n");voidprintf2(void)printf("Whichnobodycandeny!n");5 編寫一個程序,創(chuàng)建一個名為toes的整數(shù)變量。讓程序把toes設(shè)置為10。再讓程序計算兩個toes的和以及toes的平方。程序應(yīng)該輸出所有的3個值,并分別標(biāo)識它們。#include<>intmain(void)inttoes=10;inttoes_add;inttoes_square;toes_add=toes+toes;toes_square=toes*toes;printf("toes=%dntoes_add=%dn

6、toes_square=%dn",toes,toes_add,toes_square);return(0);6 編寫一個能夠產(chǎn)生下列輸出的程序:Smile!Smile!SmileSmile!Smile!Smile!在程序中定義一個能顯示字符串smile卜一次的函數(shù),并在需要時使用該函數(shù)。#include<>voiddisplay(void);intmain(void)display();display();display();printf("n");display();display();printf("n");display();

7、printf("n");return(0);voiddisplay(void)printf("Smile!");7 編寫一個程序,程序中要調(diào)用名為one_three()的函數(shù)。該函數(shù)要在一行中顯示單詞"one",再調(diào)用two()函數(shù),然后再在另一行中顯示單詞"three"。函數(shù)two()應(yīng)該能在一行中顯示單詞"two"。main()函數(shù)應(yīng)該在調(diào)用one_three()函數(shù)之前顯示短語"startingnow:",函數(shù)調(diào)用之后要顯示"done!"o這樣,最后

8、的輸出結(jié)果應(yīng)如下所示:startingnowonetwothreedone!#include<>voidone_three(void);voidtwo(void);intmain(void)printf("startingnow:n");one_three();printf("done!n");return(0);voidone_three(void)printf("Onen");two();printf("Threen");printf("Twon");第三章數(shù)據(jù)和C編程練習(xí)1 通

9、過試驗(yàn)的方法(即編寫帶有此類問題的程序)觀察系統(tǒng)如何處理整數(shù)上溢、浮點(diǎn)數(shù)上溢和浮點(diǎn)數(shù)下溢的情況。#include<>intmain(void)unsignedinta=95;floatb=;floatc=b*10;floatd=;printf("%u+1=%un",a,a+1);printf("%e*10=%en",b,c);printf("%f/10=%fn",d,d/10);return(0);2 編寫一個程序,要求輸入一個ASCII碼值(如66),然后輸出相應(yīng)的字符。#include<>intmain(v

10、oid)chara;scanf("%d",&a);printf("%cn",a);return(0);3 編寫一個程序,發(fā)出警報聲,并打印下列文字:Startledbythesuddensound,Sallyshouted,"BytheGreatPumpkin,whatwasthat!"#include<>by the sudden sound,Sally shouted,"By the Great pumpkin,what wasprintf("aStartledthat!"n&qu

11、ot;);return(0);4 編寫一個程序,讀入一個浮點(diǎn)數(shù),并分別以小數(shù)形式和指數(shù)形式打印。輸出應(yīng)如同下面格式(實(shí)際顯示的指數(shù)位數(shù)也許因系統(tǒng)而不同):Theinputisor+001.#include<>intmain(void)floata;scanf("%f",&a);printf("Theinputis%for%en",a,a);return(0);5 .一年約有Xl07So編寫一個程序,要求輸入您的年齡,然后顯示該年齡合多少秒。#include<>intmain(void)floata;printf("

12、;Pleaseinputyourage:");scanf("%f",&a);printf("Yourageis%esecondsn",a*;return(0);個水分子的質(zhì)量約為XI。'23g,l夸脫水大約有950g。編寫一個程序,要求輸入水的夸脫數(shù),然后顯示這么多水中包含多少個水分子。#include<>intmain(void)floata;printf("Pleaseinputhowmuchquartsthewateris:");scanf("%f",&a);pr

13、intf("%fquartswaterhas%emolecules.n",a,a*950/3E-23);return(0);7.1英寸等于。編寫一個程序,要求輸入您的身高(以英寸為單位),然后顯示該身高值等于多少厘米。如果您愿意,也可以要求以厘米為單位輸入身高,然后以英寸為單位進(jìn)行顯示。#include<>intmain(void)floata;printf("Pleaseinputyourheightbyinches:");scanf("%f",&a);printf("Yourheightis%fcm.

14、n",a*;return(0);第4章字符串和格式化輸入/輸出編程練習(xí)1 編寫一個程序,要求輸入名字和姓氏,然后以“名字,姓氏”的格式打印。#include<>intmain(void)charsurname20,firstname20;printf("Pleaseinputyourfirstnameandsurname:");scanf("%s",firstname);scanf("%s",surname);printf("Youare%s,%s.n",firstname,surname);

15、return(0);2 編寫一個程序,要求輸入名字,并執(zhí)行以下操作:a把名字引在雙引號中打印出來。b在寬度為20個字符的字段內(nèi)打印名字,并且整個字段引在引號內(nèi)。c.在寬度為20個字符的字段的左端打印名字,并且整個字段引在引號內(nèi)。d在比名字寬3個字符的字段內(nèi)打印它。#include<>#include<>intmain(void)charname20;intwidth;printf("Pleaseinputyourname:");scanf("%s",name);printf("A:"%s"n"

16、;,name);printf("B:"%20s"n",name);printf("C:"%-20s"n",name);width=strlen(name)+3;printf("D:"%*s"n",width,name);Theinputisor+001.b.Theinputis+or+001.#include<>intmain(void)floata;printf("Pleaseinputafloat:");scanf("%f&quo

17、t;,&a);printf("inputis%.1for%.1en",a,a);printf("inputis%+.3for%.3En",a,a);return(0);4 編寫個程序,要求輸入身高(以英寸為單位)和名字,然后以如下形式顯示:Dabney,youarefeettall使用float類型,使用/作為除號。如果您愿意,可以要求以厘米為單位輸入身高,并以米為單位進(jìn)行顯示。#include<>intmain(void)floatheight;charname20;printf("Pleaseinputyourheigh

18、tbyinches:");scanf("%f",&height);printf("Pleaseinputyourname:");scanf("%s",name);printf("%s,youare%ffeettalln",name,height/12);return(0);5 .編寫一個程序,首先要求用戶輸入名字,然后要求用戶輸入姓氏。在一行打印輸入的姓名,在下行打印每個名字中字母的個數(shù)。把字母個數(shù)與相應(yīng)名字的結(jié)尾對齊,如下所示:MelissaHoneybee78然后打印相同的信息,但是字母個數(shù)與

19、相應(yīng)單詞的開始對齊。#include<>#include<>intmain(void)charsurname20,firstname20;printf("Pleaseinputyourfirstnameandsurname:");scanf("%s",firstname);scanf("%s",surname);printf("%s%s.n",firstname,surname);printf("%*d%*dn",strlen(firstname),strlen(firs

20、tname),strlen(surname),strlen(surname);n",firstname,surname);printf("%-*dn",a);printf("%.12en",a);printf("%.16enn",a);printf("floatb=:n");printf("%.4fn",b);printf("%.12fn",b);printf("%.16fnn",b);printf("FLT_DIG:%dn"

21、,FLT_DIG);printf("DBL_DIG:%dn",DBL_DIG);return(0);7 編寫一個程序,要求用戶輸入行駛的英里數(shù)和消耗汽油的加侖數(shù)。接著應(yīng)該計算和顯示消耗每加侖汽油行駛的英里數(shù),顯示方式是在小數(shù)點(diǎn)右側(cè)顯示一個數(shù)字。然后,根據(jù)l加侖約等于升,l英里約等于公里的規(guī)則,它應(yīng)該把每加侖英里數(shù)轉(zhuǎn)換成每100公里的升數(shù)(歐洲通用的燃料消耗表示法),并顯示結(jié)果,顯示方式是在小數(shù)點(diǎn)右側(cè)顯示一個數(shù)字(請注意,美國方案測量每單位距離消耗的燃料數(shù),而歐洲方案測量每單位燃料的行駛距離)。用符號常量表示兩個轉(zhuǎn)換系數(shù)(使用const或#define)。#include&l

22、t;>#defineGALLONfn",mile/gallon);printf("Litresper100kilometre:%.1fn",gallon*GALLON/(100*mile*MILE);return(0);第5章運(yùn)算符、表達(dá)式和語句編程練習(xí)1 編寫一個程序。將用分鐘表示的時間轉(zhuǎn)換成以小時和分鐘表示的時間。使用#define或者const來創(chuàng)建一個代表60的符號常量。使用while循環(huán)來允許用戶重復(fù)鍵入值,并且當(dāng)鍵入一個小于等于0的時間時終止循環(huán)。#include<>#defineHOUR60intmain(void)intminut

23、es;printf("Pleaseinputtheminutes:");scanf("%d",&minutes);while(minutes>0)printf("%dhoursand%dminutesn",minutes/HOUR,minutes%HOUR);printf("Pleaseinputtheminutes:");scanf("%d",&minutes);return(0);2 編寫一個程序,此程序要求輸入一整數(shù),然后打印出從(包括)輸入的值到(包括)比輸入的值大

24、10的所有整數(shù)值(也就是說,如果輸入為5,那么輸出就從5到15)。要求在各個輸出值之間用空格、制表符或換行符分開。#include<>intmain(void)intnum,i=0;printf("Pleaseinputthenumber:");scanf("%d",&num);while(i+<11)printf("%d",num+);return(0);3 編寫一個程序,該程序要求用戶輸入天數(shù),然后將該值轉(zhuǎn)換為周數(shù)和天數(shù)。例如,此程序?qū)?8天轉(zhuǎn)換成2周4天。用下面的格式顯示結(jié)果:使用一個while循環(huán)讓

25、用戶重復(fù)輸入天數(shù);當(dāng)用戶輸入一個非正數(shù)(如0或-20)時,程序?qū)⒔K止循環(huán)。#include<>#defineWEEK7intmain(void)intdays;printf("Pleaseinputthedays:");scanf("%d",&days);while(days>0)printf("%ddaysare%dweeks,%ddays.n",days,days/WEEK,days%WEEK);printf("Pleaseinputthedays:");scanf("%d&

26、quot;,&days);return(0);4 編寫一個程序讓用戶按厘米輸入一個高度值,然后,程序按照厘米和英尺英寸顯示這個高度值。允許厘米和英寸的值出現(xiàn)小數(shù)部分。程序允許用戶繼續(xù)輸入,直到用戶輸入一個非正的數(shù)值。程序運(yùn)行的示例如下面所示:Enteraheightincentimeters:182cm=5feet,inchesEnteraheightincentimeters(<=Otoquit):168cm=5feet,inchesEnteraheightincentimeters(<=Otoquit):0bye#include<>#defineINCHfc

27、m=%dfeet,%.1finchesn",cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12);printf("Enteraheightincentimeters(<=0toquit):");scanf("%f",&cm);printf("byen");return(0);5 .改寫用來找到前20個整數(shù)之和的程序(程序清單)(如果您愿意,可以把程序看成是一個計算如果您第一天得到$l,第二天得到$2,第三天得到$3,以此類推,您在20天里會掙多少錢的程序)。修改該程序,目

28、的是您能交q地告訴程序計算將進(jìn)行到哪里。也就是說,用一個讀入的變量來代替20。#include<>intmain(void)intcount,sum,max;count=0;sum=0;printf("Pleaseinputthemax:");scanf("%d",&max);while(count+<max)sum=sum+count;printf("sum=%dn",sum);return(0);6 .現(xiàn)在修改編程練習(xí)5中的程序,使它能夠計算整數(shù)平方的和(如果您喜歡,可以這樣認(rèn)為:如果您第一天得到$l,第

29、二天得到$4,第三天得到$9,以此類推您將得到多少錢。這看起來像一個很好的買賣)。C沒有平方函數(shù),但是您可以利用n的平方是n*n的事實(shí)。#include<>intmain(void)intcount,sum,max;count=0;sum=0;printf("Pleaseinputthemax:");scanf("%d",&max);while(count+<max)sum=sum+count*count;printf("sum=%dn",sum);return(0);7 編寫一個程序,該程序要求輸入一個fl

30、oat型數(shù)并打印該數(shù)的立方值。使用您自己設(shè)計的函數(shù)來計算該值的立方并且將它的立方打印出來。main()程序把輸入的值傳遞給該函數(shù)。#include<>floatcube(float);intmain(void)floatnumber;printf("Pleaseinputthenumber:");scanf("%f",&number);printf("Thecubeof%fis%fn",number,cube(number);return(0);floatcube(floatnum)return(num*num*n

31、um);8 編寫一個程序,該程序要求用戶輸入一個華氏溫度。程序以double類型讀入溫度值,并將它作為一個參數(shù)傳遞給用戶提供的函數(shù)Temperatures()。該函數(shù)將計算相應(yīng)的攝氏溫度和絕對溫度,并以小數(shù)點(diǎn)右邊有兩位數(shù)字的精度顯示這三種溫度。它應(yīng)該用每個值所代表的溫度刻度來標(biāo)識這3個值。下面是將華氏溫度轉(zhuǎn)換成攝氏溫度的方程:通常用在科學(xué)上的絕對溫度的刻度是0代表絕對零,是可能溫度的下界。下面是將攝氏溫度轉(zhuǎn)換為絕對溫度的方程:Kelvin=Celsius+Temperatures()函數(shù)使用const來創(chuàng)建代表該轉(zhuǎn)換里的3個常量的符號。main()函數(shù)將使用一個循環(huán)來允許用戶重復(fù)地輸入溫度,當(dāng)

32、用戶輸入q或其他非數(shù)字值時,循環(huán)結(jié)束。#include<>voidTemperatures(double);intmain(void)doubleFahrenheit;printf("PleaseinputtheFahrenheit:");while(scanf("%lf",&Fahrenheit)=1)f-%.2f)/(%.2f*%.2f)=%.2fn",a,b,a,b,(a-b)(a*b);printf("Pleaseinputtwofloats:");printf("endn")

33、;return(0);8對練習(xí)7進(jìn)行修改,讓它使用一個函數(shù)來返回計算值。#include<>floatcalculate(float,float);intmain(void)floata,b;printf("Pleaseinputtwofloats:");while(scanf("%f%f",&a,&b)=2)printf("(%.2f-%.2f)/(%.2f*%.2f)=%.2fn",a,b,a,b,calculate(a,b);printf("Pleaseinputtwofloats:&quo

34、t;);printf("endn");return(0);floatcalculate(floatx,floaty)return(x-y)/(x*y);9 編寫一個程序,要求用戶輸入下限整數(shù)和一個上限整數(shù),然后,依次計算從下限到上限的每一個整數(shù)的平方的加和,最后顯示結(jié)果。程序?qū)⒉粩嗵崾居脩糨斎胂孪拚麛?shù)和上限整數(shù)并顯示出答案,直到用戶輸入的上限整數(shù)等于或小于下限整數(shù)為止。程序運(yùn)行的結(jié)果示例應(yīng)該如下所示:Enterlowerandupperintegerlimits:59Thesumsofthesquaresfrom25t081is255Enternextsetoflimits

35、:325Thesumsofthesquaresfrom9t0625iS5520Enternextsetoflimits:55Done#include<>intmain(void)intlower,upper,sum,i;printf("Enterlowerandupperintegerlimits:");scanf("%d%d",&lower,&upper);while(lower<upper)for(i=lower,sum=0;i<=upper;i+)sum+=i*i;printf("Thesumsof

36、thesquatesfrom%dto%dis%dn",lower*lower,upper*upper,sum);printf("Enternextsetoflimits:");scanf("%d%d",&lower,&upper);printf("Donen");return(0);10 .編寫一個程序把8個整數(shù)讀入一個數(shù)組中,然后以相反的順序打印它們。#include<>intmain(void)intnum8,i;printf("Enter8numbers:");for(i

37、=0;i<8;i+)scanf("%d",&numi);for(i=7;i>=0;i-)printf("%dt",numi);printf("n");return(0);11 .考慮這兩個無限序列:+-+-+編寫一個程序來計算這兩個序列不斷變化的總和,直到達(dá)到某個次數(shù)。讓用戶交互地輸入這個次數(shù)??纯丛?0次、100次和500次之后的總和。是否每個序列都看上去要收斂于某個值提示:奇數(shù)個-1相乘的值為-1,而偶數(shù)個-1相乘的值為1。#include<>intmain(void)doublei,sum1,su

38、m2;intsign,count;printf("Enterthecount:");scanf("%d",&count);for(i=,sign=1,sum1=0,sum2=0;i<=count;i+,sign-=sign)sum1+=/i;sum2+=sign*/i;printf("+.(%dterms)=%lfn",count,sum1);printf("-+-.(%dterms)=%lfn",count,sum2);return(0);12 .編寫一個程序,創(chuàng)建一個8個元素的int數(shù)組,并且把元

39、素分別設(shè)置為2的前8次冪,然后打印出它們的值。使用for循環(huán)來設(shè)置值;為了變化,使用dowhile循環(huán)來顯示這些值。#include<>#include<>intmain(void)intnum8,i;for(i=0;i<8;i+)numi=pow(2,i);寫一個程序,創(chuàng)建兩個8元素的double數(shù)組,使用一個循環(huán)來讓用戶鍵入第一個數(shù)組的8個元素的值。程序把第二個數(shù)組的元素設(shè)置為第一個數(shù)組元素的累積和。例如,第二個數(shù)組的第4個元素應(yīng)該等于第一個數(shù)組的前4個元素的和,第二個數(shù)組的第5個元素應(yīng)該等于第一個數(shù)組的前5個元素的和(使用嵌套循環(huán)可以做到這一點(diǎn)。不過利用第二

40、個數(shù)組的第5個元素等于第二個數(shù)組的第4個元素加上第一個數(shù)組的第5個元素這一事實(shí),可以避免嵌套而只使用單個循環(huán)來完成這個任務(wù))。最后,使用一個循環(huán)來顯示兩個數(shù)組中的內(nèi)容,第一個數(shù)組在一行中顯示,而第二個數(shù)組中的每個元素在第一個數(shù)組的對應(yīng)元素之下進(jìn)行顯示。#include<>intmain(void)doublenum8,sum8;inti,j;printf("Enter8numbers:");for(i=0;i<8;i+)scanf("%lf",&numi);for(j=0,sumi=0;j<=i;j+)sumi+=numj

41、;for(i=0;i<8;i+)printf("%",numi);printf("n");for(i=0;i<8;i+)printf("%",sumi);printf("n");return(0);14. 編寫一個程序讀入一行輸入,然后反向打印該行。您可以把輸入存儲在一個char數(shù)組中;假定該行不超過255個字符?;貞浺幌?,您可以使用具有c說明符的scanf()從輸入中一次讀入一個字符,而且當(dāng)您按下回車鍵時會產(chǎn)生換行字符(n)。#include<>#defineLENGTH20intmain

42、(void)chara255;inti;for(i=0;i<LENGTH;i+)scanf("%c",&ai);for(i=LENGTH-1;i>=0;i-)printf("%c",ai);printf("n");return(0);15. Daphne以10%勺單利息投資了100美元(也就是說,每年投資贏得的利息等于原始投資的10%)。Deirdre則以每年5%勺復(fù)合禾U息資了10O美元(也就是說,利息是當(dāng)前結(jié)余的5%其中包括以前的利息)。編寫一個程序,計算需要多少年Deirdre的投資額才會超過Daphne,并

43、且顯示出到那時兩個人的投資額。#include<>intmain(void)doubleDaphne=100,Deirdre=100;inti=0;while(Daphne>=Deirdre)Daphne+=100*;Deirdre+=Deirdre*;i+;printf("After%dyears,Deirdre'sinvestmentis%lf,Daphne'sinvestmentis%lfn",i,Deirdre,Daphne);return(0);16. ChuckieLucky贏了100萬美元,他把它存入一個每年贏得8%的帳戶。在

44、每年的最后一天,Chuckie取出10萬美元。編寫一個程序,計算需要多少年Chuckie就會清空他的帳戶。#include<>intmain(void)doubleinvestment=100;inti=0;while(investment>0)investment+=investment*;investment-=10;i+;printf("After%dyears,ChuckieLucky'sinvestmentisoutn",i,investment);return(0);第七章C控制語句:分支和跳轉(zhuǎn)編程練習(xí)1編寫一個程序。該程序讀取輸入直到

45、遇到#字符,然后報告讀取的空格數(shù)目、讀取的換行符數(shù)目以及讀取的所有其他字符數(shù)目。#include<>intmain(void)intspace=0,newline=0,others=0;chara;printf("Pleaseinputastringendby#:");while(a=getchar()!='#')if(a='')space+;elseif(a='n')newline+;elseothers+;printf("space:%d,newline:%d,others:%dn",spa

46、ce,newline,others);return(0);2編寫一個程序,該程序讀取輸入直到遇到#字符。使程序打印每個輸入的字符以及它的十進(jìn)制ASCII碼。每行打印8個字符,編碼對。建議:利用字符計數(shù)和模運(yùn)算符(%)在每8個循環(huán)周期時打印一個換行符。#include<>intmain(void)chara;inti;printf("Pleaseinputastringendby#:");for(i=1;(a=getchar()!='#'i+)printf("%c-%dt",a,a);if(i%8=0)printf("

47、n");printf("n");return(0);3編寫一個程序。該程序讀取整數(shù),直到輸入0。輸入終止后,程序應(yīng)該報告輸入的偶數(shù)(不包括0)總個數(shù)、偶數(shù)的平均值,輸入的奇數(shù)總個數(shù)以及奇數(shù)的平均值。#include<>intmain(void)inti_even=0,sum_even=0,i_odd=0,sum_odd=0,num;printf("Pleaseinputnumbers(0toquit):");while(1)scanf("%d",&num);if(num=0)break;if(num%2=

48、0)i_even+;sum_even+=num;elsei_odd+;sum_odd+=num;printf("evennumber'scount:%dn",i_even);printf("evennumber'ssum:%dn",sum_even);printf("oddnumber'scount:%dn",i_odd);printf("oddnumber'ssum:%dn",sum_odd);return(0);4利用ifelse語句編寫程序讀取輸入,直到#。用一個感嘆號代替每個

49、句號,將原有的每個感嘆號用兩個感嘆號代替,最后報告進(jìn)行了多少次替代。#include<>intmain(void)inta=0,b=0;charch;printf("Pleaseinputastringendby#:");while(ch=getchar()!='#')if(ch='.')putchar('!');a+;elseif(ch='!')putchar('!');putchar('!');b+;elseputchar(ch);printf("nth

50、etimesof'.'replacedby'!':%dn",a);printf("thetimesof'!'replacedby'!':%dn",b);return(0);5用switch重做練習(xí)3#include<>intmain(void)inti_even=0,sum_even=0,i_odd=0,sum_odd=0,num;printf("Pleaseinputnumbers(0toquit):");while(1)scanf("%d",&a

51、mp;num);if(num=0)break;switch(num%2)case0:i_even+;sum_even+=num;break;case1:i_odd+;sum_odd+=num;printf("evennumber'scount:%dn",i_even);printf("evennumber'ssum:%dn",sum_even);printf("oddnumber'scount:%dn",i_odd);printf("oddnumber'ssum:%dn",sum_o

52、dd);return(0);6 編寫一個程序讀取輸入,直到#,并報告序列ei出現(xiàn)的次數(shù)。此程序必須要記住前一個字符和當(dāng)前的字符。用諸如“Receiveyoureieioaward.”的輸入測試它。#include<>intmain(void)charformer=0,present;intcount=0;while(present=getchar()!='#')if(former='e')&&(present='i')count+;former=present;printf("eihasappeared%dt

53、imesn",count);return(0);7 編寫程序,要求輸入一周中的工作小時數(shù),然后打印工資總額、稅金以及凈工資。作如下假設(shè):a基本工資等級=美元本工資#defineBASIC班#defineTIME40率#defineLIMIT1300班#defineTIME40率#defineLIMIT1300lfn",basic);printf("inputtheworkhoursofaweek:");scanf("%lf",&hours);if(hours>40)hours=40+(hours-40)*;gross=h

54、ours*basic;printf("grossincome:tt%lfn",gross);if(gross<=LIMIT1)tax=gross*RATE1;elseif(gross<=LIMIT2)tax=LIMIT1*RATE1+(gross-LIMIT1)*RATE2;elsetax=LIMIT1*RATE1+LIMIT2*RATE2+(gross-LIMIT1-LIMIT2)*RATE3;printf("tax:ttt%lfn",tax);printf("netincome:tt%lfn",gross-tax);r

55、eturn(0);intget_int(void)inputagain.n",str);while(getchar()!='n');returnnum;9編寫一個程序,接受一個整數(shù)輸入,然后顯示所有小于或等于該數(shù)的素數(shù)。#include<>intisprime(int);intmain(void)(intnum,i;printf("inputapositivenumber:");scanf("%d",&num);printf("alltheprimes<=%d:n",num);for

56、(i=2;i<=num;i+)if(isprime(i)printf("%dt",i);printf("n");return(0);intisprime(intn)1988年UnitedStatesFederalTaxSchedule是近期最基本的。它分為4類,每類有兩個等級。下面是其摘要;美元數(shù)為應(yīng)征稅的收入。111種類1111稅金111單身111前17850美元按115%超出部分按28%1111戶主111前23,900美元按115%超出部分按28%|1111已婚,共有11|前29,750美元按15%1超出部分按28%|1111已婚,離異11|前

57、14,875美元按l5%,1超出部分按28%|1例如,有20000美元應(yīng)征稅收入的單身雇傭勞動者應(yīng)繳稅金X17850美元+X(20000美元-17850美元)。編寫一個程序,讓用戶指定稅金種類和應(yīng)征稅收入,然后計算稅金。使用循環(huán)以便用戶可以多次輸入。#include<>#defineSINGLE17850#defineHOST23900#defineMARRIED_SHARE29750#defineMARRIED_DIVORCE14875#defineRATE1#defineRATE2intmain(void)(doubletype,pay,tax;charch;while(1)p

58、rintf("Selectthetypeofmarriage:n");printf("1)SINGLEn2)HOSTn3)MARRIED_SHAREn4)MARRIED_DIVORCEn5)quitn");while(ch=getchar()='n')continue;lfn",tax);11.ABCMailOrderGrocery朝鮮薊的售價是美元/磅,甜菜的售價是美元/磅,胡蘿卜的售價是美元/磅。在添加運(yùn)輸費(fèi)用之前,他們?yōu)?00美元的訂單提供5%的打折優(yōu)惠。對5磅或以下的定單收取美元的運(yùn)輸和裝卸費(fèi)用;超過5磅而不足20磅的定

59、單收取美元的運(yùn)輸和裝卸費(fèi)用:加磅或以上的運(yùn)輸,在8美元基礎(chǔ)上每磅加收美元。編寫程序,在循環(huán)中使用switch語句,以便對輸入a的響應(yīng)是讓用戶輸入所需的朝鮮薊磅數(shù),b為甜菜的磅數(shù),c為胡蘿卜的磅數(shù),而q允許用戶退出訂購過程。然后程序計算總費(fèi)用、折扣和運(yùn)輸費(fèi)用(如果有運(yùn)輸費(fèi)的話),以及總數(shù)。隨后程序應(yīng)該顯示所有的購買信息:每磅的費(fèi)用、訂購的磅數(shù)、該訂單每種蔬菜的費(fèi)用、訂單的總費(fèi)用、折扣,如果有的話加上運(yùn)輸費(fèi)用,以及所有費(fèi)用的總數(shù)。#include<>#include<>fn",ARTICHOKE);printf("price:$%.2fn",B

60、EET);printf("price:$%.2fn",CARROT);printf("n");printf("(priceasdollarsperpound)n");while(ch=tolower(getchar()!='q')fn",discount);if(artichoke+beet+carrot<=5)freight=;elseif(artichoke+beet+carrot<20)freight=10;elsefreight=8+(artichoke+beet+carrot)*;pri

61、ntf("freight:%.2fn",freight);sum=sum-discount+freight;printf("sum:%.2fn",sum);return0;第8章字符輸入/輸出和輸入確認(rèn)編程練習(xí)下面的一些程序要求輸入以EOF終止。如果您的操作系統(tǒng)難以使用或不能使用重定向,則使用一些其他的判斷來終止輸入,例如讀取&字符。1設(shè)計一個程序,統(tǒng)計從輸入到文件結(jié)尾為止的字符數(shù)。#include<>intmain(void)inti;for(i=0;getchar()!=EOF;i+);printf("Thereare%dchar",i);return0;2 編寫一個程序,把輸入作為字符流讀取,直到遇到EOF。令該程序打印每個輸入字符及其ASCII編碼的十進(jìn)制值。注意在ASCII序列中空格字符前面的字符是非打印字符,要特殊處理這些字符。如果非打印字符是換行符或制表符,則分期打印n或t。否則,使用控制字符符號。例如,ASCII的l是Ctrl+A,可以

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論