C++期末考试复习题经典大题整合.docx

上传人:b****5 文档编号:8280019 上传时间:2023-01-30 格式:DOCX 页数:16 大小:18.48KB
下载 相关 举报
C++期末考试复习题经典大题整合.docx_第1页
第1页 / 共16页
C++期末考试复习题经典大题整合.docx_第2页
第2页 / 共16页
C++期末考试复习题经典大题整合.docx_第3页
第3页 / 共16页
C++期末考试复习题经典大题整合.docx_第4页
第4页 / 共16页
C++期末考试复习题经典大题整合.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C++期末考试复习题经典大题整合.docx

《C++期末考试复习题经典大题整合.docx》由会员分享,可在线阅读,更多相关《C++期末考试复习题经典大题整合.docx(16页珍藏版)》请在冰豆网上搜索。

C++期末考试复习题经典大题整合.docx

C++期末考试复习题经典大题整合

C++期末练习题

7、下面程序的功能是:

求a的b次方,并输出,请填空。

#include

usingnamespacestd;

doublefun(doublea,intb)

{inti;

doublez;

for(i=1,z=1;i<=b;i++)

①z*=a;

②returnz;

}

intmain()

{doublea;intb;

cout<<”请输入a的值:

”;

③cin>>a;

cout<

cout<<”请输入b的值:

”;

④cin>>b;

cout<

cout<<⑤fun(a,b);

cout<

return0;}

8、下面函数是检验输入的字符是大写还是小写或者不是26个字母,请填空。

#include

usingnamespacestd;

①int;

fun(charch)

{inti;

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

i=1;

else{if(②(ch>=’A’)&&(ch<=’Z’))

i=2;

elsei=3;}

③returni;}

intmain()

{inti;

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

”;

cin>>ch;

i=fun(ch);

if(i==1)

cout<<”是小写字母:

”<

elseif(④i==2)

cout<<”是大写字母:

”<

elsecout<<”是其它字符:

”<

return0;}

9、下面是字符串拷贝程序,请填空。

voidccopy()

{charch1[]=”goodmorning!

”,ch2[20];

inti=0,j=0;

while(①ch1[i++])

{ch2[j]=②ch1[i-1];

③j++;

}

④ch2[i-1]=’\0’;

}

10、下面函数是寻找二维数组中每一行的最大值,请填空。

#defineN5

#defineM5

voidmax(inta[N][M])

