1第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------ProgramminginCisfun!IloveClanguage.---------------------------------Program#includestdio.hmain(){printf(---------------------------------\n);printf(ProgramminginCisfun!\n);printf(IloveClanguage.\n);printf(---------------------------------\n);}1-2编写程序,在屏幕上显示一个如下图案:**********Program(1)#includestdio.hmain(){printf(****\n);printf(***\n);printf(**\n);printf(*\n);}Program(2)#includestdio.hmain(){printf(%c%4c%4c%4c\n,'*','*','*','*');2printf(%3c%4c%4c\n,'*','*','*');printf(%5c%4c\n,'*','*');printf(%7c\n,'*');}1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。要求:将π定义为符号常量,并假设一个恰当的半径值。Program#includestdio.h#definePI3.14main(){floatr=5,s;s=PI*r*r;printf(Theareaofcircleis:%.2f\n,s);}OutputTheareaofcircleis:78.501-4已知两个整数20和10,编写程序,自定义函数add()将这两个数相加,自定义函数sub()计算这两个数的差,并按照下面形式显示计算结果:20+10=3020-10=10Program#includestdio.hintadd(inta,intb){return(a+b);}intsub(inta,intb){return(a-b);}main(){inta=20,b=10;printf(%d+%d=%d\n,a,b,add(a,b));printf(%d-%d=%d\n,a,b,sub(a,b));}3Output20+10=3020–10=101-5已知变量a、b和c的值,编写程序,用来计算并显示x的值,其中cbax请分别用以下数值运行该程序(1)a=250,b=85,c=25(2)a=300,b=70,c=80Program(1)#includestdio.hmain(){inta=250,b=85,c=25;floatx;x=1.0*a/(b-c);printf(x=%.2f\n,x);}Output(1)x=4.17Program(2)#includestdio.hmain(){inta=300,b=70,c=80;floatx;x=1.0*a/(b-c);/*试写成x=a/(b-c);得到什么运行结果?为什么?*/printf(x=%.2f\n,x);}Output(2)x=-30.004第2章常量、变量及数据类型&第3章运算符和表达式3-1编写程序,求华氏温度100oF对应的摄氏温度。计算公式如下:9)32(5fc式中:c表示摄氏温度,f表示华氏温度。(c定义为实型,f定义为整型)Program#includestdio.hmain(){intf=100;floatc;c=5.0*(f-32)/9;/*如果是c=5*(f-32)/9;会是什么结果?为什么?*/printf(Celsiusdegree(correspondingto%dFahrenheit)is:%.2f.\n,f,c);}OutputCelsiusdegree(correspondingto100Fahrenheit)is:37.78.3-2一个物体从100m的高空自由落下,编写程序,求它在前3s内下落的垂直距离。设重力加速度为10m/s2。要求,将重力加速度定义为符号常量,尝试将其改为9.8m/s2,看结果有何不同?Program#includestdio.h#defineG10main(){intt=3;floats;s=1.0/2*G*t*t;/*如果是s=1/2*G*t*t;会是什么结果?为什么?*/printf(Thefallingverticaldistance(in%dseconds)is:%.2f.\n,t,s);}OutputThefallingverticaldistance(in3seconds)is:45.00.53-3将球的半径R定义为符号常量,计算球的表面积(4πR2)和体积(4/3*πR3)。Program#includestdio.h#defineR5.2#definePI3.14main(){floats,v;s=4*PI*R*R;v=4.0/3*PI*R*R*R;printf(Thesurfaceareaoftheball(radiusis%.2f)is:%.2f,andthevolumeis:%.2f.\n,R,s,v);}OutputThesurfaceareaoftheball(radiusis5.20)is:339.62,andthevolume588.68.3-4给定x、y和z的值,编写程序,使x等于y的值,y等于z的值,z等于x的值。Program#includestdio.hmain(){intx=1,y=2,z=3,t;printf(Beforeswap:x=%d,y=%d,z=%d.\n,x,y,z);t=x;x=y;y=z;z=t;/*变量t的作用是什么?*/printf(Afterswap:x=%d,y=%d,z=%d.\n,x,y,z);}OutputBeforeswap:x=1,y=2,z=3.Afterswap:x=2,y=3,z=1.3-5编写一个程序,给定一个浮点数(例如456.78),显示该数的十位数字与个位数字之和(例如5+6=11)。6Program(1)#includestdio.hmain(){floatf=456.78;intn,a,b;n=f;a=n%10;/*赋值后,a是什么值?*/b=n/10%10;/*赋值后,b是什么值?*/printf(Thesumofthetensdigitandunitsdigitof%.2fis:%d+%d=%d.\n,f,b,a,a+b);}Program(2)#includestdio.hmain(){floatf=456.78;intn,a,b;n=f;a=n%10;b=n%100/10;/*该语句与上面程序不同,看看有何区别?*/printf(Thesumofthetensdigitandunitsdigitof%.2fis:%d+%d=%d.\n,f,b,a,a+b);}OutputThesumofthetensdigitandunitsdigitof456.78is:5+6=11.3-6某种物品每年折旧费的计算方法如下:使用年限废品价值购买价格折旧费编写一个程序,当给定某物品的购买价格、使用年限和每年的折旧费时,计算出其废品价值。Program#includestdio.hmain(){floatprice=120.65,year=3,depreciation=10.2,value;7value=price-year*depreciation;printf(Thescrapvalueis%.2f.\n,value);}OutputThescrapvalueis90.05.3-7在库存管理中,某单个物品的经济定购数EOQ由下面等式给定:储备成本单位时间内每种物品的生产成本需求率2EOQ而最优的定购时间间隔TBO由下面等式给定:储备成本单位时间内每种物品的需求率生产成本2TBO编写程序,给定需求率(单位时间内的物品数)、生产成本(每个定购)和储备成本(单位时间内每种物品),计算EOQ和TBO。Program#includestdio.h#includemath.hmain(){intdemand=1000;floatproduct_cost=3.5,storage_cost=0.63,eoq,tbo;eoq=sqrt(2*demand*product_cost/storage_cost);tbo=sqrt(2*product_cost/demand/storage_cost);printf(EOQis%.2f,andTBOis%.2f.\n,eoq,tbo);}OutputEOQis105.41,andTBOis0.11.8第4章输入输出操作管理4-1输入两个数,将它们交换后输出。Program#includestdio.hmain(){intx,y,t;printf(Pleaseinput2numbers:);scanf(%d%d,&x,&y);printf(Beforeswap,the2numbersare:%d,%d\n,x,y);t=x;x=y;y=t;printf(Afterswap,the2numbersare:%d,%d\n,x,y);}OutputPleaseinput2numbers:35/*Blueisinput*/Beforeswap,the2numbersare:3,5Afterswap,the2numbersare:5,34-2输入一个十进制数,输出对应的八进制数和十六进制数。Program#includestdio.hmain(){intn;printf(Pleaseinputadecimalnumber:);scanf(%d,&n);printf(Theoctalis%o,andthehexadecimalis%x.\n,n,n);}OutputPleaseinputadecimalnumber:10/*Blueisinput*/Theoctalis12,andthehexadecimalisa.考虑:如何得到下面的输出?Pleaseinputadecimalnumber:10/*Blueisinput*/Theoctalis012,andthehexadecimalis0xa.94-3编写程序,输入3个整数,计算并输出它们的平均值。Program#includestdio.hmain(){inta,b,c;printf(Pleaseinput3integers:);scanf(%d%d%d,&a,&b,&c);printf(Theaverageis%.2f.\n,(a+b+c)/3.0);}OutputPleaseinput3integers:47-19/*Blueisinput*/Theaverageis-2.67.4-4编写一个程序,读取x和y的值,显示下面表达式的值:(1)yxyx(2)2yx(3)yxyxProgram#includestdio.hmain(){floatx,y;printf(Pleaseinputxandy:);scanf(%f%f,&x,&y);printf((1)(x+y)/(x-y)=%.2f\n,(x+y)/(x-y));printf((2)(x+y)/2=%.2f\n,(x+y)/2);printf((3)(x+y)(x-y)=%.2f\n,(x+y)*(x-y));}OutputPleaseinputxandy:3.54.1/*Blueisinput*/(1)(x+y)/(x-y)=-12.67(2)(x+y)/2=3.80(3)(x+y)(x-y)=-4.56104-5计算银行存款的本息。编写程序,输入存款金额money、