CPrimerPlus第6版編程練習測試參考答案已下載_第1頁
CPrimerPlus第6版編程練習測試參考答案已下載_第2頁
CPrimerPlus第6版編程練習測試參考答案已下載_第3頁
CPrimerPlus第6版編程練習測試參考答案已下載_第4頁
CPrimerPlus第6版編程練習測試參考答案已下載_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精心整理精心整理}}精心整理精心整理}}Chapter2Programming ExercisesPE2---1/*ProgrammingExercise2-1*/#include<stdio.h>intmain(void){printf("GustavMahler\n");printf("Gustav\nMahler\n");printf("Gustav");printf("Mahler\n");return0;}PE2---3/*ProgrammingExercise2-3*/#include<stdio.h>intmain(void){intageyears;/*ageinyears*/intagedays;/*ageindays*//*largeagesmayrequirethelongtype*/ageyears=101;agedays=365*ageyears;printf("Anageof%dyearsis%ddays.\n",ageyears,agedays);return0;}PE2---4/*ProgrammingExercise2-4*/#include<stdio.h>voidjolly(void);voiddeny(void);intmain(void){jolly();jolly();jolly();deny();return0;}voidjolly(void){printf("Forhe'sajollygoodfellow!\n");}voiddeny(void){printf("Whichnobodycandeny!\n");}PE2---6/*ProgrammingExercise2-6*/#include<stdio.h>intmain(void){inttoes;toes=10;printf("toes=%d\n",toes);printf("Twicetoes=%d\n",2*toes);printf("toessquared=%d\n",toes*toes);return0;}/*orcreatetwomorevariables,setthemto2*toesandtoes*toes*/PE2---8/*ProgrammingExercise2-8*/#include<stdio.h>voidone_three(void);voidtwo(void);intmain(void){printf("startingnow:\n");one_three();printf(”done!\n");return0;}voidone_three(void)_{printf("one\n");two();printf("three\n");精心整理voidtwo(void){

printf("two\n");}Chapter3 Programming ExercisesPE3---2/*ProgrammingExercise3-2*/#include<stdio.h>intmain(void){intascii;printf("EnteranASCIIcode:");scanf("%d",&ascii);printf("%distheASCIIcodefor%c.\n",ascii,ascii);returnO;}PE3---4/*ProgrammingExercise3-4*/#include<stdio.h>intmain(void){floatnum;printf("Enterafloating-pointvalue:");scanf("%f",&num);printf("fixed-pointnotation:%f\in",num);printf("exponentialnotation:%e\n",num);printf("pnotation:%a\n",num);returnO;}PE3---6/*ProgrammingExercise3-6*/#include<stdio.h>intmain(void){floatmass_mol=3.0e-23;/*massofwatermoleculeingrams*/floatmass_qt=950;/*massofquartofwateringrams*/floatquarts;floatmolecules;printf("Enterthenumberofquartsofwater:");scanf("%f",&quarts);molecules=quarts*mass_qt/mass_mol;printf("%fquartsofwatercontain%emolecules.\n",quarts,molecules);returnO;}Chapter4 Programming ExercisesPE4---1/*ProgrammingExercise4-1*/#include<stdio.h>intmain(void){charfname[40];charlname[40];printf("Enteryourfirstname:");scanf("%s",fname);printf("Enteryourlastname:");scanf("%s",lname);printf("%s,%s\n",lname,fname);return0;}PE4---4/*ProgrammingExercise4-4*/#include<stdio.h>intmain(void){floatheight;charname[40];printf("Enteryourheightininches:");scanf("%f",&height);printf("Enteryourname:");scanf("%s",name);printf("%s,youare%.3ffeettall\n",name,height/12.0);return0;}PE4---7/*ProgrammingExercise4-7*/精心整理精心整理x);x);精心整理精心整理x);x);#include<stdio.h>#includevfloat.h>intmain(void){floatot_f=1.0/3.0;doubleot_d=1.0/3.0;printf("floatvalues:");printf("%.4f%.12f%.16f\n",ot_f,ot_f,ot_f);printf("doublevalues:");printf("%.4f%.12f%.16f\n",ot_d,ot_d,ot_d)?printf("FLT_DIG:%d\n",FLT_DIG);printf("DBL_DIG:%d\n",DBL_DIG);reiurn0;}Chapter5ProgrammingExercises

