期末复习题答案.docx

上传人:b****1 文档编号:7995 上传时间:2023-04-28 格式:DOCX 页数:23 大小:19KB
下载 相关 举报
期末复习题答案.docx_第1页
第1页 / 共23页
期末复习题答案.docx_第2页
第2页 / 共23页
期末复习题答案.docx_第3页
第3页 / 共23页
期末复习题答案.docx_第4页
第4页 / 共23页
期末复习题答案.docx_第5页
第5页 / 共23页
期末复习题答案.docx_第6页
第6页 / 共23页
期末复习题答案.docx_第7页
第7页 / 共23页
期末复习题答案.docx_第8页
第8页 / 共23页
期末复习题答案.docx_第9页
第9页 / 共23页
期末复习题答案.docx_第10页
第10页 / 共23页
期末复习题答案.docx_第11页
第11页 / 共23页
期末复习题答案.docx_第12页
第12页 / 共23页
期末复习题答案.docx_第13页
第13页 / 共23页
期末复习题答案.docx_第14页
第14页 / 共23页
期末复习题答案.docx_第15页
第15页 / 共23页
期末复习题答案.docx_第16页
第16页 / 共23页
期末复习题答案.docx_第17页
第17页 / 共23页
期末复习题答案.docx_第18页
第18页 / 共23页
期末复习题答案.docx_第19页
第19页 / 共23页
期末复习题答案.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

期末复习题答案.docx

《期末复习题答案.docx》由会员分享,可在线阅读,更多相关《期末复习题答案.docx(23页珍藏版)》请在冰点文库上搜索。

期末复习题答案.docx

期末复习题答案

1. 题目:

  求多项式 1!

+2!

+3!

+……+15!

的值并

        存入变量 out中.

#include

int main()

{

int f=1,sum=0,i;

for(i=1;i<=15;i++){

f*=i;

sum+=f;

}

cout<

return 0;

}

2. 题目:

求1至200之间的所有质数,将质数和存入变量 sum 中.

#includeint main()

{

int sum=0,i,j;

for(i=2;i<=200;i++)

{

for(j=2;j<=i;j++)

{

if(i%j==0)

break;

}

if(j>=i)

{sum+=i;

cout<

}

}

cout<

cout<<"sum="<

return 0;

}

 

3. 题目:

用while循环编程,求自然数1至100之间各奇数平方和 sum 。

#include

int main()

{

int a=1,s,sum=0;

while(a<=100)

{

s=(a*a);

sum+=s;

a+=2;

}

cout<<"sum="<

return 0;

}

4. 题目:

 判断一个数23437是否是素数(要求程序中设置一

       个参数flag,flag为1代表是素数,为0代表不是)

#include

#include

int main()

{

int p=23437,s,j,flag;

s=int(sqrt(p));

for(j=1;j<=s;j++){

if(p%j==0)

break;

}

if(j>s)

{

flag=1;

cout<<"flag="<

}

else 

{

flag=0;

cout<<"flag="<

}

return 0;

 

}

5. 题目:

 已知一个数m(=252)求各位数字之和

#include

int main()

{

int m=252,a,sum=0;

do 

{

a=m%10;

sum+=a;

m/=10;

}while(a>0);

cout<<"各位数的和sum="<

return 0;

}

6. 题目:

 将1-100之间奇数顺序累加存入n中,直到其和等

       于或大于200为止

#include

int main()

{

int n=0,i=1;

while(n<200){

n+=i;

i+=2;

}

cout<<""<

return 0;

}

7. 题目:

 用“辗转相除方法”计算两个数 x,y 的最大公约

       数

#include

int main()

