c语言改错题库.docx
- 文档编号:5151519
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:21
- 大小:20.44KB
c语言改错题库.docx
《c语言改错题库.docx》由会员分享,可在线阅读,更多相关《c语言改错题库.docx(21页珍藏版)》请在冰豆网上搜索。
c语言改错题库
1.从低位开始取出长整型变量s中奇数位上的数,依次构成
一个新数放在t中。
例如,当s中的数为:
7654321时,t中
的数为:
7531。
#include
voidmain()
{longs,t,sl=10;
printf("\nPleaseenters:
");
scanf("%ld",&s);
/************found************/
t=s%10;
while(s>0)
{s=s/100;
t=s%10*sl+t;
/************found************/
sl=sl*10;
}
printf("Theresultis:
%ld\n",t);
}
2.求一维数组a中的值为偶数的元素之和。
例如,当一维数组a中的元素为:
10,4,2,7,3,12,5,34,5,9,程序
的输出应为:
Theresultis:
62
#include
#include
voidmain()
{inta[10]={10,4,2,7,3,12,5,34,5,9},i,s;
s=0;
for(i=0;i<10;i++)
/************found************/
if(a[i]%2==0)
s=s+a[i];
/************found************/
printf("Theresultis:
%d\n",s);
}
若用函数调用来求呢?
#include
intsum(intarr[],intn)
{inti,s;
s=0;
for(i=0;i if(arr[i]%2==0) /************found************/ s=s+arr[i]; return(s); } voidmain() {inta[10]={10,4,2,7,3,12,5,34,5,9},i,s; /************found************/ s=sum(a,10); printf("Theresultis: %d\n",s); } 3.求二维数组a中的最大值。 例如,当二维数组a中的元素为: 4434 7312 565程序的输出应为: Themaxis: 34。 #include intarrmax(intarr[3][3]) {inti,j,max; max=arr[0][0]; /************found************/ for(i=0;i<3;i++) for(j=0;j<3;j++) if(max return(max);} voidmain() {inta[3][3]={4,4,34,7,3,12,5,6,5},i,j; /************found************/ printf("Themaxis: %d\n",arrmax(a));} 若用函数调用呢? #include intmax; maxarr(intarr[]) {intpos,i; /************found************/ max=arr[0]; pos=0; for(i=1;i<10;i++) if(max {max=arr[i]; pos=i;} /************found************/ return(pos); } voidmain() {inta[10]={34,4,2,7,3,12,5,8,5,9}; printf("Themaxis: %d,posis: %d\n",max,maxarr(a)); } 5.猴子第一天摘下若干桃子,当即吃了一半又多吃一个;第二天 将剩下的桃子吃了半又多吃一个,到第12天的早上,只剩下一个 桃子,求第一天共摘了多少桃子。 #include voidmain() {inti,j,x,p; x=1; /************found************/ j=11; while(j>=1) {p=(x+1)*2; /************found************/ X=p; j--; } printf("totalis%d\n",p); } 6.将长整型数中每一位上为偶数的数依次取出,构成一个新数放 在t中。 高位仍在高位,低位仍在低位。 例如,当s中的数为: 87653142时,t中的数为: 8642。 #include voidmain() {longs,t,sl=1; intd; printf("\nPleaseenters: ");scanf("%ld",&s); t=0; while(s>0) {d=s%10; /************found************/ if(d%2==0) {t=d*sl+t; sl*=10;} /************found************/ s/=10;} printf("Theresultis: %ld\n",t);} 7.求出a所指数组中最大数(规定最大数不在a[0]中),最大值和a[0]中的数 对调。 例如数组中原有的数为: 7、10、12、0、3、6、9、11、5、8, 输出的结果为: 12、10、7、0、3、6、9、11、5、8。 #include #defineN10 voidmain() {inta[N]={7,10,12,0,3,6,9,11,5,8},n=10,i,k,m,max,t; for(i=0;i max=a[0];m=0; for(k=1;k /************found************/ if(a[k]>max) {max=a[k];m=k;} /************found************/ t=a[0];a[0]=a[m];a[m]=t; for(i=0;i printf("%d",a[i]); printf("\n"); } 8.输出200~300之间的所有素数,要求每行输出8个素数。 #include #include voidmain() {intm,j,n=0,k; for(m=200;m<=300;m++) {k=sqrt(m); for(j=2;j<=k;j++) /************found************/ if(m%j==0)break; if(j>k) {if(n%8==0)printf("\n"); /************found************/ printf("%6d",m); n++;} }} 9.打印九九乘法表 #include voidmain() {inti,j,k; for(i=1;i<=9;i++) /************found************/ {for(j=1;j<=i;j++) printf("%3d*%3d=%3d",i,j,i*j); /************found************/ printf("\n"); } }{for(j=1;j<=i;j++)printf("\n"); 10.输出100~200之间既不能被3整除也不能被7整除的 整数并统计这些整数的个数,要求每行输出8个数。 #include voidmain() {inti; /************found************/ intn=0; for(i=100;i<=200;i++) { /************found************/ if(i%3! =0&&i%7! =0) {if(n%8==0)printf("\n"); printf("%6d",i); n++;}} printf("\nNumbersare: %d\n",n); } 10.输出100~200之间既不能被3整除也不能被7整除的 整数并统计这些整数的个数,要求每行输出8个数。 #include voidmain() {inti; /************found************/ intn=0; for(i=100;i<=200;i++) { /************found************/ if(i%3! =0&&i%7! =0) {if(n%8==0)printf("\n"); printf("%6d",i); n++;}} printf("\nNumbersare: %d\n",n); } 11.打印输出以下图形 * *** ***** ******* ********* #include voidmain() {inti,j; for(i=1;i<=5;i++) /************found************/ {printf("\n"); for(j=1;j<=10-i;j++) printf(""); /************found************/ for(j=1;j<=2*i-1;j++) printf("*");} printf("\n"); } 12.求: 1! +2! +3! +……+20! #include voidmain() /*************found**************/ {floats,t; intn; s=0;t=1; /*************found**************/ for(n=0;n<20;n++) {t=t*(n+1); s=s+t;} printf("1! +2! +3! +…+20! =%e\n",s); } 13.输入一个百分制成绩,打印出五级记分成绩。 #include voidmain() {intscore,t; do scanf("%d",&score); while(score<0||score>100); t=score/10; /*************found**************/ switch(score/10) {case10: case9: printf("Excellent! \n");break; case8: printf("Good! \n");break; case7: printf("Middle! \n");break; case6: printf("Pass! \n");break; /*************found**************/ default: printf("Fail! \n");}} 14.求一维数组a中值为奇数的元素的平均值。 #include doubleaverage(intarr[],intn) {intk=0,i;doubles; s=0; for(i=0;i /************found************/ if(arr[i]%2==1) {s=s+arr[i];k++;} return(s/k);} main() {inta[12]={10,4,2,7,3,12,5,34,5,9,21,18}; doubles; /************found************/ s=average(a,12); printf("Theresultis: %.2f\n",s); } 15.将[m,n]之间的所有素数存放到一维数组a中,并输出。 #include #include prime(intm) {intj,k; k=sqrt(m); for(j=2;j<=k;j++) if(m%j==0)return(0); return (1);} voidmain() {inta[100],i,c=0,m,n,t; scanf("%d%d",&m,&n); if(m>n){t=m;m=n;n=t;} /************found************/ for(i=m;i<=n;i++) /************found************/ if(prime(i)==1) {a[c]=i; printf("%4d",a[c]); c++;}} 16.求一维数组a中所有元素的平均值。 #include floataverage(a,n) /************found************/ {inta[],n; intj;floataver; /************found************/ floats=0; for(j=0;j s+=a[j]; aver=s/n; return(aver);} main() {inta[12]={10,4,2,7,3,12,5,34,5,9,6,8}; printf("Theaverageis: %.2f\n",average(a,12)); } 17.将[2,100]之间的所有素数存放到一维数组a中, 并输出这些素数。 #include #include voidmain() {inta[100],i,j,k,m; m=0; for(i=2;i<=100;i++) {k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0) /************found************/ break; /************found************/ if(j>=k+1) a[m++]=i; for(i=0;i } 18.求一维数组a中所有元素的平均值,结果保留两位小数。 例如,当一维数组a中的元素为: 10,4,2,7,3,12,5,34,5,9 程序的输出应为: Theaveris: 9.10。 #include voidmain() {inta[10]={10,4,2,7,3,12,5,34,5,9},i; /************found************/ floataver,s; /************found************/ s=a[0]; for(i=1;i<10;i++) s+=a[i]; aver=s/i; printf("Theaveris: %.2f\n",aver); } 19.当M为5时,如果从键盘上输入的5个数 分别为: 1、2、3、4、5时,输出应为: 12321。 当M为10时,如果从键盘上输入的10个数 分别为: 1、2、3、4、5、6、7、8、9、10时, 输出应为: 1234554321。 #defineM5 voidmain() {inti,a[100],t; /**************found************/ for(i=0;i scanf("%d",&a[i]); for(i=0;i /**************found************/ a[M-i-1]=a[i]; for(i=0;i printf("%5d",a[i]); printf("\n"); } 20.在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。 #include voidmain() {inti,a[10]; for(i=1;i<=10;i++) /**************found************/ a[i-1]=i; for(i=0;i<5;i++) /**************found************/ a[10-i-1]=a[i]; for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); } 21.把数组a(大小为M)中前M-1个元素中的最大值放入a的最后一个元素中。 #include #defineM11 voidmain() {inta[M],i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 改错 题库