Cprimerplus课后编程练习答案_第1页
Cprimerplus课后编程练习答案_第2页
Cprimerplus课后编程练习答案_第3页
Cprimerplus课后编程练习答案_第4页
Cprimerplus课后编程练习答案_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章概览编程练习1您刚刚被MacroMuscle有限公司(SoftwareforHardBodies)聘用。该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。1. 将英寸值转化为厘米值2. 显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章C语言概述编程练习1 编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在

2、一行上输出您的名和姓。输出应如下所示(当然里面要换成您的姓名):AntonBrucknerAntonBrucknerAntonBruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<>intmain(void)printf("HeJinn");printf("Hen");printf("Jinn");printf("HeJinn");return(0);2编写一个程序输出您的姓名及地址。#include<>intmain(void)printf

3、("Name:HeJinn");printf("Address:CAUCn");return(0);3 编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年(fractionalyear)和闰年(leapyear)的问题。#include<>intmain(void)intage=22;printf("Age:%dn",age);printf("Day:%dn",age*356);return(0);4 编写一个能够产生下面输出的程序:Forhe'sajollygoodfellow!F

4、orhe'sajollygoodfellow!Forhe'sajollygoodfellow!Whichnobodycandeny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。#include<>voidprintf1(void);voidprintf2(void);intmain(void)printf1();printf1();printf1();printf2();return(0);voidprintf1(void)printf("Forhe'sajollygoo

5、dfellow!n");voidprintf2(void)printf("Whichnobodycandeny!n");5 编写一个程序,创建一个名为toes的整数变量。让程序把toes设置为10。再让程序计算两个toes的和以及toes的平方。程序应该输出所有的3个值,并分别标识它们。#include<>intmain(void)inttoes=10;inttoes_add;inttoes_square;toes_add=toes+toes;toes_square=toes*toes;printf("toes=%dntoes_add=%dn

6、toes_square=%dn",toes,toes_add,toes_square);return(0);6 编写一个能够产生下列输出的程序:Smile!Smile!SmileSmile!Smile!Smile!在程序中定义一个能显示字符串smile卜一次的函数,并在需要时使用该函数。#include<>voiddisplay(void);intmain(void)display();display();display();printf("n");display();display();printf("n");display();

7、printf("n");return(0);voiddisplay(void)printf("Smile!");7 编写一个程序,程序中要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three"。函数two()应该能在一行中显示单词"two"。main()函数应该在调用one_three()函数之前显示短语"startingnow:",函数调用之后要显示"done!"o这样,最后

8、的输出结果应如下所示:startingnowonetwothreedone!#include<>voidone_three(void);voidtwo(void);intmain(void)printf("startingnow:n");one_three();printf("done!n");return(0);voidone_three(void)printf("Onen");two();printf("Threen");printf("Twon");第三章数据和C编程练习1 通

9、过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。#include<>intmain(void)unsignedinta=95;floatb=;floatc=b*10;floatd=;printf("%u+1=%un",a,a+1);printf("%e*10=%en",b,c);printf("%f/10=%fn",d,d/10);return(0);2 编写一个程序,要求输入一个ASCII码值(如66),然后输出相应的字符。#include<>intmain(v

10、oid)chara;scanf("%d",&a);printf("%cn",a);return(0);3 编写一个程序,发出警报声,并打印下列文字:Startledbythesuddensound,Sallyshouted,"BytheGreatPumpkin,whatwasthat!"#include<>by the sudden sound,Sally shouted,"By the Great pumpkin,what wasprintf("aStartledthat!"n&qu

11、ot;);return(0);4 编写一个程序,读入一个浮点数,并分别以小数形式和指数形式打印。输出应如同下面格式(实际显示的指数位数也许因系统而不同):Theinputisor+001.#include<>intmain(void)floata;scanf("%f",&a);printf("Theinputis%for%en",a,a);return(0);5 .一年约有Xl07So编写一个程序,要求输入您的年龄,然后显示该年龄合多少秒。#include<>intmain(void)floata;printf("

12、;Pleaseinputyourage:");scanf("%f",&a);printf("Yourageis%esecondsn",a*;return(0);个水分子的质量约为XI。'23g,l夸脱水大约有950g。编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少个水分子。#include<>intmain(void)floata;printf("Pleaseinputhowmuchquartsthewateris:");scanf("%f",&a);pr

