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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言习题答案人民邮电第2版.docx

1、C语言习题答案人民邮电第2版C语言习题答案第1章1选择题12 345CBABD2填空题(1)main (2) main (3) 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4) 顺序、分支和循环(5) 自顶向下,逐步细化、模块化设计、限制使用goto语句第2章1选择题12 345 67 890 12 34 5ACCDA DDBBA BBACB 2、填空题 (1) 数字、字母、下划线 (2)0 (3) 4、8 (4) (a+b)*c/(a-b) (5) 60 (6)16(7)9 (8)6、4、2 (9)0 (10)10、6 (11)12、4 (12)5.500000(13) 0

2、(14)16 (15)6.63、编程题(1)编写一个程序求各种类型数据的存储长度。#include main() printf(int:%d byten,sizeof(int); printf(short int:%d byten,sizeof(short int); printf(long int:%d byten,sizeof(long int); printf(float:%d byten,sizeof(float); printf(double:%d byten,sizeof(double); printf(long double:%d byten,sizeof(long double

3、); printf(char:%d byten,sizeof(char);(2)#include #define RAT 1.60934main() float k; printf(input the km:); scanf(%f,&k); printf(mile:%fn,k/RAT);第3章1选择题 12 345 67 890(1) (10):DDCDD DCDCC 2解析题(1) x=170,x=170,x=252,x=aa,x=170 x=170,x=170,x=170,x=%6d a=513.789185,a=513.79,a=513.78918457,a=513.78918457(2

4、) a=3b=7x=8.5y=71.82c1=Ac2=a3编程题(1)main() int x,y; scanf(%d%d,&x,&y); printf(商数=%d,余数=%d,x/y,x%y); (2)main() double x,y,z,avg; scanf(%lf%lf%lf,&x,&y,&z); avg=(x+y+z)/3; printf(%.1f,avg);第4章 1选择题(1)(10) CCAAD CCABD 2填空题(1)a0&b0|a0&c0|b0&c0ab|a5|-a5(a0) 1 !(x=0&x=A&ch=Z ch=ch-32(5) x2 x-1 y=-1 ;(6) a+

5、bc&a+cb&b+ca a=b&a=c a=b|a=c|b=c(7) x0 c=x/10 y!=-23编程题(1)#include main() int x; printf(please input a number:); scanf(%d,&x); if(x%2=0) printf(x is a even number); else printf(x is a odd number);(2)#include main() int x,y; printf(please input a number:); scanf(%d,&x); if(x-5 & x0 & x10) y=x+1; prin

6、tf(%d,y); else printf(the number is error);(3)#include main() int a,m; printf(please input a number:); scanf(%d,&a); switch(a/10) case 0: case 1: case 2:m=1;break; case 3:m=2;break; case 4:m=3;break; case 5:m=4;break; default:m=5;break; printf(%d,m);(4)#include main() float price,tax; printf(please

7、input the price of product:); scanf(%f,&price); if(price=10000) tax=price*0.05; else if(price=5000) tax=price*0.03; else if(price=1000) tax=price*0.02; else tax=0; printf(%f,tax);(5)#include main() float score; printf(please input the score of student:); scanf(%f,&score); if(score=85) printf(VERY GO

8、OD); else if(score=60) printf(GOOD); else printf(BAD);(6)# include main () int x,y,z; printf(input two number:); scanf(%d%d,&x,&y); if(x99 | y99) printf(input data error!n); else z=(x/10)*1000+(y/10)*100+(x%10)*10+y%10; printf(%dn,z); 第5章1选择题(1)d (2) c (3)a (4)d (5)a (6)d (7)d (8)b (9)d (10)b(11)c (

9、12)a (13)d (14)d (15)c2填空题(1) fahr celsius=5.0/9*(fahr-32) fahr+=step (2) 5、4、6 (3) 3*i-2(4) y- z*=x (5) 852 (6) j+ i%j=0 j=i(或j=i) (7)sumk sum=k j-2 (8) s=0 p=1 j=i 3改错题 (1) 第一处改正: For改为for 第二处改正:for(k=1;k=4;k+)或for(k=0;k=eps第三处改正:r*2(4) 第一处改正:&n第二处改正:= =(5) 第一处改正:t=m/10改为t=m%10第二处改正:t=0改为t=0第三处改正:

10、m=m%10改为m=/104编程题(1) 分式累加和。#include main() int s; float n,t,sum; t=1; sum=0; n=1; s=1.0; while(n=100) sum=sum+t; n=n+1; s=-s; t=s/n; printf(sum=%10.6fn,sum);(2)110的阶乘#include main() int i; long int n=1; for(i=1;i=10;i+) n=n*i; printf(i%5=0?%2d!=%-10ldn:%2d!=%-10ld,i,n); (3)由*组成的等腰三角形#include main()

11、int n,i,j; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n+i-1;j+) if(j=n-i) printf( ); else printf(*); printf(n); (4)完数main() int m,s,i; for(m=2;m1000;m+) s=0; for(i=1;im;i+) if(m%i)=0) s=s+i; if(s=m) printf(%d its factors are ,m); for(i=1;im;i+) if(m%i=0) printf(%d,i); printf(n); (5)打靶#include main() in

