C++期未复习题.docx

上传人:b****5 文档编号:7502375 上传时间:2023-01-24 格式:DOCX 页数:42 大小:44.73KB
下载 相关 举报
C++期未复习题.docx_第1页
第1页 / 共42页
C++期未复习题.docx_第2页
第2页 / 共42页
C++期未复习题.docx_第3页
第3页 / 共42页
C++期未复习题.docx_第4页
第4页 / 共42页
C++期未复习题.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C++期未复习题.docx

《C++期未复习题.docx》由会员分享,可在线阅读,更多相关《C++期未复习题.docx(42页珍藏版)》请在冰豆网上搜索。

C++期未复习题.docx

C++期未复习题

1、输入一名学生的成绩,判断该成绩的等级。

如>=60的,显示“合格”,<60的显示“不合格”。

2、判断输入的正整数是否既是5又是7的整倍数。

若是输出yes,否则输出no

3、编程按分段统计学生成绩,输入为负数时结束。

要求按90-100、80-89、70-79、60-69、60以下五档分别统计各分数段人数(用if语句和switch语句编写程序)。

4、有一个函数如下:

2*x(x<5)

y=3*x+6(5<=x<15)

4*x-6(x>=15)

输入x的值,计算出相应的y值。

1、#include

voidmain()

{floatx,y;

cin>>x;

if(x<3)y=x;

elseif(x<10)y=x+6;

elsey=x-6;

cout<<"x="<

}

5、解一元二次方程ax2+bx+c=0的根。

当a=0且b=0时,方程无根;

当a=0且b≠0时,方程有一个根;

当a≠0且b≠0时,根据△=b2-4ac确定方程的根;

△>0,有两个不同实根;

△=0,有两个相同实根;

△<0,有两个不同复根;

#include

#include

voidmain()

{

doublea,b,c;

cout<<"Pleaseinputthea,b,c:

"<

cin>>a>>b>>c;

if(a==0)&&(b==0)

cout<<"Theequationisdegenerate."<

elseif(a==0)

cout<<"Thesinglerootis"<<-c/b<

else{

doubledelta,re,im;

re=-b/(2*a);

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

im=sqrt(fabs(delta))/(2*a);

if(delta>0)

cout<<"Therootsare"<

elseif(delta==0)

cout<<"Thevalueofrootsaresameas"<

else{

cout<<"Therootsarecomplex"<

cout<<"and"<

}

}

}

5、求下面分数序列的前13项之和。

2/1,3/2,5/3,8/5,13/8,21/13,…

6、求s=1+(1+2)+(1+2+3)+…….+(1+2+3+……+n)的值。

7、根据π/4=1-1/3+1/5-1/7+…求π的近似值,直到最后一项的值小于0.000001为止。

#include

#include

constdoubleeps=0.000001;

voidmain()

{

doublepi=0.0,temp,s=1;

inti=1;

temp=1.0;

while(fabs(temp)>=eps)

{

pi+=temp;

i=i+2;s=-s;

temp=s/i;

}

cout<<"\nPI="<

}

8、下面分数序列的前13项之和。

11235813。

#include

voidmain()

{

intn,i,a0,a1;

cout<<"n=";

cin>>n;

a0=0;

a1=1;

cout<

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

{

a0=a0+a1;

a1=a1+a0;

cout<

if(i%5==0)cout<

}

if(n>(i-1)*2)cout<

}

9、求100到999的水仙花数,此数是满足的条件是:

A*A*A+B*B*B+C*C*C=ABC此数各位的立方和等于此数。

分析:

关键是要能够提取出百位、十位和个位上的具体数字。

#include

#include

voidmain()

{

inti,j,k,t;

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

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

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

{

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

if(i*i*i+j*j*j+k*k*k==t)

cout<

}

}

 例题24:

求下面分数序列的前13项之和。

2/1,3/2,5/3,8/5,13/8,21/13,

1)用for语句实现:

#include

voidmain()

{floata,b,t,sum;

inti;

a=2;

b=1;

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

{a=a+b;b=a-b;

t=a/b;sum+=t;

}

cout<<”sum=”<

}

(4)编程输出如下图形:

(例n=6)

 

*

*****

*********

*************

*****************

*********************

#include

voidmain()

{

inti,j,k;

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

{

for(k=1;k<=20-2*i;k++)

cout<<'';

for(j=1;j<=4*i-3;j++)

cout<<'*';

cout<

}

}

(5)求1!

+2!

+3!

+…8!

#include

voidmain()

{

inti,j=1,sum=0;

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

{

j=j*i;

sum=sum+j;

cout<

}

cout<<"1!

+2!

+...+8!

="<

}

