C语言程序设计教程_第1页
C语言程序设计教程_第2页
C语言程序设计教程_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计教程杨路明课后习题答案北京邮电大学出版社第一章1算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述2、c语言程序的结构如下: c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主控函数。 /*与*/之间的内容构成c语言程序的注释部分。 用预处理命令#inelude可以包含有关文件的信息。 大小写字母在c语言中是有区别的。 除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。例如:voidmain()inta,b,c,s;a=8;b=12;c=6;s=ab*c;printf(s=%

2、d,s);3、c语言的特点: c语言具有结构语言的特点,程序之间很容易实现段的共享;c语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化。 c语言运算符丰富,运算包含的范围很广;c语言数据类型丰富。 c语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能;c语言语法限制不太严格,程序设计自由度大,这样是c语言能够减少对程序员的束缚; 用c语言编程,生成的目标代码质量高,程序执行效率高,可移植性好;4、合法标识符:AB12leed_3、EF3_3_762、PASXYZ43K2不合法标识符:a*b2、8stu、if、ave#x

3、y、#_DT5C.D5、F2:将当前编辑器中文件存盘F10:调用主菜单F4:程序运行到光标所在行CtrlF9:当前编辑环境下,进行编译、连接且运行程序;AltF5:将窗口切换到DOST,查看程序运行结果6、:*welcomeyouverygood*:pleaseinputthreenumber;5,7,8maxnumberis:87、main&Userscreen、AltF59、标识符必须是字母或下划线开头,大小写字母含义不同。由数字、字母和下划线组成;关键字是一种语言中规定具有特定含义的标识符。关键字不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。10、选择主菜单File项下拉子

4、菜单中Save项或直接按F2键存盘。第二章1、符合C语法规定的常数为:0x1e、ab、1.e52、:错误如下:intx,y=5,z=5,aver;x=7;aver=(xyx)/3;结果如下:AVER=5:错误如下:charc1=a,c2=b,c3=c;printf(a=?=_end,a,b);结果如下:a=3b=Aendaabccabc3、4、(1):9,11,9,10(2)31,0,0(3):11,19,31,15、(1):0:09500000:90(5):10:10:65(8) :4:4.500000(9) :1:0(10) :20:06、7、求x的绝对值8、c(max=ab?a:b)?c