12、t h10,h7,h5; for(h10=0; h10=8; h10+) for(h7=0; h7=8; h7+) for(h5=0; h50) x1=(x2+1)*2; /*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day-; printf(thetotalis%dn,x1); /代码二main() int i=9,sum=1; for(; i0; sum=2*(sum+1),i-); printf( sum=%dn ,sum); (7)牛顿迭代法一般地:f(x)=a0xn+a1xn-1+.+an-1x+an=0 求f(x)在X0附近的根 计算公式:Xn+1=Xn-f(Xn

13、)/f(Xn) 精度:= |Xn+1-Xn|1.0e-m,m=5。 所求的根:满足精度的Xn#include #includemain() float x,x0,f,f1; x=1.5; /可改为scanf(%f,&x); do x0=x; f=2*x0*x0*x0-4*x0*x0+3*x0-6; f1=6*x0*x0-8*x0+3; / f的导数,即它的切线 x=x0-f/f1; / 切线与x轴的交点 while(fabs(x-x0)=1e-5); printf(The root is %8.7fn,x); (8) 利用辗除法,直到b为0为止main() int p,r,n,m,temp;

14、printf(input two integer n,m:); scanf(%d,%d,&n,&m); if(nm) temp=n; n=m; m=temp; p=n*m; while(m!=0) r=n%m; n=m; m=r; printf(greatest common divisor is:%dn,n); /最大公约数 printf(lease common multiple is:%dn,p/n); /最小公倍数第6章1选择题12 3 4 5 67 8 90CCDCC AADBD2. 写出程序的运行结果(1) sum=6 (2) Max=9,row=1,col=0 (3) 01 02

15、 1 03 2 1 0(4) -53、填空(1)i=j=k=0 i4&j=5 j0 n%10+0x30或n%10+0 sj=0(4)si 、 s0,s1 、str,s1、s2,str4.改错题(1) 第一处改正:n=strlen(str)第二处改正:strj= 第三处改正:strj!= (2)第一处改正:ch=stri第二处改正:(j=0) & (chstrj) (3) 第一处改正:s1i!=0第二处改正:j=0; (4)第一处改正:cnt=0第二处改正:if(!(m%i)第三处改正:icnt5. 编程题(1)VC提供的int rand(void)产生的实际上是032767(short型的最大

16、数)的伪随机数,伪随机数总是以一个相同的数为起始值(种子),运用递推的原理来生成的。所以,如果只使用rand函数,每次运行所形成的伪随机数列也相同,失去了随机意义。但这样便于程序调试。VC的rand()函数默认以1为种子。要解决这个问题,需要在每次产生随机序列前,先指定不同的种子,这样计算出来的随机序列就不会完全相同了。VC提供的void srand(unsigned int seed)将seed作为种子,如果以time函数值(即当前时间)作为种子数,那么就可以保证随机性了,因为两次调用rand函数的时间通常是不同的。也可以使用srand函数来人为指定种子数。若要产生之间的一个随机数,则可用a

17、 + rand() % (b-a+1)表示。若要01的小数,则可以先取得010的整数,然后均除以10即可得到随机到十分位的10个随机小数;若要得到随机到百分位的随机小数,则需要先得到0100的整数,然后均除以100,其它情况依此类推。 #include #include #include main() int a12,count=0,i; srand(unsigned) time(NULL); for (i=0;i12;i+) ai=5+rand()%11; for(i=0;i12;i+) printf(%5d,ai); count+; if(count%4=0)printf(n) ; (2)

18、#include #define N 5main() int aN,max,min,i,sum=0,count=0; float av; for(i=0; iN; i+) scanf(%d,&ai); max=min=a0; for(i=0; imax)max=ai; if(aimin)min=ai; av=(float)sum/5; for(i=0; iav)count+; printf(max:%dnmin:%dnav:%fncount:%d,max,min,av,count); (3)#include main() int score30; /*=61,62,63,64,65,66,67

19、,68,69,70, 71,72,73,74,75,76,77,78,79,80, 81,85,89,90,33,44,55,91,92,93; /不必赋初值,这是为调试程序方便*/ int i,count90=0,count80=0,count70=0,count60=0; for(i=0;i30;i+) printf(intput NO. %d students score:,i+1); scanf(%d,score+i); for(i=0;i=90) count90+; count80+; count70+; count60+; else if(scorei=80) count80+;

20、count70+; count60+; else if(scorei=70) count70+; count60+; else if(scorei=60) count60+; printf(059:%dn6069:%dn7079:%dn8089:%dn90100:%d,30-count60,count60-count70,count70-count80,count80-count90,count90); printf(n60 or higher:%dn70 or higher:%dn80 or higher:%dn90 or higher:%dn,count60,count70,count80

21、,count90);(4)1、#include main() char a45; int i,j,k; for(i=0;i45;i+)ai= ; for(i=0;i5;i+) for(j=0;ji;j+) a9*i+j= ; for(k=0;k5;k+) a9*i+j+k=*; j=0; for(i=0;i45;i+) printf(%c,ai); j+; if(j%9=0)printf(n); 2、#include main() char a59; int i,j,k; for(i=0;i5;i+) for(j=0;j9;j+) aij= ; for(i=0;i5;i+) for(j=0;j

22、i;j+) aij= ; for(k=0;k5;k+) aij+k=*; for(i=0;i5;i+) for(j=0;j9;j+) printf(%c,aij); printf(n); (5)# include # define N 4main() int i,j,aN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10; printf(nThe original array:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%2d ,aij); printf(n); for(i=1;iN;i+) for(j=0;j

23、i;j+) aij=aij+aji; aji=0; printf(nThe result is:n); for(i=0;iN;i+) for(j=0;jy?x:y) (8)*#*#*#*(9) str =abdef (10) low=high (high+low)/23.改错题(1)第一处:void改为int第二处:i=n & (n%i=0)改为i=n & (n%i!=0)或in & (n%i!=0)第三处:n!=i改为n=i(2)第一处:删除;第二处: for(j=1; j=50; i+)改为 for(j=1; j=1e-6)改为if(fabs(x1-x0)=1e-6)4 、编程题(1) #include long act(long n) if (n=1|n=0) return 1; else return n*act(n-1); main()

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

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