C PRIMER PLUS 第七八正确答案.docx

上传人:b****7 文档编号:8964191 上传时间:2023-02-02 格式:DOCX 页数:22 大小:18.47KB
下载 相关 举报
C PRIMER PLUS 第七八正确答案.docx_第1页
第1页 / 共22页
C PRIMER PLUS 第七八正确答案.docx_第2页
第2页 / 共22页
C PRIMER PLUS 第七八正确答案.docx_第3页
第3页 / 共22页
C PRIMER PLUS 第七八正确答案.docx_第4页
第4页 / 共22页
C PRIMER PLUS 第七八正确答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C PRIMER PLUS 第七八正确答案.docx

《C PRIMER PLUS 第七八正确答案.docx》由会员分享,可在线阅读,更多相关《C PRIMER PLUS 第七八正确答案.docx(22页珍藏版)》请在冰豆网上搜索。

C PRIMER PLUS 第七八正确答案.docx

CPRIMERPLUS第七八正确答案

Chapter7

PE7-1

#include

intmain(void)

{

charch;

intsp_c,re_c,oc_c;

sp_c=re_c=oc_c=0;

printf("inuputastring,andthisprogramwilloutthecountof...\n");

while((ch=getchar())!

='#')

{

if('\n'==ch)

re_c++;

elseif(''==ch)

sp_c++;

else

oc_c++;

}

printf("%d%s,%d%s,%d%s",re_c+1,"newlines",sp_c,"spaces",oc_c,"othercharacters\n");

printf("Bye!

\n");

return0;

}

PE7-2

#include

intmain(void)

{

charch;

intcount=0;

printf("inuputastring,andthisprogramwilloutitandASCII\n(#toquit)...\n");

while((ch=getchar())!

='#')

{

if(ch=='\n'){

printf("\ninputanotherstring(#toquit):

\n");

continue;

}

while(count==8){

printf("\n");

count=0;

}

printf("%c,%d",ch,ch);

count++;

}

printf("\nBye!

\n");

return0;

}

PE7-3

#include

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==1)

{

sumodd+=n;

++ct_odd;

}

else

{

sumeven+=n;

++ct_even;

}

}

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");

return0;

}

PE7-4

#include

intmain(void)

