钱能c++习题答案.docx
《钱能c++习题答案.docx》由会员分享,可在线阅读,更多相关《钱能c++习题答案.docx(136页珍藏版)》请在冰豆网上搜索。
钱能c++习题答案
(二)
2.1
#include
voidmain()
{//本题原考虑在16位机器上实验目前多为32位机器,故已过时。
inta=42486;
cout<<unsignedb=42486;
cout<}
2.2
#include
#include
constdoublepi=3.1415926;
voidmain()
{
doubleradius1,radius2;
cout<<"pleaseinputtwonumbers:
\n";
cin>>radius1>>radius2;
cout<<<<}
2.3
#include
#include
constdoublee=2.718281828;
voidmain()
{
cout<<:
fixed)<<:
scientific)<}
2.4
#include
voidmain()
{
cout<<"\"Howmanystudentshere?
\"\n"
<<"\"500\"\n";
}
2.5
#include
voidmain()
{
cout<<"sizeofchar"<<<"sizeofunsignedchar"<<<"sizeofsignedchar"<<<"sizeofint"<<<"sizeofunsigned"<<<"sizeofsigned"<<<"sizeofshort"<<<"sizeofunsignedshort"<<<"sizeoflong"<<<"sizeofsignedlong"<<<"sizeofunsignedlong"<<<"sizeoffloat"<<<"sizeofdouble"<<<"sizeoflongdouble"<}
2.6
1)
pleaseinput3sidesofonetriangle:
6,6,8
a=6.00,b=6.00,c=8.00
areaoftriangleis17.88854
2)
该程序计算三角形的面积
前后分为三部分:
输入,处理,输出。
3)
//#include
#include
#include
#include
voidmain()
{
floata,b,c,s,area;
//printf("pleaseinput3sidesofonetriangle:
\n");
cout<<"pleaseinput3sidesofonetriangle:
\n";
//scanf("%f,%f,%f",&a,&b,&c);//输入时以逗号作为数据间隔
cin>>a>>b>>c;//输入时以空格作为数据间隔
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
//printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
cout<:
fixed)<(2)
<<"a="<<<",b="<<<",c="<//printf("areaoftriangleis%10.5f",area);
cout<<"areaoftriangleis"<<}
4)
#include
#include
#include
floatarea(floata,floatb,floatc);//函数声明
voidmain()
{
floata,b,c;
cout<<"pleaseinput3sidesofonetriangle:
\n";
cin>>a>>b>>c;//输入时以空格作为数据间隔
floatresult=area(a,b,c);//函数调用
cout<:
fixed)<(2)
<<"a="<<<",b="<<<",c="<cout<<"areaoftriangleis"<<}
floatarea(floata,floatb,floatc)//函数定义
{
floats=(a+b+c)/2;
returnsqrt(s*(s-a)*(s-b)*(s-c));
}
2.7
Inmain():
Entertwonumbers:
38
Callingadd():
Inadd(),received3and8
andreturn11
Backinmain():
cwassetto11
Exiting...
2.8
#include
#include
doubleCylinder(doubler,doubleh);
voidmain()
{
doubleradius,height;
cout<<"请输入圆柱体的半径和高:
\n";
cin>>radius>>height;
doublevolume=Cylinder(radius,height);
cout<<"该圆柱体的体积为:
"<}
doubleCylinder(doubler,doubleh)
{
returnr*r*M_PI*h;
}
(三)
3.1
(1)sqrt(pow(sin(x),2.5))
(2)(a*x+(a+x)/(4*a))/2
(3)pow(c,x*x)/sqrt(2*M_PI)//M_PI为BC中math.h中的圆周率常数
3.213.72.59
3.3
(1)a1=1a2=1
(2)1.1
(3)2,0.0
(4)20
3.4
#include
voidmain()
{
intx;
cout<<"pleaseinputx:
\n";
cin>>x;
if(x<=-1)
cout<<(x-1)<if(x>-1&&x<=2)
cout<<2*x<if(2cout<}
3.5
#include
voidmain()
{
inta;
cout<<"pleaseinputanumber:
\n";
cin>>a;
intc1=a%3==0;
intc2=a%5==0;
intc3=a%7==0;
switch((c1<<2)+(c2<<1)+c3){
case0:
cout<<"不能被3,5,7整除.\n";break;
case1:
cout<<"只能被7整除.\n";break;
case2:
cout<<"只能被5整除.\n";break;
case3:
cout<<"可以被5,7整除.\n";break;
case4:
cout<<"只能被3整除.\n";break;
case5:
cout<<"可以被3,7整除.\n";break;
case6:
cout<<"可以被3,5整除.\n";break;
case7:
cout<<"可以被3,5,7整除.\n";break;}
}
3.6
#include
voidmain()
{
intgrade;
cout<<"pleaseinputanumber:
\n";
cin>>grade;
if(grade>100||grade<0)
cout<<"错误的成绩.\n";
elseif(grade>=90)
cout<<"A.\n";
elseif(grade>=80)
cout<<"B.\n";
elseif(grade>=70)
cout<<"C.\n";
elseif(grade>=60)
cout<<"D.\n";
else
cout<<"E.\n";
}
(四)
4.1
(1)
#include
#include
voidmain()
{
doublesum=1,t=-1,x;
inti=1;
cout<<"pleaseinputavalue:
\n";
cin>>x;
do{
t*=(-1)*x/i;
sum+=t;
i++;
}while(fabs(t)>1e-8);
cout<<"sum="<}
(2)
#include
#include
voidmain()
{
doublesum=1,t=-1,x;
cout<<"pleaseinputavalue:
\n";
cin>>x;
inti=1;
while(fabs(t)>1e-8){
t*=(-1)*x/i;
sum+=t;
i++;
}
cout<<"sum="<}
(3)
#include
#include
voidmain()
{
doublesum=1,t=-1,x;
cout<<"pleaseinputavalue:
\n";
cin>>x;
for(inti=1;fabs(t)>1e-8;i++){
t*=(-1)*x/i;
sum+=t;
}
cout<<"sum="<}
4.2
#include
voidmain()
{
longsum=0,t=1;
for(inti=1;i<=15;i++){
t*=i;
sum+=t;
}
cout<<"sum="<}
4.3
#include
voidmain()
{
for(inti=1;i<=9;i++)
for(intj=0;j<=9;j++)
for(intk=0;k<=9;k++)
if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)
cout<<(100*i+10*j+k)<<"是水仙花数.\n";
}
4.4
#include
voidmain()
{
for(inti=1;i<1000;i++){
intsum=0;
for(intj=1;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
cout<
}
}
4.5
#include
voidmain()
{
floats=100,h=100;
for(inti=1;i<10;i++){
s+=h;
h/=2;
}
cout<<"共经过"<
}
4.6
#include
voidmain()
{
intpeachs=1;
for(inti=1;i<10;i++)
peachs=(peachs+1)*2;
cout<<"第一天共摘下"<}
4.7
#include
#include
voidmain()
{
doublex,a;
cout<<"pleaseinputavalue:
\n";
cin>>a;
x=a/2;
while(fabs((x-a/x)/2)>1e-7)
x=(x+a/x)/2;
cout<}
4.8
(1)
#include
voidmain()
{
for(inti=1;i<=10;i++){
for(intj=1;j<=10-i;j++)
cout<<"";
for(intj=1;j<=2*i-1;j++)
cout<<"#";
cout<}
}
(2)
#include
voidmain()
{
for(inti=1;i<=8;i++){
for(intj=1;j<=i;j++)
cout<<"";
for(intj=1;j<=18-i;j++)
cout<<"#";
cout<}
}
4.9
(1)
#include
#include
voidmain()
{
cout<<"*";
for(inti=1;i<=9;i++)
cout<cout<<"\n-----------------------------------------\n";
for(inti=1;i<=9;i++){
cout<for(intj=1;j<=9;j++)
cout<cout<}
}
(2)
#include
#include
voidmain()
{
cout<<"*";
for(inti=1;i<=9;i++)
cout<cout<<"\n-----------------------------------------\n";
for(inti=1;i<=9;i++){
cout<for(intj=1;j<=i;j++)
cout<cout<}
}
(3)
#include
#include
voidmain()
{
cout<<"*";
for(inti=1;i<=9;i++)
cout<cout<<"\n-----------------------------------------\n";
for(inti=1;i<=9;i++){
cout<if(i!
=1)
cout<for(intj=i;j<=9;j++)
cout<cout<}
}
4.10
#include
voidmain()
{
intn;
longa=1,b=1,c=1,temp;
cout<<"pleaseinputavalue:
\n";
cin>>n;
for(inti=4;i<=n;i++){
temp=a+c;a=b;b=c;c=temp;
}
cout<}
(五)
5.1
#include
#include
#include
boolisprime(longn);
voidmain()
{
//input
longa,b,l=1;
cout<<"pleaseinputtwonumbers:
\n";
cin>>a>>b;
cout<<"primesfrom"<//process
if(a==1||a==2){a=2;cout<if(a%2==0)a++;
for(longm=a;m<=b;m+=2)
if(isprime(m)){
//output
if(l++%10==0)
cout<cout<}
}
boolisprime(longn)
{
intsqrtm=sqrt(n);
for(inti=2;i<=sqrtm;i++)//判明素数
if(n%i==0)
returnfalse;
returntrue;
}
5.2
#include
#include
#include
doublef(doublex);
doubleintegral(doublea,doubleb);
constdoubleeps=1e-8;
voidmain()
{
doublea=0,b=1;
cout<<"theintegraloff(x)from"
<<:
fixed)
<<}
doublef(doublex)
{
returnexp(x)/(1+x*x);
}
doubleintegral(doublea,doubleb)
{
intn=1;
doubleh,tn,t2n,i2n,in=0;
h=b-a;
t2n=i2n=h*(f(a)+f(b))/2;
while(fabs(i2n-in)>=eps){
tn=t2n;
in=i2n;
doublesigma=0.0;
for(intk=0;kdoublex=a+(k+0.5)*h;
sigma+=f(x);
}
t2n=(tn+h*sigma)/2.0;//变步长梯形
i2n=(4*t2n-tn)/3.0;//辛普生公式
n*=2;
h/=2;
}
returni2n;
}
5.3
#include
#include
voidmultab1();
voidmultab2();
voidmultab3();
voidmain()
{
multab1();
multab2();
multab3();
}
voidmultab1()
{
cout<<"*";
for(inti=1;i<=9;i++)
cout<cout<<"\n-----------------------------------------\n";
for(inti=1;i<=9;i++){
cout<for(intj=1;j<=9;j++)
cout<cout<}
cout<