您好,欢迎访问三七文档
第二章习题2.什么叫做结构化算法?为什么要提倡结构化算法?答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。跟结构化算法比较起来,非结构化算法有以下缺点:流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。4.YNY第三章习题1.#includestdio.h#includemath.hvoidmain(){unsignedintn;开始ATBATB结束开始输入10个数Dii10a[i]a[i+1]a[i]a[i+1]i=i+1输出a[i]结束floatp,p1,r=0.09;scanf(%u,&n);p=pow(1+r,n);p1=(p-1)*100;printf(%5.2f%%\n,p1);}运行结果:输入,回车,见结果:2.#includestdio.h#includemath.hintmain(){intbj=1000;floatr1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5;r1=0.0414;r2=0.0468;r3=0.0540;r5=0.0585;r0=0.0072;lx1=bj*r5;lx2=bj*(1+r2)*r3;lx3=bj*(1+r3)*r2;lx4=bj*pow(1+r1,5);lx5=bj*r0*5;printf(lx1=%flx2=%flx3=%flx4=%flx=5%f\n,lx1,lx2,lx3,lx4,lx5);return0;}运行结果:3.#includestdio.h#includemath.hintmain(){longd,p;d=300000;p=6000;doublem,r=0.01;m=log(p/(p-d*r))/log(1+r);printf(%4.2f,m);return0;}运行结果:4.#includestdio.hintmain(){intc1,c2;c1=97;c2=98;printf(c1=%c,c2=%c\n,c1,c2);printf(c1=%d,c2=%d\n,c1,c2);return0;}运行结果:①;②;③结果不变。5.#includestdio.hintmain(){inta,b;floatx,y;charc1,c2;scanf(a=%db=%d,&a,&b);scanf(%f%e,&x,&y);scanf(%c%c,&c1,&c2);return0;}运行结果:输入即可。6.#includestdio.hintmain(){charc1,c2,c3,c4,c5;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;printf(%c%c%c%c%c\n,c1,c2,c3,c4,c5);return0;}运行结果:。7.#includestdio.h#includemath.hintmain(){floatr,h,pi,c,s,sb,v,vz;pi=3.141592653;scanf(%4f%f,&r,&h);c=2*pi*r;s=pi*pow(r,2);sb=4*pi*pow(r,2);v=4/3*pi*pow(r,3);vz=s*h;printf(c=%7.2f,s=%7.2f,sb=%7.2f,v=%7.2f,vz=%7.2f\n,c,s,sb,v,vz);return0;}运行结果:输入,得结果。第四章习题4.#includestdio.hintmain(){printf(pleaseinputthreenumbers!\n);longa,b,c,max;scanf(%ld,%ld,%ld,&a,&b,&c);if(ab)if(ac)max=a;elsemax=c;elseif(ac)max=b;elseif(bc)max=b;elsemax=c;printf(max=%ld\n,max);return0;}运行结果:5.#includestdio.h#includemath.hvoidmain(){doublep,x;printf(Pleaseenteralessthan1000positiveNumbers!\n);scanf(%lf,&x);if(x1000)p=sqrt(x);elseprintf(Inputerror,pleaseenteragain!\n);printf(%5.0lf\n,p);}运行结果:6.#includestdio.hintmain(){doublex,y;scanf(%lf,&x);if(x1)y=x;elseif(x=1&&x10)y=2*x-1;elsey=3*x-11;printf(y=%5.2f\n,y);return0;}运行结果:8.#includestdio.hintmain(){floatscore;printf(yourscore:);scanf(%f,&score);if(score90)printf(A\n);elseif(score80&&score89)printf(B\n);elseif(score70&&score79)printf(C\n);elseif(score60&&score69)printf(D\n);elseprintf(E\n);return0;}运行结果:9#includestdio.hintmain(){intx;intx1,x2,x3,x4,x5;printf(请任意输入一个小于99999的数:\n);scanf(%d,&x);x1=x/10000;x2=(x-x1*10000)/1000;x3=(x-x1*10000-x2*1000)/100;x4=(x-x1*10000-x2*1000-x3*100)/10;x5=(x-x1*10000-x2*1000-x3*100-x4*10)%10;if(x1=1){printf(输入的数是5位数。\n);printf(按位从高位到低位输出结果是:\n);printf(%d,%d,%d,%d,%d\n,x1,x2,x3,x4,x5);printf(逆序输出结果是:\n);printf(%d%d%d%d%d,x5,x4,x3,x2,x1);}elseif(x2=1){printf(输入的数是4位数\n);printf(按位从高位到低位输出结果是:\n);printf(%d,%d,%d,%d\n,x2,x3,x4,x5);printf(逆序输出结果是:\n);printf(%d%d%d%d,x5,x4,x3,x2);}elseif(x3=1){printf(输入的数是3位数\n);printf(按位从高位到低位输出结果是:\n);printf(%d,%d,%d\n,x3,x4,x5);printf(逆序输出结果是:\n);printf(%d%d%d,x5,x4,x3);}elseif(x4=1){printf(输入的数是2位数\n);printf(按位从高位到低位输出结果是:\n);printf(%d,%d\n,x4,x5);printf(逆序输出结果是:\n);printf(%d%d,x5,x4);}else{printf(输入的数是1位数\n);printf(按位从高位到低位输出结果是:\n);printf(%d\n,x5);printf(逆序输出结果是:\n);printf(%d,x5);}printf(\n);return0;}10.方法一:使用if语句实现#includestdio.h#includeconio.hintmain(){longinti;floattc,jj1,jj2,jj4,jj6,jj10;jj1=100000*0.1;/*利润为10万元时的奖金*/jj2=jj1+100000*0.075;/*利润为20万元时的奖金*/jj4=jj2+200000*0.05;/*利润为40万元时的奖金*/jj6=jj4+200000*0.03;/*利润为60万元时的奖金*/jj10=jj6+400000*0.015;/*利润为100万元时的奖金*/printf(请输入利润i:);scanf(%ld,&i);if(i=100000)tc=i*0.1;/*利润在10万元以内按0.1提成奖金*/elseif(i=200000)tc=jj1+(i-100000)*0.075;/*利润在10万至20万元时的奖金*/elseif(i=400000)tc=jj2+(i-200000)*0.05;/*利润在20万至40万元时的奖金*/elseif(i=600000)tc=jj4+(i-400000)*0.03;/*利润在40万至60万元时的奖金*/elseif(i=1000000)tc=jj6+(i-600000)*0.015;/*利润在60万至100万元时的奖金*/elsetc=jj10+(i-1000000)*0.01;/*利润在100万元以上时的奖金*/printf(奖金是%10.2f\n,tc);getch();return0;}方法二:使用switch语句实现#includestdio.hvoidmain(){longi;floatbonus,bon1,bon2,bon4,bon6,bon10;intc;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf(请输入利润i:);scanf(%ld,&i);c=i/100000;if(c10)c=10;switch(c){case0:bonus=1*0.1;break;case1:bonus=bon1+(i-100000)*0.075;break;case2:case3:bonus=bon2+(i-200000)*0.05;break;case4:case5:bonus=bon4+(i-400000)*0.03;break;case6:case7:case8:case9:bonus=bon6+(i-600000)*0.015;break;case10:bonus=bon10+(i-1000000)*0.01;}printf(奖金是%10.2f\n,bonus);}⑾#includestdio.hintmain(){inta,b,c,d,t;printf(pleaseenterfourinteger:\n);scanf(%d%d%d%d,&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;}if(cd){t=c;c=d;d=t;}printf(%d,%d,%d,%d\n,a,b,c,d);return0;}运行结果:⑿#includestdio.hintmain(){floatx1,x2,x3,x4,y1,y2,y3,y4,x,y;x1=2;y1=2;x2=-2;y2=2;x3=-2;y3=-2;x4=2;y4=-2;printf(Pleaseinputcoordinates:\n);scanf(%f,%f,&x,&y);if((x-x1)*(x-x1)+(y-y1)*(y-y1)1&&(x-x2)*(x-x2)+(y-y2)*(y-y2)1&&(x-x3)*(x-x3)+(y-y3)*(y-y3)1&&(x-x4)*(
本文标题:c语言课后习题答案
链接地址:https://www.777doc.com/doc-2908583 .html