{

charch;

intex_c,pe_c;

ex_c=pe_c=0;

printf("inuputastring,andthisprogramwillswitch.to!

and!

to!

!

\n(#toquit)...\n");

while((ch=getchar())!

='#')

{

if(ch=='.'){

printf("!

");

pe_c++;

continue;

}

elseif(ch=='!

'){

printf("!

!

");

ex_c++;

continue;

}

printf("%c",ch);

}

printf("\nthereare%dpeswitchingand%dexswitching",pe_c,ex_c);

printf("\nBye!

\n");

return0;

}

PE7-5

#include

intmain(void)

{

charch;

intct1=0;

intct2=0;

printf("inuputastring,andthisprogramwillswitch.to!

and!

to!

!

\n(#toquit)...\n");

while((ch=getchar())!

='#')

{

switch(ch)

{

case'.':

putchar('!

');

++ct1;

break;

case'!

':

putchar('!

');

putchar('!

');

++ct2;

break;

default:

putchar(ch);

}

}

printf("%dreplacementsof.with!

\n",ct1);

printf("%dreplacementsof!

with!

!

\n",ct2);

return0;

}

PE7-6

#include

intmain(void){

charch;

inte_c,i_c,st_c;

e_c=i_c=st_c=0;

printf("inputyourstringandthisprogramwilloutputthecount\n(#toquit):

\n");

while((ch=getchar())!

='#'){//当输入ei时st_c=10,i_c=10

if(ch!

='i'){//当输入ie时st_c=10,i_c=1,输入其他字符st_c=2

st_c=2;

if(ch=='e'){

st_c=10;

i_c=1;

}

}

if(ch=='i')

i_c=10;

if(st_c==i_c){//防止eii的bug

e_c++;

st_c=1;

}

}

printf("\nthereis%deiinyourstring!

\nbye!

\n",e_c);

return0;

}

PE7-7

#include

#defineBASEPAY10/*$10perhour*/

#defineBASEHRS40/*hoursatbasepay*/

#defineOVERTIME1.5/*1.5time*/

#defineAMT1300/*1stratetier*/

#defineAMT2150/*2stratetier*/

#defineRATE10.15/*ratefor1sttier*/

#defineRATE20.20/*ratefor2ndtier*/

#defineRATE30.25/*ratefor3rdtier*/

intmain(void)

{

doublehours;

doublegross;

doublenet;

doubletaxes;

printf("Enterthenumberofhoursworkedthisweek:

");

scanf("%lf",&hours);

if(hours<=BASEHRS)

gross=hours*BASEPAY;

else

gross=BASEHRS*BASEPAY+(hours-BASEHRS)*BASEPAY*OVERTIME;

if(gross<=AMT1)

taxes=gross*RATE1;

elseif(gross<=AMT1+AMT2)

taxes=AMT1*RATE1+(gross-AMT1)*RATE2;

else

taxes=AMT1*RATE1+AMT2*RATE2+(gross-AMT1-AMT2)*RATE3;

net=gross-taxes;

printf("gross:

$%.2f;taxes:

$%.2f;net:

$%.2f\n",gross,taxes,net);

return0;

}

PE7-8

#include

#include

#defineBASEPAY10/*$10perhour*/

#defineBASEHRS40/*hoursatbasepay*/

#defineOVERTIME1.5/*1.5time*/

#defineAMT1300/*1stratetier*/

#defineAMT2150/*2stratetier*/

#defineRATE10.15/*ratefor1sttier*/

#defineRATE20.20/*ratefor2ndtier*/

#defineRATE30.25/*ratefor3rdtier*/

intmain(void){

doublehours;

doublegross;

doublenet;

doubletaxes;

intchoose;inttest=1;

printf("*****************************************************************\n");

printf("Enterthenumbercorrespondingtothedesiredpayrateoraction:

\n");

printf("1)$8.75/hr\t\t2)$9.33/hr\n3)$10.00/hr\t\t4)$11.20/hr\n5)quit\n");

printf("*****************************************************************\n");

printf("Enterthenumberofhoursworkedthisweek:

");

while((scanf("%d",&choose))==1){

switch(choose){

case1:

hours=8.75;

break;

case2:

hours=9.33;

break;

case3:

hours=10.00;

break;

case4:

hours=11.20;

break;

case5:

test=0;

break;

default:

test=2;

printf("error!

tryagain:

\n");

break;

}

if(test==2){

test=1;

continue;

}

if(test==1){

if(hours<=BASEHRS)

gross=hours*BASEPAY;

else

gross=BASEHRS*BASEPAY+(hours-BASEHRS)*BASEPAY*OVERTIME;

if(gross<=AMT1)

taxes=gross*RATE1;

elseif(gross<=AMT1+AMT2)

taxes=AMT1*RATE1+(gross-AMT1)*RATE2;

else

taxes=AMT1*RATE1+AMT2*RATE2+(gross-AMT1-AMT2)*RATE3;

net=gross-taxes;

printf("gross:

$%.2f;taxes:

$%.2f;net:

$%.2f\nnext:

",gross,taxes,net);

}

elseif(test==0){

break;

}

}

printf("Bye!

\n");

return0;

}

PE7-9

#include

#defineNO0

#defineYES1

intmain(void)

{

longnum;/*valuetobechecked*/

longdiv;/*potentialdivisors*/

longlim;/*limittovalues*/

intprime;

printf("Pleaseenterlimittovaluestobechecked;");

printf("Enterqtoquit.\n");

while(scanf("%ld",&lim)==1&&lim>0)

{

for(num=2;num<=lim;num++)

{

for(div=2,prime=YES;(div*div)<=num;div++)

if(num%div==0)

prime=NO;/*numberisnotprime*/

if(prime==YES)

printf("%ldisprime.\n",num);

}

printf("Pleaseenteranotherlimit;");

printf("Enterqtoquit.\n");

}

return0;

}

PE7-11

#include

#include

intmain(void)

{

constdoubleprice_artichokes=1.25;

constdoubleprice_beets=0.65;

constdoubleprice_carrots=0.89;

constdoubleDISCOUNT_RATE=0.05;

charch;

doublelb_artichokes;

doublelb_beets;

doublelb_carrots;

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_artichokes);

break;

case'b':

printf("Enterpoundsofbeets:

");

scanf("%lf",&lb_beets);

break;

case'c':

printf("Enterpoundsofcarrots:

");

scanf("%lf",&lb_carrots);

break;

default:

printf("%cisnotavalidchoice.\n");

}

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=3.50;

elseif(lb_total<20)

shipping=10.0;

else

shipping=8.0+0.1*lb_total;

if(cost_total>100.0)

discount=DISCOUNT_RATE*cost_total;

else

discount=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("Volumediscount:

$%.2f\n",discount);

printf("Shipping:

$%.2f\n",shipping);

printf("Totalcharges:

$%.2f\n",final_total);

return0;

}

Chapter8

PE8-1

//Ctrl+z结束文件

#include

intmain(void)

{

intch;

intct=0;

while((ch=getchar())!

=EOF)

ct++;

printf("%dcharactersread\n",ct);

return0;

}

PE8-3

/*ProgrammingExercise8-3*/

/*Usingctype.heliminatesneedtoassumeASCIIcoding*/

#include

#include

intmain(void)

{

intch;

intuct=0;

intlct=0;

while((ch=getchar())!

=EOF)

if(isupper(ch))

uct++;

elseif(islower(ch))

lct++;

printf("%duppercasecharactersread\n",uct);

printf("%dlowercasecharactersread\n",lct);

return0;

}

/*

oryoucoulduse

if(ch>='A'&&ch<='Z')

uct++;

elseif(ch>='a'&&ch<='z')

lct++;

*/

PE8-5

/*ProgrammingExercise8-5*/

/*binaryguess.c--animprovednumber-guesser*/

#include

#include

intmain(void)

{

inthigh=100;

intlow=1;

intguess=(high+low)/2;

charresponse;

printf("Pickanintegerfrom1to100.Iwilltrytoguess");

printf("it.\nRespondwithayifmyguessisright,with");

printf("\nahifitishigh,andwithanlifitislow.\n");

printf("Uh...isyournumber

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1