13、intf("%fquartswaterhas%emolecules.n",a,a*950/3E-23);return(0);7.1英寸等于。编写一个程序,要求输入您的身高(以英寸为单位),然后显示该身高值等于多少厘米。如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单位进行显示。#include<>intmain(void)floata;printf("Pleaseinputyourheightbyinches:");scanf("%f",&a);printf("Yourheightis%fcm.

14、n",a*;return(0);第4章字符串和格式化输入/输出编程练习1 编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。#include<>intmain(void)charsurname20,firstname20;printf("Pleaseinputyourfirstnameandsurname:");scanf("%s",firstname);scanf("%s",surname);printf("Youare%s,%s.n",firstname,surname);

15、return(0);2 编写一个程序,要求输入名字,并执行以下操作:a把名字引在双引号中打印出来。b在宽度为20个字符的字段内打印名字,并且整个字段引在引号内。c.在宽度为20个字符的字段的左端打印名字,并且整个字段引在引号内。d在比名字宽3个字符的字段内打印它。#include<>#include<>intmain(void)charname20;intwidth;printf("Pleaseinputyourname:");scanf("%s",name);printf("A:"%s"n"

16、;,name);printf("B:"%20s"n",name);printf("C:"%-20s"n",name);width=strlen(name)+3;printf("D:"%*s"n",width,name);Theinputisor+001.b.Theinputis+or+001.#include<>intmain(void)floata;printf("Pleaseinputafloat:");scanf("%f&quo

17、t;,&a);printf("inputis%.1for%.1en",a,a);printf("inputis%+.3for%.3En",a,a);return(0);4 编写个程序,要求输入身高(以英寸为单位)和名字,然后以如下形式显示:Dabney,youarefeettall使用float类型,使用/作为除号。如果您愿意,可以要求以厘米为单位输入身高,并以米为单位进行显示。#include<>intmain(void)floatheight;charname20;printf("Pleaseinputyourheigh

18、tbyinches:");scanf("%f",&height);printf("Pleaseinputyourname:");scanf("%s",name);printf("%s,youare%ffeettalln",name,height/12);return(0);5 .编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下行打印每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:MelissaHoneybee78然后打印相同的信息,但是字母个数与

19、相应单词的开始对齐。#include<>#include<>intmain(void)charsurname20,firstname20;printf("Pleaseinputyourfirstnameandsurname:");scanf("%s",firstname);scanf("%s",surname);printf("%s%s.n",firstname,surname);printf("%*d%*dn",strlen(firstname),strlen(firs

20、tname),strlen(surname),strlen(surname);n",firstname,surname);printf("%-*dn",a);printf("%.12en",a);printf("%.16enn",a);printf("floatb=:n");printf("%.4fn",b);printf("%.12fn",b);printf("%.16fnn",b);printf("FLT_DIG:%dn"

21、,FLT_DIG);printf("DBL_DIG:%dn",DBL_DIG);return(0);7 编写一个程序,要求用户输入行驶的英里数和消耗汽油的加仑数。接着应该计算和显示消耗每加仑汽油行驶的英里数,显示方式是在小数点右侧显示一个数字。然后,根据l加仑约等于升,l英里约等于公里的规则,它应该把每加仑英里数转换成每100公里的升数(欧洲通用的燃料消耗表示法),并显示结果,显示方式是在小数点右侧显示一个数字(请注意,美国方案测量每单位距离消耗的燃料数,而欧洲方案测量每单位燃料的行驶距离)。用符号常量表示两个转换系数(使用const或#define)。#include&l

22、t;>#defineGALLONfn",mile/gallon);printf("Litresper100kilometre:%.1fn",gallon*GALLON/(100*mile*MILE);return(0);第5章运算符、表达式和语句编程练习1 编写一个程序。将用分钟表示的时间转换成以小时和分钟表示的时间。使用#define或者const来创建一个代表60的符号常量。使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。#include<>#defineHOUR60intmain(void)intminut

23、es;printf("Pleaseinputtheminutes:");scanf("%d",&minutes);while(minutes>0)printf("%dhoursand%dminutesn",minutes/HOUR,minutes%HOUR);printf("Pleaseinputtheminutes:");scanf("%d",&minutes);return(0);2 编写一个程序,此程序要求输入一整数,然后打印出从(包括)输入的值到(包括)比输入的值大

24、10的所有整数值(也就是说,如果输入为5,那么输出就从5到15)。要求在各个输出值之间用空格、制表符或换行符分开。#include<>intmain(void)intnum,i=0;printf("Pleaseinputthenumber:");scanf("%d",&num);while(i+<11)printf("%d",num+);return(0);3 编写一个程序,该程序要求用户输入天数,然后将该值转换为周数和天数。例如,此程序将把18天转换成2周4天。用下面的格式显示结果:使用一个while循环让

25、用户重复输入天数;当用户输入一个非正数(如0或-20)时,程序将终止循环。#include<>#defineWEEK7intmain(void)intdays;printf("Pleaseinputthedays:");scanf("%d",&days);while(days>0)printf("%ddaysare%dweeks,%ddays.n",days,days/WEEK,days%WEEK);printf("Pleaseinputthedays:");scanf("%d&

26、quot;,&days);return(0);4 编写一个程序让用户按厘米输入一个高度值,然后,程序按照厘米和英尺英寸显示这个高度值。允许厘米和英寸的值出现小数部分。程序允许用户继续输入,直到用户输入一个非正的数值。程序运行的示例如下面所示:Enteraheightincentimeters:182cm=5feet,inchesEnteraheightincentimeters(<=Otoquit):168cm=5feet,inchesEnteraheightincentimeters(<=Otoquit):0bye#include<>#defineINCHfc