{inti,j,p;

for(i=0;i

{①p=0;

for(j=1;j

if(a[i][p]

②p=j;

cout<

”<

}

}

11、下面程序是将字符逆序化,请填空。

#include

usingnamespacestd;

①intj=0;

intmain()

{charch[]=”hello,boy!

”;

charc;

inti=0,j=strlen(ch);

for(;②i

{c=ch[i];

③ch[i]=ch[j-1];

ch[j-1]=c;

}

cout<

return0;

}  

12、下面程序的功能是将矩阵转置,请填空。

#include

usingnamespacestd;

#defineI3

#defineJ4

voidinvert(inta[I][J])

{inti,j;

intb[J][I];

cout<<”arraya:

”<

for(i=0;i

{for(j=0;j

{cout<

①b[j][i]=a[i][j];

}

cout<

}

cout<<”arrayb:

”<

for(i=0;i

{for(j=0;j

cout<

cout<

}

}

intmain()

{inta[I][J]={{1,2,3,4},{5,6,7,8},{1,3,5,7}};

②invert(a);

return0;

}

三、程序分析题

1、下面程序的输出结果是( 816  )

#include

usingnamespacestd;

intfunc(inta,intb)

{staticintm=0;inti=2;

i+=m+1;

m=i+a+b;

return(m);

}

intmain()

{intk=4,m=1,p;

p=func(k,m);

cout<

p=func(k,m);

cout<

return0;}

2、下面程序的输出结果是(  61515  )

#include

usingnamespacestd;

intd=1;

fun(intp)

{staticintd=5;

d+=p;

cout<

return(d);

}

intmain()

{inta=3;

cout<

return0;}

3、下面程序的执行结果是(  hlo  )

#include

usingnamespacestd;

charch[]=”hello,boy!

”;

voidfun2(inti);

voidfun1(inti)

{cout<

if(i<3)

{i+=2;

fun2(i);}

}

voidfun2(inti)

{cout<

if(i<3)

{i+=2;

fun1(i);}}

intmain()

{inti=0;

fun1(i);

cout<

return0;

}

4、下面程序的执行结果是(Thearrayis:

(换行)a[0]is0a[1]is1a[2]is2a[3]is2a[4]is6a[5]is14)

#include

usingnamespacestd;

intmain()

{inta[10]={0,1,2};

intj;

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

a[j+1]=a[j]+2×a[j-1]×a[j-2];

cout<<”Thearrayis:

”<

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

cout<<”a[“<

return0;}

5、当输入123时,下列程序的输出结果是( 123   )

#include

usingnamespacestd;

intmain()

{intstr[3],i,*p=str;

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

{cin>>*p++;

cout<<*(p-1);}

return0;}

6、下面程序的输出结果是(  6  )

#include

usingnamespacestd;

voidfunc(int*a,intb[])

{b[0]=*a+6;}

intmain()

{inta,b[5];

a=0;b[0]=3;

func(&a,b);

cout<

return0;}

7、下列程序的输出结果是(  6  )

#include

usingnamespacestd;

intb=2;

intfunc(int*a)

{b+=*a;

return(b);}

intmain()

{inta=2,res=2;

res+=func(&a);

cout<

return0;}

8、下面程序的输出结果是( 3600   )

#include

usingnamespacestd;

intw=3;

intfun(int);

intmain()

{intw=10;

cout<

return0;}

intfun(intk)

{if(k==0)returnw;

return(fun(k-1)*k);}

9、下面程序的输出结果是( 789   )

#include

usingnamespacestd;

intf(int);

intmain()

{inta=2,j;

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

cout<

cout<

return0;}

intf(inta)

{intb=0;

staticintc=3;

b++;c++;

return(a+b+c);}

四、应用题

a)从键盘上输入10个int型数,去掉重复的,将剩余的由大到小排序输出。

b)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

c)/有n个人围成一圈,顺序排号。

从第1个人开始报数,凡报到3(1~3报数)的人退出圈子,问最后留下的人原来排在第几号。

d)将一个数组中的值按逆序重新存放。

e)猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天将剩下的桃子吃掉一半,且又多吃了一个。

以后每天都吃了前一天剩下的一半另加一个。

到第10天想再吃时,就只剩一个桃子了。

求第一天共摘了多少桃子。

f)输入圆柱体的底圆半径和圆柱体的高,求出底面面积、表面积及其体积。

要求用虚函数实现。

g)编写程序,将键盘上输入的任意正整数逆转,如输入1234,输出4321。

h)编写程序,找出100~200间的全部素数。

(要求加注释)

提示:

判别m是否为素数的算法是:

让m被2~√m(根号m)除,如果不能被其中的任何一个整数整除,就可以确定m是素数。

(a)//从键盘上输入10个int型数,去掉重复的,将剩余的由大到小排序输出。

#include

usingnamespacestd;

voidmain()

{

inti,j,a[10],t,k=0;

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

cin>>a[i];

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

for(j=i+1;j<10-k;j++)

{

if(a[i]==a[j])

{

t=a[j];

a[j]=a[9-k];

a[9-k]=t;

k++;

j--;

}

elseif(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

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

cout<

cout<

}

(b)//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include

usingnamespacestd;

voidmain()

{

intspace=0,English=0,number=0,other=0;

chara;

while((a=getchar())!

='\n')

{

if((a>='A'&&a<='Z')||(a>='a'&&a<='z'))

English++;

elseif(a=='')

space++;

elseif(a>='0'&&a<='9')

number++;

else

other++;

}

cout<<"英文字母个数:

"<

cout<<"空格个数:

"<

cout<<"数字个数:

"<

cout<<"其他字符个数:

"<

}

(c)//有n个人围成一圈,顺序排号。

从第1个人开始报数,凡报到3(1~3报数)的人退出圈子,问最后留下的人原来排在第几号

#include

usingnamespacestd;

intmain()

{

intnum[50];

inti,j,k,m,n;

int*p;

cout<

"<

cin>>n;

p=num;

for(i=0;i

{

*(p+i)=i+1;

}

i=0;

k=0;

m=0;

while(m

{

if(*(p+i)!

=0)

{

k++;

}

if(k==3)

{

*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)

{

i=0;

}

}

while(*p==0)

{

p++;

}

cout<<"最后一个是"<<*p<<"号!

"<

return0;

}

(d)//将一个数组中的值按逆序重新存放

#include

#defineSize5

usingnamespacestd;

voidmain()

{

inta[Size],temp;

cout<<"请输入5个整数:

"<

for(inti=0;i

{

cin>>a[i];

}

intsize=sizeof(a)/sizeof(a[0]);

for(i=0;i

{

temp=a[i];

a[i]=a[Size-i-1];

a[Size-i-1]=temp;

}

for(i=0;i

cout<

cout<

}

(e)/*猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天将剩下的桃子吃掉一半,且又多吃了一个。

以后每天都吃了前一天剩下的一半另加一个。

到第10天想再吃时,就只剩一个桃子了。

求第一天共摘了多少桃子。

*/

#include

usingnamespacestd;

voidmain()

{

intlast=1,sum=0;

for(inti=9;i>0;i--)

{

last+=1;

last*=2;

}

sum=last;

cout<

}

(f)//输入圆柱体的底圆半径和圆柱体的高,求出底面面积、表面积及其体积。

要求用虚函数实现。

#include

usingnamespacestd;

classCylinder

{

private:

doubleradius;

doubleheight;

public:

Cylinder(doubler,doubleh):

radius(r),height(h){cout<<"调用Cylinder构造函数"<

~Cylinder(){cout<<"调用Cylinder释构函数"<

virtualdoublebottom_area();

virtualdoublebottom_perimeter();

virtualdoublesuperficial_area();

virtualdoublevolume();

};

doubleCylinder:

:

bottom_area()

{

return3.14159*radius*radius;

}

doubleCylinder:

:

bottom_perimeter()

{

return2*3.14159*radius;

}

doubleCylinder:

:

superficial_area()

{

return2*bottom_area()+bottom_perimeter()*height;

}

doubleCylinder:

:

volume()

{

returnbottom_area()*height;

}

voidmain()

{

Cylindercylinder(1,1);

cout<<"底面面积:

"<

cout<<"表面积:

"<

cout<<"体积:

"<

}

(g)//编写程序,将键盘上输入的任意正整数逆转,如输入1234,输出4321。

#include

usingnamespacestd;

voidmain()

{

longa;

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

"<

cin>>a;

cout<<"逆序输出:

"<

for(inti=1;1;i++)

{

intj=a%10;

cout<

a/=10;

if(a==0)

break;

}

cout<

}

(h)//编写程序,找出100~200间的全部素数(要求加注释)

#include

#include

usingnamespacestd;

voidmain()

{

intk;

for(inti=101;i<=200;i++)

{intflag=1;

k=sqrt(i);

for(intj=2;j<=k;j++)

if(i%j==0)

{

flag=0;break;

}

if(flag)

cout<

}

cout<

}

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

当前位置:首页 > 考试认证 > 公务员考试

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

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