PE5---1/*ProgrammingExercise5-1*/#include<stdio.h>intmain(void){constintminperhour=60;intminutes,hours,mins;printf("Enterthenumberofminutestoconvert:");scanf("%d",&minutes);while(minutes>0){hours=minutes/minperhour;mins=minutes%minperhour;printf("%dminutes=%dhours,%dminutes\n",minutes,hours,mins);printf("Enternextminutesvalue(0toquit):");scanf("%d",&minutes);}printf("Bye\n");return0;}PE5---3/*ProgrammingExercise5-3*/#include<stdio.h>intmain(void){constintdaysperweek=7;intdays,weeks,day_rem;printf("Enterthenumberofdays:");scanf("%d",&days);while(days>0){weeks=days/daysperweek;day_rem=days%daysperweek;printf("%ddaysare%dweeksand%ddays.\n",days,weeks,day_rem);printf("Enterthenumberofdays(0orlesstoend):");scanf("%d",&days);}printf("Done!\n");return0;}PE5---5/*ProgrammingExercise5-5*/#include<stdio.h>intmain(void)/*findssumoffirstnintegers*/{intcount,sum;intn;printf("Entertheupperlimit:");scanf("%d",&n);count=0;sum=0;while(count++<n)sum=sum+count;printf("sum=%d\n",sum);return0;}PE5---7/*ProgrammingExercise5-7*/#include<stdio.h>voidshowCube(doubleintmain(void)/*findscubeofenterednumber*/{doubleval;精心整理精心整理精心整理精心整理printf("Enterafloating-pointvalue:");scanf("%lf",&val);showCube(val);returnO;}voidshowCube(doublex){printf("Thecubeof%eis%e.\n",x,x*x*x);}Chapter6ProgrammingExercises

PE6---1/*pe6-1.c*//*thisimplementationassumesthecharactercodes*//*aresequential,astheyareinASCII.*/#include<stdio.h>#defineSIZE26intmain(void){charlcase[SIZE];inti;for(i=0;i<SIZE;i++)lcase[i]='a'+i;for(i=O;i<SIZE;i++)printf("%c",lcase[i]);printf("\n");return0;}PE6---3/*pe6-3.c*//*thisimplementationassumesthecharactercodes*//*aresequential,astheyareinASCII.*/#include<stdio.h>intmain(void){charlet='F';charstart;charend;for(end=let;end>='A';end--){for(start=let;start>=end;start--)printf("%c",start);printf("\in");}return0;}PE6---6/*pe6-6.c*/#include<stdio.h>intmain(void){intlower,upper,index;intsquare,cube;printf("Enterstartinginteger:");scanf("%d",&lower);printf("Enterendinginteger:");scanf("%d",&upper);printf("%5s%10s%15s\n","num","square","cube");for(index=lower;index<=upper;index++){square=index*index;cube=index*square;printf("%5d%10d%15d\n",index,square,cube);}return0;}PE6---8/*pe6-8.c*/#include<stdio.h>intmain(void){doublen,m;doubleres;printf("Enterapairofnumbers:");while(scanf("%lf%lf",&n,&m)==2){res=(n-m)/(n*m);printf("(%.3g-%.3g)/(%.3g*%.3g)=%.5g\n",n,m,n,m,res);printf("Enternextpair(non-

numerictoquit):");}return0;}PE6---11/*pe6-11.c*/#include<stdio.h>#defineSIZE&ntmain(void){intvals[SIZE];inti;printf("Pleaseenter%dintegers.\n",SIZE);for(i=0;i<SIZE;i++)scanf("%d",&vals[i]);printf("Here,inreverseorder,arethevaluesyouentered:\n");for(i=SIZE-1;i>=0;i--)printf("%d",vals[i]);printf("\n");return0;}PE6---13/*pe6-13.c*//*Thisversionstartswiththe0power*/#include<stdio.h>#defineSIZE&ntmain(void){inttwopows[SIZE];inti;intvalue=1;/*2tothe0*/for(i=0;i<SIZE;i++){twopows[i]=value;value*=2;}i=0;do{printf("%d",twopows[i]);i++;}while(i<SIZE);printf("\n");return0;}PE6---14/*pe-14.c*//*ProgrammingExercise6-14*/#include<stdio.h>#defineSIZE&ntmain(void){doublearr[SIZE];doublearr_cumul[SIZE];inti;printf("Enter%dnumbers:\n",SIZE);for(i=0;i<SIZE;i++){printf("value#%d:",i+1);scanf("%lf",&arr[i]);/*orscanf("%lf",ar葉i);*/}arr_cumul[0]=arr[0];/*setfirstelement*/for(i=1;i<SIZE;i++)arr_cumul[i]=arr_cumul[i-1]+arr[i];for(i=0;i<SIZE;i++)printf("%8g",arr[i]);printf("\n");for(i=0;i<SIZE;i++)printf("%8g",arr_cumul[i]);printf("\n");return0;}PE6---16/*pe6-16.c*/#include<stdio.h>