27、m=%dfeet,%.1finchesn",cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12);printf("Enteraheightincentimeters(<=0toquit):");scanf("%f",&cm);printf("byen");return(0);5 .改写用来找到前20个整数之和的程序(程序清单)(如果您愿意,可以把程序看成是一个计算如果您第一天得到$l,第二天得到$2,第三天得到$3,以此类推,您在20天里会挣多少钱的程序)。修改该程序,目

28、的是您能交q地告诉程序计算将进行到哪里。也就是说,用一个读入的变量来代替20。#include<>intmain(void)intcount,sum,max;count=0;sum=0;printf("Pleaseinputthemax:");scanf("%d",&max);while(count+<max)sum=sum+count;printf("sum=%dn",sum);return(0);6 .现在修改编程练习5中的程序,使它能够计算整数平方的和(如果您喜欢,可以这样认为:如果您第一天得到$l,第

29、二天得到$4,第三天得到$9,以此类推您将得到多少钱。这看起来像一个很好的买卖)。C没有平方函数,但是您可以利用n的平方是n*n的事实。#include<>intmain(void)intcount,sum,max;count=0;sum=0;printf("Pleaseinputthemax:");scanf("%d",&max);while(count+<max)sum=sum+count*count;printf("sum=%dn",sum);return(0);7 编写一个程序,该程序要求输入一个fl

30、oat型数并打印该数的立方值。使用您自己设计的函数来计算该值的立方并且将它的立方打印出来。main()程序把输入的值传递给该函数。#include<>floatcube(float);intmain(void)floatnumber;printf("Pleaseinputthenumber:");scanf("%f",&number);printf("Thecubeof%fis%fn",number,cube(number);return(0);floatcube(floatnum)return(num*num*n

31、um);8 编写一个程序,该程序要求用户输入一个华氏温度。程序以double类型读入温度值,并将它作为一个参数传递给用户提供的函数Temperatures()。该函数将计算相应的摄氏温度和绝对温度,并以小数点右边有两位数字的精度显示这三种温度。它应该用每个值所代表的温度刻度来标识这3个值。下面是将华氏温度转换成摄氏温度的方程:通常用在科学上的绝对温度的刻度是0代表绝对零,是可能温度的下界。下面是将摄氏温度转换为绝对温度的方程:Kelvin=Celsius+Temperatures()函数使用const来创建代表该转换里的3个常量的符号。main()函数将使用一个循环来允许用户重复地输入温度,当

32、用户输入q或其他非数字值时,循环结束。#include<>voidTemperatures(double);intmain(void)doubleFahrenheit;printf("PleaseinputtheFahrenheit:");while(scanf("%lf",&Fahrenheit)=1)f-%.2f)/(%.2f*%.2f)=%.2fn",a,b,a,b,(a-b)(a*b);printf("Pleaseinputtwofloats:");printf("endn")

33、;return(0);8对练习7进行修改,让它使用一个函数来返回计算值。#include<>floatcalculate(float,float);intmain(void)floata,b;printf("Pleaseinputtwofloats:");while(scanf("%f%f",&a,&b)=2)printf("(%.2f-%.2f)/(%.2f*%.2f)=%.2fn",a,b,a,b,calculate(a,b);printf("Pleaseinputtwofloats:&quo

