C语言题库

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

题库1.用起泡法对N=10个整数由大到小排序。10个整数由键盘输入,排序后从屏幕输出结果#includestdio.hvoidmain(){inta[10],i,j,t;printf(输入十个整数:\n);for(i=0;i10;i++)scanf(%d,&a[i]);for(j=0;j9;j++)for(i=0;i9-j;i++){if(a[i]a[i+1])t=a[i],a[i]=a[i+1],a[i+1]=t;}printf(新顺序是:\n);for(i=0;i10;i++)printf(%5d,a[i]);printf(\n);}2.编写一函数,从实参传来一个字符串,分别统计其中数字、大写字母、小写字母和其它字符的个数,输入输出在main函数中完成#includestdio.hinta,b,c,d;voidmain(){voidcount(char[]);chartext[100];printf(输入字符串:\n);gets(text);printf(string:);puts(text);a=0;b=0;c=0;d=0;count(text);printf(数字:%d,大写字母:%d,小写字母:%d,其他字符:%d\n,a,b,c,d);}voidcount(charstr[]){inti;for(i=0;str[i]!='\0';i++)if(str[i]='0'&&str[i]='9')a++;elseif(str[i]='A'&&str[i]='Z')b++;elseif(str[i]='a'&&str[i]='z')c++;elsed++;}3.用一函数inv将一个字符串的字符逆序排列。输入输出在main函数中完成。要求在inv中用指针处理。#includestdio.h#includestring.hvoidinv(charstr[]){intlen,i;chart;len=strlen(str);for(i=0;ilen/2;i++){t=*(str+i);*(str+i)=*(str+(len-i-1));*(str+(len-i-1))=t;}}voidmain(){charstr[20];printf(inputstr:);scanf(%s,str);inv(str);printf(%s\n,str);}4.求200之内的素数的和。从屏幕输出结果#includestdio.hintprime(intm){inti;for(i=2;im;i++){if(m%i==0)break;}if(i==m)return1;elsereturn0;}voidmain(){inti,sum=0;for(i=2;i=200;i++){if(prime(i)==1)sum+=i;}printf(素数之和为%d\n,sum);}5从屏幕输入一行字符,将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母,其它字符不变,从屏幕输出结果#includestdio.h#includestring.hvoidchange(chars[]){intlen,i;len=strlen(s);for(i=0;ilen;i++){if(s[i]=65&&s[i]=90){s[i]=s[i]+32;}elseif(s[i]=97&&s[i]=122){s[i]=s[i]-32;}elses[i]=s[i];}}voidmain(){chars[100];printf(inputthestring:);gets(s);change(s);printf(%s\n,s);}6一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次落地后又反弹多高?#includestdio.hvoidmain(){floats(intn);floath(intn);printf(第十次反弹高度:%fm.\n,h(10));printf(第十次落地的路程:%fm.\n,s(10));}floath(intn){doublea;if(n==0)a=100.0;elsea=h(n-1)/2.0;returna;}floats(intn){floatb;if(n==0)b=0.0;elseif(n==1)b=100.0;elseb=s(n-1)+2.0*h(n-1);return(b);}7.对N=20个字符由大到小排序。20个字符由键盘输入,排序后从屏幕输出结果#includestdio.hvoidmain(){inti,j;chara[20],t;printf(输入二十个字符:\n);for(i=0;i20;i++)a[i]=getchar();for(j=0;j19;j++)for(i=0;i19-j;i++){if(a[i]a[i+1])t=a[i],a[i]=a[i+1],a[i+1]=t;}printf(从大到小的顺序是:\n);for(i=0;i20;i++)printf(%3c,a[i]);printf(\n);}8有一字符串,把其中的字母a和A去掉,成为一个新字符串。原字符串从键盘输入。从屏幕输出结果#includestdio.hvoidmain(){inti=0;chara[100],b[100];char*p;printf(Pleaseinputastring:);gets(a);for(p=a;*p!='\0';p++)if(*p!='A'&&*p!='a'){b[i]=*p;i++;}b[i]='\0';puts(b);}9求Fibonacci数列的前30项的和。从屏幕输出结果。Fibonacci数列为:F(1)=1,(n=1)F(2)=1,(n=2)F(n)=F(n-2)+F(n-1),(n=3)#includestdio.hvoidmain(){inta[30]={1,1};inti,sum=0;for(i=2;i30;i++)a[i]=a[i-2]+a[i-1];for(i=0;i30;i++)sum=sum+a[i];printf(Fibonacci数列的前30项的和为:%d\n,sum);}10写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串#includestdio.h#includestring.hvoidmain(){voidinverse(chars[]);chars[800];printf(pleaseinputstring:);scanf(%s,s);inverse(s);printf(nowthestringis:%s\n,s);}voidinverse(chars[]){inti,j;chart;for(i=0,j=strlen(s);i(strlen(s)/2);i++,j--){t=s[i];s[i]=s[j-1];s[j-1]=t;}}11从键盘输入一个大于2的整数,判断是否是素数。从屏幕输出结果。要求用函数处理#includestdio.hvoidmain(){intn;intprime(int);printf(请输入一个大于2的整数:);scanf(%d,&n);if(prime(n))printf(\n%d是素数\n,n);elseprintf(\n%d不是素数\n,n);}intprime(intm){inta=1,b;for(b=2;bm/2&&a==1;b++)if(m%b==0)a=0;returna;}12从键盘输入月份,输出这个月有多少天。要求用函数处理#includestdio.hvoidmain(){intsum(int);intm,d;printf(请输入月份:);scanf(%d,&m);d=sum(m);printf(该月有%d天.\n,d);}intsum(intm){intday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};m=day[m];returnm;}13求两个数的最大公约数。要求用函数处理#includestdio.hvoidmain(){inta(int,int);intc,d,e;printf(请输入两个整数:);scanf(%d,%d,&c,&d);e=a(c,d);printf(最大公约数:%d\n,e);}inta(intu,intv){intt,r;if(vu){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}returnv;}14求两个数的最小公倍数。要求用函数处理#includestdio.hvoidmain(){inta(int,int);intb(int,int,int);intc,d,e,f;printf(请输入两个整数:);scanf(%d,%d,&c,&d);e=a(c,d);f=b(c,d,e);printf(最小公倍数:%d\n,f);}inta(intu,intv){intt,r;if(vu){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}returnv;}intb(intu,intv,inte){return(u*v/e);}15从屏幕输入3个整数,按从小到大顺序输出,要求用指针进行处理#includestdio.hvoidmain(){voids(int*p1,int*p2);inta,b,c;int*p1,*p2,*p3;printf(请输入3个数:);scanf(%d,%d,%d,&a,&b,&c);p1=&a;p2=&b;p3=&c;if(ab)s(p1,p2);if(ac)s(p1,p3);if(bc)s(p2,p3);printf(现在顺序为:%d,%d,%d\n,a,b,c);}voids(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}16自己编写一个函数,将两个字符串连接起来,要求在main函数中输入输出#includestdio.hvoidmain(){voidlian(charstring1[],charstring2[],charstring3[]);chars1[100],s2[100],s3[100];printf(\ninputstring1:);gets(s1);printf(\ninputstring2:);gets(s2);lian(s1,s2,s3);printf(Thenewstringis:%s\n,s3);}voidlian(charstring1[],charstring2[],charstring3[]){inti,j;for(i=0;string1[i]!='\0';i++)string3[i]=string1[i];for(j=0;string2[j]!='\0';j++)string3[i+j]=string2[j];string3[i+j]='\0';}17打印水仙花数(课本习题)#includestdio.hvoidmain(){inti,j,k,n;printf(水仙花数是:);for(n=100;n1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf(%d,n);}printf(\n);}18打印杨辉三角形的前10行#includestdio.h#defineN11voidmain(){inti,j,a[N][N];for(i=1;iN;i++){a[i][1]=1;a[i][i]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;iN;i++){for(j=1;j=i;j++)printf(%6d,a[

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功