C++改错和填空题题库

上传人:无*** 文档编号:107814767 上传时间:2022-06-15 格式:DOC 页数:246 大小:281KB
返回 下载 相关 举报
C++改错和填空题题库_第1页
第1页 / 共246页
C++改错和填空题题库_第2页
第2页 / 共246页
C++改错和填空题题库_第3页
第3页 / 共246页
亲,该文档总共246页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+改错和填空题题库C+改错和填空题题库一、程序改错 第1题/*-【程序改错】-题目:用顺序交换法将12个整数中处于奇数位的数从大到小排序。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main()/*FOUND*/ int m12,i,j;/*FOUND*/ for(i=1;imi; for(i=0;i11;i+=2)/*FOUND*/ for(j=i+1;imj) k=mi; mi=mj; mj=k; for(i=0;i12;i+) coutmi;答案: 1). int m12,i,j,k; 2). for(i=0;i12;i+) 或 for(i=0;i=11;i+) 3). for(j=i+2;j11;j+=2) 或 for(j=i+2;jmi) 或 if(mimj)第2题 /*-【程序改错】-题目:在一个具有n个数的数组中查找并删除一个数K。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#define n 10#include void main()/*FOUND*/ int an,n,k,i,j;/*FOUND*/ for(i=1;iai; cink;/*FOUND*/ for(i=1;i=n|ai!=k;i+); if(in) for(j=i;j=n-1;j+) aj=aj+1;/*FOUND*/ for(i=0;in;i+) coutai; else coutnot found; for(i=0;in;i+) coutai; 答案: 1). int an,k,i,j; 2). for(i=0;in;i+) 3). for(i=0;in&ai!=k;i+); 4). for(i=0;in-1;i+)第3题 /*-【程序改错】-题目:利用插入法将20个数排列成降序,并计算输入序列中第10个数到第20个数的和.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main( ) float s,a21=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=0&aka0 ) /*FOUND*/ ak=ak+1; k-; /*FOUND*/ ak=a0; for(i=1;i=20;i+) coutai ; s=0.0; for(j=10;j=20;j+) s=s+aj; couts;答案: 1). int i,j,k; 2). while(m=0) 3). ak+1=ak; 4). ak+1=a0;第4题 /*-【程序改错】-题目:将十进制正整数n转化为二进制数输出-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int m50,m150,n,i,j,n1; cinn; i=0; while(n0) /*FOUND*/ n1=n%2;/*FOUND*/ m1i=n/2;/*FOUND*/ n1=n; i+; for(j=1;j=i;j+)/*FOUND*/ m1i+1-j=mj; for(j=1;j=i;j+) coutDI+1, 1=I=N,则D1D2DN为降序数,如54321)-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int m100,n,i,j; cinn; for(i=0;n!=0;i+) /*FOUND*/ mi=n/10;/*FOUND*/ n=n%10; /*FOUND*/ for(j=0;ji&ajaj+1;j+);/*FOUND*/ if(j=i) coutyes; else coutno;答案: 1). mi=n%10; 2). n=n/10; 3). for(j=0;ji-1&ajaj+1;j+); 4). if(j=i-1)第6题 /*-【程序改错】-题目:用二分法在一组按升序的数中找出指定的数K.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int a20,n,find,k,m,i,j; cinn; for(i=0;iai; cink; find=0; i=0;j=n-1;/*FOUND*/ while(iam) j=m-1; else i=m+1; /*FOUND*/ if(find=1) coutfoundm; else coutno found;答案: 1). while(i=j&find=0) 2). find=1; 3). else if(kam) 4). if(find=1)第7题 /*-【程序改错】-题目:打印扬辉三角形 1 1 1 1 2 1 1 3 3 1 1 3 6 4 1-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int a55,i,j; for(i=0;i5;i+) /*FOUND*/ ai1=1; aii=1; for(j=1;j=i-1;j+)/*FOUND*/ aij=ai-1j-1+aij; for(i=0;i5;i+) /*FOUND*/ for(j=0;j5;j+)/*FOUND*/ coutaji ; coutendl; 答案: 1). ai0=1; 2). aij=ai-1j-1+ai-1j; 3). for(j=0;j=i;j+) 4). coutaij ;第8题 /*-【程序改错】-题目:用”筛选法”判断并输出1-100之间的素数.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int a101,i,j; for(i=1;i=100;i+) ai=1; a1=0; for(i=2;i=50;i+) /*FOUND*/ j=1; while (i*j=100) /*FOUND*/ aij=0; j+; for(i=1;i=100;i+)/*FOUND*/ if(ai =1)/*FOUND*/ coutai;答案: 1). j=2; 2). ai*j=0; 或 aj*i=0; 3). if(ai=1) 或 if(ai) 4). couti;第9题/*-【程序改错】-题目:下面函数chnum将一个整数字符串转换为一个整数。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include#include int chnum (char *str) int i,j,k,h,len,L,num=0; /*FOUND*/ int L=n=strlen(str);/*FOUND*/ for(i=0;iL;i+) ; k=1; j=len=len-1; coutlen0) k=k*10; /*FOUND*/ j+; /*FOUND*/ h=*(str+4-len)-0; num=num+h*k; return num; void main() int t;char *a=1234; t=chnum(a); couttendl;答案: 1). L=len=strlen(str); 2). for(i=0;iL;i+) 3). j-; 或 -j; 或 j=j-1; 或 j-=1; 4). h=*(str+i)-0;第10题/*-【程序改错】-题目:将1到255之间的任意一个十进制转换成二进制.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int a8,k,m,n,i;/*FOUND*/ cin=1;i+) coutn; 2). k+; 3). n=m; 4). for(i=k-1;i=0;i-)第11题 /*-【程序改错】-题目:打印出1000以内的同时满足如下条件的数 个位数字与十位数字之和除以10所得的余数等于百位数字-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include #include void main() /*FOUND*/ int a,b,c,d,i,j; for (i=3;i1000;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) couti; 答案: 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)第12题 /*-【程序改错】-题目:统计100-300之间同时被3,7整除的数的个数,输出这些数 的个数及它们的平方和434385.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() float ns;/*FOUND*/ int k; 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; coutnns;答案: 1). int n37,k,n; 2). ns=0; 3). n37=k%7+k%3; 4). if(n37=0)第13题/*-【程序改错】-题目:在100,5000之间打印出各位数字和为5的所有整数的个数.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() int a,b,c,d,k,i; k=0; for(i=104;i=500;i+) /*FOUND*/ a=i%100; b=(i-a*100)/10; c=i-a*100-b*10; /*FOUND*/ if(a+b+c5) k+; for(i=1000;i=5000;i+) a=i/1000; b=(i-a*1000)/100; /*FOUND*/ c=(i-A*1000-b*100)/100; d=i-a*1000-b*100-c*10;/*FOUND*/ if(a+b+c=5) k+; coutk;答案: 1). a=i/100; 2). if(a+b+c=5) k+; 3). c=(i-a*1000-b*100)/10; 4). if(a+b+c+d=5) k+;第14题 /*-【程序改错】-题目: 下列程序是求某班级的最高成绩、最低成绩和平均成绩 的程序,输入-1表示结束。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main() float cj,sum,max,min,ave; int n; /*FOUND*/ n=0 cincj; /*FOUND*/ sum=0;/*FOUND*/ min=max=0; cincj;/*FOUND*/ while(cj!=0) n+; sum+=cj; if(cjmax) max=cj; if(cjcj; ave=sum/n; coutavemax=0)第15题/*-【程序改错】-题目:计算T=1-1/2+2/3-3/4+-29/30-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main()/*FOUND*/ int t1,f,k; float t=1;/*FOUND*/ f=1;/*FOUND*/ for(k=1;k=30;k+) /*FOUND*/ t1=(k-1)/k; t+=t1*f; f=-f; coutt;答案: 1). int f,k;float t1,t=1; 2). f=-1; 3). for(k=2;k=30;k+) 4). t1=(float)(k-1)/k; 或 t1=(k-1)/(float)k; 或 t1=1.0*(k-1)/k;第16题 /*-【程序改错】-题目:计算输出100-200之间素数的平方根之和-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include#includevoid main() float s,sn; int n,k,l; s=0;/*FOUND*/ for(n=100;n=199;n+=2) sn=sqrt(n);/*FOUND*/ l=0;/*FOUND*/ for(k=2;k=n&l;k+) if(n%k=0)l=0;/*FOUND*/ if(l=0) s+=sn; couts;答案: 1). for(n=101;n=199;n+=2) 或 for(n=100;n=199;n+=1) 或 for(n=100;n=200;n+=1) 或 for(n=101;n=200;n+=2) 2). l=1 3). for(k=2;kn&l=0;k+) 4). if(l!=0)第17题/*-【程序改错】-题目:计算并输出100200之间的所有素数的平方根之和.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include #include void main( ) float s,sn; int n,k,f,m; s=0.0; for(n=101;n=199;n+=2) sn=sqrt(n); m=sn; k=3; f=0;/*FOUND*/ while(k=m&f=0) /*FOUND*/ if(n%k=0) f=0;/*FOUND*/ m+; /*FOUND*/ if (f) s=s+sn; couts;答案: 1). while(k=m&f=0) 2). if(n%k=0) f=1; 3). k+; 4). if (!f) s=s+sn; 或 if (f=0) s=s+sn;第18题 /*-【程序改错】-题目: 一个数列的头三个数是0,0,1,第四个数是前三个数之和, 以后每个都是前三个数之和,问当该数列中的某个数值达 到10的15次方,它是该数列的第几项?-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include void main()/*FOUND*/float i,j,k,l,n; i=j=0;k=1;n=3;while(k1e15)n+;l=i+j+k;/*FOUND*/j = i;/*FOUND*/k = j;/*FOUND*/l=k;coutn;答案: 1). double i,j,k,l,n; 2). i=j; 3). j=k; 4). k=l;第19题 /*-【程序改错】-题目:类B是类A的友元类,程序的运行结果为: 20 10-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include#includeclass Aprivate: int x;public: A(int a)x=a;/*FOUND*/ class B;/*FOUND*/friend Bprivate: int x;public: B(int a)x=a;/*FOUND*/ void set(A &aa)x=A.x; int get()return x;void main()A a(10);B b(20);coutb.get()endl;b.set(a);/*FOUND*/couta.get()endl;答案: 1). friend class B; 2). class B 3). void set(A &aa)x=aa.x; 4). coutb.get()endl;二、程序设计 第1题 /*-【程序设计】-输入一组非0整数(以输入0作为输入结束标志)到一维数组中,设计一程序,求出这一组数的平均数,并分别统计出这一组数中正数和负数的个数。-注意:程序编写在下面的Promgram和End区域。-*/*Program*/ #include void main()int a100,b100,c100;int max2,max1,j=0,k=0,t;float avg,s=0;coutai;s+=ai;i+;while(ai-1);t=i-1;cout共输入t个整数!endl;for(i=0;i0)j+;else if(ai0) k+;avg=s/t;cout这组数的平均值为avgendl;cout其中输入的正整数个数为:jendl;cout其中输入的负整数个数为:kendl;/* End */ 第2题 /*-【程序设计】-用cin.getline()将一个字符串出入到字符数组中,按反序输出。例如:输入Abcd e,则输出e dcbA。-注意:程序编写在下面的Promgram和End区域。-*/*Program*/ #include void main()char s30;cout请输入字符串:;cin.getline(s,30);int i=0;while(si+!=0);i-=2;cout=0;i-)coutsi;coutendl;/* End */第3题 /*-【程序设计】-题目:从键盘输入一组整数,以999结束。要求:1. 写一符号函数实现判断一个整数的符号,正数返回1;负数返回-1;0返回0。 2. 在主函数中调用符号函数,统计正负数及0的个数,并输出。-*/第4题 输/*-【程序设计】-用cin.getline()将一个字符串输入到字符数组S(char S200)中,删除字符串中的所有空格后输出。-注意:程序编写在下面的Promgram和End区域。-*/*Program*/ #include #include void main()char s200,t200;int i=0,j=0;cout请输入字符串(回车结束):;cin.getline(s,200);couts=sn;for(;istrlen(s);i+)if(si!= &istrlen(s)tj+=si;tj=0;coutt=tendl;/* End */第5题 /*-【程序设计】- 设计一个函数int stringlen(char s),求出字符串s中包含的字符个数,并作为函数的返回值(要求不使用C+的库函数strlen( )); 在主函数中测试所定义的stringlen函数。-注意:程序编写在下面的Promgram和End区域。-*/*Program*/ #include int strle(char s)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!