C++第三章课后习题答案谭浩强Word格式文档下载.docx
- 文档编号:17437153
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:51
- 大小:26.10KB
C++第三章课后习题答案谭浩强Word格式文档下载.docx
《C++第三章课后习题答案谭浩强Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++第三章课后习题答案谭浩强Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。
c=(5.0/9.0)*(f-32);
//注意5和9要用实型表示,否则5/9值为0
摄氏温度为:
c<
};
3.4题
{charc1,c2;
请输入两个字符c1,c2:
c1=getchar();
//将输入的第一个字符赋给c1
c2=getchar();
//将输入的第二个字符赋给c2
用putchar函数输出结果为:
putchar(c1);
putchar(c2);
用cout语句输出结果为:
c1<
c2<
}
3.4题另一解
putchar(44);
"
3.5题
inti1,i2;
//定义为整型
请输入两个整数i1,i2:
i1>
i2;
c1=i1;
c2=i2;
按字符输出结果为:
"
3.8题
{inta=3,b=4,c=5,x,y;
(a+b>
c&
&
b==c)<
(a||b+c&
b-c)<
(!
(a>
b)&
!
c||1)<
(x=a)&
(y=b)&
0)<
(a+b)+c-1&
b+c/2)<
3.9题
include<
{inta,b,c;
pleaseenterthreeintegernumbers:
a>
b>
c;
if(a<
b)
if(b<
c)
max="
else
b;
elseif(a<
a;
}
3.9题另一解
{inta,b,c,temp,max;
temp=(a>
b)?
a:
/*将a和b中的大者存入temp中*/
max=(temp>
c)?
temp:
/*将a和b中的大者与c比较,最大者存入max
*/
max<
3.10题
{intx,y;
enterx:
x;
if(x<
1)
{y=x;
x="
x<
y=x="
y;
elseif(x<
10)//1≤x<10
{y=2*x-1;
y=2*x-1="
else//x≥10
{y=3*x-11;
y=3*x-11="
3.11题
{floatscore;
chargrade;
pleaseenterscoreofstudent:
score;
while(score>
100||score<
0)
{cout<
dataerror,enterdataagain."
switch(int(score/10))
{case10:
case9:
grade='
A'
break;
case8:
B'
case7:
C'
case6:
D'
default:
grade='
E'
scoreis"
score<
gradeis"
grade<
3.12题
{longintnum;
intindiv,ten,hundred,thousand,ten_thousand,place;
/*分别代表个位,十位,百位,千位,万位和位数
enteraninteger(0~99999):
num;
if(num>
9999)
place=5;
elseif(num>
999)
place=4;
99)
place=3;
9)
place=2;
elseplace=1;
place="
place<
//计算各位数字
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);
originalorder:
switch(place)
{case
5:
cout<
ten_thousand<
thousand<
hundred<
ten<
indiv<
en
dl;
reverseorder:
break;
case4:
case3:
cout<
case2:
case1:
}
3.13题
{longi;
//i为利润
floatbonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
//利润为10万元时的奖金
bon2=bon1+100000*0.075;
//利润为20万元时的奖金
bon4=bon2+100000*0.05;
//利润为40万元时的奖金
bon6=bon4+100000*0.03;
//利润为60万元时的奖金
bon10=bon6+400000*0.015;
//利润为100万元时的奖金
enteri:
i;
if(i<
=100000)
bonus=i*0.1;
//利润在10万元以内按10%提成奖金
elseif(i<
=200000)
bonus=bon1+(i-100000)*0.075;
//利润在10万元至20万时的奖金
=400000)
bonus=bon2+(i-200000)*0.05;
//利润在20万元至40万时的奖金
=600000)
bonus=bon4+(i-400000)*0.03;
//利润在40万元至60万时的奖金
=1000000)
bonus=bon6+(i-600000)*0.015;
//利润在60万元至100万时的奖金
bonus=bon10+(i-1000000)*0.01;
//利润在100万元以上时的奖金
bonus="
bonus<
3.13题另一解
{longi;
intc;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
c=i/100000;
if(c>
10)c=10;
switch(c)
{case0:
case5:
case10:
3.14题
{intt,a,b,c,d;
enterfournumbers:
c>
d;
a="
a<
b="
b<
c="
d="
d<
if(a>
{t=a;
a=b;
b=t;
a=c;
c=t;
d)
a=d;
d=t;
if(b>
{t=b;
b=c;
b=d;
{t=c;
c=d;
thesortedsequence:
"
3.15题
{intp,r,n,m,temp;
pleaseentertwopositiveintegernumbersn,m:
n>
m;
if(n<
m)
{temp=n;
n=m;
m=temp;
//把大数放在n中,小数放在m中
p=n*m;
//先将n和m的乘积保存在p中,以便求最小公倍数时用
while(m!
=0)//求n和m的最大公约数
{r=n%m;
m=r;
HCF="
n<
LCD="
p/n<
//p是原来两个整数的乘积
3.16题
{charc;
intletters=0,space=0,digit=0,other=0;
enteroneline:
while((c=getchar())!
='
\n'
)
{if(c>
a'
&
c<
z'
||c>
Z'
letters++;
elseif(c=='
'
space++;
elseif(c>
0'
9'
digit++;
other++;
letter:
letters<
space:
space<
digit:
digit<
other:
other<
}
3.17题
{inta,n,i=1,sn=0,tn=0;
a,n=:
n;
while(i<
=n)
{tn=tn+a;
//赋值后的tn为i个a组成数的值
sn=sn+tn;
//赋值后的sn为多项式前i项之和
a=a*10;
++i;
a+aa+aaa+...="
sn<
3.18题
{floats=0,t=1;
intn;
for(n=1;
=20;
n++)
{
t=t*n;
//求n!
s=s+t;
//将各项累加
1!
+2!
+...+20!
="
3.19题
{inti,j,k,n;
narcissusnumbersare:
for(n=100;
1000;
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
"
3.20题
intmain()
{constintm=1000;
//定义寻找范围
intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
inti,a,n,s;
for(a=2;
=m;
a++)//a是2~1000之间的整数,检查它是否为完数
{n=0;
//n用来累计a的因子的个数
s=a;
//s用来存放尚未求出的因子之和,开始时等于a
for(i=1;
i<
i++)//检查i是否为a的因子
if(a%i==0)//如果i是a的因子
{n++;
//n加1,表示新找到一个因子
s=s-i;
//s减去已找到的因子,s的新值是尚未求出的因子
之和
switch(n)//将找到的因子赋给k1,...,k10
{case1:
k1=i;
//找出的笫1个因子赋给k1
k2=i;
//找出的笫2个因子赋给k2
k3=i;
//找出的笫3个因子赋给k3
k4=i;
//找出的笫4个因子赋给k4
k5=i;
//找出的笫5个因子赋给k5
k6=i;
//找出的笫6个因子赋给k6
k7=i;
//找出的笫7个因子赋给k7
k8=i;
//找出的笫8个因子赋给k8
k9=i;
//找出的笫9个因子赋给k9
k10=i;
//找出的笫10个因子赋给k10
if(s==0)//s=0表示全部因子都已找到了
isa完数"
itsfactorsare:
if(n>
1)cout<
k1<
k2;
//n>
1表示a至少有2个因子
2)cout<
k3;
2表示至少有3个因子,故应再输出一个因子
3)cout<
k4;
3表示至少有4个因子,故应再输出一个因子
4)cout<
k5;
//以下类似
5)cout<
k6;
6)cout<
k7;
7)cout<
k8;
8)cout<
k9;
9)cout<
k10;
endl<
intmain()3.20题另一解
{intm,s,i;
for(m=2;
m<
m++)
{s=0;
i++)
if((m%i)==0)s=s+i;
if(s==m)
isa完数"
if(m%i==0)cout<
3.20题另一解
intmain()
{intk[11];
=1000;
a++)
if((a%i)==0)
k[n]=i;
//将找到的因子赋给k[1]┅k[10]
if(s==0)
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 第三 课后 习题 答案 谭浩强