版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21......前20项的和。main(){floati=1,j=2,t=0,s,n,m;for(n=1;n<=20;n++)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t);}2.(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde,输出edcba)main(){inti;charc[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(){inta,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.(*)利用海伦公式求三角形面积,三边长a,b,c由键盘输入。若输入的三边长不能构成三角形,输出相应提示信息。海伦公式如下:其中s=(a+b+c)/2三角形面积=#include"math.h"main(){floata,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(){inti,j;doublep=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:floatfac(n)intn;{floatf;if(n<0)printf("n<0,error!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){inth,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(){inti;doublep=1,sum=0;for(i=1;i<=10;i++){p=p*i;sum=sum+p;}printf("sum=%f",sum);}.2.6.(*)从键盘输入两个整数,输出其和,差,积,商。7.(**)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。maxji(inta[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[k]<a[j])k=j;if(k!=i){t=a[k];a[k]=a[j];a[j]=t;}}}#defineN10main(){intc[N],i,j;for(i=0;i<N;i++)scanf("%d",&c[i]);maxji(c,N);for(i=N-1;i>=0;i--)if(c[i]%2==0)printf("%5d",c[i]);printf("\n");for(i=0;i<N;i++)if(c[i]%2!=0)printf("%5d",c[i]);}8.(*)求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3,则153是一个“水仙花数”。程序1:main(){inti,j,k,a;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)printf("%d%d%d\n",i,j,k);}程序:main(){intm,i,j,k,a;for(m=101;i<=999;m++){i=m/100;j=(m-m*100)/10;.3.k=m%10;if(i*i*i+j*j*j+k*k*k==m)printf("%d\n",m);}9.(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。10.(*)已有函数调用语句c=add(a,b);请编写aad函数,计算两个实数a和b的和,并返回和值。11.(*)有人想将手中一张面值100元的人民币换成5元、1元、0.5元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。请编程实现。程序1:main(){inti,j,k,n=0;for(i=1;i<19;i++)for(j=1;j<95;j++)for(k=1;k<94;k++)if(5*i+j+0.5*k==100&&i+j+k==100){printf("%d,%d,%d\n",i,j,k);n++;}printf("%d",n);}12.(*)求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222程序1:main(){inti,a,n;longsum=0,b=1,c=1;scanf("%d,%d",&a,&n);for(i=1;i<=n;i++)程序3:main(){longintsn=0,k=a;inta,i,j;scanf("%d",&a);for(i=1;i<=5;i++){k=10*k+a;sn=sn+k;}printf("%ld\n",sn);}{sum+=a*c;b*=10;c+=b;}printf("%ld",sum);}程序2:main(){longintsn=0,k=0;inta,i,j;scanf("%d",&a);for(i=1;i<=5;i++){for(j=1;j<=i;j++)k=10*k+a;.4.sn=sn+k;k=0;}printf("%ld\n",sn);}13.(*)编程输出如下图形(不能仅用printf语句):*************************main(){inti,k,j;for(i=0;i<=4;i++){for(j=0;j<4-i;j++)printf("");for(k=0;k<=2*i;k++)printf("*");printf("\n");}}14.(*)用近似公式求自然对数的底e的值。e≈1+1!+++……#include"math.h"main(){floati,j,e,p=1.0,sum=0.0;for(i=1;i<10;i++){for(j=1;j<=i;j++)p=p*j;sum=sum+1.0/p;p=1.0;}e=i+sum;printf("%f\n",e);}15.(*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用putchar()函数输出,且每输出一个字符换一行。16.(*)请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。intfindmid(inti,intj,intk){intn;.5.if(i<j){n=i;i=j;j=n;}if(i<k)n=i;elseif(j>k)n=j;elsen=k;return(n);}main(){inti,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(){charday;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(){ints,score;scanf("%d",&score);s=score/10;switch(s){case10:printf("A\n");break;case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;case5:case4:case3:case2:case1:printf("E\n");break;default:printf("error");}}20.(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。21.(**)一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出100之内的所有完数,并按下列格式输出其因子:6itsfactorsare1,2,3main(){intm,i,s;for(m=2;m<1000;m++){s=0;for(i=1;i<m;i++)if(m%i==0)s=s+i;if(m==s){printf("%3ditsfactorsare",m);for(i=1;i<m;i++)if(m%i==0)printf("%4d",i);printf("\n");}}}22.(*)输入5对整数,请输出每对数中较大者main(){inti,j,a[5][2];for(i=0;i<=4;i++)for(j=0;j<=1;j++)scanf("%d",&a[i][j]);for(i=0;i<=4;i++)if(a[i][1]>a[i][0])printf("%4d\n",a[i][1]);elseprintf("%4d\n",a[i][0]);}.6.23.(**)编程将一个3x3矩阵转置(行列互换)后输出。main(){inti,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.(**)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。程序2:main(){voidmake();inta[10],i;externintmax,min;externfloataver;for(i=0;i<10;i++)scanf("%d",&a[i]);make(a,10);printf("max=%d,min=%d,aver=%.2f",max,min,aver);}intmax,min;floataver;voidmake(inta[],intn){inti;floatsum;max=min=a[0];sum=a[0];for(i=1;i{if(maxif(min>a[i])min=a[i];sum+=a[i];printf("%f",sum);}aver=(float)sum/n;}程序1:floatmax(intn,floata[]){inti;floatmax;max=a[0];for(i=0;i<n;i++)if(max<a[i])max=a[i];return(max);}floatmin(intn,floata[]){inti;floatmin;min=a[0];for(i=0;i<n;i++)if(min>a[i])min=a[i];return(min);}floataver(intn,floata[]){inti;floatsum=0,aver;.7.for(i=0;i<n;i++)sum=sum+a[i];aver=sum/n;return(aver);}#include"math.h"main(){inti;floatm,n,a[5],c;for(i=0;i<5;i++)scanf("%f",&a[i]);m=max(5,a);n=min(5,a);c=aver(5,a);printf("%5f%5f%5f\n",m,n,c);}25.(**)编写函数,求一个不超过五位的十进制整数各位数值的和。(如:输入2634,输出15)#include"math.h"main(){inti,a[5],m,n=0;scanf("%d",&m);for(i=0;i<=4;i++){a[i]=m%10;n=n+a[i];m=m-a[i]*10;printf("%5d",a[i]);}printf('\n');printf("%d",n);}26.(**)编程求出一个3x3矩阵的最大和最小元素及其下标。main(){inti,j,max,min,a[3][3],m1,n1,m2,n2;for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);min=max=a[0][0];.8.for(i=0;i<=2;i++)for(j=0;j<=2;j++)if(a[i][j]>max){max=a[i][j];m1=I;n1=j;}elseif(a[i][j]<min){min=a[i][j];m2=i;n2=j;}printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1,n1,min,m2,n2);}27.(**)有一个字符串,包含n个字符,编写一个函数,将此字符串中从第m个字符开始的全部字符复制成另一个字符串。main(){charchs2[30]={0},chs1[30]="thisismyfirstCprogram";inti,j,m;scanf("%d",&m);for(i=m,j=0;i<30;i++,j++)chs2[j]=chs1[i];chs2[29]='\0';printf("%s",chs2);}28.(**)求一个3x3矩阵的对角线元素之和。main(){inti,j,sum1=0,sum2=0,a[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++)if(i==j)sum1+=a[i][j];if((i+j)==2)sum2+=a[i][j];}printf("%5d%5d",sum1,sum2);}29.(**)从键盘输入两个整数,输出其最大公约数和最小公倍数。程序1:main(){inta,b,t,p,r;scanf("%d,%d",&a,&b);if(a<b){t=a;a=b;b=t;}p=a*b;while(b!=0){r=a%b;a=b;b=r;}printf(“%5d%5d”,a,p/a);}.9.main(){inta,b,m,n,i,t;scanf(“%d%d”,&a,&b);if(a<b){t=a;a=b;b=t;}m=a;n=b;for(i=1;i<=n;i++)if((m%i==0)&&(n%i==0)){printf("%5d\n",i);break;}printf("%5d",a*b/i);}30.(**)一个已按从小到大的顺序排序的数组,有9个元素,从终端输入第10个数,要求按原来排序的规律将它插入数组中。(该数比第一个数大,比第九个数小)#defineN10main(){intb,i,n,a[N]={1,5,7,11,15,19,23,28,31};scanf("%d",&b);for(i=0;i<N-1;i++)if(a[i]>b){n=i;break;}for(i=(N-2);i>=n;i--)a[i+1]=a[i];a[n]=b;for(i=0;i<N;i++)printf("%5d",a[i]);}31.(**)请编写程序,输出以下扬辉三角形(要求输出10行)。111121133114641:#defineM10#defineN10main(){inta[M][N],i,j;for(i=0;i<M;i++)for(j=0;j<=i;j++)if(j==0||j==i)elsea[i][j]=1;a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<M;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}32.(**)从键盘输入少于50个的整数,其值在0和4之间(包括0和4),用-1作为输入结束标志,统计每个整数的个数。请编程实现。33.(**)从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中,请编程实现。main(){chara[50],b[10],*p1,*p2;inti,j;scanf(“%s%s”,a,b);n=strlen(a);for(p1=a+n,p2=b;p1<=a+(n+4);p1++,p2++){*p1=*p2;if(*p2==’\0’)break;}*p1=’\0’;printf(“%s”,a);}34.(**)编写函数,在一个一维数组中查找指定值,若找到则返回该数值的下标,否则返回-1。要求用指针变量传递数组首地址。main(){floata[10]={1,2,3,4,5,6,7,8,9,10};floatb;inti;scanf("%f",&b);for(i=0;i<10;i++)if(b==a[i]){printf("%d\n",i);break;}if(i>=10)printf("-1");printf("\n");}35.(**)写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。例如:输入1024时,输出OneZeroTwoFourmain(){longintn;intm,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]){case0:{printf("zero");printf("");break;}case1:{printf("one");printf("");break;}case2:{printf("two");printf("");break;}case3:{printf("three");printf("");break;}case4:{printf("four");printf("");break;}case5:{printf("five");printf("");break;}case6:{printf("six");printf("");break;}case7:{printf("seven");printf("");break;}case8:{printf("eight");printf("");break;}case9:{printf("nine");printf("");break;}default:printf("no");}}}36.(**)A数组中有8个元素,从第6个元素开始将数组后三个元素移到数组开头。例如:A数组元素为:26985374移动后数组变为:37426985#defineN8main(){inta[8]={2,6,9,8,5,3,7,4};inti,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.(**)按如下格式打印输出乘法口诀表:1×1=11×2=22×2=4┆1×9=92×9=183×9=279×9=8138.(**)请将n个整数按升序重新放在原数组中,操作时不得另开辟数组。39.(**)输入若干学生一门功课的成绩,统计各分数段的人数。凡不及格(60分以下)都由一个计数器来统计,其它以10分作为一个数段,100分作为一个分数段。main(){inta[10];inti,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(){floata[10],t;ints,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){case10:b[0]++;break;case9:b[1]++;break;case8:b[2]++;break;case7:b[3]++;break;case6:b[4]++;break;case5:case4:case3:case2:case1:case0: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(){inta[10]={2,4,6,8,10,12,14,16,18,20};inti,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<math.h>main(){intm,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名学生的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年大数据在能源管理中的应用测试题库
- 2025-2026年大数据在智能物流中的应用测试卷
- 造船厂船体涂装细则
- 心理基础及测量 答案
- 2026下半年高中地理教资面试答辩题库及解析
- 初中化学教资面试易错题题库及答案
- 《战略能力计划》课件
- 企业战略的体系与执行
- 护士面瘫康复指导
- 胆道蛔虫防治方案
- 2026年高级考评员职业技能等级认定考试题附答案
- 2026年河南省洛阳市公安招聘辅警考试试卷含答案
- 儿童耳科疾病的护理
- 5.14玉米历险记《探寻新航路》课件-历史九年级上册
- CSCO胰腺癌诊疗指南(2026版)
- 1.4《闪亮的坐标劳模王进喜》课件 中职语文高教版职业模块
- 云南中环 表D-5参比方法评估气态污染物CEMS(含氧量)准确度
- 3.放射性核素示踪技术与图像采集方式
- JJG 1011-2018角膜曲率计
- 水岸山居调研课件
- 经济犯罪侦查课件
评论
0/150
提交评论