C语言题.docx
- 文档编号:11432923
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:37
- 大小:25.37KB
C语言题.docx
《C语言题.docx》由会员分享,可在线阅读,更多相关《C语言题.docx(37页珍藏版)》请在冰豆网上搜索。
C语言题
程序改错:
在考生目录下,根据给定的程序功能,改正程序中的错误。
程序中有两处错误,错误都在提示行:
/***********found***********/的下面一行,请考生注意。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要随意改动程序,不得增行或删行,也不得更改程序的结构!
1.先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:
当s中的字符串为:
"VWXYZ"时,则t中的字符串应为:
"VWXYZZYXWV"。
#include
#include
main()
{chars[80],t[80];
inti,sl;
printf("\nPleaseenterstrings:
");
scanf("%s",s);
sl=strlen(s);
/************found************/
for(i=0;i<=sl;i+=2)
t[i]=s[i];
for(i=0;i t[sl+i]=s[sl-i-1]; /************found************/ t[sl]='\0'; printf("Theresultis: %s\n",t); } 2.将n个无序整数从小到大排序。 #include #include main() {inta[20]={9,3,0,4,1,2,5,6,8,10,7},n=11; inti,j,p,t; printf("\n\nBeforesorting%dnumbers: \n",n); j=0; for(i=1;i<=n;i++,j++) {printf("%4d",a[j]); if(! (i%10))printf("\n"); }printf("\n"); for(j=0;j {p=j; /************found************/ for(i=j+1;i if(a[p]>a[i]) /************found************/ t=i; if(p! =j) {t=a[j];a[j]=a[p];a[p]=t;} } printf("\nAftersorting%dnumbers: \n",n); j=0; for(i=1;i<=n;i++,j++) {printf("%4d",a[j]); if(! (i%10))printf("\n"); }printf("\n"); } 3.判断正整数n是否为素数,并输出相应的结果. 例如: 输入8时,输出结果是: 8isnotaprimenumber. 输入7时,输出结果是: 7isaprimenumber. #include intPrime(intn) { inti; for(i=2;i if(n%i==0) break; /************found************/ if(i>n) return1; return0; } voidmain() { intn; scanf("%d",&n); /************found************/ if(Prime(intn)=1) printf("%disaprimenumber.",n); else printf("%disnotaprimenumber.",n); } 4.输出200~300之间的所有素数,要求每行输出8个素数。 #include #include #include main() {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)continue; if(j>k) {if(n%8==0)printf("\n"); /************found************/ printf("%6d",j); n++; } } } 5.打印一个如下的九九乘法表的一部分: 1*1=1 2*1=22*2=4 3*1=33*2=63*3=9 4*1=44*2=84*3=124*4=16 #include #include #include main() {inti,j,k; for(i=1;i<=4;i++) /************found************/ {for(j=1;j<=4;j++) printf("%3d*%3d=%3d",i,j,i*j); /************found************/ printf("n"); } } 6.学习优良奖的条件如下: 所考5门课的总成绩在450分(含)以上;或者每门课都在88分(含)以上。 输入某学生5门课的考试成绩,输出是否够学习优良奖的条件。 #include #include #include main() {intscore,sum=0; inti,n=0; for(i=1;i<=5;i++) {scanf("%d",&score); sum+=score; /************found************/ n++; } /************found************/ if(sum>=450&&n==5) printf("Thestudentisverygood! \n"); else printf("Thestudentisnotverygood! \n"); } 7.女儿今年12岁,父亲比女儿大30岁,计算出父亲在多少年后比女儿年龄大一倍,那时他们的年龄各是多少? #include #include #include main() {intfather,daughter; inti; daughter=12; /************found************/ father=30; /************found************/ for(i=1;father! =2*daughter;i++) {daughter++; father++; } printf("After%dyears,father'sageistwicetodaughter'sage\n",i); printf("Theiragesare%dand%d\n",father,daughter); } 8.输入5个不同的整数,将它们存入数组a中,再输入1个整数x,然后在数组中查找x。 如果找到,则输出相应的下标,否则输出“notfound! ”。 (例如: 若输入1,3,5,7,9,5,则输出5isin2) #include #include #include main() {inta[5],x; inti; printf("请输入5个数: \n"); for(i=0;i<5;i++) /************found************/ scanf("%d",a[i]); printf("请输入x: \n"); scanf("%d",&x); for(i=0;i<5;i++) if(a[i]==x)break; /************found************/ if(a[i]==x)printf("%disin%d",x,i); elseprintf("notfound! "); } 9.找出1~100之间的全部同构数。 所谓同构数是指这样一个数,它出现在它的平方数的右端。 例如,5的平方是25,5出现在25的右端,5是一个同构数。 25的平方是625,25出现在625的右端,25也是同构数。 #include #include #include main() {inti; inta,b,c; printf("isomorphicnumbersare: \n"); for(i=1;i<=100;i++) {a=i*i%10; b=i*i%100/10; /************found************/ c=i*i%100; if(i<10) /************found************/ if(i=a)printf("%6d",i); elseif(i==a+b*10) printf("%6d",i); } printf("\n"); } 10.输出1~N之间的所有完数(N=500,从键盘输入),并输出每个完数的所有因子。 所谓完数,就是指一个正整数,它的各因数之和等于其自身。 例如,6=1+2+3,6是一个完数。 #include #include #include main() {inti,j,t,n; scanf("%d",&n); for(i=1;i<=n;i++) {t=0; for(j=1;j if(i%j==0)t+=j; /************found************/ if(t=i) {printf("\n%disafullnumber\n",i); printf("factorsof%dare: \t",i); /************found************/ for(j=1,j if(i%j==0)printf("%d,",j); } } printf("\n"); } 11.输入一个字符串,将组成字符串的所有非数字字符删除后倒置输出。 #include #include main() { charstr[100],ch; inti,k; printf("inputastring: \n"); gets(str); i=0; k=0; while(str[i]! ='\0') { if((str[i]>='0')&&(str[i]<='9')) { /*******found********/ ________ (1)_________ k++; } i++; } /*******found********/ ________ (2)_________ for(i=0;i { ch=str[i]; str[i]=str[k-1-i]; str[k-1-i]=ch; } puts(str); } 12.打印输出以下图形 * *** ***** ******* ********* #include #include #include main() {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"); } 13.已知一元以下的硬币中有一角、二角、五角三种面值,列举出将一元兑换成硬币的所有兑换方法。 #include #include #include main() {floati,j,k; /************found************/ for(i=1;i<=2;i++) for(j=0;j<=5;j++) for(k=0;k<=10;k++) /************found************/ {if(i*0.1+j*0.2+k*0.5==1) printf("%.0f,%.0f,%.0f\n",i,j,k); } } 14.15 求∑n! (即求: 1! +3! +5! +……+15! ) n=1 #include #include #include main() /*************found**************/ {longints,t; intn; s=1;t=1; /*************found**************/ for(n=1;n<15;n++) {t=t*(n+1)*(n+2); s=s+t; } printf("1! +3! +5! +…+15! =%e\n",s); } 15.输入一个百分制成绩,打印出五级记分成绩。 考试成绩在90分或90分以上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分为不及格。 #include #include #include main() {intscore,t; printf("Pleaseenterascore: "); do scanf("%d",&score); while(score<0||score>100); t=score/10; /*************found**************/ switch(score) {case10: case9: printf("Excellent! \n");break; case8: printf("Good! \n");break; case7: printf("Middle! \n");break; case6: printf("Pass! \n");break; /*************found**************/ else: printf("Fail! \n"); } } 16.将一个正整数分解质因数。 例如,输入60,输出60=2*2*3*5。 #include #include #include main() { intn,i=2; printf("pleaseenteranumbern\n"); scanf("%d",&n); printf("%d=",n); /*************found**************/ while(n! =1); if(n%i==0) {printf("%d",i); n=n/i; if(n! =1) printf("*"); } else /*************found**************/ n++; } 17.求一维数组a中的最大元素及其下标。 例如,当一维数组a中的元素为: 1,4,2,7,3,12,5,34,5,9,程序的输出应为: Themaxis: 34,posis: 7。 #include main() {inta[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max=a[0]; pos=0; for(i=1;i<10;i++) /************found************/ if(max>a[i]) { max=a[i]; /************found************/ i=Pos; } printf("Themaxis: %d,posis: %d\n",max,pos); } 18.求二维数组a中每行的最大值。 例如,当二维数组a中的元素为: 4434 7312 565 程序的输出应为: Themaxis: 34126。 #include main() {inta[3][3]={4,4,34,7,3,12,5,6,5},i,j,max; printf("Themaxis: "); for(i=0;i<3;i++) { /************found************/ max=a[0][0]; for(j=0;j<3;j++) /************found************/ if(max>a[j][i])max=a[j][i]; printf("%3d",max); } } 19.求一维数组a中的值为偶数的元素之和。 例如,当一维数组a中的元素为: 10,4,2,7,3,12,5,34,5,9,程序的输出应为: Theresultis: 62。 #include main() {inta[10]={10,4,2,7,3,12,5,34,5,9},i,s; s=0; for(i=0;i<10;i++) /************found************/ if(i%2==0) s=s+a[i]; /************found************/ print("Theresultis: %d\n",s); } 20.将[m,n]之间的所有素数存放到一维数组a中,并输出这些素数。 例如,如果m=10,n=40,程序的输出应为: 11131719 23293137 #include #include main() {inta[100],i,j,k,m,n,c=0; printf("Pleaseenterm,n(m "); scanf("%d,%d",&m,&n); /************found************/ for(i=m;i<=100;i++) { k=sqrt(i); for(j=2;j<=k;j++) /************found************/ if(j%i==0) break; if(j>=k+1) a[c++]=i; } for(i=0;i {printf("%4d",a[i]); if((i+1)%4==0)printf("\n"); } } 程序填空: 在考生目录下,在给定程序功能的情况下根据下列要求完善程序。 程序有两个空 (1)、 (2)需要补充完整。 请将程序中的____ (1)____和____ (2)____删除 后,在相应的位置填入正确答案并调试直到得到正确结果为止。 注意: 不要随意改动程序,不得增行或删行,也不得更改程序的结构! 1.从键盘任意输入一个整数M,求1~M中有哪些数可以分为两个相等的素数之和。 例如,若输入: M=15,则输出应该是: 4=2+26=3+310=5+514=7+7。 #include main() {intM,t,i,M1,n=0; printf("Pleaseenteranumber: "); scanf("%d",&M); /************found************/ for(t=1;t<=m;t++) { ____ (1)____ for(i=2;i if(M1%i==0)break; /************found************/ if(i==M1_____ (2)_______) {printf("%d=%d+%d",t,M1,M1);n++;} if(n%5==0)printf("\n"); } 2.在第一个循环中给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 main() {inti,a[10]; for(i=1;i<=10;i++) /**************found************/ ___ (1)___; for(i=0;i<5;i++) /**************found************/ ___ (2)___; for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); } 3.在第一个循环中给a数组的10个数组元素依次赋8、5、1、3、75、16、74、18、95、110;在第二个循环中使a数组前10个元素中的值按逆序存放,变成110、95、18、74、16、75、3、1、5、8;在最后一个循环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)