C Primer Plus第6版编程练习答案.docx
《C Primer Plus第6版编程练习答案.docx》由会员分享,可在线阅读,更多相关《C Primer Plus第6版编程练习答案.docx(77页珍藏版)》请在冰豆网上搜索。
CPrimerPlus第6版编程练习答案
Chapter2ProgrammingExercises
PE2--‐1
/*ProgrammingExercise2-1*/
#include<>intmain(void)
{printf("GustavMahler\n");printf("Gustav\nMahler\n");printf("Gustav");printf("Mahler\n");return0;
}
PE2--‐3
/*ProgrammingExercise2-3*/
#include<>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<>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<>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<>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");
}
Chapter3ProgrammingExercises
PE3--‐2
/*ProgrammingExercise3-2*/
#include<>intmain(void)
{
intascii;
printf("EnteranASCIIcode:
");scanf("%d",&ascii);
printf("%distheASCIIcodefor%c.\n",ascii,ascii);return0;
}
PE3--‐4
/*ProgrammingExercise3-4*/
#include<>intmain(void)
{floatnum;
printf("Enterafloating-pointvalue:
");scanf("%f",&num);
printf("fixed-pointnotation:
%f\n",num);printf("exponentialnotation:
%e\n",num);printf("pnotation:
%a\n",num);return0;
}
PE3--‐6
/*ProgrammingExercise3-6*/
#include<>intmain(void)
{
floatmass_mol=;/*massofwatermoleculeingrams*/floatmass_qt=950;/*massofquartofwateringrams*/floatquarts;floatmolecules;
printf("Enterthenumberofquartsofwater:
");scanf("%f",&quarts);
molecules=quarts*mass_qt/mass_mol;
printf("%fquartsofwatercontain%emolecules.\n",quarts,molecules);return0;
}
Chapter4ProgrammingExercises
PE4--‐1
/*ProgrammingExercise4-1*/
#include<>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<>intmain(void)
{floatheight;charname[40];
printf("Enteryourheightininches:
");scanf("%f",&height);printf("Enteryourname:
");scanf("%s",name);
printf("%s,youare%.3ffeettall\n",name,height/;
return0;
}
PE4--‐7
/*ProgrammingExercise4-7*/
#include<>#include<>intmain(void)
{floatot_f=/;doubleot_d=/;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);return0;
}
Chapter5ProgrammingExercises
PE5--‐1
/*ProgrammingExercise5-1*/
#include<>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<>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<>
intmain(void)/*findssumoffirstnintegers*/
{
intcount,sum;intn;
printf("Entertheupperlimit:
");scanf("%d",&n);count=0;sum=0;while(count++}
PE5--‐7
/*ProgrammingExercise5-7*/#include<>voidshowCube(doublex);
intmain(void)/*findscubeofenterednumber*/
{doubleval;
printf("Enterafloating-pointvalue:
");scanf("%lf",&val);showCube(val);return0;}
voidshowCube(doublex)
{
printf("Thecubeof%eis%e.\n",x,x*x*x);
}
Chapter6ProgrammingExercises
PE6--‐1
/**/
/*thisimplementationassumesthecharactercodes*/
/*aresequential,astheyareinASCII.*/
#include<>#defineSIZE26intmain(void){charlcase[SIZE];inti;for(i=0;i}
PE6--‐3
/**/
/*thisimplementationassumesthecharactercodes*/
/*aresequential,astheyareinASCII.*/
#include<>intmain(void)
{charlet='F';charstart;charend;
for(end=let;end>='A';end--)
{
for(start=let;start>=end;start--)printf("%c",start);printf("\n");
}return0;
}
PE6--‐6
/**/#include<>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
/**/#include<>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
/**/
#include<>#defineSIZE8intmain(void)
{intvals[SIZE];inti;
printf("Pleaseenter%dintegers.\n",SIZE);for(i=0;iprintf("Here,inreverseorder,arethevaluesyouentered:
\n");for(i=SIZE-1;i>=0;i--)printf("%d",vals[i]);printf("\n");return0;
}
PE6--‐13
/**/
/*Thisversionstartswiththe0power*/
#include<>#defineSIZE8intmain(void)
{
inttwopows[SIZE];inti;
intvalue=1;/*2tothe0*/
for(i=0;i{twopows[i]=value;value*=2;
}i=0;do{
printf("%d",twopows[i]);i++;}while(i}
PE6--‐14
/**/
/*ProgrammingExercise6-14*/
#include<>#defineSIZE8intmain(void)
{doublearr[SIZE];doublearr_cumul[SIZE];inti;
printf("Enter%dnumbers:
\n",SIZE);
for(i=0;i{
printf("value#%d:
",i+1);scanf("%lf",&arr[i]);/*orscanf("%lf",arr+i);*/
}
arr_cumul[0]=arr[0];/*setfirstelement*/for(i=1;iarr_cumul[i]=arr_cumul[i-1]+arr[i];
for(i=0;i}
PE6--‐16
/**/
#include<>
#defineRATE_SIMP
#defineRATE_COMP#defineINIT_AMTintmain(void)
{
doubledaphne=INIT_AMT;doubledeidre=INIT_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;
}
Chapter7ProgrammingExercises
PE7--‐1
/*ProgrammingExercise7-1*/#include<>intmain(void)
{charch;intsp_ct=0;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<>intmain(void)
{intn;doublesumeven=;intct_even=0;doublesumodd=;intct_odd=0;
while(scanf("%d",&n)==1&&n!
=0)
{
if(n%2==0)
{
sumeven+=n;
++ct_even;
}
else:
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);
return0;
}
PE7--‐7
f;taxes:
$%.2f;net:
$%.2f\n",gross,taxes,net);
return0;
}
PE7--‐9
/*ProgrammingExercise7-9*/
#include<>#include<>intmain(void)
{
intlimit;intnum;intdiv;
boolnumIsPrime;n");for(num=2;num<=limit;num++)
{
for(div=2,numIsPrime=true;(div*div)<=num;div++)if(num%div==0)numIsPrime=false;if(numIsPrime)
printf("%disprime.\n",num);
}
printf("Enterapositiveinteger(qtoquit):
");
}
printf("Done!
\n");return0;
}
PE7--‐11
/**/
/*ProgrammingExercise7-11*/
#include<>#include<>intmain(void)
{
constdoubleprice_artichokes=;constdoubleprice_beets=;constdoubleprice_carrots=;constdoubleDISCOUNT_RATE=;constd