C++改错和填空题题库.docx

上传人:b****3 文档编号:5319810 上传时间:2023-05-08 格式:DOCX 页数:77 大小:33.08KB
下载 相关 举报
C++改错和填空题题库.docx_第1页
第1页 / 共77页
C++改错和填空题题库.docx_第2页
第2页 / 共77页
C++改错和填空题题库.docx_第3页
第3页 / 共77页
C++改错和填空题题库.docx_第4页
第4页 / 共77页
C++改错和填空题题库.docx_第5页
第5页 / 共77页
C++改错和填空题题库.docx_第6页
第6页 / 共77页
C++改错和填空题题库.docx_第7页
第7页 / 共77页
C++改错和填空题题库.docx_第8页
第8页 / 共77页
C++改错和填空题题库.docx_第9页
第9页 / 共77页
C++改错和填空题题库.docx_第10页
第10页 / 共77页
C++改错和填空题题库.docx_第11页
第11页 / 共77页
C++改错和填空题题库.docx_第12页
第12页 / 共77页
C++改错和填空题题库.docx_第13页
第13页 / 共77页
C++改错和填空题题库.docx_第14页
第14页 / 共77页
C++改错和填空题题库.docx_第15页
第15页 / 共77页
C++改错和填空题题库.docx_第16页
第16页 / 共77页
C++改错和填空题题库.docx_第17页
第17页 / 共77页
C++改错和填空题题库.docx_第18页
第18页 / 共77页
C++改错和填空题题库.docx_第19页
第19页 / 共77页
C++改错和填空题题库.docx_第20页
第20页 / 共77页
亲,该文档总共77页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++改错和填空题题库.docx

《C++改错和填空题题库.docx》由会员分享,可在线阅读,更多相关《C++改错和填空题题库.docx(77页珍藏版)》请在冰点文库上搜索。

C++改错和填空题题库.docx

C++改错和填空题题库

━━━━━━━━━━━━━━━━━

一、程序改错

━━━━━━━━━━━━━━━━━

第1题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

用顺序交换法将12个整数中处于奇数位的数从大到小排序。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

/***********FOUND***********/

{intm[12],i,j;

/***********FOUND***********/

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

cin>>m[i];

for(i=0;i<11;i+=2)

/***********FOUND***********/

for(j=i+1;i<11;i++)

/***********FOUND***********/

if(m[i]>m[j])

{k=m[i];

m[i]=m[j];

m[j]=k;

}

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

cout<

}

答案:

1).{intm[12],i,j,k;

2).for(i=0;i<12;i++)或for(i=0;i<=11;i++)

3).for(j=i+2;j<11;j+=2)或for(j=i+2;j<11;j=j+2)

4).if(m[j]>m[i])或if(m[i]

第2题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

在一个具有n个数的数组中查找并删除一个数K。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#definen10

#include

voidmain()

{

/***********FOUND***********/

inta[n],n,k,i,j;

/***********FOUND***********/

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

cin>>a[i];

cin>>k;

/***********FOUND***********/

for(i=1;i<=n||a[i]!

=k;i++);

if(i

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

a[j]=a[j+1];

/***********FOUND***********/

for(i=0;i

cout<

}

else

{cout<<"notfound";

for(i=0;i

cout<

}

}

答案:

1).inta[n],k,i,j;

2).for(i=0;i

3).for(i=0;i

=k;i++);

4).for(i=0;i

第3题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

利用插入法将20个数排列成降序,并计算输入序列中第10个数到第20个数的和.

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{floats,a[21]={1,3,5,7,9,2,4,6,8,10,13,65,76,34,23,15,64,33,234,66};

/***********FOUND***********/

inti,j;

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

{k=j-1;

a[0]=a[j];

/***********FOUND***********/

while(k>=0&&a[k]>a[0])

{

/***********FOUND***********/

a[k]=a[k+1];

k--;

}

/***********FOUND***********/

a[k]=a[0];

}

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

cout<

s=0.0;

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

s=s+a[j];

cout<

}

答案:

1).inti,j,k;

2).while(m=0)

3).a[k+1]=a[k];

4).a[k+1]=a[0];

第4题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

将十进制正整数n转化为二进制数输出

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{

intm[50],m1[50],n,i,j,n1;

cin>>n;

i=0;

while(n>0)

{

/***********FOUND***********/

n1=n%2;

/***********FOUND***********/

m1[i]=n/2;

/***********FOUND***********/

n1=n;

i++;

}

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

/***********FOUND***********/

m1[i+1-j]=m[j];

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

cout<

}

答案:

1).n1=n/2;

2).m1[i]=n%2;

3).n=n1;

4).m[j]=m1[i-j];

第5题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

判断一个自然数是否为降序数(若D1D2D3……DN满足DI>DI+1,

1<=I<=N,则D1D2……DN为降序数,如54321)

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{intm[100],n,i,j;

cin>>n;

for(i=0;n!

=0;i++)

{

/***********FOUND***********/

m[i]=n/10;

/***********FOUND***********/

n=n%10;

}

/***********FOUND***********/

for(j=0;j

/***********FOUND***********/

if(j<=i)

cout<<"yes";

else

cout<<"no";

}

答案:

1).m[i]=n%10;

