C++上机实验答案五

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.程序填空

⑴ 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。

① t=10*t+i

② ②s=s+t

⑵ 下面程序的功能是输出符合条件的三位整数:它是完全平方数,又有两位数字相同,并且统计个数,请填空。

①(i-n1*100)/10或(i/10)%10

②num++

③j++

2.编程

(1)输入10个字符,输出其中的最大者。

#include

void main()

{

char ch,maxchar;

cout<<"please input ten character:";

cin>>ch;

maxchar=ch;

for(int i=1;i<10;i++)

{

cin>>ch;

if(ch>maxchar)maxchar=ch;

}

cout<<"maxchar="<
}

(2)一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?

分析:共经过: 100*(1+1/2+1/4+1/8---+1/1024) 米

第10次:100/1024米

#include

void main()

{

double s=1,t=1,sum,t10;

int i;

for(i=1;i<=10;i++)

{

t=2*t;

s=s+1/t;

}

t10=100/t;

sum=100*s;

cout<<"sum="<
}




(3)用下列泰勒级数求sinx的近似值,x的值从键盘输入,精度要求为10-6。









#include

#include

void main()

{

int sign=1,n=1;

double x=3.0,fenzi=x,fenmu=1.0,equo=1,sum=x;

while(fabs(equo)>=1e-6)

{

fenzi*=x*x;

fenmu*=(2*n)*(2*n+1);

sign*=-1;

equo=sign*fenzi/fenmu;

sum+=equo;

n++;

}

cout<<"sin x="<
}

(4)编写程序,对输入的一批整数统计出正数的个数、负数的个数、奇数的个数、偶数的个数,要求所统计的整数由键盘输入,以0作为输入数据结束的标志。

#include

void main()

{

int a=0,b=0,c=0,d=0,x;

cin>>x;

while(x!=0)

{

if(x>0)a+=1;

if(x<0)b+=1;

if(x%2)c+=1;

else d+=1;

cin>>x;

}

cout<<"正数个数="<
cout<<"负数个数="<
cout<<"奇数个数="<
cout<<"偶数个数="<
}

(5)用牛顿迭代法求方程2x3-4x2+3x–6=0在1.5附近的根,精度要求为10-6。

#include

#include

void main()

{

double x1,x2=1.5,y1,y2;

cout<<" x1 x2 y\n";

do

{

x1=x2;

y1=2*x1*x1*x1-4*x1*x1+3*x1-6;

y2=6*x1*x1-8*x1+3;

x2=x1-y1/y2;

cout<<"\t"<
}while(fabs(x1-x2)>1e-6);

c

out<<"x="<
}

(6)输出这样的三位整数:这些三位数的个、十、百位上的数字均不相同,并且能被11整除。

#include

void main()

{

int i,j,k,n=0;

for(i=1;i<10;i++)

for(j=0;j<10;j++)

for(k=0;k<10;k++)

if(i==j||j==k||k==i)

continue;

else if((i*100+j*10+k)%11==0)

{

cout<<++n;

cout<<":"<
}



}

(7)输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

void main()

{

int a,b,num1,num2,temp;

cout<<"请输入两个正整数: ";

cin>>num1>>num2;

if(num1>num2)

{

temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{

temp=a%b;

a=b;

b=temp;

}

cout<<"最大公约数为:"<
cout<<"最小公倍数为:"<
}

相关文档
最新文档