if(k>a[m]) j=m-1; else
i=m+1; }
/***********FOUND***********/ if(find=1)
cout<<\ else
cout<<\}
答案:
1). while(i<=j&&find==0) 2). find=1;
3). else if(k
第7题
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
题目:打印扬辉三角形 1 1 1 1 2 1 1 3 3 1 1 3 6 4 1
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include
{ int a[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<
答案:
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
int a[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
int i,j,k,h,len,L,num=0; /***********FOUND***********/ int L=n=strlen(str);
/***********FOUND***********/ for(i=0;i k=1; j=len=len-1; cout< k=k*10; /***********FOUND***********/ j++; } /***********FOUND***********/ h=*(str+4-len)-'0'; num=num+h*k; } return num; } void main() { int t;char *a=\ 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 { int a[8],k,m,n,i; /***********FOUND***********/ cin< 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 /***********FOUND***********/ int a,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). int a,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)