ImageVerifierCode 换一换
格式:DOCX , 页数:96 ,大小:36.62KB ,
资源ID:14428039      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14428039.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课后习题答案解析.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课后习题答案解析.docx

1、C语言课后习题答案解析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; i

2、f (maxc) max=c; printf(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 为年增

3、长率,n 为年数,p为与现在相比的倍数。#include #include 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年定期存

4、款利息为5.4%;5年定期存款利息为5.85%;活期存款利息为0.27%(活期利息每一季度结算一次。)如果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;

5、r1=0.0414; r0=0.0072; p=1000; p1=p*(1+r5)*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方案得到的本息和

6、printf(p3=%fn,p3); / 输出按第3方案得到的本息和 printf(p4=%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的库函数中有求

7、对数的函数log10,是求以10为底的对数,log(p)表示log p。#include #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; pr

8、intf(passwor is %c%c%c%c%cn,c1,c2,c3,c4,c5); return 0;7、设圆半径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; /计算圆周长l s=r*r*pi; /计算圆面积s sq=4*

9、pi*r*r; /计算圆球表面积sq vq=3.0/4.0*pi*r*r*r; /计算圆球体积vq vz=pi*r*r*h; /计算圆柱体积vz printf(圆周长为: 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(请输入三个整数:)

10、; scanf(%d,%d,%d,&a,&b,&c); if (ab) if (bc) printf(max=%dn,c); else printf(max=%dn,b); else if (ac) printf(max=%dn,c); else printf(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中*/

11、max=(tempc)?temp:c; /*将a和b中的大者与c比较,取最大者*/ printf(三个整数的最大数是%dn,max); return 0;5、从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。#include #include #define M 1000int main() int i,k; printf(请输入一个小于%d的整数i:,M); scanf(%d,&i); while (iM) printf(输入的数不符合要求,请重新输入一个小于%d的整数i:

12、,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=x=10 */ y=3*x-11; printf(x=%d, y=3*x-11=%dn,x,y);

13、return 0;7、有一个函数: - 1 (x0)写程序,输入x 的值,输出y 相应的值。#include int main() int x,y; printf(please enter x:); scanf(%d,&x); y=0; if(x=0) if(x0) y=1; else y=-1; printf(x=%d,y=%dn,x,y);return 0;8、给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。#include int main() float score; char grade; prin

14、tf(请输入学生成绩:); scanf(%f,&score); while (score100|score0) printf(n 输入有误,请重输); scanf(%f,&score); switch(int)(score/10) case 10: case 9: grade=A;break; case 8: grade=B;break; case 7: grade=C;break; case 6: grade=D;break; case 5: case 4: case 3: case 2: case 1: case 0: grade=E; printf(成绩是 %5.1f,相应的等级是%cn

15、 ,score,grade); return 0;9、给出一个不多于5位数的正整数;(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆顺序输出各位数,例如原有数为123,应输出321.#include #include int main()int num,indiv,ten,hundred,thousand,ten_thousand,place;/分别代表个位,十位,百位,千位,万位和位数 printf(请输入一个整数(0-99999):); scanf(%d,&num); if (num9999) place=5; else if (num999) place=4; else if

16、(num99) place=3; else if (num9) place=2; else place=1; printf(位数:%dn,place); printf(每位数字为:); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-t

17、en_thousand*10000-thousand*1000-hundred*100-ten*10); printf(n反序数字为:); switch(place) case 5: printf(%d%d%d%d%dn,indiv,ten,hundred,thousand,ten_thousand); break; case 4: printf(%d%d%d%dn,indiv,ten,hundred,thousand); break; case 3:printf(%d%d%dn,indiv,ten,hundred); break; case 2: printf(%d%dn,indiv,ten

18、); break; case 1: printf(%dn,indiv); break; return 0;11、输入4个整数,要求按由小到大的顺序输出。#include int main() int t,a,b,c,d; printf(请输入四个数:); scanf(%d%d%d%d,&a,&b,&c,&d); printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (ad) t=a;a=d;d=t; if (bc) t=b;b=c;c=t; if (bd) t=b;b=d;d=t;

19、if (cd) t=c;c=d;d=t; printf(排序结果如下: n); printf(%d %d %d %d n ,a,b,c,d); return 0;12、有4个圆塔,圆心分别为(2,2)、(- 2,2)、(- 2,- 2)、(2,- 2),圆半径为 1 ,这4个圆塔高位10cm, 塔以外无建筑物。求该点的建筑物高度(塔外的高度为零)。#include int main() int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf(请输入一个点(x,y):); scanf(

20、%f,%f,&x,&y); d1=(x-x4)*(x-x4)+(y-y4)*(y-y4); /*求该点到各中心点距离*/ d2=(x-x1)*(x-x1)+(y-y1)*(y-y1); d3=(x-x2)*(x-x2)+(y-y2)*(y-y2); d4=(x-x3)*(x-x3)+(y-y3)*(y-y3); if (d11 & d21 & d31 & d41) h=0; /*判断该点是否在塔外*/ printf(该点高度为 %dn,h); return 0;第五章 例57 用pi/4=1- 1/3+1/5- 1/7+公式求pi近似值,直到发现某一项的绝对值小于106为止。#include

21、#include / 程序中用到数学函数fabs,应包含头文件math.nint main() int sign=1,count=0; / sign用来表示数值的符号,count用来统计循环次数 double pi=0.0,n=1.0,term=1.0;/ pi开始代表多项式的值,最后代表的值, n代表分母, term代表当前项的值 while(fabs(term)=1e-8) / 检查当前项term的绝对值是否大于或等于10的(-6)次方 pi=pi+term; / 把当前项term累加到pi中 n=n+2; / n+2是下一项的分母 sign=-sign; / sign代表符号,下一项的符

22、号与上一项符号相反 term=sign/n; / 求出下一项的值term count+; / count累加1 pi=pi*4; / 多项式的和pi乘以4,才是的近似值 printf(pi=%10.8fn,pi); / 输出的近似值 printf(count=%dn,count); / 输出循环次数 return 0;3、输入两个正整数m和n ,求其最大公约数和最小公倍数。#include int main() int p,r,n,m,temp; printf(请输入两个正整数n,m:); scanf(%d,%d,&n,&m); if (nm) temp=n; n=m; m=temp; p=n

23、*m; while(m!=0) r=n%m; n=m; m=r; printf(它们的最大公约数为:%dn,n); printf(它们的最小公约数为:%dn,p/n); return 0;4、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#include int main() char c; int letters=0,space=0,digit=0,other=0; printf(请输入一行字符:n); while(c=getchar()!=n) if (c=a & c=A & c=0 & c=9) digit+; else other+; printf(字母数:%dn空

24、格数:%dn数字数:%dn其它字符数:%dn,letters,space,digit,other); return 0; 5、求Sn=a+aa+aaa+aaa之值,其中a是一个数字,n 表示a 的位数。n 由键盘输入。#include int main() int a,n,i=1,sn=0,tn=0; printf(a,n=:); scanf(%d,%d,&a,&n); while (i=n) tn=tn+a; /*赋值后的tn为i个 a组成数的值*/ sn=sn+tn; /*赋值后的sn为多项式前i项之和*/ a=a*10; +i; printf(a+aa+aaa+.=%dn,sn); re

25、turn 0;6、求和:1!+2!+3!+20!。#include int main() double s=0,t=1; int n; for (n=1;n=20;n+) t=t*n; s=s+t; printf(1!+2!+.+20!=%22.15en,s); return 0;7、求1+2+3+100+1+22+32+42+502+1+1/2+1/3+1/4+1/10。#include int main() int n1=100,n2=50,n3=10; double k,s1=0,s2=0,s3=0; for (k=1;k=n1;k+) /*计算1到100的和*/ s1=s1+k; fo

26、r (k=1;k=n2;k+) /*计算1到50各数的平方和*/ s2=s2+k*k; for (k=1;k=n3;k+) /*计算1到10的各倒数和*/ s3=s3+1/k; printf(sum=%15.6fn,s1+s2+s3); return 0;8、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如153是一位水仙花数,因为153=13+53+33。#include int main() int i,j,k,n; printf(parcissus numbers are ); for (n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i + j*j*j + k*k*k) printf(%d ,n); printf(n); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1