(7)编写一个程序,输入年、月,打印出该年份该月的天数。

#include

voidmain()

{

intyear,month,days;

cin>>year>>month;

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;break;

case4:

case6:

case9:

case11:

days=30;break;

case2:

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

=0)days=29;

elsedays=28;

}

cout<

}

10、打印大小可以变化的菱形图案(下面菱形的大小是9)

*

***

*****

*******

*********

*******

*****

***

*

11、打印如下的杨辉三角形(要求打印出10行)

1

11

121

1331

14641

15101051

………………

分析:

在杨辉三角形中,每个数据值可以由组合Cij计算(表示第i行第j列位置的值),的计算如下:

Cij=1(i=0,1,2,…)

Cij=Cij-i*(i-j+1)/j(j=1,2,3,…,i)

 

12.有一个数组,内放10个整数,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换。

#include

voidmain()

{

inta[10];

inti,min,j,temp;

cout<<"请输入10个数\n";

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

cin>>a[i];

min=a[0];j=0;

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

if(min>a[i])

{min=a[i];j=i;}

if(j!

=0)

{temp=a[0];a[0]=a[j];a[j]=temp;}

cout<<"交换后数组\n";

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

cout<

cout<

}

13、输入一个n×n矩阵各元素的值,求出两条对角线元素值之和。

分析:

对角线上的元素的特点是行坐标与列坐标相等。

分析:

对角线上的元素的特点是行坐标与列坐标相等。

#include

#defineN5

voidmain()

