1 / 27
文档名称:

C语言程序设计教程杨路明课后习题答案.pdf

格式:pdf   大小:1,718KB   页数:27页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计教程杨路明课后习题答案.pdf

上传人:青山代下 2024/5/13 文件大小:1.68 MB

下载得到文件列表

C语言程序设计教程杨路明课后习题答案.pdf

相关文档

文档介绍

文档介绍:该【C语言程序设计教程杨路明课后习题答案 】是由【青山代下】上传分享,文档一共【27】页,该文档可以免费在线阅读,需要了解更多关于【C语言程序设计教程杨路明课后习题答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..语言程序设计教程杨路明课后****题答案北京邮电大学出版社第一章1、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述2、c语言程序的结构如下:①c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主控函数。②及之间的内容构成c语言程序的注释部分。③用预处理命令#include可以包含有关文件的信息。④大小写字母在c语言中是有区别的。⑤除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。例如:voidmain()inta,b,c,s;a=8;b=12;c=6;s=ab*c;3、c语言的特点:①c语言具有结构语言的特点,程序之间很容易实现段的共享;②c语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化。③c语言运算符丰富,运算包含的范围很广;④c语言数据类型丰富。⑤c语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能;⑥c语言语法限制不太严格,程序设计自由度大,这样是c语言能够减少对程序员的束缚;⑦用c语言编程,生成的目标代码质量高,程序执行效率高,可移植性好;4、合法标识符:AB12、leed_3、EF3_3、_762、PAS、XYZ43K2不合法标识符:a*b2、8stu、、if、ave#xy、#_DT5、、F2:将当前编辑器中文件存盘F10:调用主菜单F4:程序运行到光标所在行CtrlF9:当前编辑环境下,进行编译、连接且运行程序;1页:..AltF5:将窗口切换到DOS下,查看程序运行结果6、(1):eyouverygood(2):pleaseinputthreenumber;5,7,8maxnumberis:87、main8、Userscreen、AltF59、标识符必须是字母或下划线开头,大小写字母含义不同。由数字、字母和下划线组成;关键字是一种语言中规定具有特定含义的标识符。关键字不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。10、选择主菜单File项下拉子菜单中Save项或直接按F2键存盘。第二章1、符合C语法规定的常数为:0x1e、、、(1):错误如下:intx,y=5,z=5,aver;x=7;aver=(xyx)/3;结果如下:AVER=5(2):错误如下:charc1='a',c2='b',c3='c';结果如下:abc3、4、(1):9,11,9,10(2):3,1,0,0(3):11,19,31,15、(1):0(2):0(3)::..(4):90(5):10(6):10(7):65(8):4(9):(10):1(11):0(12):20(13):06、(5)7、求x的绝对值8、c>(max=a>b?a:b)?c:max;9、B10、D第三章1、输入函数scanf的参数错误,应该为:2、|12341234|3、ff104、1,3,15、原字符串左边加空格再加字符串本省,字符个数总和为5个6、7、8、voidmain()floatr;3页:..floats,c;if(r>=0)s=*r*r;c=2**r;else9、voidmain()intn;if(n>=100&&nelse10、voidmain()inti,j,k;11、voidmain()chara;12、voidmain()floata,b,c,s,Area;if(ab>c||ac>b||bc>a)s=(abc)/2;4页:..Area=sqrt(s*(s-a)*(s-b)*(s-c));else第四章1:02:203:(x20)||(x4:***a=25,b=14,c=16***5:376:if(a7、#includevoidmain()chara,b,t1,t2;t1=a>b?a:b;t2=agetch();8、#includevoidmain()inttemp1=0,temp2=0,x,y,i=1;while((i*y)if(x==(i*y))temp1=1;break;temp2=i;5页:..i;if(temp1)elsegetch();9、#includevoidmain()floatx,y,m=0,n=0;n=(x-2)*(x-2);m=(y-2)*(y-2);if((mn)elsegetch();10、#includevoidmain()inttemp=0,month,year;if((******@0==0)||(year%4==0&&year_0!=0))temp=1;if(month==2)elseif(month%2==0)6页:..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;if(x-5)y=x-1;elseif(x==0)y=x;elseif(x>0&&xy=x1;getch();方法二:#includevoidmain()intx,y;if(x-5)if(x==0)y=x;elseif(x>0&&x7页:..elsey=x-1;getch();方法三:#includevoidmain()intx,y,i;if(x-5)if(x==0)i=1;elseif(x>0&&xelsei=3;elsei=4;switch(i)getch();第五章1、voidmain()intn,value;inti,count=0;floataverage=0;longintsum=0;for(i=0;iif(value%2==0)sum=value;8页:..count;average=sum/(float)count;2、voidmain()charch;intzm=0,sz=0;ch=getchar();while(ch!='*')if((ch>='A'&&ch='a'&&chzm;if(ch>='0'&&chsz;ch=getchar();3、voidmain()longi_value;intsum=0;inttemp=0;if(i_valuefor(;;)temp=i_value_;i_value=i_value/10;sum=temp;if(i_value==0)break;4、9页:..voidmain()charch;ch=getchar();while(ch!='.')if((ch>='A'&&chch=ch32;putchar(ch);elseif((ch>='a'&&chch=ch-32;putchar(ch);elseputchar(ch);ch=getchar();5、voidmain()floatsum=200;intcount=0;for(;;)sum=sumsum*;count;if(sum>500)break;6、voidmain()inti,temp=0,bit=0;for(i=1;iif(i%3==0)temp=i;for(;temp!=0;)10页:..bit=temp_;temp=temp/10;7、#includeintmain(void)intsteps=29,i=1;while(steps%7)steps=(30*i)-1;return0;8、main()inti,j,k,n;for(n=100;ni=n/100;j=n/10-i*10;k=n_;9、main()floati,j,temp,n,sum;intt;i=2;j=1;sum=0;for(n=1;nsum=sumi/j;temp=i;i=ij;j=temp;11页:..10、voidmain()intnWidth,a,b;for(a=(nWidth%2);afor(b=0;bcharchOut='';intnleft=(nWidth-a)/2;intnright=(nWidtha)/2;if(b>=nleft&&bchOut='*';11、voidmain()inti=1,j=1;for(i=1;ifor(j=1;j12、voidmain()charc;//count1是正数的个数//count2是负数的个数intcount1=0,count2=0;//sum1是正数之和//sum2是负数之和intsum1=0,sum2=0;intflage=0;12页:..c=getchar();while(c!='*')if(c=='-')flage=1;if(flage==0)sum1=(c-48);count1;elseif(c!='-')sum2-=(c-48);flage=0;count2;c=getchar();13、voidmain()inti,j;ints=0;for(i=100;is=0;for(j=1;jif(i%j==0)s=sj;14、#include#includevoidmain()intn;longk=1;floate=1;n=1;clrscr();while(fabs()>=)n;e=;13页:..k=k*n;15、main()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;f1=f0;while(fabs(f0)>1e-6);第六章1、#includeintdivisor(inta,intb)intr;while((r=a%b)!=0)a=b;b=r;returnb;intmultiple(inta,intb)intd;14页:..d=divisor(a,b);returna*b/d;voidmain()inta,b,c,d;c=divisor(a,b);d=multiple(a,b);2、#includevoidtongji(chara[])intb[3]=0,0,0,i=0;while(a[i]!='')if((a[i]=65)||(a[i]=97))b[0];elseif(a[i]=48)b[1];elseb[2];i;getch();voidmain()chara[100];gets(a);tongji(a);3、#includeintflower(intn)15页:..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;if(n>999||nelsefor(i=100;igetch();4、#include#defineSWAP(a,b)t=b;b=a;a=t;main()floatx,y,t;SWAP(x,y);getch();5、#includeintfib(intn)intp;if(n==0)p=0;16页:..elseif(n==1)p=1;elsep=fib(n-1)fib(n-2);returnp;voidmain()intn;6、#includelongfac(intn)longf;if(n==0)f=1;elsef=n*fac(n-1);returnf;voidmain()intm,n;longf;f=fac(nm)fac(n);7、#includevoidlist()inti,j;for(i=1;ifor(j=1;jvoidmain()17页:..list();8、#includeinthe(intn)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))9、#include#definemax100structworklongsid;charname[15];worker[max];intsize=0;structwork*set_list()dosize;while(worker[size-1].sid!=0);returnworker;voidpaixu(structworka[])inti,j,k;longt;charv[15];18页:..for(i=0;ik=i;for(j=i;jif(a[i].sid>a[j].sid)k=j;if(k!=i)t=a[i].sid;a[i].sid=a[j].sid;a[j].sid=t;strcpy(v,a[i].name);strcpy(a[i].name,a[j].name);strcpy(a[j].name,v);for(i=0;igetch();voidselect(structworka[])inti=0,found=1;longnum;for(i=0;iif(a[i].sid==num)found=0;break;getch();voidmain()structwork*p;p=set_list();paixu(p);select(p);10、#includefloatjiecheng(intn)longs=1;inti;for(i=1;i19页:..s=s*i;returns;floatchengfang(floatx,intn)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=;intn=7;s1=f(x,n);s2=f(,n);s3=f(x-,n3);s4=s1/(s2s3);getch();第七章1:(1)D(2)A(3)D(4)B(5)D2:(1)**********页:..4(2)63333:(1)a[8]=data;k>=0a[k]=tempbreakk4、/*题目:求一组成绩的平均分数以及高于平均分的成绩。*/#include#definemax100voidmain()floata[max],s=0,average=0;inti,n;输入要处理元素的个数*/输入90,85,92,77,80,62*/for(i=0;is=a[i];average=s/n;*/for(i=0;iif(a[i]>average),,*/5、/*题目:编写程序,输入一组整数,将他们排序后由小到大输出。*/#include#definemax100voidmain()inta[max],j,i,k=0,t=0,n=0;输入要处理元素的个数*/for(i=0;ifor(i=0;i21页:..k=i;for(j=i1;jif(a[k]>a[j])k=j;if(k!=i)/*元素排序前下标及排序后下标不符,则交换其值*/t=a[i];a[i]=a[k];a[k]=t;for(i=0;i6、/*题目:从键盘输入一个4x4的整数矩阵,以主对角线(┪猿浦?//*将左下角元素中较大者替换右上角元素,并将右上角含对称轴输出。*/#include#includevoidmain()intd[4][4]=0,0,0,0,i,j;clrscr();for(i=0;ifor(j=0;jfor(i=0;ifor(j=0;jif(d[i][j]>d[j][i])/*左下角元素大于右上角元素则交换*/d[j][i]=d[i][j];for(i=0;i为了保持每行的间隔及每列的相同*/for(j=0;jif(j>=i)22页:..为了使位数不同的数输出依然保持三角型*/else7、*题目:输入一个3x4的二维数组,然后分别按行和按列输出。*/#include#includevoidmain()intd[3][4]=0,0,0,0,i,j;for(i=0;ifor(j=0;jfor(i=0;ifor(j=0;jfor(i=0;ifor(j=0;j8、/*题目:编写程序,将两个字符串连接起来,不用strcat函数。*/#include#includevoidmain()chars1[50],s2[50];inti=0,j=0,t=0;gets(s1);while(s1[i]!='')i;/*统计s1中字符个数*/23页:..gets(s2);while(s2[j]!='')j;/*统计s2中字符个数*/for(t=0;ts1[i]=s2[t];i;puts(s1);9、/*输入一行字符串,统计字符对ab的个数。*/#include#include#defineMAX100voidmain()charstr[MAX];inti=0,flage=0;intcount=0;gets(str);while(str[i])if(str[i]=='a')flage=1;elseif(str[i]=='b')if(flage==1)count;flage=0;elseflage=0;i;10、#include/*相对于第一种方法,这种方法能把同为最大的字符串全部打印出来。*/#includeintpaixu(inta[],intn)/*构造对长度为n的数组排序的函数*/inti,j,t,k,temp;for(i=0;i24页:..k=i;for(j=i1;jif(a[k]>a[j])k=j;if(k!=i)t=a[i];a[i]=a[k];a[k]=t;temp=a[n-1];returntemp;/*返回最大字符串的长度的值*/voidmain()charstr1[50],str2[50],str3[50],str4[50],str5[50],str6[50];charstr7[50],str8[50],str9[50],str10[50];intcount[10]=0,temp[10]=0,i,j;intpaixu(inta[],intn);for(i=1;iif(i==1)gets(str1);while(str1[count[0]])count[0];temp[0];if(i==2)gets(str2);while(str2[count[1]])count[1];temp[1];if(i==3)gets(str3);while(str3[count[2]])count[2];temp[2];if(i==4)gets(str4);while(str4[count[3]])count[3];temp[3];if(i==5)gets(str5);while(str5[count[4]])count[4];temp[4];if(i==6)gets(str6);while(str6[count[5]])count[5];temp[5];if(i==7)gets(str7);while(str7[count[6]])count[6];temp[6];25页:..if(i==8)gets(str8);while(str8[count[7]])count[7];temp[7];if(i==9)gets(str9);while(str9[count[8]])count[8];temp[8];if(i==10)gets(str10);while(str10[count[9]])count[9];temp[9];j=paixu(temp,10);for(i=1;iif(count[i-1]==j)/*只要字符串长度及最大长度相等就打印出来*/switch(i)11、/*给数组a输入m个按升序排列的数,给数组b输入n个按降序排列的数*//*将a及b中的元素按降序排列存在数组c中。*/#includevoidmain()inta[100],b[100],c[100],i,m,n,j,k,temp=0,s;确定M的个数*/确定N的个数*/for(s=0;s26页:..for(s=0;si=m-1;j=0;k=0;/*i,j,分别标记a[]及b[]且都是从最大元素开始做标记*/for(;;)if(i==0)/*a[]中只有一个数或者a[]处理到了最后一个元素*/if(a[i]elsec[k]=a[i];k;for(;;)/*把b[]数组接到c[]后面*/c[k]=b[j];j;k;if(j==n)/*如果b[]处理完,结束。并做标记temp=1*/temp=1;break;if(temp==1)break;/*标记temp=1,全部处理结束*/if((a[i]c[k]=b[j];j;k;if((a[i]>b[j])&&(i!=0)&&(j!=n))c[k]=a[i];i--;k;if(j==n)/*b[]处理到完*/for(;;)/*把b[]数组接到c[]后面*/if(i==0)/*如果a[]处理完,结束。并做标记temp=1*/c[k]=a[i];temp=1;break;c[k]=a[i];i--;k;if(temp==1)break;/*标记temp=1,全部处理结束*/for(s=0;sgetch();27页