34、t;);printf("endn");return(0);floatcalculate(floatx,floaty)return(x-y)/(x*y);9 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果。程序将不断提示用户输入下限整数和上限整数并显示出答案,直到用户输入的上限整数等于或小于下限整数为止。程序运行的结果示例应该如下所示:Enterlowerandupperintegerlimits:59Thesumsofthesquaresfrom25t081is255Enternextsetoflimits

35、:325Thesumsofthesquaresfrom9t0625iS5520Enternextsetoflimits:55Done#include<>intmain(void)intlower,upper,sum,i;printf("Enterlowerandupperintegerlimits:");scanf("%d%d",&lower,&upper);while(lower<upper)for(i=lower,sum=0;i<=upper;i+)sum+=i*i;printf("Thesumsof

36、thesquatesfrom%dto%dis%dn",lower*lower,upper*upper,sum);printf("Enternextsetoflimits:");scanf("%d%d",&lower,&upper);printf("Donen");return(0);10 .编写一个程序把8个整数读入一个数组中,然后以相反的顺序打印它们。#include<>intmain(void)intnum8,i;printf("Enter8numbers:");for(i

37、=0;i<8;i+)scanf("%d",&numi);for(i=7;i>=0;i-)printf("%dt",numi);printf("n");return(0);11 .考虑这两个无限序列:+-+-+编写一个程序来计算这两个序列不断变化的总和,直到达到某个次数。让用户交互地输入这个次数。看看在20次、100次和500次之后的总和。是否每个序列都看上去要收敛于某个值提示:奇数个-1相乘的值为-1,而偶数个-1相乘的值为1。#include<>intmain(void)doublei,sum1,su

38、m2;intsign,count;printf("Enterthecount:");scanf("%d",&count);for(i=,sign=1,sum1=0,sum2=0;i<=count;i+,sign-=sign)sum1+=/i;sum2+=sign*/i;printf("+.(%dterms)=%lfn",count,sum1);printf("-+-.(%dterms)=%lfn",count,sum2);return(0);12 .编写一个程序,创建一个8个元素的int数组,并且把元

39、素分别设置为2的前8次幂,然后打印出它们的值。使用for循环来设置值;为了变化,使用dowhile循环来显示这些值。#include<>#include<>intmain(void)intnum8,i;for(i=0;i<8;i+)numi=pow(2,i);写一个程序,创建两个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素的值。程序把第二个数组的元素设置为第一个数组元素的累积和。例如,第二个数组的第4个元素应该等于第一个数组的前4个元素的和,第二个数组的第5个元素应该等于第一个数组的前5个元素的和(使用嵌套循环可以做到这一点。不过利用第二

40、个数组的第5个元素等于第二个数组的第4个元素加上第一个数组的第5个元素这一事实,可以避免嵌套而只使用单个循环来完成这个任务)。最后,使用一个循环来显示两个数组中的内容,第一个数组在一行中显示,而第二个数组中的每个元素在第一个数组的对应元素之下进行显示。#include<>intmain(void)doublenum8,sum8;inti,j;printf("Enter8numbers:");for(i=0;i<8;i+)scanf("%lf",&numi);for(j=0,sumi=0;j<=i;j+)sumi+=numj

41、;for(i=0;i<8;i+)printf("%",numi);printf("n");for(i=0;i<8;i+)printf("%",sumi);printf("n");return(0);14. 编写一个程序读入一行输入,然后反向打印该行。您可以把输入存储在一个char数组中;假定该行不超过255个字符。回忆一下,您可以使用具有c说明符的scanf()从输入中一次读入一个字符,而且当您按下回车键时会产生换行字符(n)。#include<>#defineLENGTH20intmain

42、(void)chara255;inti;for(i=0;i<LENGTH;i+)scanf("%c",&ai);for(i=LENGTH-1;i>=0;i-)printf("%c",ai);printf("n");return(0);15. Daphne以10%勺单利息投资了100美元(也就是说,每年投资赢得的利息等于原始投资的10%)。Deirdre则以每年5%勺复合禾U息资了10O美元(也就是说,利息是当前结余的5%其中包括以前的利息)。编写一个程序,计算需要多少年Deirdre的投资额才会超过Daphne,并