#defineRATESIMP0.10#defineRATE_COMP0.05#defineINIT_AMT100.0intmain(void)_{doubledaphne=INIT_AMT;doubledeidre=lNIT_AMT;intyears=0;精心整理while(deidre<=daphne){daphne+=RATE_SIMP*INIT_AMT;deidre+=RATE_COMP*deidre;++years;}printf("Investmentvaluesafter%dyears:\n",years);printf("Daphne:$%.2f\n",daphne);printf("Deidre:$%.2f\n",deidre);return0;Chapter7}Chapter7Programming ExercisesPE7---1/*ProgrammingExercise7-1*/#include<stdio.h>intmain(void){charch;intsp_ct=O;intnl_ct=0;intother=0;while((ch=getchar())!='#')if(ch==”)sp_ct++;elseif(ch=='\n')nl_ct++;elseother++;}printf("spaces:%d,newlines:%d,others:%d\n",sp_ct,nl_ct,other);return0;}PE7---3/*ProgrammingExercise7-3*/#include<stdio.h>intmain(void){intn;doublesumeven=0.0;intct_even=0;doublesumodd=0.0;intct_odd=0;while(scanf("%d",&n)==1&&n!=0)

{

if(n%2==0)

{

sumeven+=n;

++ct_even;I

else//n%2iseither1or-1

{

sumodd+=n;

++ct_odd;}}printf("Numberofevens:%d",ct_even);if(ct_even>0)printf("average:%g",sumeven/ct_even);putchar('\n');printf("Numberofodds:%d",ct_odd);if(ct_odd>0)printf("average:%g",sumodd/ct_odd);putchar('\n');printf("\ndone\n~);return。;}PE7---5/*ProgrammingExercise7-5*/#include<stdio.h>intmain(void){charch;intct仁0;intct2=0;while((ch=getchar())!='#')switch(ch){精心整理case'.':putchar('!');++ct1;break;case'!':putchar('!');putchar('!');++ct2;break;default:putchar(ch);}}printf("%dreplacement(s)of.with!\n",ct1);printf("%dreplacement(s)of!with!!\n",ct2);return。;}PE7---7//ProgrammingExercise7-7#include<stdio.h>#defineBASEPAY10//$10perhour#defineBASEHRS40//hoursatbasepay#defineOVERTIME1.5//1.5time#defineAMT1300//1stratetier#defineAMT2150//2stratetier#defineRATE10.15//ratefor1sttier#defineRATE20.20//ratefor2ndtier#defineRATE30.25//ratefor3rdtierintmain(void){doublehours;doublegross;doublenet;doubletaxes;printf("Enterthenumberofhoursworkedthisweek:");scanf("%lf",&hours);if(hours<=BASEHRS)gross=hours*BASEPAY;elsegross=BASEHRS*BASEPAY+(hours-BASEHRS)*BASEPAY*OVERTIME;if(gross<=AMT1)taxes=gross*RATE1;elseif(gross<=AMT1+AMT2)taxes=AMT1*RATE1+(gross-AMT1)*RATE2;elsetaxes=AMT1*RATE1+AMT2*RATE2+(gross-AMT1-AMT2)*RATE3;net=gross-taxes;printf("gross:$%.2f;taxes:$%.2f;net:$%.2f\n",gross,taxes,net);return0;}PE7---9/*ProgrammingExercise7-9*/#include<stdio.h>#include<stdbool.h>intmain(void){intlimit;intnum;intdiv;boolnumlsPrime;//useintifstdbool.hnotavailableprintf("Enterapositiveinteger:");while(scanf("%d",&limit)==1&&imit>0){if(limit>1)printf("Herearetheprimenumbersupthrough%d\n",limit);elseprintf("Noprimes.\n");for(num=2;num<=limit;num++){for(div=2,numIsPrime=true;(div*div)<=num;div++)if(num%div==0)numlsPrime=false;if(numlsPrime)printf("%disprime.\n",num);}printf("Enterapositiveinteger(qtoquit):");}printf("Done!\n");return0;}精心整理PE7---11/*pe7-11.c*//*ProgrammingExercise7-11*/#include<stdio.h>#includevctype.h>intmain(void){constdoubleprice_artichokes=2.05;constdoubleprice_beets=1.15;constdoubleprice_carrots=1.09;constdoubleDISCOUNT_RATE=0.05;constdoubleunder5=6.50;constdoubleunder20=14.00;constdoublebase20=14.00;constdoubleextralb=0.50;charch;doublelb_artichokes=0;doublelb_beets=0;doublelb_carrots=0;doublelb_temp;doublelb_total;doublecost_artichokes;doublecost_beets;doublecost_carrots;doublecost_total;doublefinal_total;doublediscount;doubleshipping;printf("Enteratobuyartichokes,bforbeets,");printf("cforcarrots,qtoquit:");while((ch=getchar())!='q'&&ch!='Q'){if(ch=='\n')continue;while(getchar()!='\n')continue;ch=tolower(ch);switch(ch){case'a':printf("Enterpoundsofartichokes:");scanf("%lf",&lb_temp);lb_artichokes+=lb_temp;break;case'b':printf("Enterpoundsofbeets:");scanf("%lf",&lb_temp);lb_beets+=lb_temp;break;case'c':printf("Enterpoundsofcarrots:");scanf("%lf",&lb_temp);lb_carrots+=lb_temp;break;default:printf("%cisnotavalidchoice.\n",ch);}printf("Enteratobuyartichokes,bforbeets,");printf("cforcarrots,qtoquit:");}cost_artichokes=price_artichokes*lb_artichokes;cost_beets=price_beets*lb_beets;cost_carrots=price_carrots*lb_carrots;cost_total=cost_artichokes+cost_beets+cost_carrots;lb_total=lb_artichokes+lb_beets+lb_carrots;if(lb_total<=0)shipping=0.0;elseif(lb_total<5.0)shipping=under5;elseif(lb_total<20)shipping=under20;elseshipping=base20+extralb*lb_total;if(cost_total>100.0)discount=DISCOUNT_RATE*cost_total;elsediscount=0.0;final_total=cost_total+shipping-discount;printf("Yourorder:\n");printf("%.2flbsofartichokesat$%.2fperpound:$%.2f\n",lb_artichokes,price_artichokes,cost_artichokes);printf("%.2flbsofbeetsat$%.2fperpound:$%.2f\n",lb_beets,price_beets,cost_beets);printf("%.2flbsofcarrotsat$%.2fperpound:$%.2f\n",lb_carrots,price_carrots,cost_carrots);printf("Totalcostofvegetables:$%.2f\n",cost_total);if(cost_total>100)printf("Vn",shipping);printf("Totalcharges:$%.2f\n",final_total);return0;}Chapter8ProgrammingExercisesPE8---1/*ProgrammingExercise8-1*/#include<stdio.h>精心整理intmain(void){intch;intct=O;while((ch=getchar())!=EOF)ct++;printf("%dcharactersread\n",ct);return。;}PE8---3/*ProgrammingExercise8-3*//*Usingctype.heliminatesneedtoassumeconsecutivecoding*/#include<stdio.h>#include<ctype.h>intmain(void){intch;unsignedlonguct=0;unsignedlonglct=0;unsignedlongoct=O;while((ch=getchar())!=EOF)if(isupper(ch))uct++;elseif(islower(ch))lct++;elseoct++;n",lct);printf("%luothercharactersread\n",oct);returnO;}/*oryoucoulduseif(ch>='A'&&ch<='Z')uct++;elseif(ch>='a'&&ch<='z')lct++;elseoct++;*/PE8---5/*ProgrammingExercise8-5*//*binaryguess.c--animprovednumber-guesser*//*butreliesupontruthful,correctresponses*/#include<stdio.h>#include<ctype.h>intmain(void){inthigh=1OO;intlow=1;intguess=(high+low)/2;charresponse;printf("PickanintegerfromltolOO.Iwilltrytoguess");printf("it.\nRespondwithayifmyguessisright,with");printf("\inahifitishigh,andwithanlifitislow.\n");printf("Uh...isyournumber%d?\n",guess);while((response=getchar())!='y')/*getresponse*/{if(response=='\n')continue;if(response!='h'&&response!=T){printf("Idon'tunderstandthatresponse.Pleaseenterhfor\n");printf("high,lforlow,oryforcorrect.\n");

