C++总复习 四编程答案Word格式文档下载.docx
- 文档编号:22619471
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:26
- 大小:21.30KB
C++总复习 四编程答案Word格式文档下载.docx
《C++总复习 四编程答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++总复习 四编程答案Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
endl;
return0;
}
2.eg.3.7
usingnamespacestd;
intmain()
{
charch;
cin>
ch;
ch=(ch>
='
A'
&
ch<
Z'
)?
(ch+32):
//判别ch是否大写字母,是则转换
ch<
3.
法一:
eg.3.10while语句
inti=1,sum=0;
while(i<
=100)
{sum=sum+i;
i++;
}
sum="
sum<
法二:
eg.3.11do-while语句
do
{sum=sum+i;
i++;
}while(i<
=100);
法三:
P76for语句
intmain()
inti,sum=0;
for(i=1;
i<
=100;
i++)
sum=sum+i;
4.eg.3.12
{ints=1;
doublen=1,t=1,pi=0;
while((fabs(t))>
1e-7)//fabs()与abs()都是绝对值的意思
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
pi=pi*4;
pi="
setiosflags(ios∷fixed)<
setprecision(6)<
pi<
5.eg.3.13
{longf1,f2;
inti;
f1=f2=1;
=20;
i++)
{cout<
setw(12)<
f1<
f2;
//设备输出字段宽度为12,每次输出两个数
if(i%2==0)cout<
//每输出完4个数后换行,使每行输出4个数
f1=f1+f2;
//左边的f1代表第3个数,是第1.2个数之和
f2=f2+f1;
//左边的f2代表第4个数,是第2.3个数之和
}
return0;
6.eg.3.14
{intm,k,i,n=0;
boolprime;
//定义布尔变量prime
for(m=101;
m<
=200;
m=m+2)//判别m是否为素数,m由101变化到200,增量为2
{prime=true;
//循环开始时设prime为真,即先认为m为素数
k=int(sqrt(m));
//用k代表根号m的整数部分
for(i=2;
=k;
i++)//此循环作用是将m被2~根号m除,检查是否能整除
if(m%i==0)//如果能整除,表示m不是素数
{prime=false;
//使prime变为假
break;
//终止执行本循环
if(prime)//如果m为素数
setw(5)<
m;
//输出素数m,字段宽度为5
n=n+1;
//n用来累计输出素数的个数
if(n%10==0)cout<
//输出10个数后换行
//最后执行一次换行
7.3-2
intmain()
{floath,r,l,s,sq,vq,vz;
constfloatpi=3.1415926;
pleaseenterr,h:
r>
h;
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;
right)
<
setprecision
(2);
l="
setw(10)<
l<
s="
s<
sq="
sq<
vq="
vq<
vz="
vz<
8.3-3
intmain()
{floatc,f;
请输入一个华氏温度:
f;
c=(5.0/9.0)*(f-32);
//注意5和9要用实型表示,否则5/9值为0
摄氏温度为:
c<
9.3-11
{floatscore;
chargrade;
pleaseenterscoreofstudent:
score;
while(score>
100||score<
0)
dataerror,enterdataagain."
switch(int(score/10))
{case10:
case9:
grade='
break;
case8:
B'
case7:
C'
case6:
D'
default:
grade='
E'
scoreis"
score<
gradeis"
grade<
10.
floatPRICE;
pleaseenterpriceofbook:
PRICE;
if(PRICE>
50)
cout<
expensive"
elseif(PRICE>
=20)
normal"
inexpensive"
11.类似3-10
{intx,y;
enterx:
x;
if(x<
=10)
{y=4*x;
x="
x<
y=4x="
y;
elseif(x<
=20)//10<x≤20
{y=x*(x-1);
y=x(x-1)="
else//x>20
{y=x+20;
y=x+20="
12.试卷第二题第8小题
voidmain()
floata,b,c,t;
pleaseentera,b,c:
c;
if(a<
{t=a;
a=b;
b=t;
c)
a=c;
c=t;
if(b<
{t=b;
b=c;
setw(6)<
a<
b<
13.3-15
{intp,r,n,m,temp;
pleaseentertwopositiveintegernumbersn,m:
n>
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<
//HCF指最大公约数;
LCD指最小公倍数
LCD="
p/n<
//p是原来两个整数的乘积
14.3-18
{floats=0,t=1;
intn;
for(n=1;
n++)
t=t*n;
//求n!
s=s+t;
//将各项累加
1!
+2!
+...+20!
="
15.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)
"
16.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;
a;
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
case2:
k2=i;
//找出的笫2个因子赋给k2
case3:
k3=i;
//找出的笫3个因子赋给k3
case4:
k4=i;
//找出的笫4个因子赋给k4
case5:
k5=i;
//找出的笫5个因子赋给k5
case6:
k6=i;
//找出的笫6个因子赋给k6
case7:
k7=i;
//找出的笫7个因子赋给k7
case8:
k8=i;
//找出的笫8个因子赋给k8
case9:
k9=i;
//找出的笫9个因子赋给k9
case10:
k10=i;
//找出的笫10个因子赋给k10
}
if(s==0)//s=0表示全部因子都已找到了
{cout<
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<
法二
{intm,s,i;
for(m=2;
m++)
{s=0;
if((m%i)==0)s=s+i;
if(s==m)
isa完数"
if(m%i==0)cout<
法三
{intk[11];
=1000;
a++)
if((a%i)==0)
k[n]=i;
//将找到的因子赋给k[1]┅k[10]
if(s==0)
n;
k[i]<
k[n]<
17.3-22
{intday,x1,x2;
day=9;
x2=1;
while(day>
{x1=(x2+1)*2;
//第1天的桃子数是第2天桃子数加1后的2倍
x2=x1;
day--;
total="
x1<
18.3-23
{floata,x0,x1;
enterapositivenumber:
//输入a的值
x0=a/2;
x1=(x0+a/x0)/2;
do
{x0=x1;
while(fabs(x0-x1)>
=1e-5);
Thesquarerootof"
is"
19.4-1
{inthcf(int,int);
intlcd(int,int,int);
intu,v,h,l;
u>
v;
h=hcf(u,v);
H.C.F="
h<
l=lcd(u,v,h);
L.C.D="
inthcf(intu,intv)
{intt,r;
if(v>
u)
{t=u;
u=v;
v=t;
while((r=u%v)!
=0)
{u=v;
v=r;
return(v);
intlcd(intu,intv,inth)
{return(u*v/h);
20.4-2
math.h>
floatx1,x2,disc,p,q;
{voidgreater_than_zero(float,float);
voidequal_to_zero(float,float);
voidsmaller_than_zero(float,float);
floata,b,c;
inputa,b,c:
disc=b*b-4*a*c;
root:
if(disc>
{
greater_than_zero(a,b);
x1="
x2="
x2<
elseif(disc==0)
{equal_to_zero(a,b);
else
{smaller_than_zero(a,b);
p<
+"
q<
i"
x2="
-"
voidgreater_than_zero(floata,floatb)/*定义一个函数,用来求disc>
0时方程的根*/
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
voidequal_to_zero(floata,floatb)/*定义一个函数,用来求disc=0时方程的根*/
x1=x2=(-b)/(2*a);
voidsmaller_than_zero(floata,floatb)/*定义一个函数,用来求disc<
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
21.4-3
{intprime(int);
/*函数原型声明*/
intn;
inputaninteger:
if(prime(n))
isaprime."
isnotaprime."
intprime(intn)
{intflag=1,i;
for(i=2;
n/2&
flag==1;
if(n%i==0)
flag=0;
return(flag);
22.4-4
{intfac(int);
inta,b,c,sum=0;
entera,b,c:
sum=sum+fac(a)+fac(b)+fac(c);
!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+总复习 四编程答案 C+ 复习 编程 答案