2).n=n/10;

3).for(j=0;j

4).if(j==i-1)

第6题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

用二分法在一组按升序的数中找出指定的数K.

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{

inta[20],n,find,k,m,i,j;

cin>>n;

for(i=0;i

cin>>a[i];

cin>>k;

find=0;

i=0;j=n-1;

/***********FOUND***********/

while(i<=j&&find=0)

{m=(i+j)/2;

if(k==a[m])

/***********FOUND***********/

find=0;

/***********FOUND***********/

else

if(k>a[m])

j=m-1;

else

i=m+1;

}

/***********FOUND***********/

if(find=1)

cout<<"found"<

else

cout<<"nofound";

}

答案:

1).while(i<=j&&find==0)

2).find=1;

3).elseif(k

4).if(find==1)

第7题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

打印扬辉三角形

1

11

121

1331

13641

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{inta[5][5],i,j;

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

{

/***********FOUND***********/

a[i][1]=1;

a[i][i]=1;

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

/***********FOUND***********/

a[i][j]=a[i-1][j-1]+a[i][j];

}

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

{

/***********FOUND***********/

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

/***********FOUND***********/

cout<

cout<

}

}

答案:

1).a[i][0]=1;

2).a[i][j]=a[i-1][j-1]+a[i-1][j];

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

4).cout<

第8题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

用”筛选法”判断并输出1-100之间的素数.

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{

inta[101],i,j;

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

a[i]=1;

a[1]=0;

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

{

/***********FOUND***********/

j=1;

while(i*j<=100)

{

/***********FOUND***********/

a[i][j]=0;

j++;

}

}

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

/***********FOUND***********/

if(a[i]=1)

/***********FOUND***********/

cout<

}

答案:

1).j=2;

2).a[i*j]=0;或a[j*i]=0;

3).if(a[i]==1)或if(a[i])

4).cout<

第9题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

下面函数chnum将一个整数字符串转换为一个整数。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

#include

intchnum(char*str)

{

inti,j,k,h,len,L,num=0;

/***********FOUND***********/

intL=n=strlen(str);

/***********FOUND***********/

for(i=0;i

{

k=1;

j=len=len-1;

cout<

while(j>0)

{

k=k*10;

/***********FOUND***********/

j++;

}

/***********FOUND***********/

h=*(str+4-len)-'0';

num=num+h*k;

}

returnnum;

}

voidmain()

{intt;char*a="1234";

t=chnum(a);

cout<

}

答案:

1).L=len=strlen(str);

2).for(i=0;i

3).j--;或--j;或j=j-1;或j-=1;

4).h=*(str+i)-'0';

第10题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

将1到255之间的任意一个十进制转换成二进制.

-------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{inta[8],k,m,n,i;

/***********FOUND***********/

cin<

k=0;

while(n!

=0)

{

m=n/2;

a[k]=n%2;

/***********FOUND***********/

k--;

/***********FOUND***********/

m=n;

}

/***********FOUND***********/

for(i=k;i>=1;i++)

cout<

}

答案:

1).cin>>n;

2).k++;

3).n=m;

4).for(i=k-1;i>=0;i--)

第11题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

打印出1000以内的同时满足如下条件的数

个位数字与十位数字之和除以10所得的余数等于百位数字

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

#include

voidmain()

{

/***********FOUND***********/

inta,b,c,d,i,j;

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

/***********FOUND***********/

{for(j=2;flag=1;j<=sqrt(i)&&flag;j++)

/***********FOUND***********/

if(i%j==1)flag=0;

/***********FOUND***********/

if(flag==0)

{a=i/100;

b=(i-a*100)/10;

c=i-a*100-b*10;

d=b+c-(c+b)/10*10;

if(d==a)

cout<

}

}

}

答案:

1).inta,b,c,d,i,j,flag;

2).{for(j=2,flag=1;j<=sqrt(i)&&flag;j++)

3).if(i%j==0)flag=0;或if(!

i%j==0)flag=0;

4).if(flag==1)或if(flag)或if(flag!

=0)

第12题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

统计100-300之间同时被3,7整除的数的个数,输出这些数

的个数及它们的平方和434385.

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{floatns;

/***********FOUND***********/

intk;

n=0;

/***********FOUND***********/

ns=1;

for(k=100;k<=300;k++)

{

/***********FOUND***********/

n37=7%k+3%k;

/***********FOUND***********/

if(n37=0)

{n++;

ns=ns+k*k;

}

}

cout<

}

答案:

1).intn37,k,n;

2).ns=0;

3).n37=k%7+k%3;

4).if(n37==0)

第13题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

在[100,5000]之间打印出各位数字和为5的所有整数的个数.

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

voidmain()

{

inta,b,c,d,k,i;

k=0;

for(i=104;i<=50

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

当前位置:首页 > 医药卫生 > 基础医学

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

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