5、:max;9、B10、D第三章1、输入函数scanf的参数错误,应该为:scanf(%f,&k);2、|12341234|3、ff104、1,3,15、原字符串左边加空格再加字符串本省,字符个数总和为5个6、seanf(%d,%d,%c,%c,&a1,&a2,&c1,&c2);7、printf(ab=%d,ab);printf(a-b=%d,a-b);printf(a*b=%d,a*b);printf(a/b=%d,a/b);printf(float)a/b=%f,(float)a/b);printf(a%b=%d,a%b);8voidmain()floatr;floats,c;printf(

6、pleaseinputthenumber:);scanf(%f,&r);if(r=0)s=3.14*r*r;c=2*3.14*r;printf(s=%f,c=%f,s,c);elseprintf(youinputnumberiserror!);9、voidmain()intn;printf(pleaseinputthenumber:);scanf(%d,&n);if(n=100&nprintf(%d%d%d,n_,(n/10)_,n/100);elseprintf(youinputnumberiserror!);10、voidmain()inti,j,k;scanf(%d,%d,%d,&i,&

7、j,&k);(i%2!=0?1:0)(j%2!=0?1:0)(k%2!=0?1:0)=2?printf(YES):printf(NO);11、voidmain()charBscanf(=%c=QOa)八pinff(=%0%cc=aAab1)八pinff(=%ddd=a?abk)八12,voidmain()foafpboSArea八scanf(=%h%f-%fQOaQObQOc)八if(abVc-acVb-bcva)sH(abc)?AreaHsqrt(s*(sa)*(sb)*(sc)八primf(=%rAeaxe-sepinff(=youinpu二henumberiselrorv)八MEM1-0

8、!?203(X2O)=(X4-*aH25bH14oH16*537pif(ae_sePinm2x7,ttinc-udevoidmain。charabfkJ2八scanf(=%0%c=QOaQOb)八f_kHavbzabKSHa=h(mf2)2HH0)p!1mf(=%G%c=abshang=%d,yushu=%d,x,y,temp2,x-y*temp2);getch();9、#includevoidmain()floatx,y,m=0,n=0;scanf(%f,%f,&x,&y);n=(x-2)*(x-2);m=(y-2)*(y-2);if(mn)printf(%.3f,%.3f)lntheyua

9、n,x,y);elseprintf(%.3f,%.3f)outoftheyuan,x,y);getch();10、#includevoidmain()inttemp=O,month,year;printf(Pleaseinput(year,month):);seanf(%d,%d,&year,&month);if(year0=0)|(year%4=0&year_O!=O)temp=1;if(month=2)if(temp)printf(%dyear%dmonthhave29,year,month);elseprintf(%dyear%dmonthhave28,year,month);elsei

10、f(month%2=0)printf(%dyear%dmonthhave30,year,month);elseprintf(%dyear%dmonthhave31,year,month);getch();11、switch(a/10)case5:m=4;break;case4:m=3;break;case3:m=2;break;case2:m=1;break;default:m=5;12、方法一:#includevoidmain()intx,y;scanf(%d,&x);if(x-5)y=x-1;elseif(x=0)y=x;elseif(x0&xy=x1;printf(%d,y);getch

11、();方法二:#includevoidmain()intx,y;scanf(%d,&x);if(x-5)if(x=O)y=x;elseif(x0&xelsey=x-1;printf(%d,y);elseprintf(Inputerror!);getch();方法三:#includevoidmain()intx,y,i;scanf(%d,&x);if(x-5)if(x=0)i=1;elseif(x0&xelsei=3;elsei=4;switch(i)case1:y=x;printf(%d,y);break;case2:y=x1;printf(%d,y);break;case3:y=x-1;pr

12、intf(%d,y);break;case4:printf(lnputerror!);break;getch();第五章1、voidmain()intn,value;inti,count=0;floataverage=0;longintsum=0;seanf(%d,&n);for(i=0;iseanf(%d,&value);if(value%2=0)sum=value;count;average=sum/(float)eount;printf(theaverageis%f,average);2、#ineludestdio.hvoidmain()chareh;intzm=0,sz=0;eh=ge

13、tehar();while(ch!=*)if(eh=A&eh=a&ehzm;if(eh=O&ehsz;eh=getehar();printf(zm=%d;sz=%d,zm,sz);3、voidmain()longi_value;intsum=0;inttemp=0;seanf(%ld,&i_value);if(i_valuefor(;)temp=i_value_;i_value=i_value/10;sum=temp;printf(%d,temp);if(i_value=0)break;printf(=%d,sum);4、#includestdio.hvoidmain()charch;ch=g

14、etchar();while(ch!=.)if(ch=A&chch=ch32;putchar(ch);elseif(ch=a&chch=ch-32;putchar(ch);elseputchar(ch);ch=getchar();printf();5、voidmain()floatsum=200;intcount=0;for(;)sum=sumsum*0.045;count;if(sum500)break;printf(the%dyearslatercomplete!,count);6、voidmain()inti,temp=0,bit=0;for(i=1;iif(i%3=0)temp=i;f

15、or(;temp!=0;)bit=temp_;if(bit=5)printf(%d,i);break;temp=temp/10;printf();7、#includeintmain(void)intsteps=29,i=1;while(steps%7)steps=(30*i)-1;printf(Totalsteps:%d,steps);return0;8main()inti,j,k,n;printf(thenarcissusnumberis:);for(n=100;ni=n/100;j=n/10-i*10;k=n_;if(i*i*ij*j*jk*k*k=n)printf(%d,n);9、mai

16、n()floati,j,temp,n,sum;intt;i=2;j=1;sum=0;seanf(%d,&t);for(n=1;nsum=sumi/j;temp=i;i=ij;j=temp;printf(2/13/25/38/513/8.=%f,sum);10、voidmain()intnWidth,a,b;seanf(%d,&nWidth);for(a=(nWidth%2);afor(b=0;bcharehOut=;intnleft=(nWidth-a)/2;intnright=(nWidtha)/2;if(b=nleft&behOut=*;printf(%e,ehOut);printf();

17、r11、voidmain()inti=1,j=1;for(i=1;ifor(j=1;jprintf(%d*%d=%d,i,j,i*j);printf()12、#includestdio.hvoidmain()charc;/countl是正数的个数count2是负数的个数intcount1=0,count2=0;/sum1是正数之和/sum2是负数之和intsum1=0,sum2=0;intflage=0;c=getchar();while(c!=*)if(c=-)flage=1;if(flage=0)sum1=(c-48);count1;elseif(c!=-)sum2-=(c-48);fla

18、ge=0;count2;c=getchar();printf(%d,%d,count1,count2);printf(%f,%f,sum1/count1,sum2/count2);13、voidmain()inti,j;ints=0;for(i=100;is=0;for(j=1;jif(i%j=0)s=sj;if(s=i)printf(,i);14、#include#includevoidmain()intn;longk=1;floate=1;n=1;clrscr();while(fabs(1.0/k)=0.000001)n;e=e1.0/k;k=k*n;printf(%f,e);15、#in

19、cludemath.hmain()floatx0,x1,x2,f0,f1,f2;x1=-10;f1=2*x1*x1*x1-4*x1*x13*x1;x2=10;f2=2*x2*x2*x2-4*x2*x23*x2;dox0=(x1x2)/2;f0=2*x0*x0*x0-4*x0*x03*x0;if(f0*f1)x2=x0;f2=f0;elsex1=x0;f仁f0;while(fabs(f0)1e-6);printf(2*x*x*x-4*x*x3*x=0:n);printf(therootis%f,xO);第六章1、#includeintdivisor(inta,intb)intr;while(r=

20、a%b)!=O)a=b;b=r;returnb;intmultiplenta,intb)intd;d=divisor(a,b);returna*b/d;voidmain()inta,b,c,d;printf(intput(a,b):);scanf(%d,%d,&a,&b);c=divisor(a,b);d=multiple(a,b);printf(=%d=%d,c,d);2、#includevoidtongji(chara)intb3=0,0,0,i=0;while(ai!=)if(ai=65)|(ai=97)b0;elseif(ai=48)b1;elseb2;i;printf(zimuhav

21、e:%d;shuzihave:%d;qitahave:%d,b0,b1,b2);getch();voidmain()chara100;printf(Pleaseinputastring:);gets(a);tongji(a);3、#includeintflower(intn)intx=0,i,j,k;i=(n_);j=(n/10_);k=(n/100);x=i*i*ij*j*jk*k*k;if(x=n)return1;elsereturn0;voidmain()inti,n;printf(Pleaseintputn:);scanf(%d,&n);if(n999|nelsefor(i=100;i

22、if(flower(i)printf(%d,i);getch();4、#include#defineS)t=b;b=a;a=t;main()floatx,y,t;printf(Entertwonumber(x,y):);seanf(%f,%f,&x,&y);S);printf(:x=%f,y=%f,x,y);geteh();5、#includeintfib(intn)intp;if(n=0)p=0;elseif(n=1)p=1;elsep=fib(n-1)fib(n-2);returnp;voidmain()intn;printf(Pleaseinputfib:);seanf(%d,&n);p

23、rintf(=%d,fib(n);6、#includelongfae(intn)longf;if(n=0)f=1;elsef=n*fae(n-1);returnf;voidmain()intm,n;longf;printf(卩leaseinput(m,n):”);seanf(%ld,%ld,&m,&n);f=fac(nm)fac(n);printf(=%ld,f);7、#includevoidlist()inti,j;for(i=1;ifor(j=1;jprintf(%d*%d=%d,i,j,i*j);printf(HH);voidmain()list();8#includeinthe(int

24、n)inti,s=0;for(i=1;iif(n%i=0)s=i;returns;voidmain()inti,j;for(i=1;ifor(j=1;jif(he(i)=j)&(he(j)=i)&(i!=j)printf(%d%d,i,j);9、#include#definemax100structworklongsid;charname15;workermax;intsize=0;structwork*set_list()doprintf(input(sid,name):);scanf(%ld,%s,&workersize.sid,);size;while(wo

25、rkersize-1.sid!=0);returnworker;voidpaixu(structworka)inti,j,k;longt;charv15;for(i=0;ik=i;for(j=i;jif(ai.sidaj.sid)k=j;if(k!=i)t=ai.sid;ai.sid=aj.sid;aj.sid=t;strcpy(v,);strcpy(,);strcpy(,v);for(i=0;iprintf(sid:%ld:%s,ai.sid,);getch();voidselect(structworka)inti=0,

26、found=1;longnum;printf(Inputselectsid:);scanf(%ld,&num);for(i=0;iif(ai.sid=num)found=0;printf(%ld:%s,num,);break;if(found)printf(thissid!);getch();voidmain()structwork*p;p=set_list();paixu(p);select(p);10、#includefloatjiecheng(intn)longs=1;inti;for(i=1;is=s*i;returns;floatchengfang(floatx,int

27、n)floats=1;inti;for(i=1;is=s*x;returns;floatf(floatx,intn)floats=1,t=0;inti=1,j=-1;for(i=1;it=j*chengfang(x,2*i)/jiecheng(2*i);s=t;j=j*j;returns;main()floats1=0,s2=0,s3=0,s4=0,x=5.6;intn=7;s1=f(x,n);s2=f(x2.3,n);s3=f(x-3.2,n3);s4=s1/(s2s3);printf(%f,s4);getch();第七章1:(1)D(2) A(3) D(4) B(5) D2:(1)1544

28、678234(2)63333:(1)a8=data;k=0ak=tempbreakk%sstri4、/*题目:求一组成绩的平均分数以及高于平均分的成绩。*/#include#definemax100voidmain()floatamax,s=O,average=O;inti,n;printf(PleaseinputN:);/*输入要处理元素的个数*/scanf(%d,&n);for(i=0;ifor(i=0;iprintf(input%dgeshu:,n);/*输入90,85,92,77,80,62*/scanf(%f,&ai);s=ai;average=s/n;printf(=%.2f,av

29、erage);/*输出81.00*/for(i=0;iif(aiaverage)printf(%.2f,ai);/*输出90.00,85.00,92.00*/5、/*题目:编写程序,输入一组整数,将他们排序后由小到大输出。*/#include#definemax100voidmain()intamax,j,i,k=0,t=0,n=0;printf(PleaseinputN:);/*输入要处理元素的个数*/scanf(%d,&n);for(i=0;iscanf(%d,&ai);for(i=0;ik=i;for(j=i1;jif(akaj)k=j;if(k!=i)/*元素排序前下标与排序后下标不符

30、,则交换其值*/t=ai;ai=ak;ak=t;printf();for(i=0;iprintf(%d,ai);6、/*题目:从键盘输入一个4x4的整数矩阵,以主对角线(T猿浦?/*将左下角元素中较大者替换右上角元素,并将右上角含对称轴输出。*/#include#includevoidmain()intd44=0,0,0,0,i,j;clrscr();printf(input16num:);for(i=0;ifor(j=0;jscanf(%d,&dij);for(i=0;ifor(j=0;jif(dijdji)/*dji=dij;for(i=0;iprintf();/*for(j=0;jif(

31、j=i)printf(%d,dij);/*elseprintf();左下角元素大于右上角元素则交换*/为了保持每行的间隔与每列的相同*/为了使位数不同的数输出依然保持三角型*/7、*题目:输入一个3x4的二维数组,然后分别按行和按列输出。*/#inelude#ineludevoidmain()intd34=0,0,0,0,i,j;printf(Pleaseinput12num:);for(i=0;ifor(j=0;jscanf(%d,&dij);printf(hang:);for(i=0;ifor(j=0;jprintf(lie:);for(i=0;ifor(j=0;jprintf(%d,dj

32、i);函数。*/8/*题目:编写程序,将两个字符串连接起来,不用strcat#include#includevoidmain()chars150,s250;inti=0,j=0,t=0;printf(Inputone:);gets(s1);while(s1i!=)i;/*统计s1中字符个数*/printf(second:);gets(s2);while(s2j!=)j;/*统计s2中字符个数*/for(t=0;ts1i=s2t;i;printf(second:);puts(s1);9、/*输入一行字符串,统计字符对ab的个数。*/#include#include#defineMAX100voi

33、dmain()charstrMAX;inti=0,flage=0;intcount=0;gets(str);while(stri)if(stri=a)flage=1;elseif(stri=b)if(flage=1)count;flage=0;elseflage=0;i;printf(thedoublecharabcountis%d,count);10、*/#include*/#include#include/*相对于第一种方法,这种方法能把同为最大的字符串全部打印出来。intpaixu(inta,intn)/*构造对长度为n的数组排序的函数*/inti,j,t,k,temp;for(i=0;

34、ik=i;for(j=i1;jif(akaj)k=j;if(k!=i)t=ai;ai=ak;ak=t;temp=an-1;returntemp;/*返回最大字符串的长度的值*/voidmain()charstr150,str250,str350,str450,str550,str650;charstr750,str850,str950,str1050;intcount10=0,temp10=0,i,j;intpaixu(inta,intn);for(i=1;iprintf(input%dstring:,i);if(i=1)gets(str1);while(str1count0)countO;t

35、empO;if(i=2)gets(str2);while(str2count1)count1;temp1;if(i=3)gets(str3);while(str3count2)count2;temp2;if(i=4)gets(str4);while(str4count3)count3;temp3;if(i=5)gets(str5);while(str5count4)count4;temp4;if(i=6)gets(str6);while(str6count5)count5;temp5;if(i=7)gets(str7);while(str7count6)count6;temp6;if(i=8)gets(str8);while(str8count7)count7;temp7;if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论