C primer plus(第五版)课后编程练习答案

  • 格式:doc
  • 大小:474.00 KB
  • 文档页数:192

第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<stdio.h>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。

#include<stdio.h>int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year)和闰年(leapyear)的问题。

#include<stdio.h>int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

#include<stdio.h>void printf1(void);void printf2(void);int main(void){printf1();printf1();printf1();printf2();return(0);}void printf1(void){printf("For he's a jolly good fellow!\n");}void printf2(void){printf("Which nobody can deny!\n");}5.编写一个程序,创建一个名为toes的整数变量。

让程序把toes设置为10。

再让程序计算两个toes的和以及toes的平方。

程序应该输出所有的3个值,并分别标识它们。

#include<stdio.h>int main(void){int toes=10;int toes_add;int toes_square;toes_add=toes+toes;toes_square=toes*toes;printf("toes=%d\ntoes_add=%d\ntoes_square=%d\n",toes,toes_add,toes_square);return(0);}6.编写一个能够产生下列输出的程序:Smile ! Smile ! SmileSmile ! Smile !Smile !在程序中定义一个能显示字符串smile卜一次的函数,并在需要时使用该函数。

#include<stdio.h>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()应该能在一行中显示单词"two"。

main()函数应该在调用one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"o这样,最后的输出结果应如下所示:starting nowonetwothreedone !#include<stdio.h>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("One\n");two();printf("Three\n");}void two(void)printf("Two\n");}第三章数据和C编程练习1.通过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。

#include<stdio.h>int main(void){unsigned int a=4294967295;float b=3.4E38;float c=b*10;float d=0.1234E-2;printf("%u+1=%u\n",a,a+1);printf("%e*10=%e\n",b,c);printf("%f/10=%f\n",d,d/10);return(0);}2.编写一个程序,要求输入一个ASCII码值(如66),然后输出相应的字符。

#include<stdio.h>int main(void){char a;scanf("%d",&a);printf("%c\n",a);return(0);}3.编写一个程序,发出警报声,并打印下列文字:Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that!"#include<stdio.h>int main(void)printf("\aStartled by the sudden sound,Sally shouted,\"By the Great pumpkin,what was that!\"\n");return(0);}4.编写一个程序,读入一个浮点数,并分别以小数形式和指数形式打印。

输出应如同下面格式(实际显示的指数位数也许因系统而不同):The input is 21.290000 or 2.129000e+001.#include<stdio.h>int main(void){float a;scanf("%f",&a);printf("The input is %f or %e\n",a,a);return(0);}5.一年约有3.156×l07S。

编写一个程序,要求输入您的年龄,然后显示该年龄合多少秒。

#include<stdio.h>int main(void){float a;printf("Please input your age:");scanf("%f",&a);printf("Your age is %e seconds\n",a*3.156E7);return(0);}6.1个水分子的质量约为3.0×10^-23g,l夸脱水大约有950g。

编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少个水分子。

#include<stdio.h>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英寸等于2.54cm。

编写一个程序,要求输入您的身高(以英寸为单位),然后显示该身高值等于多少厘米。

如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单位进行显示。

#include<stdio.h>int main(void){float a;printf("Please input your height by inches:");scanf("%f",&a);printf("Your height is %fcm.\n",a*2.54);return(0);}第4章字符串和格式化输入/输出编程练习1.编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。

#include<stdio.h>int main(void){char surname[20],firstname[20];printf("Please input your firstname and surname:");scanf("%s",firstname);scanf("%s",surname);printf("You are %s,%s.\n",firstname,surname);return(0);}2.编写一个程序,要求输入名字,并执行以下操作:a.把名字引在双引号中打印出来。