43、且显示出到那时两个人的投资额。#include<>intmain(void)doubleDaphne=100,Deirdre=100;inti=0;while(Daphne>=Deirdre)Daphne+=100*;Deirdre+=Deirdre*;i+;printf("After%dyears,Deirdre'sinvestmentis%lf,Daphne'sinvestmentis%lfn",i,Deirdre,Daphne);return(0);16. ChuckieLucky赢了100万美元,他把它存入一个每年赢得8%的帐户。在

44、每年的最后一天,Chuckie取出10万美元。编写一个程序,计算需要多少年Chuckie就会清空他的帐户。#include<>intmain(void)doubleinvestment=100;inti=0;while(investment>0)investment+=investment*;investment-=10;i+;printf("After%dyears,ChuckieLucky'sinvestmentisoutn",i,investment);return(0);第七章C控制语句:分支和跳转编程练习1编写一个程序。该程序读取输入直到

45、遇到#字符,然后报告读取的空格数目、读取的换行符数目以及读取的所有其他字符数目。#include<>intmain(void)intspace=0,newline=0,others=0;chara;printf("Pleaseinputastringendby#:");while(a=getchar()!='#')if(a='')space+;elseif(a='n')newline+;elseothers+;printf("space:%d,newline:%d,others:%dn",spa

46、ce,newline,others);return(0);2编写一个程序,该程序读取输入直到遇到#字符。使程序打印每个输入的字符以及它的十进制ASCII码。每行打印8个字符,编码对。建议:利用字符计数和模运算符(%)在每8个循环周期时打印一个换行符。#include<>intmain(void)chara;inti;printf("Pleaseinputastringendby#:");for(i=1;(a=getchar()!='#'i+)printf("%c-%dt",a,a);if(i%8=0)printf("

47、n");printf("n");return(0);3编写一个程序。该程序读取整数,直到输入0。输入终止后,程序应该报告输入的偶数(不包括0)总个数、偶数的平均值,输入的奇数总个数以及奇数的平均值。#include<>intmain(void)inti_even=0,sum_even=0,i_odd=0,sum_odd=0,num;printf("Pleaseinputnumbers(0toquit):");while(1)scanf("%d",&num);if(num=0)break;if(num%2=

48、0)i_even+;sum_even+=num;elsei_odd+;sum_odd+=num;printf("evennumber'scount:%dn",i_even);printf("evennumber'ssum:%dn",sum_even);printf("oddnumber'scount:%dn",i_odd);printf("oddnumber'ssum:%dn",sum_odd);return(0);4利用ifelse语句编写程序读取输入,直到#。用一个感叹号代替每个

49、句号,将原有的每个感叹号用两个感叹号代替,最后报告进行了多少次替代。#include<>intmain(void)inta=0,b=0;charch;printf("Pleaseinputastringendby#:");while(ch=getchar()!='#')if(ch='.')putchar('!');a+;elseif(ch='!')putchar('!');putchar('!');b+;elseputchar(ch);printf("nth

50、etimesof'.'replacedby'!':%dn",a);printf("thetimesof'!'replacedby'!':%dn",b);return(0);5用switch重做练习3#include<>intmain(void)inti_even=0,sum_even=0,i_odd=0,sum_odd=0,num;printf("Pleaseinputnumbers(0toquit):");while(1)scanf("%d",&a

51、mp;num);if(num=0)break;switch(num%2)case0:i_even+;sum_even+=num;break;case1:i_odd+;sum_odd+=num;printf("evennumber'scount:%dn",i_even);printf("evennumber'ssum:%dn",sum_even);printf("oddnumber'scount:%dn",i_odd);printf("oddnumber'ssum:%dn",sum_o

52、dd);return(0);6 编写一个程序读取输入,直到#,并报告序列ei出现的次数。此程序必须要记住前一个字符和当前的字符。用诸如“Receiveyoureieioaward.”的输入测试它。#include<>intmain(void)charformer=0,present;intcount=0;while(present=getchar()!='#')if(former='e')&&(present='i')count+;former=present;printf("eihasappeared%dt

53、imesn",count);return(0);7 编写程序,要求输入一周中的工作小时数,然后打印工资总额、税金以及净工资。作如下假设:a基本工资等级=美元本工资#defineBASIC班#defineTIME40率#defineLIMIT1300班#defineTIME40率#defineLIMIT1300lfn",basic);printf("inputtheworkhoursofaweek:");scanf("%lf",&hours);if(hours>40)hours=40+(hours-40)*;gross=h