continue;}if(response=='h')high=guess-1;elseif(response==T)low=guess+1;guess=(high+low)/2;printf("Well,then,isit%d?\n",guess);}printf("IknewIcoulddoit!\n");returnO;}PE8---7/*ProgrammingExercise8-7*/#include<stdio.h>#include<ctype.h>#include<stdio.h>#defineBASEPAY18.75//$8.75perhour#defineBASEPAY29.33//$9.33perhour精心整理#defineBASEPAY310.00//$10.00perhour#defineBASEPAY411.20//$11.20perhour#defineBASEHRS40//hoursatbasepay#defineOVERTIME1.5//1.5time#defineAMT1300//1stratetier#defineAMT2150//2stratetier#defineRATE10.15//ratefor1sttier#defineRATE20.20//ratefor2ndtier#defineRATE30.25//ratefor3rdtierintgetfirst(void);voidmenu(void);intmain(void){doublehours;doublegross;doublenet;doubletaxes;doublepay;charresponse;menu();while((response=getfirst())!='q')

{

if(response=='\n')/*skipovernewlines*/continue;response=tolower(response);/*acceptAasa,etc.*/switch(response)

{

case'a':pay=BASEPAY1;break;case'b':pay=BASEPAY2;break;case'

c':pay=BASEPAY3;break;case'd':pay=BASEPAY4;break;

default:printf("Pleaseentera,b,c,d,orq.\n");menu();continue;//gotobeginningofloop} 'ii■-'■'printf("Enterthenumberofhoursworkedthisweek:");scanf("%lf',&hours);if(hours<=BASEHRS)gross=hours*pay;elsegross=BASEHRS*pay+(hours-BASEHRS)*pay*OVERTIME;if(gross<=AMT1)taxes=gross*RATE1;elseif(gross<=AMT1+AMT2)taxes=AMT1*RATE1+(gross-AMT1)*RATE2;elsetaxes=AMT1*RATE1+AMT2*RATE2+(gross-AMT1-AMT2)*RATE3;net=gross-taxes;printf("gross:$%.2f;taxes:$%.2f;net:$%.2f\n",gross,taxes,net);menu();}printf("Done.\n");return。;}

voidmenu(void)printf("'********************************************************'"n*********\n");printf("Enterthelettercorrespondingtothedesiredpayrate"

"oraction:\n”);printf("a)$%4.2f/hrb)$%4.2f/hr\n",BASEPAY1,BASEPAY2);printf("c)$%5.2f/hrd)$%5.2f/hr\n",BASEPAY3,BASEPAY4);printf("q)quit\nH);printf("\********************************************************\\n*********\n");intgetfirst(void){intch;ch=getchar();while(isspace(ch))ch=getchar();while(getchar()!='\n')continue;returnch;}Chapter9ProgrammingExercisesPE9---1/*ProgrammingExercise9-1*/精心整理#include<stdio.h>doublemin(double,double);intmain(void){doublex,y;printf("Entertwonumbers(qtoquit):");while(scanf(”%lf%lf",&x,&y)==2){printf("Thesmallernumberis%f.\n",min(x,y));printf("Nexttwovalues(qtoquit):");}printf("Bye!\n");return。;}doublemin(doublea,doubleb){

