首页 C语言编程题及答案

C语言编程题及答案

举报
开通vip

C语言编程题及答案C语言编程题 1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。 main() {float i=1,j=2,s=0,t,n,m; for(n=1;n=0;i--) printf("%c",c[i]); } 3.(*)已知abc+cba=1333,其中a、b、c均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a、b、c,并输出结果。 ...

C语言编程题及答案
C语言编程题 1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。 main() {float i=1,j=2,s=0,t,n,m; for(n=1;n<=20;n++) t=i/j,m=i,i=j,j=m+j,s=t+s; printf("s=%f",s); } 2.(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde,输出edcba) main() {int i; char c[10]; scanf("%s",c); for(i=9;i>=0;i--) printf("%c",c[i]); } 3.(*)已知abc+cba=1333,其中a、b、c均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a、b、c,并输出结果。 main() {int a,b,c,x,y; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=1;c<=9;c++) { x=100*a+10*b+c; y=100*c+10*b+a; if(x+y==1333) printf("x=%d,y=%d",x,y);} } 4.(*)利用海伦 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 求三角形面积,三边长a,b,c由键盘输入。若输入的三边长不能构成 三角形,输出相应提示信息。海伦公式如下:其中s=(a+b+c)/2 三角形面积= #include"math.h" main() { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); if(a+b>c&&a+c>b&&b+c>a) printf("area=%f",area); else .1 . printf("no"); } 5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。 程序1: main() { int i,j; double p=1, sum=0; for(i=1;i<=10;i++) { for(j=1;j<=i;j++) p=p*i; sum=sum+p;p=1.0;} printf("sum=%f",sum); } 程序2:float fac(n) int n; {float f; if (n<0) printf("n<0,error!"); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return(f); } main() {int h,s=0,n; for(n=1;n<=4;n++) { h=fac(n); s=s+h;} printf("s=1!+2!+...+10!=%d\n",s); } 程序3: main() { int i; double p=1, sum=0; for(i=1;i<=10;i++) { p=p*i; sum=sum+p;} printf("sum=%f",sum); } .2 . 6.(*)从键盘输入两个整数,输出其和,差,积,商。 7.(**)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。 maxji(int a[],int n) { int i,j,k,t; for(i=0;i=0;i--) if(c[i]%2==0) printf("%5d",c[i]); printf("\n"); for(i=0;ik) n=j; else n=k; return(n);} main() {int i,j,k,n; scanf("%d%d%d",&i,&j,&k); n=findmid(i,j,k); printf("%d\n",n); } 17.(*)编程实现输出所有1~100之间能被9整除余2的数。 18.(*)编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何一个数,便能输出与之对应的英文名称。如输入1,则输出Monday。 main() {char day; scanf("%c",&day); swith(day) {case '1':printf(" monday\n");break; case '2':printf("tuesday\n"); break; case '3':printf("wednsday\n"); break; case '4':printf("thursday\n"); braek; case '5':printf(" friday\n"); break; case '6':printf("saturday\n"); break; case '7':printf("sunday\n"); break; defult: printf("error\n"); 19.(*)编一程序,对于给定的一个百分制成绩,输出相应的5分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。(用switch语句实现)。 main() {int s,score; scanf("%d",&score); s=score/10; switch(s) {case 10:printf("A\n");break; case 9:printf("A\n");break; case 8:printf("B\n");break; case 7:printf("C\n");break; case 6:printf("D\n");break; case 5: case 4: case 3: case 2: case 1:printf("E\n");break; default:printf("error"); }} 20.(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。 21.(**)一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出100之内的所有完数,并按下列格式输出其因子: 6 its factors are 1,2,3 main() {int m,i,s; for(m=2;m<1000;m++) { s=0; for(i=1; ia[i][0]) printf("%4d\n",a[i][1]); else printf("%4d\n",a[i][0]); } .6 . 23.(**)编程将一个3x3矩阵转置(行列互换)后输出。 main() {int i,j, a[3][3],b[3][3]; for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%d",&a[i][j]); for(i=0;i<=2;i++) {for(j=0;j<=2;j++) {print(“%5d”,a[i][j]); b[j][i]=a[i][j];} printf('\n');} for(j=0;j<=2;j++) {for(i=0;i<=2;i++) printf("%5d",b[i][j]); printf(“\n”);} } 24.(**)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。 程序1: float max(int n,float a[]) {int i; float max; max=a[0]; for(i=0;ia[i]) min=a[i]; return(min); } float aver(int n,float a[]) { int i; float sum=0,aver; .7 . for(i=0;imax) {max=a[i][j];m1=I;n1=j;} else if(a[i][j] 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 按原来排序的规律将它插入数组中。(该数比第一个数大,比第九个数小) #define N 10 main() {int b,i,n,a[N]={1,5,7,11,15,19,23,28,31}; scanf("%d",&b); for(i=0;ib) {n=i;break;} for(i=(N-2);i>=n;i--) a[i+1]=a[i]; a[n]=b; for(i=0;i=10) printf("-1"); printf("\n"); } 35.(**)写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。例如: 输入1024时,输出One Zero Two Four main() { long int n; int m,i=0,c[10]; scanf("%ld",&n); do {m=n%10; i++; c[i]=m; printf("%5d%5d%5d\n",i,m,c[i]); } while ((n/=10)>0); while(i>=1) {i--; switch(c[i+1]) {case 0:{ printf("zero");printf(" ");break;} case 1:{ printf("one");printf(" "); break; } case 2: {printf("two");printf(" "); break;} case 3: {printf("three");printf(" ");break;} case 4:{ printf("four");printf(" ");break;} case 5:{ printf("five");printf(" ");break;} case 6:{ printf("six");printf(" "); break;} case 7:{ printf("seven");printf(" "); break;} case 8:{ printf("eight");printf(" "); break;} case 9:{ printf("nine");printf(" "); break;} default:printf("no");}}} 36.(**)A数组中有8个元素,从第6个元素开始将数组后三个元素移到数组开头。例如: A数组元素为:2 6 9 8 5 3 7 4 移动后数组变为:3 7 4 2 6 9 8 5 #define N 8 main() {int a[8]={2,6,9,8,5,3,7,4}; int i, j,t; for(i=0;i<8;i++) printf("%5d",a[i]); printf("\n"); for(j=0;j<3;j++) { t=a[N-1]; for(i=N-2;i>=0;i--) a[i+1]=a[i]; a[0]=t;} for(i=0;i<8;i++) printf("%5d",a[i]); } 37.(**)按如下格式打印输出乘法口诀 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf : 1×1=1 1×2=2 2×2=4 ┆ 1×9=9 2×9=18 3×9=27 9×9=81 38.(**)请将n个整数按升序重新放在原数组中,操作时不得另开辟数组。 39.(**)输入若干学生一门功课的成绩,统计各分数段的人数。凡不及格(60分以下)都由一个计数器来统计,其它以10分作为一个数段,100分作为一个分数段。 main() {int a[10]; int i,j,t,p; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) {p=i; for(j=i+1;j<10;j++) if(a[p]>a[j])p=j; if(p!=j) {t=a[i];a[i]=a[p];a[p]=t;} } for(i=0;i<10;i++) printf("%5d",a[i]); } 40.(**) 编写函数,给定一个数,删除数组中与之相等的元素,返回值为删除后数组中 的元素个数。 main() {float a[10],t; int s,b[6]={0},i; for(i=0;i<10;i++) scanf("%f",&a[i]); i=0; while(i<10) {s=(int)a[i]/10; i++; switch(s) {case 10:b[0]++; break; case 9:b[1]++; break; case 8:b[2]++; break; case 7:b[3]++; break; case 6:b[4]++;break; case 5: case 4: case 3: case 2: case 1: case 0: b[5]++; break;}} for(i=0;i<=5;i++) printf("%2d",b[i]); } 41.(**)输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一: ⑴能同时被3、5、7整除; ⑵能被其中两个数(说明哪两个数)整除; ⑶只能被其中一个整除(说明哪个数); ⑷不能被3、5、7任何一个整除。 42.(**)有10个数已按由小到大的顺序存放在一个整型数组中,从键盘输入一个数,找出该数是数组中的第几个元数,如果该数不在数组中,则打印出“无此数”。 main() { int a[10]={ 2,4,6,8,10,12,14,16,18,20}; int i,t,j,m; for(i=0;i<10;i++) printf(“%5d”,a[i]); printf(“\n”); scanf(“%d”,&m); for(i=0;i<10;i++) if(m==a[i]){printf(“%5d”,i+1);break;} if(i>=10) printf(“no”); } 43.(**)给出年、月、日,计算出该日是该年的第几天。 44.(***)求3至50之间所有素数之和,用子函数判断是否为素数。 #include main() {int m,k,i,s=0; for (m=3;m<50;m++) {k=sqrt(m); for(i=2;i<=k;i++) if (m%i==0) break; if(i>=k+1) s=s+m ;} printf("%5d\n",s); } 45.(***)不用strcpy函数,实现两个字符串的复制(形参用指针变量)。 46.(***)从键盘输入10个数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,实现从小到大的排序。(用指针实现) 47.(***)编制程序。在主函数中输入a、b、c三个数,在子函数中用指针法将a、b、c排序(最大数放在a变量中,最小数放在c变量着),在主函数中输出。 48.(***) 输入三个字符串,按由小到大的顺序输出。(用字符指针实现)。 49.(***) 请编程,从键盘输入6名学生的5门成绩,分别统计每个学生的平均成绩。(在主函数中输入输出,子函数求平均成绩) 50.(***)编写函数将一个字符串中每一个单词的第一个字母转换为大写。 main() {char ch[50]="he is my friend"; int i,word=0; for(i=0;ch[i]!='\0';i++) if(ch[i]==' ') word=0; else if (word==0) {ch[i]=capslock(ch[i]); word=1; } printf("%s",ch); } capslock(char a) {a=a-32; return(a); } 51.(***)一个班有10 名学生,每位学生有四门功课。请编程输出平均成绩、总分最高和最低的俩位学生所有课程的成绩。 52.(***)输入任意5个数放在数组中,假如5个数为1、2、8、2、10,请打印出以下方阵: 1 2 8 2 10 2 8 2 10 1 8 2 10 1 2 2 10 1 2 8 10 1 2 8 2 main() {int a[5],i,j,t; for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) printf("%5d",a[i]); printf("\n"); for(j=1;j<5;j++) {t=a[0]; for(i=1;i<=5;i++) a[i-1]=a[i]; a[i]=t; for(i=0;i<5;i++) printf("%5d",a[i]); printf("\n");} } 53.(***)设有一数列,包含10个数,已按升序排好。编写程序,能够把从指定位置开始的n个数按逆序重新排列并输出新的完整序列。要求使用指针处理逆序部分。(例如:原数列为2,4,6,8,10,12,14,16,18,20,从第4个数开始的5个数按逆序重新排列,则得2,4,6,16,14,12,10,8,18,20) main() { int a[10]={ 2,4,6,8,10,12,14,16,18,20}; int i,t,j; for(i=0;i<10;i++) printf(“%5d”,a[i]); printf(“\n”); for(i=7,j=3;i>3;i--,j++) { t=a[j];a[j]=a[i];a[i]=t;} for(i=0;i<10;i++) printf(“%5d”,a[i]); printf(“\n”); } 54.(**)试编程序,找出1至99之间的全部同构数。同构数是这样的一组数:它出现在平方数的右边。如5是25右边的数,25是625右边的数,5和25均是同构数。 #include main() {int i; for(i=1;i<100;i++) if(i*i%10==i||i*i%100==i) printf(“%5d”,i); � EMBED Equation.3 ��� � EMBED Equation.3 ��� � EMBED Equation.3 ��� 程序3:main() {long int sn=0,k=a; int a,i,j; scanf("%d",&a); for(i=1;i<=5;i++) { k=10*k+a; sn=sn+k; } printf("%ld\n",sn); } 程序2: main() {void make(); int a[10],i; extern int max,min; extern float aver; for(i=0;i<10;i++) scanf("%d",&a[i]); make(a,10); printf("max=%d,min=%d,aver=%.2f",max,min,aver); } int max,min; float aver; void make(int a[],int n) {int i; float sum; max=min=a[0]; sum=a[0]; for(i=1;ia[i]) min=a[i]; sum+=a[i];printf("%f",sum);} aver=(float)sum/n; } _1046506202.unknown _1046506283.unknown _1046505070.unknown
本文档为【C语言编程题及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_392600
暂无简介~
格式:doc
大小:101KB
软件:Word
页数:17
分类:计算机考试
上传时间:2012-01-02
浏览量:121