C语言程序设计现代方法第二版习题答案.docx
《C语言程序设计现代方法第二版习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计现代方法第二版习题答案.docx(85页珍藏版)》请在冰豆网上搜索。
C语言程序设计现代方法第二版习题答案
时磊忖呎…
Chapter2
AnswerstoSelectedExercises
2.[was#2](a)Theprogramcontainsonedirective(#inelude)andfourstatements(threecallsofprintfandonereturn).
(b)
Parkinson'sLaw:
Workexpandssoastofillthetime
availableforitscompletion.
3.[was#4]
#include
intmain(void)
{
intheight=8,length=12,width=10,volume;
volume=height*length*width;
printf("Dimensions:
%dx%dx%d\n",length,width,height);
printf("Volume(cubicinches):
%d\n",volume);
printf("Dimensionalweight(pounds):
%d\n",(volume+165)/166);
return0;
}
4.[was#6]Here'sonepossibleprogram:
#include
intmain(void)
{
inti,j,k;
floatx,y,z;
printf("Valueofi:
%d\n",i);
printf("Valueofj:
%d\n",j);
printf("Valueofk:
%d\n",k);
printf("Valueofx:
%g\n",x);
printf("Valueofy:
%g\n",y);
时磊忖呎…
printf("Valueofz:
%g\n",z);
return0;
}
WhencompiledusingGCCandthenexecuted,thisprogramproducedthe
followingoutput:
Valueofi:
5618848
Valueofj:
0
Valueofk:
6844404
Valueofx:
3.98979e-34
Valueofy:
9.59105e-39
Valueofz:
9.59105e-39
Thevaluesprinteddependonmanyfactors,sothechaneethatyou'llgetexactlythesenumbersissmall.
5.[was#10](a)isnotlegalbecause100_bottlesbeginswithadigit.
8.[was#12]Thereare14tokens:
a,=,(,3,*,q,-,p,*,p,),/,3,
and;.
AnswerstoSelectedProgrammingProjects
4.[was#8;modified]
#include
intmain(void)
{
floatoriginal_amount,amount_with_tax;
printf("Enteranamount:
");
scanf("%f",&original_amount);
amount_with_tax=original_amount*1.05f;
printf("Withtaxadded:
$%.2f\n",amount_with_tax);
return0;
}
Theamount_with_taxvariableisunnecessary.Ifweremoveit,theprogram
isslightlyshorter:
#include
intmain(void)
{
floatoriginal_amount;
printf("Enteranamount:
");
seanf("%f",&original_amount);
printf("Withtaxadded:
$%.2f\n",original_amount*1.05f);
return0;
}
Chapter3
AnswerstoSelectedExercises
2.[was#2]
(a)printf(%8.1e",x);
(b)printf("%10.6e",x);
(e)printf("%-8.3f",x);
(d)printf("%6.0f",x);
5.
respectively.
[was#8]Thevaluesofx,i,andywillbe12.3,45,and.6,
AnswerstoSelectedProgrammingProjects
1.[was#4;modified]
#include
intmain(void)
{
intmonth,day,year;
printf("Enteradate(mm/dd/yyyy):
");
scanf("%d/%d/%d",&month,&day,&year);
printf("Youenteredthedate%d%.2d%.2d\n",year,month,day);
return0;
3.[was#6;modified]
#includeintmain(void)
{
intprefix,group,publisher,item,check_digit;
printf("EnterISBN:
");
scanf("%d-%d-%d-%d-%d",&prefix,&group,&publisher,&tem,&check_digit);
printf("GS1prefix:
%d\n",prefix);
printf("Groupidentifier:
%d\n",group);
printf("Publishercode:
%d\n",publisher);
printf("Itemnumber:
%d\n",item);
printf("Checkdigit:
%d\n",check_digit);
/*Thefiveprintfcallscanbecombinedasfollows:
printf("GS1prefix:
%d\nGroupidentifier:
%d\nPublisher
code:
%d\nItemnumber:
%d\nCheckdigit:
%d\n",
prefix,group,publisher,item,check_digit);
*/
return0;
}
Chapter4
AnswerstoSelectedExercises
2.[was#2]NotinC89.Supposethatiis9andjis7.Thevalueof(-i)/jcouldbeeither—1or—2,dependingontheimplementation.Ontheotherhand,thevalueof-(i/j)isalways—1,regardlessoftheimplementation.
InC99,ontheotherhand,thevalueof(-i)/jmustbeequaltothevalueof-(i/j).
9.[was#6]
(a)638
(b)321
(c)2-13
(d)000
时磊忖呎…
13.[was#8]Theexpression++iisequivalentto(i+=1).Thevalueofbothexpressionsisiaftertheincrementhasbeenperformed.
AnswerstoSelectedProgrammingProjects
2.[was#4]
#include
intmain(void)
{
intn;
printf("Enterathree-digitnumber:
");
scanf("%d",&n);
printf("Thereversalis:
%d%d%d\n",n%10,(n/10)%10,n/100);
return0;
}
Chapter5
AnswerstoSelectedExercises
2.[was#2]
(a)1
(b)1
(c)1
(d)1
4.[was#4](i>j)-(i6.[was#12]Yes,thestatementislegal.Whennisequalto5,itdoesnothing,since5isnotequalto-9.
10.[was#16]Theoutputis
onetwo
sincetherearenobreakstatementsafterthecases.
AnswerstoSelectedProgrammingProjects2.[was#6]
#includeintmain(void)
{
inthours,minutes;
printf("Entera24-hourtime:
");scanf("%d:
%d",&hours,&minutes);
printf("Equivalent12-hourtime:
");
if(hours==0)
printf("12:
%.2dAM\n",minutes);
elseif(hours<12)
printf("%d:
%.2dAM\n",hours,minutes);elseif(hours==12)
printf("%d:
%.2dPM\n",hours,minutes);else
printf("%d:
%.2dPM\n",hours-12,minutes);
return0;
}
4.[was#8;modified]
#includeintmain(void)
{
intspeed;
printf("Enterawindspeedinknots:
");scanf("%d",&spee