returna<b?a:b;}/*alternativeimplementationdoublemin(doublea,doubleb){if(a<b)returna;elsereturnb;}*/PE9---3i/*ProgrammingExercise9-3*/

#include<stdio.h>voidchLineRow(charch,intc,intr);intmain(void){charch;intcol,row;printf("Enteracharacter(#toquit):");while((ch=getchar())!='#'){if(ch=='\n')continue;printf("Enternumberofcolumnsandnumberofrows:");if(scanf("%d%d",&col,&ro

w)!=2)break;chLineRow(ch,col,row);printf("\nEnternextcharacter(#toquit):");}printf("Bye!\n");returnO;}//startrowsandcolsatOvoidchLineRow(charch,intc,intr){intcol,row;for(row=O;row<r;row++){for(col=O;col<c;col++)putchar(ch);putchar('\n');}return;}PE9---5/*ProgrammingExercise9-5*/#include<stdio.h>voidlarger_of(double*p1,double*p2);intmain(void)_{doublex,y;printf("Entertwonumbers(qtoquit):");while(scanf(”%lf%lf",&x,&y)==2){

larger_of(&x,&y);printf("Themodifiedvaluesare%fand%f.\n",x,y);printf("Nexttwovalues(qtoquit):");精心整理精心整理精心整理精心整理}printf("Bye!\n");return。;}voidlarger_of(double*p1,double*p2){if(*p1>*p2)*p2=*p1;else*p1=*p2;}//alternatively:/*voidlarger_of(double*p1,double*p2)_{*p1=*p2=*p1>*p2?*p1:*p2;}*/PE9---8/*ProgrammingExercise9-8*/#include<stdio.h>doublepower(doublea,intb);/*ANSIprototype*/intmain(void){doublex,xpow;intn;printf("Enteranumberandtheintegerpower");printf("towhich\nthenumberwillberaised.Enterq");printf("toquit.\n");while(scanf("%lf%d",&x,&n)==2){xpow=power(x,n);/*functioncall*/printf("%.3gtothepower%dis%.5g\n",x,n,xpow);printf("Enternextpairofnumbersorqtoquit.'n");}printf("Hopeyouenjoyedthispowertrip--bye!\n");return0;}doublepower(doublea,intb)/*functiondefinition*/{doublepow=1;inti;if(b==0){if(a==0)printf("OtotheOundefined;using1asthevalue\n");pow=1.0;}elseif(a==0)pow=0.0;elseif(b>0)for(i=1;i<=b;i++)pow*=a;else/*b<0*/pow=1.0/power(a,-b);returnpow;/*returnthevalueofpow*/}PE9---10/*ProgrammingExercise9-10*/#include<stdio.h>voidto_base_n(intx,intbase);intmain(void){intnumber;intb;intcount;printf("Enteraninteger(qtoquit):\n");while(scanf("%d",&number)==1){printf("Enternumberbase(2-10):");while((count=scanf("%d",&b))==1&&(b<2||b>10))

