C++第三章课后习题答案谭浩强Word格式文档下载.docx

上传人:b****5 文档编号:17437153 上传时间:2022-12-01 格式:DOCX 页数:51 大小:26.10KB
下载 相关 举报
C++第三章课后习题答案谭浩强Word格式文档下载.docx_第1页
第1页 / 共51页
C++第三章课后习题答案谭浩强Word格式文档下载.docx_第2页
第2页 / 共51页
C++第三章课后习题答案谭浩强Word格式文档下载.docx_第3页
第3页 / 共51页
C++第三章课后习题答案谭浩强Word格式文档下载.docx_第4页
第4页 / 共51页
C++第三章课后习题答案谭浩强Word格式文档下载.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

C++第三章课后习题答案谭浩强Word格式文档下载.docx

《C++第三章课后习题答案谭浩强Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++第三章课后习题答案谭浩强Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。

C++第三章课后习题答案谭浩强Word格式文档下载.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1