• 365.55 KB
  • 2022-04-22 11:19:14 发布

C语言程序设计 (顾志华 陈天煌 著) 机械工业出版社

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后答案网您最真诚的朋友www.hackshp.cn网团队竭诚为学生服务,免费提供各门课后答案,不用积分,甚至不用注册,旨在为广大学生提供自主学习的平台!课后答案网:www.hackshp.cn视频教程网:www.efanjy.comPPT课件网:www.ppthouse.com课后答案网www.hackshp.cn 第一章、C语言程序设计概述一、选择题1.C2.C3.C4.D5.A6.D7.A8.C9.D10.D二、填空题1.函数2.主函数(或main函数)3./**/4.scanf()printf()三.简答题1.答:①C语言简洁,灵活。程序格式书写自由,不像FORTRAN那样有严格的格式。与PASCAL相比,C语言的关键字简练,源程序短,输入的工作量比较少。khaw.com采用C语言编程,可以使程序员专注于算法设计,不必过多地考虑格式的限制。②C语言有丰富的运算符,使源程序精炼,生成的代码质量高,运行速度快。③数据类型丰富,能实现各种复杂的运算,尤其指针类型数据,使程序更加灵活,多样。④语法限制不是很严格。例如C语言对数组下标越界不作检查,由程序员保证程序的正确性。同时,对变量类型的使用比较灵活,例如,整型与字符型及逻辑型数据可以相互通用。⑤C语言可以直接访问物理地址和计算机硬件,能进行位操作,可以实现汇课后答案网编语言的很多功能。因此,C语言具有高级语言和低级语言的双重功能,可以用来编写系统软件。⑥用C语言编写的程序可移植性好,一般不作修改或作少量修改就能用于不www.hackshp.cn同的计算机和不同的操作系统。2.答:C语言程序设计的基本结构可以分为三种:顺序结构、分支结构、循环结构。按照结构化程序设计的观点,任何功能的程序都可以通过这三种基本结构的组合来实现。3.答:TurboC是一个集源程序编辑、编译、连接、运行、调试于一体,用菜单驱动的集成软件环境。运行一个C语言程序的一般过程如下:①启动TC,进入TC集成环境。②编辑:将C语言源程序通过键盘输入到计算机中,并以文件的形式存入到磁盘中(.C).③编译:将C语言源程序翻译成机器语言的过程。编译出来的程序称为目标khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 程序(.OBJ)。如果编译成功,则可进行下一步操作;否则,返回②修改源程序,再重新编译,直至编译成功。④连接:编译后生成的目标文件经过连接后生成最终的可执行文件(.EXE)。如果连接成功,则可以进行下一步操作;否则,根据系统的错误提示,进行相应修改,再重新连接,直至连接成功。⑤运行:通过观察程序运行结果,验证程序的正确性。如果出现逻辑错误,则必须返回②修改源程序,再重新编译,连接和运行,直至程序正确。khaw.com⑥推出TC集成环境,结束本次程序运行。第二章、算法及算法设计简介一、简答题1.答:算法是为完成某个具体的问题而设计的有限的操作步骤。有一个入口,一个出口,只采取顺序、分支、循环三种控制结构的算法,称为结构化算法。第三章、数据描述和基本操作课后答案网一、选择题1.Dwww.hackshp.cn2.A3.B4.A5.C6.D7.D8.B9.B10.B11.A12.D13.D14.D15.A16.B17.C18.D19.D20.D21.B22.C23.B24.A25.D26.C27.A28.C29.B30.D31.D32.B33.A二、填空题(1)551111610104655102khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com (2)2.5000003.500000(3)12(4)4.5(5)2(6)9(7)102(8)0(9)int(10)5251(11)3(12)x>5||想<-5(13)24第四章、选择结构程序设计一、选择题1.Dkhaw.com2.B3.D4.B5.B6.C7.A8.A9.B10.A11.B12.B13.A14.B15.C16.B17.A18.B二、填空题(1)①ch>=‘a’&&ch<=‘z’②x==0③x!=0课后答案网④x!=0||y!=0或!(x==0&&y==0)⑤(year%4==0&&year%100!=0)||(year%400==0)或(!(year%4)&&year%100)||!(year%400)www.hackshp.cn(2)①0;②6;③12(3)c>=‘a’&&c<=‘z’||c>=‘A’&&c<=‘Z’||c>=‘0’&&c<=‘9’(4)u,vx>yu>z(5)①0②1③1④0⑤1三、阅读程序,写出程序结果(1)103(2)21(3)798(4)101khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 第五章、循环结构设计一、选择题1.A2.D3.C4.C5.B6.B7.B8.B9.D10.C11.C12.B二、填空题(1)0(2)18(3)1.0/(i*i)(4)putchar(‘Z’-i)khaw.com(5)3*i-2(6)(i-1)%3(7)for(i=0,s=0;i=j(3)(low+high)/2mid(4)‘’*s1-*s2(5)xA[i]>A[i++](6)*p2*p2*p1p1++khaw.com第七章、函数与模块化设计二、选择题1.A2.A3.D4.B5.B6.A7.C8.A9.D10.B11.B12.C三、填空题(1)246(2)int*(3)4(4)18四、程序填空(1)i==nprime(j)&&prime(2*i-j)课后答案网(2)int10,t1,tn>=2t0+t1t五、读程序(1)6(2)9www.hackshp.cn(3)main:a=3,b=4sub:a=6,b=7main:a=3,b=4(4)2*1*0#3*3*1#4*3*2#(5)36(6)33653225(7)1210951111074312111010975431(8)273813499765976549381327(9)606166606162khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 第八章、结构体与共用体一、选择题1.D2.D3.C4.D5.A6.D7.A8.C(1)二、填空题(1)22khaw.com(2)p!=NULLp->inf第九章、编译预处理一、选择题1.C2.C3.B4.B5.B6.A二、填空题课后答案网7www.hackshp.cn第十章、文件二、选择题1.B2.C3.A三、填空题(fr=fopen(“fr.txt”,“r”))==NULL(to=fopen(“to.txt”,“w”))==NULLPutc(cc,to)fclose(fr),fclose(to)khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 各章节编程题参考答案第1章C语言程序设计基础1参考答案:#include“stdio.h”main(){printf(“Howareyou.n”);}2参考答案#includekhaw.commain(){printf(“*”);printf(“***”);printf(“*****”);printf(“***”);printf(“*”);}3参考答案#includemain(){课后答案网printf("**************n");printf("Verygood!n");pritnf("("**************n");}www.hackshp.cn第2章算法及算法设计简介1.解答:算法是为完成某个具体的问题而设计的有限的操作步骤。有一个入口,一个出口,只采取顺序、分支、循环三种控制结构的算法,称为结构化算法。2.解答:S0:0=>s;S1:1=>i;S2:i+s=>s;S3:i+1=>i;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com S4:若i<=100,返回S2;否则,结束;3.解答:S0:接收10个数=>数组a[i];S1:0=>i;S2:a[i]=>min;S3:i+1=>i;S4:若a[i]n,则m,n交换;S2:p=m*n;S3:r=n%m,n=m,m=r;S4:如果m==0,转S5,否则转S3;S5:打印n,p/n;7解答:素数是指除1及本身以外不能被其他数整除的自然数。下面介绍用穷举法求素数。1).2是素数;t=0;2).i=2~n,则:(ⅰ)如果i是素数,则其必须是奇数且不能被2~n-1khdaw.com中的任一个数整除。若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com (ⅱ)如果i是素数,则输出该素数且计数器t=t+1;3).输出2~N之间素数的总数:total=t;4).程序结束第3章数据描述与基本操作1.参考答案:#include“stdio.h”main(){khaw.comfloatc,f;printf(“pleaseenterfn”);scanf(“%f”,&f);c=5*(f-32)/9;printf(“Theresultis:%fn”,c);}2.参考答案:#include”stdio.h”main(){intnum,hundred,ten,indiv;printf(“Pleaseenterathree-bitsnumbern课后答案网”);scanf(“%d”,&num);hundred=num/100;ten=(num-100*hundred)/10;indiv=num%10;www.hackshp.cnprintf(“Theoriginalnumberis%dn”,num);printf(“Theinversednumberis%d%d%dn”,indiv,ten,hundred);}3.参考答案:#include#includemain(){doublea,b,c,aver,sum,x,square_x;printf(“请输入三个双精度数:n”);scanf(“%lf%lf%lf”,&a,&b,&c);sum=(a+b+c);aver=sum/3.0;x=a*a+b*b+c*c;square_x=sqrt(x);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com printf(“%.3f,%.3f,%.3f,%.3f“,sum,aver,x,square_x);}4.参考答案:main(){charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1+=4,c2+=4,c3+=4,c4+=4,c5+=4;printf(“%c%c%c%c%c”,c1,c2,c3,c4,c5);}khaw.com第4章选择结构程序设计1.参考答案:#include”stdio.h”main(){floatx,y;printf(“Pleaseenterx:n”);scanf(“%f”,&x);if(x<1)y=x;elseif(x<10)y=2*x-1;elsey=3x-11;}课后答案网2.参考答案:#include”stdio.h”main(){www.hackshp.cninta,b,c,d,temp;printf(“Pleaseenterfournumbers:n”);scanf(“%d%d%d%d”,&a,&b,&c,&d);if(a>b){temp=a;a=b;b=temp;}if(b>c){temp=b;b=c;c=temp;}if(c>d){temp=c;c=d;d=temp;}/*d已经为最大的数*/if(a>b){temp=a;a=b;b=temp;}if(b>c){temp=b;b=c;c=temp;}/*c已经为次大的数*/if(a>b){temp=a;a=b;b=temp;}/*a已经为最小的数*/printf(“Theresultis:%d%d%d%d”,a,b,c,d);}3.参考答案:#include”stdio.h”main(){floata,b,c,s,area;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com printf(“Pleaseenterthreenumbersn”);scanf(“%f%f%f”,&a,&b,&c);if((a+b1){if(y>1&&y<3)h=5;elseif(y>-3&&y<-1)h=18;课后答案网}elseif(x>-3&&x<-1){www.hackshp.cnif(y>1&&y<3)h=7;elseif(y>-3&&y<-1)h=10;}printf("%dm",h);}5.参考答案:main(){longge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/printf("thisnumberisahuiwenn");elseprintf("thisnumberisnotahuiwenn");}6.参考答案:#include"stdio.h"main(){intyear,month,day;khaw.comday=0;scanf("%d%d",&year,&month);switch(month){case1:case3:case5:case7:case8:case10:case12:day=31;break;case4:case6:课后答案网case9:case11:day=30;break;case2:if(year%4==0&&year%100!=0||year%400==0)www.hackshp.cnday=29;elseday=28;break;default:printf("Dataerror!");break;}printf("day=%d",day);}第5章循环结构程序设计1.参考答案:#include”stdio.h”main()khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com {inti,j,k,n;printf(""waterflower"numberis:");for(n=100;n<1000;n++){i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}khaw.com}printf("n");}2.参考答案:#include”stdio.h”main(){inti,hundred,ten,indiv;i=199;while(i<300){i++;hundred=i/100;课后答案网ten=(i-hundred*100)/10;indiv=i%10;if(hundred+ten+indiv==12&&hundred*ten*indiv==42)printf(“%d,”,i)elsecontinue;www.hackshp.cn}}3.参考答案:#include”stdio.h”main(){inti;longs1=0L,s2=0L;floats3=0.0,s=0.0;for(i=1;i<=100;i++)s1+=i;for(i=1;i<=50;i++)s2+=i*i;for(i=1;i<=10;i++)s3+=1.0/i;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com s=s1+s2+s3;printf(“%f”,s);}4.参考答案:main(){inti,j;inta[10][10];printf("n");for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}khaw.comfor(i=2;i<10;i++)for(j=1;j="a"&&c<="v")||(c>="A"&&c<="V"))c=c+4;elseif((c>="w"&&c<="z")||(c>="W"&&c<="Z"))c=c-22;printf("%c",c);}}6.参考答案:#includemain()/*两数求最大公约数与最小公倍数*/{inta,b,t,m;printf(“Inputa,b:”);scanf(“%d%d”,&a,&b);if(a<1||b<1){printf(“Inputisn’tcorrect.n”);return;}m=a*b;while(b!=0){t=a%b;a=b;b=t;}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com printf(“zdgys=%d,zxgbs=%dn”,a,m/a);}7.参考答案:#includemain(){intn,k=2,isfirst=1;printf("Inputn=");scanf("%d",&n);while(k<=n)if(n%k==0){if(isfirst){printf(“%d=%d",n,k);isfirst=0;}elseprintf("*%d",k);khaw.comn/=k;}elsek++;printf(“n”);/*变量isfirst的作用是什么?*/}8.参考答案:#includemain(){inta,n,count=1,sn=0,tn=0;scanf(“%d%d”,&a,&n);for(count=1;count<=n;count++)课后答案网{tn=tn*10+a;sn=sn+tn;}www.hackshp.cnprintf(“thesnis:%dn”,sn);}9.参考答案:#includenmain()n{intn_blank,n_dollar,i,j,n,m;scanf(“%d”,&n);m=(n+1)/2;for(i=1;i<=m;i++){n_dollar=2*i–1;n_blank=(n–n_dollar)/2;for(j=0;jmain(){intday=0,buy=2;floatsum=0.0,ave;do{课后答案网sum+=0.8*buy;day++;buy*=2;}www.hackshp.cnwhile(buy<=100);ave=sum/day;printf(“%f”,ave);}11.参考答案:#includemain(){inti,x,y,last=1;printf(“Inputxandy:”);scanf(“%d%d”,&x,&y);for(i=1;i<=y;i++)last=last*x%1000;printf(“nThelast3digitsof%d**%dis:%dnkhdaw.com”,x,y,last%1000);若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }12.参考答案:#includemain(){inti,j;floatg,sum,ave;for(i=1;i<=6;i++){sum=0;for(j=1;j<=5;j++){khaw.comscanf(“%f”,&g);sum+=g;}ave=sum/5;printf(“No.%dave=%5.2fn”,i,ave);}}键盘输入:957073676460657786907193638090878391958910093899285课后答案网5263667071运行结果:No.1ave=73.80No.2ave=75.60No.3ave=79.40www.hackshp.cnNo.4ave=89.00No.5ave=91.80No.6ave=64.4013.参考答案:算法思想:对于一个问题的求解x,可由给定的一个初值x0,根据某一迭代公式得到一个新的值x1,这个新值x1比初值x0更接近要求的值x;再以新值作为初值,即:x1→x0,重新按原来的方法求x1,重复这一过和直到|x1-x0|<ε(某一给定的精度)。此时可将x1作为问题的解。方法1:#includemain(){floata;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com floatx0,x1;scanf("%f",&a);x1=a/2;do{x0=x1;khaw.comx1=0.5*(x0+a/x0);}while(fabs(x1-x0)>0.00001);printf("genhao=%fn",x1);}方法2:#include"math.h"main(){intn;floatx0,x1,a;printf("Inputa");课后答案网scanf("%f",&a);x0=1;for(;;){x1=(x0+a/x0)/2;www.hackshp.cnif(fabs(x1-x0)<1e-5)break;x0=x1;}printf("na=%f,x=%f",a,x1);14.参考答案:main(){charn,i,j,a,b,c;for(n="x";n<=2+"x";n++){a=n;for(i="x";i<=2+"x";i++){b=i;if(b!=a)break;}for(j="x";j<=2+"x";j++){c=j;if(c!=b&&c!=a)break;}if(a!="x"&&c!="x"&&c!="z")break;}printf("a--%cnb--%cnc--%cn",a,b,c);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }15.参考答案:算法分析:穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这是一种“在没有其它办法的情况的方法”,是一种最“笨”的方法,然而对一些无法用解析法求解的问题往往能奏效,通常采用循环来处理穷举问题。main(){inti,j,k;printf("5元1元5角n");for(i=1;i<=20;i++)for(j=1;j<=100-i;j++)khaw.com{k=100-i-j;if(5*i+1*j+0.5*k==100)printf("%3d%3d%3dn",i,j,k);}}第6章数组与指针1.参考答案:#include#defineN5voidjudge(intN,inta[N][N])课后答案网{inti,j,k=1;for(i=0;ij;i--)a[i+d+1]=a[i]for(i=0;in)){i=i+2;j=j+1;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0;)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;khaw.com}}for(i=0;imax)khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com {max=a[i][j];max=j;}for(k=0,flag1=1;ka[k][max])flag1=0;if(flag1){printf(“n%d,%dn”,i,maxj,max);flag2=1;}}if(!flag2)khaw.comprintf(“nThereisnoanswern”);}7.参考答案:#include”stdio.h”#include”string.h”main(){intm;char*month[12]={“January”,”February”,”March”,”April”,”May”,”June”,”Juny”,”August”,”September”,”November”,”December”};intn;printf(“Inputmonth:n”);课后答案网scanf(“%d”,&n);k=n-1;if((k<=12&&(k>=1))printf(“Itis%s”,*(month+k));www.hackshp.cnelseprintf(“Itiswrongn”);}8.参考答案:#include”stdio.h”#include”string.h”main(){charstr[50],*pstr;inti,j,k,m,e10,digit,ndigit,a[10],*pa;printf(“Inputastring;n”);gets(str);printf(“n”);pstr=&str[0];khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com pa=&a[0];ndigit=0;i=0;j=0;while(*(pstr+i)!=’’){if((*(pstr+i)>=’0’)&&(*(pstr+i)<=’9’))j++;else{if(j>0){digit=*(pstr+i-1)-48;k=1;while(k0){digit=*(pstr+i-1)-48;k=1;www.hackshp.cnwhile(k="0"&&*ps<="9")n=n*10+*ps-"0";else{if(n>0)a[i++]=n;n=0;}if(n>0)a[i++]=n;for(n=0;nmax){max=a[i][j];row=i;colum=j;}printf(“%max=%d,row=%d,colum=%dn”,max,row,colum);}13.参考答案:课后答案网main(){inta,b,c;int*p1,*p2,*p3;www.hackshp.cnint*t;printf("nPleaseinputthreeintegers:n");scanf("%d,%d,%d",&a,&b,&c);p1=&a,p2=&b,p3=&c;if(*p1>*p2)t=p1,p1=p2,p2=t;if(*p1>*p3)t=p1,p1=p3,p3=t;if(*p2>*p3)t=p2,p2=p3,p3=t;printf("newordr:n");printf("%d,%d,%d",*p1,*p2,*p3);}14.参考答案:khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com main(){charstr[3][80],c;inti,j,upper=0,lower=0,digit=0,space=0,others=0;printf("nPleaseinput3strings:n");for(i=0;i<3;i++)gets(str[i]);printf("nthestringsare:n");for(i=0;i<3;i++)puts(str[i]);for(i=0;i<3;i++)khaw.com{j=0;while((c=str[i][j])!=""){if(c>="A"&&c<="Z")upper++;elseif(c>="a"&&c<="z")lower++;elseif(c>="0"&&c<="9")digit++;elseif(c=="")space++;elseothers++;j++;}}printf("nupperletters:%dnlowerletters:%dndigits:%dnspace:%dnothers:%dn",upper,lower,digit,space,others);}课后答案网第7章函数与模块化程序设计www.hackshp.cn1.参考答案:doublepower(doublex,intn){doublep;inti;for(p=i=1;i<=n;i++)p=p*x;returnp;}2.参考答案:main(){intn,hun,ten,indiv,i,j;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com for(i=100;i<999;i++){for(j=1;jintprime(intn)/*判断n是否为素数*/{inti;for(i=2;i<=n-1;i++)if(!(n%i))break;returni==n;}main(){inti,j;for(i=20;i<=30;i++)for(j=1;j<2*i;j+=2)if(prime(j)&&prime(2*i-j)){课后答案网printf(“%d=%d+%dn”,2*i,j,2*i-j);/*若2*i为两个素数之和*/break;}}www.hackshp.cn4.参考答案:#includemain(){voidcpy(chars[],charc[]);charsty[80],c[80];printf(“nInputstring:”);gets(sty);cpy(sty,c);printf(“nThevowellettersare:%s”,c);}voidcpy(chars[],charc[]){inti,j;for(i=0,j=0;s[i]!=’’;i++)if(s[i]==’a’||s[i]==’A’||s[i]==’e’||s[i]==’E’||s[i]==’i’||s[i]==’I’||s[i]==’o’||s[i]==’O’||khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com s[i]==’u’||s[i]==’U’){c[j]=s[i];j++;}c[j]=’’;}5.参考答案:#include"stdio.h"#include”string.h”intalphabetic(charc){if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’))khaw.comreturn(1);elsereturn(0);}intlongest(charstring[]){intlen=0,i,length=0,flag=1,place=0,point;for(i=0;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;}else课后答案网{flag=1;if(len>=length){length=len;www.hackshp.cnplace=point;len=0;}}return(place);}main(){inti;charline[100];printf(“Inputoneline:n”);gets(line);printf(“nThelongestwordis:”)for(i=longest(line);alphabetic(line[i];i++)printf(“%c”,line[i]);printf(“n”);}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 6.参考答案:将一个十进制整数m转换成r(2-16)进制字符串。方法:将m不断除r取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串。char*trdec(intidec,intibase){charstrdr[20],t;inti,idr,p=0;while(idec!=0){idr=idec%ibase;if(idr>=10)khaw.comstrdr[p++]=idr-10+65;elsestrdr[p++]=idr+48;idec/=ibase;}for(i=0;i

=’0’&&c<=’9’||c>=’a’&&c<=’f’||c>=’A’&&c<=’F’){flag=1;t[i++]=c;khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }elseif(flag){t[i]=’’;printf(“decimalnumber%d:n”,htoi(t);printf(“Continueornot?”);c=getchar();if(c==’N’||c==’n’)flag1=0;else{flag=0;i=0;printf(“nInputahexnumber:”);khaw.com}}}}htoi(chars[]){inti,n;n=0;if(s[i]>=’0’&&s[i]<=’9’)n=n*16+s[i]-‘0’;for(i=0;s[i]!=’’;i++){if(s[i]>=’0’&&s[i]<=’9’)n=n*16+s[i]-‘0’;if(s[i]>=’A’&&s[i]<=’F’)n=n*16+s[i]-‘课后答案网A’+10;}return(n);}www.hackshp.cn7.参考答案:分析:输入year、month、day,先求出前month-1个月的总天数day_sum,再加上day即可。要注意闰年的二月问题main(){intday_sum=0,i,year,month,day;intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};/*存储各月的天数(按平年处理)*/printf("nPleaseinputtoday"sdate(YEAR,MONTH,DAY):n");scanf("%d,%d,%d",&year,&month,&day);for(i=1;i2)/*闰年中的二月比平年多一天*/day_sum+=1;printf("nTodayisthe%dthdayof%d!n",day_sum,year);}8.参考答案:floatp(intn,intx){floatt,t1,t2;if(n==0)return(1);elseif(n==1)khaw.comreturn(x);else{t1=(2*n–1)*x*p((n–1),x);t2=(n–1)*p((n-2),x);t=(t1–t2)/n;return(t);}}9.参考答案:分析:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i#include#include#defineN81www.hackshp.cnfun(char*s){inti=0,t,n=strlen(s);for(;s+imax)max=arr[i][j];khaw.comreturn(max);}11.参考答案:#defineM50main(){inta[M],c[5]={0},i,n,x;n=0;printf(“Enter1or2or3or4,toendwith-1n”);scanf(“%d”,&x);while(x!=-1){课后答案网if(x>=1&&x<=4){a[n]=x;n++;}scanf(“%d”,&x);}f(a,c,n);www.hackshp.cnprintf(“Outputtheresult:n”);for(i=1;i<=4;i++)printf(“%d:%dn”,i,c[i]);printf(“n”);}f(inta[],intc[],intn){inti;for(i=0;i#defineESC27structstudent_type{charname[10];/*姓名*/floatscore[3];/*三门课成绩*/khaw.com}main(){structstudent_typestu;/*定义structstudent_type类型的结构体变量stu*/do{printf(”请输入学生的姓名、三门课学习成绩:n”);scanf(”%s”,stu.name);scanf(”%f%f%f”,&stu.score[0],&stu.score[1],&stu.score[2]);printf(“现输出该学生的数据如下:n”);printf(“%10s%20sn”,”姓名”,”三门课成绩”);printf(“%10s”,stu.name);printf(“%8.2f,%课后答案网6.2f,%6.2f”,stu.score[0],stu.score[l],stu.score[2]);printf(”按Ese退出,按其他键继续...n”);}while(getch()!=ESC);/*等待按键,按Ese退出,按其他键继续处理另一位学生的数据。*/}www.hackshp.cn2.参考答案:分析:(a+bi)*(c+di)=a*c-b*d+(b*c+a*d)i#includestructfushu{floata;floatb;}fushu1,fushu2,fushu3;main(){printf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi1.a,&fushu1.b);printf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi2.a,&fushu2.b);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com printf(“%f+%fi”,fushu1.a,fushu1.b);printf(“%f+%fi”,fushu2.a,fushu2.b);fushu3.a=fushu1.a*fushu2.a-fushu1.b*fushu2.b;fushu3.b=-fushu1.a*fushu2.b+fushu1.b*fushu2.a;printf(“%f+%fi”,fushu3.a,fushu3.b);}3.参考答案:#includestructfushu{floata;floatb;khaw.com}fushu1,fushu2,fushu3;add(structfushufushu1,structfushufushu2){printf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi1.a,&fushu1.b);printf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi2.a,&fushu2.b);printf(“%f+%fi”,fushu1.a,fushu1.b);printf(“%f+%fi”,fushu2.a,fushu2.b);fushu3.a=fushu1.a+fushu2.a;fushu3.b=-fushu1.b+fushu2.b;printf(“%f+%fi”,fushu3.a,fushu3.b);}课后答案网subtract(structfushufushu1,structfushufushu2){printf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi1.a,&fushu1.b);www.hackshp.cnprintf(“Inputshibuandxubu:n”);scanf(“%f%f”,&fushi2.a,&fushu2.b);printf(“%f+%fi”,fushu1.a,fushu1.b);printf(“%f+%fi”,fushu2.a,fushu2.b);fushu3.a=fushu1.a-fushu2.a;fushu3.b=-fushu1.b-fushu2.b;printf(“%f+%fi”,fushu3.a,fushu3.b);}main(){structfushufushu1,fushu2;add(fushu1,fushu2);sustract(fushu1,fushu2);}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 4.参考答案:#include”stdio.h”structcharlink{charc;structcharlink*next;};intn;structcharlink*creat(){intlen;structcharlink*head,*p1,*p2;n=0;len=sizeof(structcharlink);khaw.comp1=p2=(structcharlink*)malloc(len);printf(“Inputthecharn”);scanf(“%c”,&p1.c);head=NULL;while(p1.c!=’0’){n++;if(n==1)head=p1;eslep2.next=p1;p2=p1;p1=(structcharlink)malloc(len);scanf(“%c”,&p1.c);}p2.next=NULL;课后答案网returnhead;}voidprint(structcharlink*head)www.hackshp.cn{structstudent*p;p=head;while(p!=NULL){printf(“char=%cn”,p.c);p=p.next;}}main(){structcharlink*head;head=create();print(head);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }5.参考答案:#defineN13structperson{intnumber;intnextp;}link[N+1];main(){inti,count,h;for(i=1;i<=N;i++)khaw.com{if(i==N)link[i].nextp=1;elselink[i].nextp=i+1;link[i].number=i;}printf(“n”);count=0;h=N;printf(“sequencethatpersonsleavethecircle:n”);while(coount2)sumday+=1;S=((year-1)+(year-1)/4.0-(year-1)/100.0+(year-1)/400.0+sumday);S%=7;printf("nsumday=%d,S=%d",sumday,S);khaw.comprintf("nTodayis%s",week[S]);}8.参考答案:方法一:使用二维数组#defineM5#defineN6main(){staticcharname[M][9]={“刘希民”,“梁天起”,“郑君丽”,“马军辉”,“张法”};voidaversum(floatscore[M][N]);voidsort(charname[M][9],floatscore[M][N]);staticfloatscore[][N]=课后答案网{{67.8,58.5,78,97.6,0,0},{89.4,100,88.7,89.4,0,0},{87.6,86.3,69.6,95.4,0,0},{78.6,83.8,56.7,78,0,0},{65.3,78.9,56.4,77.3,0,0}};aversum(score);sort(name,score);www.hackshp.cnprintf(“Thesortedgrade:n”);printf(“姓名C语言数据结构汇编语言计算机原理名次n”);printf(“=============================================”);for(i=0;iy?x:ymain(){intn1,n2;floatf1,f2;scanf("%d%d%f%f",&n1,&n2,&f1,&f2);printf("maxi=%dmaxf=%f",MAX(n1,n2),MAX(f1,f2));}经预编译宏替换后的printf语句如下:printf("maxi=%dmaxf=%f",n1>n2?n1:n2,f1>f2?f1:f2);3.参考答案:khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com #defineswap(x,y){intt;t=x;x=y;y=t;}main(){inti,a[10],b[10];for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)scanf(“%d”,&b[i]);for(i=0;i<10;i++)swap(a[i],b[i]);for(i=0;i<10;i++)printf(“%d”,a[i]);khaw.comprintf(“n”);for(i=0;i<10;i++)printf(“%d”,b[i]);}4.参考答案:#defineLEAP_YEAR(y)(y%4==0)&&(y%100!=0)||(i%400==0))#include”stdio.h”main()intyear;printf(“Inputyear:”);scanf(“%d”,&year)if(LEAP_YEAR(year))课后答案网printf(“%disaleapyear.n”,year);elseprintf(“%disnotaleapyear.n”);}www.hackshp.cn5.参考答案:1.用函数实现:main(){inta,b,c;printf(“Enterthreeintegers:”);scanf(“%d%d%d”,&a,&b,&c);printf(“max=%dn”,max(a,b,c));}max(intx,inty,intz){khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com intt;t=(x>y?x:y);return(t>z?t:z);}2用带参的宏实现#defineMAX(a,b)((a)>(b)?(a):(b))main(){inta,b,c;khaw.comprintf(“Pleaseenterthreeintegernumbers:”);scanf(“%d,%d,%dn”,&a,&b,&c);printf(“max=%dn”,MAX(MAX(a,b),c));}第10章文件1.参考答案:#include"stdio.h"#include"process.h"main(){FILE*fp;课后答案网charch,s[20];printf("Pleaseinputastring:n");if((fp=fopen("ss.txt","wb+"))==NULL){printf("Cannotopenthefile");www.hackshp.cnexit(0);}ch=getchar();while(ch!="#"){fputc(ch,fp);ch=getchar();}fclose(fp);if((fp=fopen("ss","r"))==NULL){printf("Cannotopenthefile");exit(0);}fscanf(fp,"%s",&s);puts(s);fclose(fp);khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com }2.参考答案:#include"stdio.h"#include"process.h"main(){charch;FILE*fp;if((fp=fopen("h:da.txt","r"))==NULL){printf("Cannotopenthefilen");exit(0);khaw.com}while(!feof(fp)){ch=fgetc(fp);if((ch>="a"&&ch<="z")||(ch>="A"&&ch<="Z")||(ch>="0"&&ch<="9"))putchar(ch);elsecontinue;}putchar("n");fclose(fp);}3.参考答案:课后答案网#includemain(){floatf[10]={3.2,-4.34,25.04,0.1,50.56,80.5,2.2,3.34.4,5.5};www.hackshp.cn/*定义浮点数组并初始化*/inti;FILE*fp;fp=fopen("test_b.dat","wb");/*创建一个二进制文件只写*/fwrite(f,sizeof(float),10,fp);/*将10个浮点数写入文件中*/fclose(fp);/*关闭文件*/}4.参考答案:#include"stdio.h"#include"process.h"main(){FILE*fp;charch,s[50];khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com if((fp=fopen("h:ss.txt","wb+"))==NULL){printf("Cannotopenthefile");exit(0);}printf("Pleaseinputastring:n");ch=getchar();while(ch!="#"){if(ch>="a"&&ch<="z")ch=ch-32;fputc(ch,fp);ch=getchar();}fclose(fp);khaw.comif((fp=fopen("h:ss.txt","r"))==NULL){printf("Cannotopenthefile");exit(0);}fscanf(fp,"%s",&s);puts(s);fclose(fp);}5.参考答案:#include"process.h"main(){课后答案网FILE*fp;charch,s[50];if((fp=fopen("h:ss.txt","wb+"))==NULL){printf("Cannotopenthefile");www.hackshp.cnexit(0);}printf("Pleaseinputastring:n");ch=getchar();while(ch!="#"){if(ch>="a"&&ch<="z")ch=ch-32;if(ch=="n")putchar(ch);fputc(ch,fp);ch=getchar();}fclose(fp);if((fp=fopen("h:ss.txt","r"))==NULL){printf("Cannotopenthefile");exit(0);}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com while(!feof(fp)){ch=fgetc(fp);putchar(ch);}fclose(fp);}6.参考答案:#includemain(){FILE*fp;khaw.comintdat[100];fp=fopen("test_b.dat","rb");/*打开一个二进制文件只读*/if(fread(dat,sizeof(int),100,fp)!=100)/*判断是否读了100个数*/{if(feof(fp))printf("Endoffile");/*不到100个数文件结束*/elseprintf("Readerror");/*读数错误*/fclose(fp);/*关闭文件*/}7.参考答案:课后答案网#include“stdio.h”main(intargc,char*argv[]){FILE*fp;charch;www.hackshp.cnif(argc!=2)/*参数个数不对*/{printf("thenumberofargumentsnotcorrectnn");printf(“Usage:可执行文件名filenamen”);exit(0);}if((fp=fopen(argv[1],"w"))==NULL)/*打开文件失败*/{printf("cannotopenthisfilen");exit(0);}for(;(ch=getchar())!="@";)fputc(ch,fp);/*输入字符并存储到文件中*/fclose(fp);}khdaw.com若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com'