C-primer-plus(第五版)课后编程练习答案.pdf
《C-primer-plus(第五版)课后编程练习答案.pdf》由会员分享,可在线阅读,更多相关《C-primer-plus(第五版)课后编程练习答案.pdf(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第一章 概览 编程练习 1您刚刚被 MacroMuscle有限公司(Software for Hard Bodies)聘用。该公司要进入欧洲市场,需要一个将英寸转换为厘米(1 英寸=cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的工作是定义程序目标并设计该程序(编程过程的第 1 步和第 2 步)。1.将英寸值转化为厘米值 2.显示“输入英寸值”-得到该值-转换为厘米值-存储-告知用户已结束 .第二章 C 语言概述 编程练习 1编写一个程序,调用 printf()函数在一行上输出您的名和姓,再调用一次 printf()函数在两个单独的行上输出您的名和姓,然后调用一对 printf(
2、)函数在一行上输出您的名和姓。输出应如下所示(当然里面要换成您的姓名):Anton Bruckner Anton Bruckner Anton Bruckner 第一个输出语句 第二个输出语句 仍然是第二个输出语句 第三个和第四个输出语句#include int main(void)、printf(He Jinn);printf(Hen);printf(Jinn);printf(He Jinn);return(0);,2编写一个程序输出您的姓名及地址。#include int main(void)printf(Name:He Jinn);printf(Address:CAUCn);return
3、(0);3编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年(fractional year)和闰年(leapyear)的问题。#include (int main(void)int age=22;printf(Age:%dn,age);printf(Day:%dn,age*356);return(0);%4编写一个能够产生下面输出的程序:For hes a jolly good fellow!For hes a jolly good fellow!For hes a jolly good fellow!Which nobody can deny!程序中除了 main()函数之外,
4、要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。#include|void printf1(void);void printf2(void);int main(void)printf1();printf1();printf1();printf2();return(0);void printf1(void)printf(For hes a jolly good fellow!n);void printf2(void)printf(Which nobody can deny!n);5编写一个程序,创建一个名为 toes 的整数变量。让程序把 toes 设置
5、为 10。再让程序计算两个toes 的和以及 toes 的平方。程序应该输出所有的 3 个值,并分别标识它们。#include int main(void)int toes=10;int toes_add;int toes_square;【toes_add=toes+toes;toes_square=toes*toes;printf(toes=%dntoes_add=%dntoes_square=%dn,toes,toes_add,toes_square);return(0);6编写一个能够产生下列输出的程序:Smile!Smile!Smile(Smile!Smile!Smile!在程序中定义
6、一个能显示字符串 smile 卜一次的函数,并在需要时使用该函数。#include void display(void);int main(void)display();display();display();printf(n);display();display();printf(n);display();printf(n);return(0);void display(void)printf(Smile!);7编写一个程序,程序中要调用名为 one_three()的函数。该函数要在一行中显示单词one,再调用 two()函数,然后再在另一行中显示单词three。函数 two()应该能在一行
7、中显示单词two。main()函数应该在调用 one_three()函数之前显示短语starting now:,函数调用之后要显示done!o 这样,最后的输出结果应如下所示:starting now one two three:done!#include void one_three(void);void two(void);int main(void)|printf(starting now:n);one_three();printf(done!n);return(0);void one_three(void)!printf(Onen);two();printf(Threen);void
8、two(void)(printf(Twon);第三章 数据和 C 编程练习 1通过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。#include)int main(void)unsigned int a=95;float b=;float c=b*10;float d=;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 int main(vo
9、id)char a;scanf(%d,&a);printf(%cn,a);return(0);#3编写一个程序,发出警报声,并打印下列文字:Startled by the sudden sound,Sally shouted,By the Great Pumpkin,what was that!#include int main(void)】printf(aStartled by the sudden sound,Sally shouted,By the Great pumpkin,what was that!n);return(0);4 编写一个程序,读入一个浮点数,并分别以小数形式和指数形
10、式打印。输出应如同下面格式(实际显示的指数位数也许因系统而不同):The input is or+001.#include int main(void)float a;scanf(%f,&a);printf(The input is%f or%en,a,a);return(0);/5一年约有l07S。编写一个程序,要求输入您的年龄,然后显示该年龄合多少秒。#include int main(void)float a;printf(Please input your age:);scanf(%f,&a);printf(Your age is%e secondsn,a*;return(0);个水分
11、子的质量约为10-23g,l 夸脱水大约有 950g。编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少个水分子。#include int main(void)float a;printf(Please input how much quarts the water is:);scanf(%f,&a);printf(%f quarts water has%e molecules.n,a,a*950/3E-23);return(0);7.1 英寸等于。编写一个程序,要求输入您的身高(以英寸为单位),然后显示该身高值等于多少厘米。如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单
12、位进行显示。#include|int main(void)float a;printf(Please input your height by inches:);scanf(%f,&a);printf(Your height is%fcm.n,a*;return(0);第 4 章 字符串和格式化输入/输出 编程练习 1编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。#include int main(void)char surname20,firstname20;printf(Please input your firstname and surname:);scanf(%s
13、,firstname);scanf(%s,surname);printf(You are%s,%s.n,firstname,surname);return(0);2编写一个程序,要求输入名字,并执行以下操作:a把名字引在双引号中打印出来。b在宽度为 20 个字符的字段内打印名字,并且整个字段引在引号内。c.在宽度为 20 个字符的字段的左端打印名字,并且整个字段引在引号内。d在比名字宽 3 个字符的字段内打印它。、#include#include int main(void)char name20;int width;printf(Please input your name:);.scanf
14、(%s,name);printf(A:%sn,name);printf(B:%20sn,name);printf(C:%-20sn,name);width=strlen(name)+3;printf(D:%*sn,width,name);The input is or+001.b.The input is+or+001.、#include int main(void)float a;printf(Please input a float:);scanf(%f,&a);printf(input is%.1f or%.1en,a,a);(printf(input is%+.3f or%.3En,a
15、,a);return(0);4编写个程序,要求输入身高(以英寸为单位)和名字,然后以如下形式显示:Dabney,you are feet tall 使用 float 类型,使用/作为除号。如果您愿意,可以要求以厘米为单位输入身高,并以米为单位进行显示。#include int main(void)float height;char name20;printf(Please input your height by inches:);scanf(%f,&height);printf(Please input your name:);scanf(%s,name);printf(%s,you are
16、%f feet talln,name,height/12);return(0);5.编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下行打印每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:Melissa Honeybee 7 8 然后打印相同的信息,但是字母个数与相应单词的开始对齐。#include#include|int main(void)char surname20,firstname20;printf(Please input your firstname and surname:);scanf(%s,firstname);scanf(
17、%s,surname);printf(%s%s.n,firstname,surname);printf(%*d%*dn,strlen(firstname),strlen(firstname),strlen(surname),strlen(surname);n,firstname,surname);)printf(%-*d%-*dn,strlen(firstname),strlen(firstname),strlen(surname),strlen(surname);en,a);printf(%.12en,a);printf(%.16enn,a);printf(float b=:n);print
18、f(%.4fn,b);printf(%.12fn,b);printf(%.16fnn,b);printf(FLT_DIG:%dn,FLT_DIG);?printf(DBL_DIG:%dn,DBL_DIG);return(0);7编写一个程序,要求用户输入行驶的英里数和消耗汽油的加仑数。接着应该计算和显示消耗每加仑汽油行驶的英里数,显示方式是在小数点右侧显示一个数字。然后,根据 l 加仑约等于升,l 英里约等于公里的规则,它应该把每加仑英里数转换成每 100 公里的升数(欧洲通用的燃料消耗表示法),并显示结果,显示方式是在小数点右侧显示一个数字(请注意,美国方案测量每单位距离消耗的燃料数,而欧洲
19、方案测量每单位燃料的行驶距离)。用符号常量表示两个转换系数(使用 const 或#define)。#include#define GALLON fn,mile/gallon);|printf(Litres per 100 kilometre:%.1fn,gallon*GALLON/(100*mile*MILE);return(0);%第 5 章 运算符、表达式和语句 编程练习 1 编写一个程序。将用分钟表示的时间转换成以小时和分钟表示的时间。使用#define 或者 const来创建一个代表 60 的符号常量。使用 while 循环来允许用户重复键入值,并且当键入一个小于等于0 的时间时终止循
20、环。#include#define HOUR 60 int main(void)(int minutes;printf(Please input the minutes:);scanf(%d,&minutes);while(minutes0)printf(%d hours and%d minutesn,minutes/HOUR,minutes%HOUR);printf(Please input the minutes:);(scanf(%d,&minutes);return(0);2编写一个程序,此程序要求输入一整数,然后打印出从(包括)输入的值到(包括)比输入的值大 10 的所有整数值(也就
21、是说,如果输入为 5,那么输出就从 5 到 15)。要求在各个输出值之间用空格、制表符或换行符分开。#include$int main(void)int num,i=0;printf(Please input the number:);scanf(%d,&num);while(i+11)printf(%d,num+);return(0);3编写一个程序,该程序要求用户输入天数,然后将该值转换为周数和天数。例如,此程序将把18 天转换成 2 周 4 天。用下面的格式显示结果:使用一个 while 循环让用户重复输入天数;当用户输入一个非正数(如 0 或-20)时,程序将终止循环。#include
22、#define WEEK 7 int main(void)int days;printf(Please input the days:);|scanf(%d,&days);while(days0)printf(%d days are%d weeks,%d days.n,days,days/WEEK,days%WEEK);printf(Please input the days:);scanf(%d,&days);return(0);【4 编写一个程序让用户按厘米输入一个高度值,然后,程序按照厘米和英尺英寸显示这个高度值。允许厘米和英寸的值出现小数部分。程序允许用户继续输入,直到用户输入一个非正
23、的数值。程序运行的示例如下面所示:Enter a height in centimeters:182 cm=5 feet,inches Enter a height in centimeters(=O to quit):168 cm=5 feet,inches Enter a height in centimeters(=O to quit):0)bye#include#define INCH f cm=%d feet,%.1f inchesn,cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12);printf(Enter a height in cen
24、timeters(=0 to quit):);scanf(%f,&cm);/printf(byen);return(0);5.改写用来找到前 20 个整数之和的程序(程序清单)(如果您愿意,可以把程序看成是一个计算如果您第一天得到$l,第二天得到$2,第三天得到$3,以此类推,您在 20 天里会挣多少钱的程序)。修改该程序,目的是您能交 q 地告诉程序计算将进行到哪里。也就是说,用一个读入的变量来代替 20。#include:int main(void)int count,sum,max;count=0;sum=0;printf(Please input the max:);scanf(%d,
25、&max);while(count+max)sum=sum+count;printf(sum=%dn,sum);return(0);6.现在修改编程练习 5 中的程序,使它能够计算整数平方的和(如果您喜欢,可以这样认为:如果您第一天得到$l,第二天得到$4,第三天得到$9,以此类推您将得到多少钱。这看起来像一个很好的买卖)。C 没有平方函数,但是您可以利用n 的平方是 n*n 的事实。#include int main(void)int count,sum,max;count=0;】sum=0;printf(Please input the max:);scanf(%d,&max);while
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- primer plus 第五 课后 编程 练习 答案
限制150内