C++改错和填空题题库.docx
- 文档编号:10676076
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:77
- 大小:33.08KB
C++改错和填空题题库.docx
《C++改错和填空题题库.docx》由会员分享,可在线阅读,更多相关《C++改错和填空题题库.docx(77页珍藏版)》请在冰豆网上搜索。
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***********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 改错 填空 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)