54、ours*basic;printf("grossincome:tt%lfn",gross);if(gross<=LIMIT1)tax=gross*RATE1;elseif(gross<=LIMIT2)tax=LIMIT1*RATE1+(gross-LIMIT1)*RATE2;elsetax=LIMIT1*RATE1+LIMIT2*RATE2+(gross-LIMIT1-LIMIT2)*RATE3;printf("tax:ttt%lfn",tax);printf("netincome:tt%lfn",gross-tax);r

55、eturn(0);intget_int(void)inputagain.n",str);while(getchar()!='n');returnnum;9编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。#include<>intisprime(int);intmain(void)(intnum,i;printf("inputapositivenumber:");scanf("%d",&num);printf("alltheprimes<=%d:n",num);for

56、(i=2;i<=num;i+)if(isprime(i)printf("%dt",i);printf("n");return(0);intisprime(intn)1988年UnitedStatesFederalTaxSchedule是近期最基本的。它分为4类,每类有两个等级。下面是其摘要;美元数为应征税的收入。111种类1111税金111单身111前17850美元按115%超出部分按28%1111户主111前23,900美元按115%超出部分按28%|1111已婚,共有11|前29,750美元按15%1超出部分按28%|1111已婚,离异11|前

57、14,875美元按l5%,1超出部分按28%|1例如,有20000美元应征税收入的单身雇佣劳动者应缴税金X17850美元+X(20000美元-17850美元)。编写一个程序,让用户指定税金种类和应征税收入,然后计算税金。使用循环以便用户可以多次输入。#include<>#defineSINGLE17850#defineHOST23900#defineMARRIED_SHARE29750#defineMARRIED_DIVORCE14875#defineRATE1#defineRATE2intmain(void)(doubletype,pay,tax;charch;while(1)p

58、rintf("Selectthetypeofmarriage:n");printf("1)SINGLEn2)HOSTn3)MARRIED_SHAREn4)MARRIED_DIVORCEn5)quitn");while(ch=getchar()='n')continue;lfn",tax);11.ABCMailOrderGrocery朝鲜蓟的售价是美元/磅,甜菜的售价是美元/磅,胡萝卜的售价是美元/磅。在添加运输费用之前,他们为100美元的订单提供5%的打折优惠。对5磅或以下的定单收取美元的运输和装卸费用;超过5磅而不足20磅的定

59、单收取美元的运输和装卸费用:加磅或以上的运输,在8美元基础上每磅加收美元。编写程序,在循环中使用switch语句,以便对输入a的响应是让用户输入所需的朝鲜蓟磅数,b为甜菜的磅数,c为胡萝卜的磅数,而q允许用户退出订购过程。然后程序计算总费用、折扣和运输费用(如果有运输费的话),以及总数。随后程序应该显示所有的购买信息:每磅的费用、订购的磅数、该订单每种蔬菜的费用、订单的总费用、折扣,如果有的话加上运输费用,以及所有费用的总数。#include<>#include<>fn",ARTICHOKE);printf("price:$%.2fn",B

60、EET);printf("price:$%.2fn",CARROT);printf("n");printf("(priceasdollarsperpound)n");while(ch=tolower(getchar()!='q')fn",discount);if(artichoke+beet+carrot<=5)freight=;elseif(artichoke+beet+carrot<20)freight=10;elsefreight=8+(artichoke+beet+carrot)*;pri

61、ntf("freight:%.2fn",freight);sum=sum-discount+freight;printf("sum:%.2fn",sum);return0;第8章字符输入/输出和输入确认编程练习下面的一些程序要求输入以EOF终止。如果您的操作系统难以使用或不能使用重定向,则使用一些其他的判断来终止输入,例如读取&字符。1设计一个程序,统计从输入到文件结尾为止的字符数。#include<>intmain(void)inti;for(i=0;getchar()!=EOF;i+);printf("Thereare%dchar",i);return0;2 编写一个程序,把输入作为字符流读取,直到遇到EOF。令该程序打印每个输入字符及其ASCII编码的十进制值。注意在ASCII序列中空格字符前面的字符是非打印字符,要特殊处理这些字符。如果非打印字符是换行符或制表符,则分期打印n或t。否则,使用控制字符符号。例如,ASCII的l是Ctrl+A,可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论