{

printf("baseshouldbeintherange2-10:");}if(count!=1)break;printf("Base%dequivalent:",b);to_base_n(number,b);putchar('\n');_ -printf("Enteraninteger(qtoquit):\n");}printf("Done.\n");return0;}voidto_base_n(intx,intbase)/*recursivefunction*/{intr;r=x%base;if(x>=base)to_base_n(x/base,base);putchar('0'+r);return;}Chapter10Programming ExercisesPE10---1精心整理/*ProgrammingExercise10-1*/#include<stdio.h>#defineMONTHS12//numberofmonthsinayear#defineYRS5//numberofyearsofdataintmain(void){//initializingrainfalldatafor2010-2014constfloatrain[YRS][MONTHS]={{4.3,4.3,4.3,3.0,2.0,1.2,0.2,020.4,2.4,3.5,6.6},{8.5,8.2,1.2,1.6,2.4,0.0,520.9,0.3,0.9,1.4,7.3},{9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4},{7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2},{7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2}};intyear,month;floatsubtot,total;printf("YEARRAINFALL(inches)\n");for(year=0,total=0;year<YRS;year++){/*foreachyear,sumrainfallforeachmonth*/for(month=0,subtot=0;month<MONTHS;month++)subtot+=*(*(rain+year)+month);printf("%5d%15.1f\n",2010+year,subtot);total+=subtot;/*totalforallyears*/}printf("\nTheyearlyaverageis%.1finches.\n\n",total/YRS);printf("MONTHLYAVERAGES:\n

\n");printf("JanFebMarAprMayJunJulAugSepOct");printf("NovDec\n");for(month=0;month<MONTHS;month++){/*foreachmonth,sumrainfalloveryears*/for(year=0,subtot=0;year<YRS;year++)subtot+=*(*(rain+year)+month);printf("%4.1f",subtot/YRS);}printf("\n");return0;}PE10---3/*ProgrammingExercise10-3*/#include<stdio.h>#defineLEN10intmax_arr(constintar[],intn);voidshow_arr(constintar[],intn);intmain(void){intorig[LEN]={1,2,3,4,12,6,7,8,9,10};intmax;show_arr(orig,LEN);max=max_arr(orig,LEN);printf("%d=largestvalue\n",max);return。;}intmax_arr(constintar[],intn){inti;intmax=ar[0];/*don'tuse0asinitialmaxvalue--failsifallarrayvaluesareneg*/for(i=1;i<n;i++)if(max<ar[i])max=ar[i];returnmax;}

voidshow_arr(constintar[],intn){inti;for(i=0;i<n;i++)printf("%d",ar[i]);putchar('\n');}PE10---5/*ProgrammingExercise10-5*/#include<stdio.h>精心整理#defineLENIOdoublemax_diff(constdoublear[],intn);voidshow_arr(constdoublear[],intn);intmain(void){doubleorig[LEN]={1.1,2,3,4,12,61.3,7,8,9,10};doublemax;show_arr(orig,LEN);max=max_diff(orig,L- EN);-printf("%g=maximumdifference\n",max);return。;}doublemax_diff(constdoublear[],intn){inti;doublemax=ar[O];doublemin=ar[0];for(i=1;i<n;i++){if(max<ar[i])max=ar[i];elseif(min>ar[i])min=ar[i];}

