c语言程序设计现代方法习题答案.docx
- 文档编号:17325622
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:78
- 大小:42.72KB
c语言程序设计现代方法习题答案.docx
《c语言程序设计现代方法习题答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计现代方法习题答案.docx(78页珍藏版)》请在冰点文库上搜索。
c语言程序设计现代方法习题答案
Chapter2
AnswerstoSelectedExercises
2.[was#2](a)Theprogramcontainsonedirective(#include)andfourstatements(threecallsofprintfandonereturn).
(b)
Parkinson'sLaw:
Workexpandssoastofillthetimeavailableforitscompletion.
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,thisprogramproducedthefollowingoutput:
Valueofi:
5618848
Valueofj:
0
Valueofk:
6844404
Valueofx:
Valueofy:
Valueofz:
Thevaluesprinteddependonmanyfactors,sothechancethatyou'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,theprogramisslightlyshorter:
#include<>intmain(void)
{
floatoriginal_amount;
printf("Enteranamount:
");scanf("%f",&original_amount);printf("Withtaxadded:
$%.2f\n",original_amount*1.05f);
return0;
}
Chapter3
AnswerstoSelectedExercises2.[was#2]
(a)printf("%",x);
(b)printf("%",x);
(c)printf("%-8.3f",x);
(d)printf("%6.0f",x);
5.[was#8]Thevaluesofx,i,andywillbe,45,and.6,respectively.
AnswerstoSelectedProgrammingProjects1.[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]#include<>intmain(void)
{
intprefix,group,publisher,item,check_digit;
printf("EnterISBN:
");
scanf("%d-%d-%d-%d-%d",&prefix,&group,&publisher,&item,&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\nPublishercode:
%d\nItemnumber:
%d\nCheckdigit:
%d\n",prefix,group,publisher,item,check_digit);
*/
return0;
}
Chapter4
AnswerstoSelectedExercises2.[was#2]NotinC89.Supposethatiis9andjis7.Thevalueof(-i)/jcouldbeeither-1or-2,dependingontheimpiementation.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)00013.[was#8]Theexpression++iisequivalentto(i+=1).Thevalueofbothexpressionsisiaftertheincrementhasbeenperformed.
AnswerstoSelectedProgrammingProjects2.[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
AnswerstoSelectedExercises2.[was#2](a)1
(b)1
(c)1
(d)1
4.[was#4](i>j)-(i 6.[was#12]Yes,thestatementislegal.Whennisequalto5,itdoesnothing,since5isnotequalto-9. 10.[was#16]Theoutputisonetwosincetherearenobreakstatementsafterthecases. AnswerstoSelectedProgrammingProjects2.[was#6]#include<>intmain(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]#include<>intmain(void) { intspeed; printf("Enterawindspeedinknots: ");scanf("%d",&speed); if(speed<1)printf("Calm\n"); elseif(speed<=3)printf("Lightair\n"); elseif(speed<=27)printf("Breeze\n"); elseif(speed<=47)printf("Gale\n"); elseif(speed<=63)printf("Storm\n"); elseprintf("Hurricane\n"); return0; } 6.[was#10]#include<>intmain(void) { intcheck_digit,d,i1,i2,i3,i4,i5,j1,j2,j3,j4,j5,first_sum,second_sum,total; printf("Enterthefirst(single)digit: ");scanf("%1d",&d); printf("Enterfirstgroupoffivedigits: ");scanf("%1d%1d%1d%1d%1d",&i1,&i2,&i3,&i4,&i5);printf("Entersecondgroupoffivedigits: ");scanf("%1d%1d%1d%1d%1d",&j1,&j2,&j3,&j4,&j5);printf("Enterthelast(single)digit: "); scanf("%1d",&check_digit); first_sum=d+i2+i4+j1+j3+j5;second_sum=i1+i3+i5+j2+j4;total=3*first_sum+second_sum; if(check_digit==9-((total-1)%10))printf("VALID\n"); else printf("NOTVALID\n"); return0; } 10.[was#14]#include<>intmain(void) intgrade; printf("Enternumericalgrade: ");scanf("%d",&grade); if(grade<0||grade>100){printf("Illegalgrade\n");return0; } switch(grade/10){ case10: case9: printf("Lettergrade: A\n");break; case8: printf("Lettergrade: B\n");break; case7: printf("Lettergrade: C\n");break; case6: printf("Lettergrade: D\n");break; case5: case4: case3: case2: case1: case0: printf("Lettergrade: F\n");break; } return0; } Chapter6 AnswerstoSelectedExercises4.[was#10](c)isnotequivalentto(a)and(b),becauseiisincrementedbeforetheloopbodyisexecuted. 10.[was#12]Considerthefollowingwhileloop: while(…){ continue; Theequivalentcodeusinggotowouldhavethefollowingappearance: while(…){ gotoloop_end; loop_end: ;/*nullstatement*/} 12.[was#14] for(d=2;d*d<=n;d++)if(n%d==0) break; Theifstatementthatfollowstheloopwillneedtobemodifiedaswell: if(d*d<=n) printf("%disdivisibleby%d\n",n,d);else printf("%disprime\n",n); 14.[was#16]Theproblemisthesemicolonattheendofthefirstline.Ifweremoveit,thestatementisnowcorrect: if(n%2==0)printf("niseven\n"); AnswerstoSelectedProgrammingProjects 2.[was#2]#include<>intmain(void) { intm,n,remainder; printf("Entertwointegers: ");scanf("%d%d",&m,&n); while(n! =0){ remainder=m%n;m=n; n=remainder; } printf("Greatestcommondivisor: %d\n",m); return0; } 4.[was#4]#include<>intmain(void) { floatcommission,value; printf("Entervalueoftrade: ");scanf("%f",&value); while(value! =0.0f){ if(value<2500.00f) commission=30.00f+.017f*value;elseif(value<6250.00f) commission=56.00f+.0066f*value;elseif(value<20000.00f) commission=76.00f+.0034f*value;elseif(value<50000.00f) commission=100.00f+.0022f*value;elseif(value<500000.00f) commission=155.00f+.0011f*value;else commission=255.00f+.0009f*value; if(commission<39.00f)commission=39.00f; printf("Commission: $%.2f\n\n",commission); printf("Entervalueoftrade: ");scanf("%f",&value); return0; } 6.[was#6]#include<>intmain(void) { inti,n; printf("Enterlimitonmaximumsquare: ");scanf("%d",&n); for(i=2;i*i<=n;i+=2)printf("%d\n",i*i); return0; } 8.[was#8]#include<>intmain(void) { inti,n,start_day; printf("Enternumberofdaysinmonth: "); scanf("%d",&n); printf("Enterstartingdayoftheweek(1=Sun,7=Sat): ");scanf("%d",&start_day); /*printanyleading"blankdates"*/for(i=1;i /*nowprintthecalendar*/for(i=1;i<=n;i++){printf("%3d",i); if((start_day+i-1)%7==0)printf("\n"); return0; Chapter7 AnswerstoSelectedExercises 3.[was#4](b)isnotlegal. 4.[was#6](d)isillegal,sinceprintfrequiresastring,notacharacter,asitsfirstargument. 10.[was#14]unsignedint,becausethe(int)castappliesonlytoj,notj*k. 12.[was#16]Thevalueofiisconvertedtofloatandaddedtof,thentheresultisconvertedtodoubleandstoredind. 14.[was#18]No.Convertingftointwillfailifthevaluestoredinfexceedsthelargestvalueoftypeint. AnswerstoSelectedProgrammingProjects1.[was#2]shortintvaluesareusuallystoredin16bits,causingfailureat182.intandlongintvaluesareusuallystoredin32bits,withfailureoccurringat46341. 2.[was#8]#include<>intmain(void) { inti,n; charch; printf("Thisprogramprintsatableofsquares.\n");printf("Enternumberofentriesintable: ");scanf("%d",&n); ch=getchar(); /*disposeofnew-linecharacterfollowingnumberofentries*//*couldsimplybegetchar();*/ for(i=1;i<=n;i++){ printf("%10d%10d\n",i,i*i); if(i%24==0){ printf("PressEntertocontinue..."); ch=getchar();/*orsimplygetchar();*/} } return0; } 5.[was#10]#include<> #include<>intmain(void){ intsum=0;charch; printf("Enteraword: "); while((ch=getchar())! ='\n') switch(toupper(ch)){ case'D': case'G': sum+=2;break; case'B': case'C': case'M': case'P': sum+=3;break; case'F': case'H': case'V': case'W': case'Y': sum+=4;break; case'K':
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 现代 方法 习题 答案