{

inta[N][N];

inti,j,sum=0;

cout<<"请输入"<

for(i=0;i

for(j=0;j

cin>>a[i][j];

cout<<"二维数组为:

\n";

for(i=0;i

{

for(j=0;j

cout<

cout<

}

for(i=0;i

{

sum=sum+a[i][i]+a[i][N-i-1];

if(i==N-i-1)

sum=sum-a[i][N-i-1];

}

cout<<"对角线元素和为 "<

}

14、定义一个二维数组存储五位学生五科考试的成绩,编写程序分别取出二维数组里的元素值,经过累加之后列出总成绩,计算并输出每个同学的平均成绩,格式如下:

第1个学生的总分为:

***平均分为:

**

第2个学生的总分为:

***平均分为:

**

第3个学生的总分为:

***平均分为:

**

第4个学生的总分为:

***平均分为:

**

第5个学生的总分为:

***平均分为:

**

15:

通过循环按行顺序为一个5*5的二维数组赋1—25的自然数,然后计算该数组的左下半三角元素之和并输出左下半三角元素。

#include”iostream.h”

voidmain()

{

inta[5][5],I,j,n=1,sum=0;

for(I=0;I<5;I++)

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

a[I][j]=n++;

for(I=0;I<5;I++)

{

for(j=0;j

{

sum+=a[I][j];

cout<

}

cout<<’\n’;

}

cout<<”该数组左下半三角的元素之和为:

”<

}

16.用递归函数求t=1*3*5*7*…*(2n-1)的值,用键1盘输入n值(n≥1)归函数求出t

#include

intFactorial(int);

voidmain()

{

intk;

cout<<"ComputeFactorial(k),Pleaseinputk:

";

cin>>k;

cout<

="<

}

intFactorial(intn)

{

if(n==0)

return1;

else

returnn*Factorial(n-1);

}

16.定义一个求bin(n,k)的函数

定义函数fact(m)=m!

bin(n,k)=fact(n)/(fact(k)*fact(n-k))由主函数输入数据a、b,求bin(a,b)

#include

longfact(intm)

{

inti;

longsum=1;

for(i=1;i<=m;sum*=i,i++);

returnsum;

}

longbin(intn,intk)

{return(fact(n)/(fact(k)*fact(n-k)));}

voidmain()

{inta,b;longf1,f2;

cout<<"Pleaseinputdataaandb:

"<

cin>>a>>b;

f1=fact(a)/(fact(b)*fact(a-b));

cout<<"first:

bin("<

f2=bin(a,b);

cout<<"second:

bin("<

}

 

17、编写一个函数来检验输入的一个字符是大写字母还是小写字母或不是26个英文字母。

分析:

本题要掌握判断字符是大写或者小写字母的方法,程序代码如下:

#include”iostream.h”

charch;

fun(charch)

{

inti;

if((ch>=’a’)&&(ch<=’z’))

i=1;

elseif((ch>=’A’)&&(ch<=’Z’))

i=2;

else

i=3;

returni;

}

voidmain()

{inti;

cout<<”请输入一个字符:

”;

cin>>ch;

i=fun(ch);

if(i==1)

cout<<”是小写字母!

”<

elseif(i==2)

cout<<”是大写字母!

”<

else

cout<<”是其他字符!

”<

}

18、定义盒子Box类,要求具有以下成员:

可设置盒子形状;可计算盒子体积;可计算盒子的表面积。

#include

#include

classljwbox

{

public:

voidinputdate(inta,intb,inth);

voidisboxchzh();

voidprint();

intjuanboxtj();

private:

intboxx,boxy,boxh;

};

voidljwbox:

:

inputdate(inta,intb,inth)

{

boxx=a;

boxy=b;

boxh=h;

}

voidljwbox:

:

isboxchzh()

{

if(boxx==boxy&&boxy==boxh&&boxx==boxh)

cout<<"zhenfangti";

else

cout<<"changfangti";

}

voidljwbox:

:

print()

{cout<

intljwbox:

:

juanboxtj()

{return(boxx*boxy*boxh);}

voidmain()

{

ljwboxp1,p2;

p1.inputdate(5,5,5);

p1.print();

cout<<"boxis";

p1.isboxchzh();

cout<

cout<<"tijiis:

"<

p2.inputdate(5,10,4);

p2.print();

cout<<"boxis";

p2.isboxchzh();

cout<

cout<<"tijiis:

"<

}

#include

classBox

{intx,y,z;intv,s;

public:

voidinit(intx1=0,inty1=0,intz1=0){x=x1;y=y1;z=z1;}

voidvolue(){v=x*y*z;}

voidarea(){s=2*(x*y+x*z+y*z);}

voidshow()

{

cout<<"x="<

cout<<"s="<

}

};

voidmain()

{Boxa;

a.init(2,3,4);

a.volue();

a.area();

a.show();

}

19、定义计数器类Counter。

要求具有以下成员:

计数器值;可进行增值和减值记数;可提供记数值。

#include

classCounter

{intn;

public:

Counter(inti=0){n=i;}

voidinit_Counter(intm){n=m;}

voidin_Counter(){n++;}

voidde_Counter(){n--;}

intget_Counter(){returnn;}

voidshow(){cout<

};

voidmain()

{Countera;

a.in_Counter();a.show();

a.init_Counter(10);

a.show();

a.de_Counter();

cout<

}

20、编写一个程序计算两个给定的长方形的周长和面积。

#include

classrectangle

{intlen,wid;

public:

rectangle(inti=0,intj=0)

{len=i;wid=j;}

friendintarea(rectangletemp)

{

ints=temp.len*temp.wid;

returns;

}

friendfun(rectangletemp)

{

intp=2*(temp.len+temp.wid);

returnp;

}

};

voidmain()

{rectanglea(10,20);

cout<<"长方形的周长和面积为:

"<

rectangleb(100,200);

cout<<"长方形的周长和面积为:

"<

}

21.定义一个圆类,计算圆的面积和周长。

22.建立一个基类building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。

建立派生类Housing,继承Building,并存储下面的内容:

卧室和浴室的数量,另外,建立派生类Office,继承者Building,并存储灭火器和电话的数目。

然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。

 

#include

classBuilding

{

public:

Building(intf,intr,doubleft)

{

floors=f;

rooms=r;

footage=ft;

}

voidshow()

{cout<<"floors:

"<

cout<<"rooms:

"<

cout<<"totalarea:

"<

}

protected:

intfloors;

introoms;

doublefootage;

};

classHousing:

publicBuilding

{

public:

Housing(intf,intr,doubleft,intbd,intbth):

Building(f,r,ft)

{

bedrooms=bd;

bathrooms=bth;

}

voidshow()

{

cout<<"\nHOUSING:

\n";

Building:

:

show();

cout<<"bedrooms:

"<

cout<<"bathrooms:

"<

}

private:

intbedrooms;

intbathrooms;

};

classOffice:

publicBuilding

{

public:

Office(intf,intr,doubleft,intph,intex):

Building(f,r,ft)

{

phones=ph;

extinguishers=ex;

}

voidshow()

{

cout<<"\nHOUSING:

\n";

Building:

:

show();

cout<<"phones:

"<

cout<<"extinguishers:

"<

}

private:

intphones;

intextinguishers;

};

voidmain()

{

Housinghob(5,7,140,2,2);

Officeoob(8,12,500,12,2);

hob.show();

oob.show();

}

23、两用沙发,它是一个沙发,也是一张床,两用沙发应允许同时继承沙发和床的特征,sleepersoft继承Bedsofa两个类,请编写这三个类,类中有都有重量成员对象,bed中sleep()成员函数,Soft

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

当前位置:首页 > 法律文书 > 调解书

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

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