returnmax-min;}voidshow_arr(constdoublear[],intn){inti;for(i=O;i<n;i++)printf("%g",ar[i]);putchar('\n');}PE10---8/*ProgrammingExercise10-8*/#include<stdio.h>#defineLEN17#defineLEN23voidcopy_arr(intar1[],constintar2[],intn);voidshow_arr(constint[],int);intmain(void){intorig[LENl]={1,2,3,4,5,6,7};intcopy[LEN2];show_arr(orig,LEN1);copy_arr(copy,orig+2,LEN2);show_arr(copy,LEN2);return0;}_voidcopy_arr(intar1[],constintar2[],intn){inti;for(i=0;i<n;i++)ar1[i]=ar2[i];}voidshow_arr(constintar[],intn){inti;for(i=0;i<n;i++)printf("%d",ar[i]);putchar('\n');}PE10---11/*ProgrammingExercise10-11*/#include<stdio.h>#defineROWS3#defineCOLS5voidtimes2(intar[][COLS],intr);voidshowarr2(intar[][COLS],intr);intmain(void){intstuff[ROWS][COLS]={{1,2,3,4,5},{6,7,8,-2,10},精心整理精心整理精心整理精心整理{11,12,13,14,15}};showarr2(stuff,ROWS);putchar('\n');times2(stuff,ROWS);showarr2(stuff,ROWS);return。;}voidtimes2(intar[][COLS],intr){introw,col;for(row=0;row<r;row++)for(col=0;col<COLS;col++)ar[row][col]*=2;}voidshowarr2(intar[][COLS],intr){introw,col;for(row=0;row<r;row++){for(col=0;col<COLS;col++)printf("%d",ar[row][col]);putchar('\n');}}PE10---14/*ProgrammingExercise10-14*/#include<stdio.h>#defineROWS3#defineCOLS5

