C++第三章课后习题答案 谭浩强.doc
《C++第三章课后习题答案 谭浩强.doc》由会员分享,可在线阅读,更多相关《C++第三章课后习题答案 谭浩强.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.2题#include #include using namespace std;int main ( )float h,r,l,s,sq,vq,vz; const float pi=3.; coutrh; l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; coutsetiosflags(ios:fixed)setiosflags(ios:right) setprecision(2); coutl= setw(10)lendl; couts= setw(10)sendl; coutsq=setw(10)sqe
2、ndl; coutvq=setw(10)vqendl; coutvz=setw(10)vzendl; return 0; 3.3题#include using namespace std;int main ()float c,f; coutf; c=(5.0/9.0)*(f-32); /注意5和9要用实型表示,否则5/9值为0 cout摄氏温度为:cendl; return 0;3.4题#include using namespace std;int main ( )char c1,c2; cout请输入两个字符c1,c2:; c1=getchar(); /将输入的第一个字符赋给c1 c2=g
3、etchar(); /将输入的第二个字符赋给c2 cout用putchar函数输出结果为:; putchar(c1); putchar(c2); coutendl; cout用cout语句输出结果为:; coutc1c2endl; return 0;3.4题另一解#include using namespace std;int main ( )char c1,c2; cout请输入两个字符c1,c2:; c1=getchar(); /将输入的第一个字符赋给c1 c2=getchar(); /将输入的第二个字符赋给c2 cout用putchar函数输出结果为:; putchar(c1); put
4、char(44); putchar(c2); coutendl; cout用cout语句输出结果为:; coutc1,c2endl; return 0;3.5题#include using namespace std;int main ( )char c1,c2; int i1,i2; /定义为整型 couti1i2; c1=i1; c2=i2; cout按字符输出结果为:c1 , c2endl; return 0;3.8题#include using namespace std;int main ( ) int a=3,b=4,c=5,x,y; coutc & b=c)endl; cout(
5、a|b+c & b-c)endl; coutb) & !c|1)endl; cout(!(x=a) & (y=b) & 0)endl; cout(!(a+b)+c-1 & b+c/2)endl; return 0; 3.9题include using namespace std;int main ( ) int a,b,c; coutabc; if(ab) if(bc) coutmax=c; else coutmax=b; else if (ac) coutmax=c; else coutmax=a; coutendl;return 0; 3.9题另一解#include using names
6、pace std;int main ( ) int a,b,c,temp,max ; coutabc; temp=(ab)?a:b; /* 将a和b中的大者存入temp中 */ max=(tempc)?temp:c; /* 将a和b中的大者与c比较,最大者存入max */ coutmax=maxendl; return 0; 3.10题#include using namespace std;int main ( ) int x,y; coutx; if (x1) y=x; coutx=x, y=x=y; else if (x10) / 1x10 y=2*x-1; coutx=x, y=2*x
7、-1=y; else / x10 y=3*x-11; coutx=x, y=3*x-11=y; coutendl;return 0;3.11题#include using namespace std;int main () float score; char grade; coutscore; while (score100|score0) coutscore; switch(int(score/10) case 10: case 9: grade=A;break; case 8: grade=B;break; case 7: grade=C;break; case 6: grade=D;br
8、eak; default:grade=E; coutscore is score, grade is gradeendl; return 0;3.12题#include using namespace std;int main ()long int num; int indiv,ten,hundred,thousand,ten_thousand,place; /*分别代表个位,十位,百位,千位,万位和位数*/ coutnum; if (num9999) place=5; else if (num999) place=4; else if (num99) place=3; else if (nu
9、m9) place=2; else place=1; coutplace=placeendl; /计算各位数字 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-hundr
10、ed*100-ten*10); coutoriginal order:; switch(place) case 5:coutten_thousand,thousand,hundred,ten,indivendl; coutreverse order:; coutindivtenhundredthousandten_thousandendl; break; case 4:coutthousand,hundred,ten,indivendl; coutreverse order:; coutindivtenhundredthousandendl; break; case 3:couthundred
11、,ten,indivendl; coutreverse order:; coutindivtenhundredendl; break; case 2:coutten,indivendl; coutreverse order:; coutindivtenendl; break; case 1:coutindivendl; coutreverse order:; coutindivendl; break; return 0; 3.13题#include using namespace std;int main () long i; /i为利润 float bonus,bon1,bon2,bon4,
12、bon6,bon10; bon1=*0.1; /利润为10万元时的奖金 bon2=bon1+*0.075; /利润为20万元时的奖金 bon4=bon2+*0.05; /利润为40万元时的奖金 bon6=bon4+*0.03; /利润为60万元时的奖金 bon10=bon6+*0.015; /利润为100万元时的奖金 couti; if (i=) bonus=i*0.1; /利润在10万元以内按10%提成奖金 else if (i=) bonus=bon1+(i-)*0.075; /利润在10万元至20万时的奖金 else if (i=) bonus=bon2+(i-)*0.05; /利润在2
13、0万元至40万时的奖金 else if (i=) bonus=bon4+(i-)*0.03; /利润在40万元至60万时的奖金 else if (i=) bonus=bon6+(i-)*0.015; /利润在60万元至100万时的奖金 else bonus=bon10+(i-)*0.01; /利润在100万元以上时的奖金 coutbonus=bonusendl; return 0; 3.13题另一解#include using namespace std;int main ()long i; float bonus,bon1,bon2,bon4,bon6,bon10; int c; bon1=
14、*0.1; bon2=bon1+*0.075; bon4=bon2+*0.05; bon6=bon4+*0.03; bon10=bon6+*0.015; couti; c=i/; if (c10) c=10; switch(c) case 0: bonus=i*0.1; break; case 1: bonus=bon1+(i-)*0.075; break; case 2: case 3: bonus=bon2+(i-)*0.05;break; case 4: case 5: bonus=bon4+(i-)*0.03;break; case 6: case 7: case 8: case 9:
15、 bonus=bon6+(i-)*0.015; break; case 10: bonus=bon10+(i-)*0.01; coutbonus=bonusendl; return 0;3.14题#include using namespace std;int main ()int t,a,b,c,d; coutabcd; couta=a, b=b, c=c,d=db) 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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+第三章课后习题答案 谭浩强 C+ 第三 课后 习题 答案
限制150内