C语言程序设计谭浩强第四版课后问题详解精讲.docx
- 文档编号:10853566
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:165
- 大小:45.49KB
C语言程序设计谭浩强第四版课后问题详解精讲.docx
《C语言程序设计谭浩强第四版课后问题详解精讲.docx》由会员分享,可在线阅读,更多相关《C语言程序设计谭浩强第四版课后问题详解精讲.docx(165页珍藏版)》请在冰豆网上搜索。
C语言程序设计谭浩强第四版课后问题详解精讲
第一章程序设计和C语言【第15页】
1-5
#include
intmain()
{printf("**************************\n\n");
printf("VeryGood!
\n\n");
printf("**************************\n");
return0;
}
1-6
#include
intmain()
{inta,b,c,max;
printf("pleaseinputa,b,c:
\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(max max=c; printf("Thelargestnumberis%d\n",max); return0; } 第2章算法——程序的灵魂【第36页】暂无答案 第3章最简单的C程序设计——顺序程序设计【第82页】 3-1 #include #include intmain() {floatp,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return0; } 3-2-1 #include #include intmain() {floatr5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5);//一次存5年期 p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5);//存活期存款。 活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和 printf("p4=%f\n",p4);//输出按第4方案得到的本息和 printf("p5=%f\n",p5);//输出按第5方案得到的本息和 return0; } 3-2-2 #include #include intmain() {doubler5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5);//一次存5年期 p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5);//存活期存款。 活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和 printf("p4=%f\n",p4);//输出按第4方案得到的本息和 printf("p5=%f\n",p5);//输出按第5方案得到的本息和 return0; } 3-2-3 #include #include intmain() {floatr5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5);//一次存5年期 p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5);//存活期存款。 活期利息每一季度结算一次 printf("p1=%10.2f\n",p1);//输出按第1方案得到的本息和 printf("p2=%10.2f\n",p2);//输出按第2方案得到的本息和 printf("p3=%10.2f\n",p3);//输出按第3方案得到的本息和 printf("p4=%10.2f\n",p4);//输出按第4方案得到的本息和 printf("p5=%10.2f\n",p5);//输出按第5方案得到的本息和 return0; } 3-3. #include #include intmain() {floatd=300000,p=6000,r=0.01,m; m=log10(p/(p-d*r))/log10(1+r); printf("m=%6.2f\n",m); return0; } 3-4 #include intmain() {intc1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return0; } 3-5 #include intmain() {inta,b; floatx,y; charc1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&x,&y); scanf("%c%c",&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return0; } 3-6 #include intmain() {charc1='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("passworis%c%c%c%c%c\n",c1,c2,c3,c4,c5); return0; } 3-7 #include intmain() {floath,r,l,s,sq,vq,vz; floatpi=3.141526; printf("请输入圆半径r,圆柱高h∶"); scanf("%f,%f",&r,&h);//要求输入圆半径r和圆柱高h l=2*pi*r;//计算圆周长l s=r*r*pi;//计算圆面积s sq=4*pi*r*r;//计算圆球表面积sq vq=3.0/4.0*pi*r*r*r;//计算圆球体积vq vz=pi*r*r*h;//计算圆柱体积vz printf("圆周长为: l=%6.2f\n",l); printf("圆面积为: s=%6.2f\n",s); printf("圆球表面积为: sq=%6.2f\n",sq); printf("圆球体积为: v=%6.2f\n",vq); printf("圆柱体积为: vz=%6.2f\n",vz); return0; } 3-8-1 #include intmain() { intc1,c2;//整型定义 printf("请输入两个整数c1,c2: "); scanf("%d,%d",&c1,&c2); printf("按字符输出结果: \n"); printf("%c,%c\n",c1,c2); printf("按ASCII码输出结果为: \n"); printf("%d,%d\n",c1,c2); return0; } 3-8-2 #include intmain() { charc1,c2;//定义字符型变量 inti1,i2;//定义整型变量 printf("请输入两个字符c1,c2: "); scanf("%c,%c",&c1,&c2); i1=c1;//赋值给整型变量 i2=c2; printf("按字符输出结果: \n"); printf("%c,%c\n",i1,i2); printf("按整数输出结果: \n"); printf("%d,%d\n",c1,c2); return0; } 3-8-3 #include intmain() { charc1,c2;//定义为字符型 inti1,i2;//定义为整型 printf("请输入两个整数i1,i2: "); scanf("%d,%d",&i1,&i2); c1=i1;//将整数赋值给字符变量 c2=i2; printf("按字符输出结果: \n"); printf("%c,%c\n",c1,c2); printf("按整数输出结果: \n"); printf("%d,%d\n",c1,c2); return0; } 3-8 #include intmain() { charc1,c2; printf("请输入两个字符c1,c2: "); c1=getchar(); c2=getchar(); printf("用putchar语句输出结果为: "); putchar(c1); putchar(c2); printf("\n"); printf("用printf语句输出结果为: "); printf("%c%c\n",c1,c2); return0; } 第4章选择结构程序设计【第111页】 4-4-1 #include intmain() { inta,b,c; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); if(a if(b printf("max=%d\n",c); else printf("max=%d\n",b); elseif(a printf("max=%d\n",c); else printf("max=%d\n",a); return0; } 4-4-2 #include intmain() {inta,b,c,temp,max; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)? a: b;/*将a和b中的大者存入temp中*/ max=(temp>c)? temp: c;/*将a和b中的大者与c比较,取最大者*/ printf("三个整数的最大数是%d\n",max); return0; } 4-5-2 #include #include #defineM1000 intmain() { inti,k; printf("请输入一个小于%d的整数i: ",M); scanf("%d",&i); while(i>M) {printf("输入的数不符合要求,请重新输入一个小于%d的整数i: ",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整数部分是: %d\n",i,k); return0; } 4-5 #include #include #defineM1000 intmain() { inti,k; printf("请输入一个小于%d的整数i: ",M); scanf("%d",&i); if(i>M) {printf("输入的数不符合要求,请重新输入一个小于%d的整数i: ",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整数部分是: %d\n",i,k); return0; } 4-6. #include intmain() {intx,y; printf("输入x: "); scanf("%d",&x); if(x<1)/*x<1*/ {y=x; printf("x=%3d,y=x=%d\n",x,y); } elseif(x<10)/*1= {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else/*x>=10*/ {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } return0; } 4-7-1 #include intmain() { intx,y; printf("enterx: "); scanf("%d",&x); y=-1; if(x! =0) if(x>0) y=1; else y=0; printf("x=%d,y=%d\n",x,y); return0; } 4-7-2 #include intmain() { intx,y; printf("pleaseenterx: "); scanf("%d",&x); y=0; if(x>=0) if(x>0)y=1; elsey=-1; printf("x=%d,y=%d\n",x,y); return0; } 4-8 #include intmain() {floatscore; chargrade; printf("请输入学生成绩: "); scanf("%f",&score); while(score>100||score<0) {printf("\n输入有误,请重输"); scanf("%f",&score); } switch((int)(score/10)) {case10: case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='D';break; case5: case4: case3: case2: case1: case0: grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score,grade); return0; } 4-9 #include #include intmain() { intnum,indiv,ten,hundred,thousand,ten_thousand,place;//分别代表个位,十位,百位,千位,万位和位数 printf("请输入一个整数(0-99999): "); scanf("%d",&num); if(num>9999) place=5; elseif(num>999) place=4; elseif(num>99) place=3; elseif(num>9) place=2; elseplace=1; printf("位数: %d\n",place); printf("每位数字为: "); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) {case5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv); printf("\n反序数字为: "); printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand); break; case4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv); printf("\n反序数字为: "); printf("%d%d%d%d\n",indiv,ten,hundred,thousand); break; case3: printf("%d,%d,%d",hundred,ten,indiv); printf("\n反序数字为: "); printf("%d%d%d\n",indiv,ten,hundred); break; case2: printf("%d,%d",ten,indiv); printf("\n反序数字为: "); printf("%d%d\n",indiv,ten); break; case1: printf("%d",indiv); printf("\n反序数字为: "); printf("%d\n",indiv); break; } return0; } 4-10-1 #include intmain() { inti; doublebonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+100000*0.05; bon6=bon4+100000*0.03; bon10=bon6+400000*0.015; printf("请输入利润i: "); scanf("%d",&i); if(i<=100000) bonus=i*0.1; elseif(i<=200000) bonus=bon1+(i-100000)*0.075; elseif(i<=400000) bonus=bon2+(i-200000)*0.05; elseif(i<=600000) bonus=bon4+(i-400000)*0.03; elseif(i<=1000000) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf("奖金是: %10.2f\n",bonus); return0; } 4-10-2 #include intmain() { inti; doublebonus,bon1,bon2,bon4,bon6,bon10; intbranch; 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("%d",&i); branch=i/100000; if(branch>10)branch=10; switch(branch) {case0: bonus=i*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); return0; } 4-11 #include intmain() {intt,a,b,c,d; printf("请输入四个数: "); scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d) {t=b;b=d;d=t;} if(c>d) {t=c;c=d;d=t;} printf("排序结果如下: \n"); printf("%d%d%d%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 谭浩强 第四 课后 问题 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)