━━━━━━━━━━━━━━━━━ 一、程序改错
━━━━━━━━━━━━━━━━━
第1题
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
题目:用顺序交换法将12个整数中处于奇数位的数从大到小排序。 --------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/
#include
/***********FOUND***********/ { int m[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). {int m[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。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #define n 10 #include /***********FOUND***********/ int a[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 1). int a[n],k,i,j; 2). for(i=0;i 3). for(i=0;i 第3题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:利用插入法将20个数排列成降序,并计算输入序列中第10个数到第20个数的和. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include { float s,a[21]={1,3,5,7,9,2,4,6,8,10,13,65,76,34,23,15,64,33,234,66}; /***********FOUND***********/ int i,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< for(j=10;j<=20;j++) s=s+a[j]; cout< 答案: 1). int i,j,k; 2). while(m=0) 3). a[k+1]=a[k]; 4). a[k+1]=a[0]; 第4题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:将十进制正整数n转化为二进制数输出 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include { int m[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 { int m[100],n,i,j; cin>>n; for(i=0;n!=0;i++) { /***********FOUND***********/ m[i]=n/10; /***********FOUND***********/ n=n; } /***********FOUND***********/ for(j=0;j cout<<\ else cout<<\} 答案: 1). m[i]=n; 2). n=n/10; 3). for(j=0;j /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:用二分法在一组按升序的数中找出指定的数K. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include int a[20],n,find,k,m,i,j; cin>>n; for(i=0;i /***********FOUND***********/ while(i<=j&&find=0) { m=(i+j)/2; if(k==a[m]) /***********FOUND***********/ find=0; /***********FOUND***********/ else 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++改错和填空题题库在线全文阅读。
相关推荐: