您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计(高潮版)编程题答案
3-1#includestdio.hintmain(){floatx,y;printf(Enterx:);scanf(%f,&x);if(x5)y=(x=0?x:-x);elseif(x20)y=3*x*x-2*x+1;elsey=x/5;printf(x=%f,y=%f\n,x,y);return0;}3-2#includestdio.h#includemath.hintmain(){inta,b,c;doubledelta,p,q;printf(请输入一元二次方程的系数a,b,c:);scanf(%d%d%d,&a,&b,&c);delta=b*b-4*a*c;p=-(double)b/(2*a);q=sqrt(fabs(delta))/(2*a);if(delta=0)printf(\nx1=%f\nx2=%f\n,p+q,p-q);else{printf(\nx1=%f+i%f,p,q);printf(\nx2=%f-i%f\n,p,q);}return0;}3-3#includestdio.hintmain(){intp,q;//q为转换点floats,tax;printf(Pleaseenters(工资额):);scanf(%f,&s);q=(int)s/1000;switch(q){case0:p=0;break;case1:p=5;break;case2:case3:case4:p=8;break;case5:case6:case7:p=15;break;default:p=20;}tax=s*p/100;s=s-tax;printf(纳税款:%5.0f\n,tax);printf(实得工资数:%5.0f\n,s);return0;}3-4#includestdio.hintmain(){inti,j,k,sum=0;for(i=1;i=99;i+=2)j=i+1,k=i+2,sum=sum+i*j*k;printf(1*2*3+3*4*5+…+99*100*101=%d\n,sum);return0;}3-5#includestdio.hintmain(){doublee=1.0;doubleu=1.0;intn=1;while(u=1.0e-6){u=u/n;e=e+u;n=n+1;}printf(e=%f(n=%d)\n,e,n);return0;}3-6#includestdio.hintmain(){inti,t,sign=1,m=2,n=1;//sign用于设置正负号,m代表分母,n代表分子doubleu,sum=0;for(i=1;i=20;i++){u=sign*1.0*m/n;//or:u=sign*(double)m/n;sum=sum+u;sign=-sign;//每次循环改变一次正负号t=m,m=m+n,n=t;//当前的分子分母之和是后一项的分子,当前的分子是后一项的分母}printf(sum=%f\n,sum);return0;}3-7//方法一#includestdio.hintmain(){intg,s,b;//分别代表个位、十位、百位上的数码for(b=1;b=9;b++)//百位上的数码由1变到9for(s=0;s=9;s++)//十位上的数码由1变到9for(g=0;g=9;g++)//个位上的数码由1变到9if(g*g*g+s*s*s+b*b*b==g+s*10+b*100)printf(%d\n,g+s*10+b*100);return0;}//方法二#includestdio.hintmain(){intg,s,b;//分别代表个位、十位、百位上的数码intx;//x代表一个3位整数for(x=100;x=999;x++){b=x/100;s=(x-b*100)/10;g=x%10;if(g*g*g+s*s*s+b*b*b==x)printf(%d\n,x);}return0;}*///方法三:移位求余得数码#includestdio.hintmain(){intg,s,b;//分别代表个位、十位、百位上的数码intx,y;//x代表一个3位整数for(x=100;x=999;x++){y=x;g=y%10;s=(y=y/10)%10;b=(y=y/10)%10;if(g*g*g+s*s*s+b*b*b==x)printf(%d\n,x);}return0;}3-8//方法一#includestdio.hintmain(){intnum=0,g,s,b;//g,s,b分别代表个位、十位、百位上的数码(1000肯定不符合要求)for(b=1;b=9;b++)//百位上的数码由1变到9for(s=0;s=9;s++)//十位上的数码由1变到9for(g=0;g=9;g++)//个位上的数码由1变到9if(g+s+b==11){printf(%d,g+s*10+b*100);num++;}printf(\ntotal:%d\n,num);return0;}/*//方法二:移位求余得数码#includestdio.hintmain(){intg,s,b;//分别代表个位、十位、百位上的数码intnum=0,x,y;//x代表一个3位整数for(x=100;x=999;x++){y=x;g=y%10;s=(y=y/10)%10;b=(y=y/10)%10;if(g+s+b==11){printf(%d,x);num++;}}printf(\ntotal:%d\n,num);return0;}3-9//方法1——三重循环#includestdio.hintmain(){intd10,d5,d1;//分别代表10元、5元和1元纸币的数量intnum=0;for(d10=1;d10=9;d10++)for(d5=1;d5=19;d5++)for(d1=1;d1=48;d1++)if((d1+d5+d10==50)&&(10*d10+5*d5+d1==100)){num++;printf(1元纸币数:%d\n,d1);printf(5元纸币数:%d\n,d5);printf(10元纸币数:%d\n,d10);}printf(\n共有%d种兑换方案\n,num);return0;}/*//方法2——二重循环#includestdio.hintmain(){intd10,d5,d1;//分别代表10元、5元和1元纸币的数量intnum=0;for(d10=1;d10=9;d10++)for(d5=1;d5=19;d5++){d1=50-d10-d5;if(d1!=0&&(10*d10+5*d5+d1==100)){num++;printf(1元纸币数:%d\n,d1);printf(5元纸币数:%d\n,d5);printf(10元纸币数:%d\n,d10);}}printf(\n共有%d种兑换方案\n,num);return0;}*/3-10#includestdio.hintmain(){intm,s,i;for(m=2;m1000;m++){s=0;//s用于存储因子之和for(i=1;im;i++)if((m%i)==0)s=s+i;if(s==m){printf(\n%disa完数\n,m);printf(it'sfactorsare:);for(i=1;im;i++)if(m%i==0)printf(%d,i);printf(\n);}}return0;}3-11#includestdio.hintmain(){intmin,i;for(i=1;i=0;i++);//空循环min=i;printf(min:%d\n,min);printf(max:%d\n,-(min+1));return0;}3-12//方法1#includestdio.hintmain(){//用n记录鞭炮声的次数,用t记时(秒),每秒监测鞭炮声//a1,b1,c1统计每人已放鞭炮数,a2,b2,c2记录当前放鞭炮的状态(值1表示放鞭炮状态)intt=1,n=1,num;inta1=1,b1=1,c1=1,a2,b2,c2;printf(请输入每人的鞭炮数:);scanf(%d,&num);while(c1num){if(t%5==0&&a1num)a2=1,a1++;elsea2=0;if(t%6==0&&b1num)b2=1,b1++;elseb2=0;if(t%7==0&&c1num)c2=1,c1++;elsec2=0;if(a2==1||b2==1||c2==1)n++;t++;}printf(一共能听到%d次鞭炮声\n,n);return0;}/*//方法2——分时间段统计#includestdio.hintmain(){//用n记录鞭炮声的次数,用t记时(秒),每秒监测鞭炮声intt,n=1,num;printf(请输入每人的鞭炮数:);scanf(%d,&num);for(t=1;t=(num-1)*5;t++)if(t%5==0||t%6==0||t%7==0)n++;for(;t=(num-1)*6;t++)if(t%6==0||t%7==0)n++;for(;t=(num-1)*7;t++)if(t%7==0)n++;printf(一共能听到%d次鞭炮声\n,n);return0;}*/4-1#includestdio.hintmain(){inthcf(int,int);//求最大公约数的函数intlcd(int,int,int);//求最小公倍数的函数intu,v,h,l;printf(请输入两个整数:);scanf(%d%d,&u,&v);h=hcf(u,v);l=lcd(u,v,h);printf(它们的最大公约数是%d\n,h);printf(它们的最小公倍数是%d\n,l);return0;}inthcf(intu,intv){intt,r;if(vu)t=u,u=v,v=t;while((r=u%v)!=0)u=v,v=r;//辗转相除法returnv;}intlcd(intu,intv,inth){return(u*v/h);}4-2#includestdio.hconstdoublePI=3.14159;doublegirth(doubler)//计算圆周长{returnr*2*PI;}doublearea(doubler)//计算圆面积{returnr*r*PI;}intmain(){doubler;printf(请输入半径(r):);scanf(%lf,&r);printf(圆周长:%f\n,girth(r));printf(圆面积:%f\n,area(r));return0;}4-3#includestdio.hintintcat(intx,inty){intn=10,z=y;while(y=y/10)n=n*10;z=x*n+z;returnz;}intmain(){intx,y;printf(Enterx,y:);scanf(%d%d,&x,&y);printf(Thenewnumberis%d\n,intcat(x,y));return0;}4-4#includestdio.hintmain(){doublegetPower(intx,inty);//函数声明intx,y;printf(Enterx,y:);scanf(%d%d,&x,&y);printf(%d^%d=%f\n,x,y,getPower(x,y));return0;}doublegetPower(intx,inty){doublef;if(y==1)f=x;elsef=x*getPower(x,y-1);returnf;}4-5#includestdio.hintmain(){intreverse(intn);//函
本文标题:C语言程序设计(高潮版)编程题答案
链接地址:https://www.777doc.com/doc-2908969 .html