voidstore(doublear[],intn);doubleaverage2d(introws,intcols,doublear[rows][cols]);doublemax2d(introws,intcols,doublear[rows][cols]);voidshowarr2(introws,intcols,doublear[rows][cols]);doubleaverage(constdoublear[],intn);intmain(void){doublestuff[ROWS][COLS];introw;for(row=0;row<ROWS;row++){printf("Enter%dnumbersforrow%d\n",COLS,row+1);store(stuff[row],COLS);}printf("arraycontents:\n");showarr2(ROWS,COLS,stuff);for(row=0;row<ROWS;row++)printf("averagevalueofrow%d=%g\n",row+1,average(stuff[row],COLS));printf("averagevalueofallrows=

%g\n",average2d(ROWS,COLS,stuff));printf("largestvalue=%g\n",max2d(ROWS,COLS,stuff));printf("B

ye!\n");return0;}voidstore(doublear[],intn){inti;for(i=0;i<n;i++){printf("Entervalue#%d:",i+1);scanf("%lf",&ar[i]);}}doubleaverage2d(introws,intcols,doublear[rows][cols]){intr,c;doublesum=0.0;for(r=0;r<rows;r++)for(c=0;c<cols;c++)sum+=ar[r][c];if(rows*cols>0)returnsum/(rows*cols);elsereturn0.0;}doublemax2d(introws,intcols,doublear[rows][cols]){intr,c;doublemax=ar[0][0];for(r=0;r<rows;r++)for(c=0;c<cols;c++)if(maxvar[r][c])max=ar[r][c];returnmax;}voidshowarr2(introws,intcols,doublear[rows][cols]){introw,col;for(row=0;row<rows;row++){for(col=0;col<cols;col++)printf("%g",ar[row][col]);putchar('\n');}}doubleaverage(constdoublear[],intn){inti;doublesum=0.0;for(i=0;i<n;i++)sum+=ar[i];if(n>0)returnsum/n;elsereturn0.0;}Chapter11ProgrammingExercises

PE11---1/*ProgrammingExercise11-1*/#include<stdio.h>#defineLEN10char*getnchar(char*str,intn);intmain(void){charinput[LEN];char*check;check=getnchar(input,LEN-1);if(check==NULL)puts("lnputfailed.");elseputs(input);puts("Done.\n");return0;}char*getnchar(char*str,intn){inti;intch;for(i=0;i<n;i++){ch=getchar();if(ch!=EOF)str[i]=ch;elsebreak;}if(ch==EOF)returnNULL;else{str[i]='\0';returnstr;}}PE11---3/*ProgrammingExercise11-3*/#include<stdio.h>#defineLEN80char*getword(char*str);intmain(void){charinput[LEN];while(getword(input)!=NULL)puts(input);puts("Done.\n”);return。;}#include<ctype.h>char*getword(char*str){intch;char*orig=str;//skipoverinitialwhitespacewhile((ch=getchar())!=EOF&&isspace(ch))continue;if(ch==EOF)returnNULL;else*st^+=ch;//firstcharacterinword//getrestofwordwhile((ch=getchar())!=EOF&&!isspace(ch))*str++=ch;*str='\0';if(ch==EOF)returnNULL;else{while(ch!='\n')ch=getchar();returnorig;}}PE11---6/*ProgrammingExercise11-6*/}}精心整理#include<stdio.h>#includevstring.h>#defineLEN80_Boolis_within(constchar*str,charc);char*s_gets(char*st,intn);intmain(void){charinput[LEN];charch;intfound;;printf("Enterastring:");while(s_gets(input,LEN)&&nput[0]!='\0')_{printf("Enteracharacter:");ch=getchar();while(getchar()!='\n')continue;found=is_within(input,ch);if(found==0)printf("%cnotfoundinstring.\n",ch);elseprintf("%cfoundinstring%s\n",ch,input);printf("Nextstring:");

}puts("Done.\n");return。;}_Boolis_within(constchar*str,charch)一一{while(*str!=ch&&*str!='\O')str++;return*str;/*=Oif\Oreached,non-zerootherwise*/}char*s_gets(char*st,intn){char*ret_val;char*find;ret_val=fgets(st,n,stdin);if(ret_val){find=strchr(st,'\n');//lookfornewlineif(find)//iftheaddressisnotNULL,*find='\0';//placeanullcharacterthereelsewhile(getchar()!='\n')continue;}returnret_val;}_PE11---8

/*ProgrammingExercise11-8*/#include<stdio.h>#defineLEN20char*string_in(constchar*s1,constchar*s2);intmain(void)charorig[LEN]="transportation";char*find;puts(orig);find=string_in(orig,"port");if(find)puts(find);elseputs("Notfound");find=string_in(orig,"part");if(find)puts(find);elseputs("Notfound");return。;}#includevstring.h>char*string_in(constchar*s1,constchar*s2)intl2=strlen(s2);inttries;/*maximumnumberofcomparisons*/intnomatch=1;/*setto0ifmatchisfound*/tries=strlen(s1)+1-l2;if(tries>0)while((nomatch=strncmp(s1,s2,l2))&&tries--)s1++;if(nomatch)returnNULL;elsereturn(char*)s1;/*castconstaway*/精心整理PE11---10/*ProgrammingExercise11-10*/#include<stdio.h>#includevstring.h>//forstrchr();#defineLEN81intdrop_space(char*s);char*s_gets(char*st,intn);intmain(void){charorig[LEN];puts("Enterastringof80charactersorless:");while(s_gets(orig,LEN)&&orig[0]!='\0') -{drop_space(orig);puts(orig);puts("Enternextstring(orjustEntertoquit):");}puts("Bye!");returnO;}intdrop_space(char*s){char*pos;while(*s)/*orwhile(*s!='\0')*/{if(*s==''){pos=s;do{*pos=*(pos+1);pos++;}while(*pos);}elses++;}}char*s_gets(char*st,intn){char*ret_val;char*find;ret_val=fgets(st,n,stdin);if(ret_val){find=strchr(st,'\n');//lookfornewlineif(find)//iftheaddressisnotNULL,*find='\0';//placeanullcharacterthereelsewhile(getchar()!='\n')continue;}returnret_val;}_PE11---12/*pe11-12.c--countswordsandcertaincharacters*/

/*ProgrammingExercise11-11*/#include<stdio.h>#include<ctype.h>//forisspace()#include<stdbool.h>//forbool,true,falseintmain(void){charc;//readincharacterintlow_ct=0;〃numberoflowercasecharactersintup_ct=0;//numberofuppercasecharactersintdig_ct=O;〃numberofdigitsintn_words=0;//numberofwordsintpunc_ct=0;//numberofpunctuationmarksboolinword=false;//==trueifcisinawordprintf("Entertexttobeanalyzed(EOFtoterminate):\n");while((c=getchar())!=EOF){if(islower(c))low_ct++;elseif(isupper(c))up_c

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論