CPreimerPlus第四章编程练习简析及答案.ppt
2012/11/25,C Primer Plus(第五版)中文版编程练习,分析及答案(第四章),2012/11/25,1.输入名字和姓氏,然后以“名字,姓氏”的格式输出。分析:变量的个数及类型;格式说明符程序:,2.编写一个程序,要求输入名字,并执行以下操作:a.把名字引在双引号中打印出来。b.在宽度为20个字符的字段内打印名字,并且整个字段引在引号内。c.在宽度为20个字符的字段的左端打印名字,并且整个字段印在引号内。d.在比名字宽3个字符的字段内打印它。分析:a.双引号如何输出?b.如何在固定宽度内输出?c.如何在左端输出?d.输入的名字长度如何计算?输出时,字符宽度变化,如何输出?程序:(见下页),2012/11/25,2012/11/25,3.输入一个浮点数,首先以小数点记数法,然后以指数记数法打印它。输出使用下列形式:a.21.3 or 2.1e+001b.+21.290 or 2.129E+001分析:浮点型的格式说明符;指数记数法的格式说明符;小数点位数和正号的输出方法。程序:,4.编写一个程序,要求输入身高(以厘米为单位)和名字,然后以如下形式显示:Dabney,you are 1.750 meters tall分析:变量的个数及类型;变量的输入和输出。程序:,2012/11/25,5.先输入名字,再输入姓氏,第一行打印姓名;第二行打印名字和形式的个数,把字母个数与对应姓名的结尾对齐;第三行输出字母个数与对应姓名的开始对齐。分析:输入的名字长度如何计算?如何实现左对齐/右对齐?程序:,6.编写一个程序,设置一个值为1.0/3.0的double类型变量和一个值为1.0/3.0的float类型变量。每个变量的值显示三次:一次在小数点右侧显示4个数字,一次在小数点右侧显示12个数字,另一次在小数点右侧显示16个数字。同时要让程序包括float.h文件,并显示FLT_DIG和DBL_DIG的值。1.0/3.0的显示值与这些值一致吗?分析:关键了解FLT_DIG和DBL_DIG的含义。程序:,2012/11/25,7.输入汽车行驶的英里数和消耗汽油的加仑数。计算并显示消耗每加仑汽油行驶的英里数,保留一位小数。再输出每100公里的升数,保留一位小数。(用符号常量const或#define表示两个转换系数)(1加仑=3.785升,1英里=1.609公里)分析:变量类型;常量声明;公式转换。程序:,2012/11/25,源程序,/*4.8.1*/#includeint main()char mz20,xs20;scanf(%s%s,mz,xs);printf(%s,%s,mz,xs);return 0;,/*4.8.2*/#include#includeint main()char name20;scanf(%s,name);printf(%sn,name);printf(%20sn,name);printf(%-20sn,name);printf(%*sn,strlen(name)+3,name);return 0;,2012/11/25,源程序,/*4.8.3*/#includeint main()double input;scanf(%lf,/*4.8.4*/#includeint main()double tall;char name20;scanf(%s%lf,name,/*4.8.5*/#include#includeint main()char mz20,xs20;int a,b;scanf(%s,mz);scanf(%s,xs);a=strlen(mz);b=strlen(xs);printf(%s%sn,mz,xs);printf(%*d%*dn,a,a,b,b);printf(%-*d%-*dn,a,a,b,b);return 0;,2012/11/25,源程序,/*4.8.6*/#include#includeint main()float m;double n;m=1.0/3.0;n=1.0/3.0;printf(%d%dn,FLT_DIG,DBL_DIG);printf(%.4f%.4lfn,m,n);printf(%.12f%.12lfn,m,n);printf(%.16f%.16lfn,m,n);return 0;,/*4.8.7*/#include#define m2k 1.609int main()double mile,gal,km,l;double mg,kl;const double g2l=3.785;scanf(%lf%lf,2012/11/25,说明,以上程序,win7+DEVCPP测试通过。,