《C语言课后习题答案.doc》由会员分享,可在线阅读,更多相关《C语言课后习题答案.doc(118页珍藏版)》请在金锄头文库上搜索。
1、C语言课后习题答案-第四版-第一章5、请参照本章例题,编写一个C语言程序,输出以下信息:*V e r y G o o d !*#include int main ( ) printf (*nn);printf( Very Good!nn);printf (*n);return 0;6、编写一个C语言程序,输入a,b,c三个值,输出其中最大值。#include int main()int a,b,c,max;printf(please input a,b,c:n);scanf(%d%d%d,&a,&b,&c);max=a;if (maxb)max=b;if (maxc)max=c;printf(
2、The largest number is %dn,max);return 0;#include int main()int a,b,c,max;printf(please input a,b,c:n);scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=maxc?max:c;printf(The largest number is %dn,max);return 0;第3章1、假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为 P=(1+r)nr 为年增长率,n 为年数,p为与现在相比的倍数。#include #in
3、clude int main()float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%fn,p);return 0;2、存款利息计算。有1000元,想存5年,可按以下5种办法存:(1)一次存5年期。(2)先存2年期,到期后将本息在存3年期。(3)先存3年期,到期后将本息在存2年期。(4)先存1年期,到期后将本息在存1年期,连续存5次。(5)存活期存款。活期利息每一季度结算一次。2007年12月的银行存款利息如下:1年定期存款利息为4.14%;2年定期存款利息为4.68%;3年定期存款利息为5.4%;5年定期存款利息为5.85%;活期存款利息为0.27%(活
4、期利息每一季度结算一次。)如果r 为年利率,n 为存款年数,则计算本息和的公式为1年期本息和:P=1000*(1+r);n年期本息和:P=1000*(1+n*r);存n次1年期的本息和:P=1000*(1+ r)n;存活期本息和:P=1000*(1+r/4)4n。说明:P=1000*(1+r/4)4n。是一个季度的本息和。#include #include int main()float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p=1000;p1=p*(1+r5)*5);
5、/ 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); / 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); / 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); / 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); / 存活期存款。活期利息每一季度结算一次 printf(p1=%fn,p1); / 输出按第1方案得到的本息和 printf(p2=%fn,p2); / 输出按第2方案得到的本息和 printf(p3=%fn,p3); / 输出按第3方案得到的本息和 printf(p4=%
6、fn,p4); / 输出按第4方案得到的本息和 printf(p5=%fn,p5); / 输出按第5方案得到的本息和 return 0;3、购房从银行贷了一笔款d ,准备每月还款额为p ,月利率为r ,计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。提示:计算还请月数m 的公式如下:m = log p log(p-d*r) / log(1+r)可以讲公式该写为m = log p / (p d*r) / log(1+r)C的库函数中有求对数的函数log10,是求以10为底的对数,log(p)表示log p。#include #
7、include int main()float d=300000,p=6000,r=0.01,m;m=log10(p/(p-d*r)/log10(1+r);printf(m=%6.2fn,m);return 0;6、请编将“China”,编译成密码,密码规律是:用原有的字母后面第4个字母代替原来的字母。#include int main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(passwor is %c%c%c%c%cn,c1,c2,c3,c4,c5);return 0;7、设圆
8、半径r =1.5,圆柱高h=3,求圆周长、圆面积、圆柱表面积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。#include int main ()float h,r,l,s,sq,vq,vz;float pi=3.141526;printf(请输入圆半径r,圆柱高h);scanf(%f,%f,&r,&h); /要求输入圆半径r和圆柱高h l=2*pi*r; /计算圆周长ls=r*r*pi; /计算圆面积ssq=4*pi*r*r; /计算圆球表面积sqvq=3.0/4.0*pi*r*r*r; /计算圆球体积vqvz=pi*r*r*h; /计算
9、圆柱体积vzprintf(圆周长为: l=%6.2fn,l);printf(圆面积为: s=%6.2fn,s); printf(圆球表面积为: sq=%6.2fn,sq);printf(圆球体积为: v=%6.2fn,vq);printf(圆柱体积为: vz=%6.2fn,vz);return 0;第四章4、有3个正整数a,b,c,有键盘输入,输出其中最大的数。#include int main()int a,b,c;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);if (ab)if (bc)printf(max=%dn,c);elseprintf(max=
10、%dn,b);else if (ac)printf(max=%dn,c);elseprintf(max=%dn,a);return 0;4、有3个正整数a,b,c,有键盘输入,输出其中最大的数。#include int main() int a,b,c,temp,max;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);temp=(ab)?a:b; /*将a和b中的大者存入temp中*/max=(tempc)?temp:c; /*将a和b中的大者与c比较,取最大者*/printf(三个整数的最大数是%dn,max);return 0;5、从键盘输入一个小于10
11、00的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。#include #include #define M 1000int main()int i,k; printf(请输入一个小于%d的整数i:,M);scanf(%d,&i);while (iM) printf(输入的数不符合要求,请重新输入一个小于%d的整数i:,M);scanf(%d,&i);k=sqrt(i);printf(%d的平方根的整数部分是:%dn,i,k);return 0;6 、有一个函数: x (x1)y = 2*x - 1 (1=x=10)写程序,输入x 的值,输出y 相应的值。#include int main() int x,y; printf(输入x:); scanf(%d,&x); if(x1) /* x1 */ y=x; printf(x=%3d, y=x=%dn ,x,y); else if(x10) /* 1=x10 */ y=2*x-1; printf(x=%d, y=2*x-1=%dn,x,y);