{

int x,y,t,r;

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

";

cin>>x>>y;

if(x

while((r=x%y)!

=0)

{

x=y;

y=r;

}

cout<<"最大公约数为:

"<

return 0;

}

8. 题目:

已知三个数a,b,c,按由小到大的顺序存入a,b,

      c中并输出。

#include

int main()

{

float a,b,c,t,x,y;

cout<<"输入三个数"<

cin>>a>>b>>c;

if(a>b)

{

t=a;a=b;b=t;

}

    if(c

{

x=c;c=b;b=a;a=x;

}

else if(c

{y=b;b=c;c=y;

}

cout<

return 0;

}

9. 题目:

 已知n,计算n以内的所有素数之和sum 。

#include

int main()

{

int n,sum=0,i,j;

cout<<"请输入正整数n:

"<

cin>>n;

for(i=2;i<=n;i++)

{

for(j=2;j<=i;j++)

{

if(i%j==0)

break;

}

if(j>=i)

sum+=i;

}

cout<<"n以内所有素数和sum="<

return 0;

}

10. 题目:

 打印水仙花数及个数 n (水仙花数是三位数,每

       位数字的立方和等于这个数本身示例见图1)。

#include

int main()

{

int i,j,k,m,n,a=0;

cout<<"水仙花数:

";

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

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

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

m=i*i*i+j*j*j+k*k*k;

n=i*100+j*10+k;

if(m==n)

{

cout<

a++;

}

 

}

cout<

cout<<"水仙花个数:

"<

return 0;

}

 

11. 题目:

 找出1-200之间的完数及个数 n(完数是一个数的因

      子之和是这个数本身。

例如6=1+2+3)。

#include

int main()

{

cout<<"1~200内的完数:

"<

int i,j,n=0;

for(i=2;i<=200;i++)

{

int sum=0;

for(j=1;j

{

if(i%j==0)

sum+=j;

}

if(sum==i)

{

cout<

n++;

}

}

cout<

cout<

return 0;

}

12. 题目:

编写一个C++函数max,输入参数为3个实数,输出为其中的最大数。

#include

float main()

{

double a,b,c,x;

cout<<"输入三个实数:

a,b,c"<

cin>>a>>b>>c;

if(a

x=b;

else 

x=a;

if(x

x=c;

cout<<"最大的为:

"<

return 0;

 

}

 

13. 题目:

编写一个函数:

int isSushu(int n),判断n是否是素数。

#include

#include

int isSushu(int n);

int main()

{

int x,n;

cout<<"请输入一个正整数:

n"<

cin>>n;

x=isSushu(n);

if(x==1)

cout<<"是素数"<

else

cout<<"不是素数"<

return 0;

 

}

 

int isSushu(int n)

{

int s,i,flag=0;

if(n>=2)

{

s=int(sqrt(n));

for(i=2;i<=s;i++)

{

if(n%i==0)

break;

}

if(i>s)

flag=1;

 

}

return(flag);

}

///14. 题目:

从键盘中分别给两个整形变量x和y赋值为20和10,通过编程使它们的值交换,然后输出交换以后的 x和y的值。

 

15. 题目:

 利用switch语句将输入的百分制成绩转换成相应的等级。

成绩                  等级

100~90                优秀

89~80                良好

79~70                中等

69~60                及格

59~0                 不及格

  #include

int main()

{

double score;

cout<<"请输入百分制分数:

"<

cin>>score;

if(0<=score&&score<=100)

switch(int(score)/10)

{

case 10:

case 9:

 cout<

break;

case 8:

 cout<

break;

case 7:

 cout<

break;

case 6:

 cout<

break;

default:

cout<

}

else

cout<<"分数有误"<

return 0;

}

16. 题目:

 输入一个自然数num,将该数的每一位数字按反序输出 digital。

例如:

输入123456,输出654321。

  (要求输入123456)

#include

main()

{

unsigned long int num,digital=0,i=1;

cout<<"输入一个自然数:

"<

cin>>num;

while(num/i!

=0)

{

digital=((num/i)%10);

i*=10;

cout<

}

cout<

return 0;

}

17. 题目:

 利用循环语句输出“九九乘法表”。

#include

int main()

{

cout<<"\t\t\t\t九九乘法表"<

cout<<"\t\t\t\t----------"<

int i,j;

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

{for(j=1;j<=9;j++)

cout<

cout<

}

return 0;

}

 

18. 题目:

 利用for循环和break语句实现:

从键盘上输入若

       干个(小于10个)正整数,直到输入负数为止,

       计算并输出已输入的正整数之和。

      (要求输入:

10, 3, 9, 27, 12, -5)

#include

int main()

{

cout<<"请输入:

10, 3, 9, 27, 12, -5。

数字之间以空格分开"<

int i,a,add=0;

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

{

cin>>a;

if(a>=0)

add+=a;

else

break;

}

cout<<"所有正整数之和为:

"<

return 0;

}

19. 题目:

利用for循环和continue语句实现:

输出100~200之间所有能够被8整除的所有整数。

#include

int main()

{

int i;

cout<<"100~200之间能被8整除的说有整数:

"<

for(i=100;i<=200;i++)

{

if(i%8==0)

cout<

else

continue;

}

cout<

return 0;

}

20. 题目:

输入x,计算sin(x)。

计算公式如图片1所示.

  

     当第n项的绝对值小于1e-8时结束,x为弧度,并调用

         标准函数sin(x)与求出值进行比较。

(要求输入3.14)

#include

#include

int main ()

{

int n=1;

double x,sinx=0,t;

cout<<"输入x的值(弧度制):

"<

cin>>x;

t=x;

while(fabs(t)>=1e-8)      //fabs :

取绝对值。

{

sinx+=t;

t=-t*(x*x)/((n+1)*(n+2));

n+=2;

}

cout<<"编程求得sin("<

cout<<"调用标准函数求得sin("<

return 0;

}

21. 题目:

从键盘上输入a、b、c,计算并输出一元二次方程的解。

#include

#include

int main()

{

double a,b,c,x1,x2,k;

cout<<"输入二元方程系数:

a,b,c"<

cin>>a>>b>>c;

k=b*b-4*a*c;

if(k>=0)

{

x1=(-b+sqrt(k))/(2*a);

x2=(-b-sqrt(k))/(2*a);

cout<<"x1="<

}

else

cout<<"方程无解"<

return 0;

}

 

22. 题目:

某百货公司为了促销,采用购物打折的优惠办法。

每位顾客一次购物:

(1)        在1000元及以上者,按九折优惠

(2)        在2000元及以上者,按八折优惠

(3)        在3000元及以上者,按七折优惠

(4)        在4000元及以上者,按六折优惠

#include

int main()

{

int money;

cout<<"输入购物金额(整数)(元):

"<

cin>>money;

if(money>=0)

switch(money/1000)

{

case 0:

cout<<"不优惠"<<"\t"<<"金额为:

"<

break;

case 1:

cout<<"九折优惠"<<"\t"<<"金额为:

"<

break;

case 2:

cout<<"八折优惠"<<"\t"<<"金额为:

"<

break;

case 3:

cout<<"七折优惠"<<"\t"<<"金额为:

"<

break;

case 4:

cout<<"六折优惠"<<"\t"<<"金额为:

"<

break;

default:

cout<<"六折优惠"<<"\t"<<"金额为:

"<

}

else

cout<<"数据有误"<

cout<

return 0;

}

23. 题目:

计算PI的近似值,直到最后一项的绝对值小于如图片1

      所示的值为止,近似公式如图片2所示. (此处暂时按10-8计算)

#include

#include

int main()

{

int n=1,i=1;

double t=1,PI=0;

while(fabs(t)>=1e-8)

{

i=-i;

n+=2;

PI+=4*t;

t=i*(double

(1)/n);

}

cout<<"PI="<

return 0;

}

24. 题目:

根据输入的总行数,输出三角星号。

如果输入5,则输出如下图形:

    *

   ***

  *****

 *******

*********

(请输入5)

#include

int main()

{

int n,i,j;

cout<<"请输入星形三角行数:

"<

cin>>n;

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

{

for(j=1;j<=n+i-1;j++)

{

if(j<=n-i)

cout<<" ";

else

cout<<"*";

}

cout<

}

return 0;

}

25. 题目:

鸡、兔共40只,有脚88只,问鸡、兔各多少只。

求解的结果分别存放在变量ji和tu中。

#include

int main()

{

int ji,tu;

cout<<"鸡的个数\t"<<"兔的个数\t"<

for(ji=1;ji<=40;ji++)

for(tu=1;tu<=40;tu++)

{

if(ji+tu==40&&ji*2+tu*4==88)

cout<

 

}

return 0;

}

26. 题目:

输入一个年份,判断该年是否是闰年。

#include

int main()

{

int year;

cout<<"输入一个年份:

"<

cin>>year;

if((year%4==0&&year%100!

=0)||year%400==0)

cout<<"该年为闰年"<

else

cout<<"该年不是闰年"<

return 0;

}

 

27. 题目:

根据x的值,计算分段函数y的值。

y的计算公式见课本P40例题2.5所示。

#include

#include

int main()

{

double x,y;

cout<<"输入x:

"<

cin>>x;

if(x<0)

y=fabs(x);

else if(x<10)

y=exp(x)*sin(x);

else if(x<20)

y=pow(x,3);

else

y=(3+2*x)*log(x);

cout<<"y="<

return 0;

}

28. 题目:

从键盘上输入一个三角形中三条边a、b、c的长度, 请利用下列公式求出三角形的面积。

  (注意:

要求程序保证输入的三角形的三条边中的任意两条边大于第三条边)

      求面积公式如图片1所示,其中s=(a+b+c)/2。

 

#include

#include

int main()

{

double a,b,c,s,area;

cout<<"输入三角形三条边:

"<

cin>>a>>b>>c;

if(a+b>c&&b+c>a&&a+c>b)

{

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

cout<<"三角形面积area="<

}

else

cout<<"三角形不存在"<

return 0;

}

 

 

29. 题目:

某定义一个C++函数double fac(int),实现求一个正整数的阶乘。

#include

double fac(int n);

int main()

{

int n;

cout<<"输入正整数n:

"<

cin>>n;

cout<

return 0;

}

double fac(int k)

{

int j,s=1;

for(j=1;j<=k;j++)

s*=j;

return (s);

 

}

30. 题目:

编程求用户输入的两个双精度实数x与y的和(存放在变量he中)、积(存放在变量ji中)。

#include

int main()

{

double x,y,he,ji;

cout<<"请输入两个数x,y:

"<

cin>>x>>y;

he=x+y;

ji=x*y;

cout<<"x,y的和(he)为"<

cout<<"x,y的积(ji)为"<

return 0;

}

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2