c语言实例111道

上传人:时间****91 文档编号:139182874 上传时间:2022-08-22 格式:DOC 页数:53 大小:87KB
收藏 版权申诉 举报 下载
c语言实例111道_第1页
第1页 / 共53页
c语言实例111道_第2页
第2页 / 共53页
c语言实例111道_第3页
第3页 / 共53页
资源描述:

《c语言实例111道》由会员分享,可在线阅读,更多相关《c语言实例111道(53页珍藏版)》请在装配图网上搜索。

1、c语言111道例题1.输入两个正整数,m和n,求其最大公约数和最小公倍数。#includevoid main()int hcf(int,int); /*函数声明*/int lcd(int,int,int); /*函数声明*/int u,v,h,l;printf(Please two numbers:n);scanf(%d,%d,&u,&v);h=hcf(u,v);printf(H.C.F=%dn,h);l=lcd(u,v,h);printf(L.C.D=%dn,l);int hcf(int u,int v)int t,r;if(vu)t=u;u=v;v=t;while(r=u%v)!=0)u=

2、v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);2.输入一行字符,分别记录出其中字母、空格、数字和其她字符的个数。#includeint letter,digit,space,others;void main()void count(char);char text80;printf(Please string:n);gets(text);printf(string:n);puts(text);letter=0;digit=0;space=0;others=0;count(text);printf(letter:%d,digit:%

3、d,space:%d,others:%dn,letter,digit,space,others);void count(char str)int i;for(i=0;stri!=0;i+)if(stri=a&stri=A&stri=0&stri=9)digit+;else if(stri=32)space+;elseothers+;3.输入一种正整数求出它是几位数;输出原数和位数。#includeint digit;void main()void count(char);char text80;printf(Please numbers:n);gets(text);printf(Numbers

4、:n);puts(text);digit=0;count(text);printf(digit:%dn,digit);void count(char str)int i;for(i=0;stri!=0;i+) if(stri=0&stri=9)digit+;4.输入一种正整数,输出原数并逆序打印出各位数字。#includevoid invertLongInt(long);void main()unsigned long iNumber;printf(Please a number:n);scanf(%ld,&iNumber);printf(The number is:%ldn,iNumber)

5、;printf(The inverse number is:);invertLongInt(iNumber);void invertLongInt(long x)if(x=0&x=9)printf(%dn,x);elseprintf(%d,x%10);invertLongInt(x/10);5.从键盘上输入若干学生的一门课成绩,记录并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将成果输出。7.求1!+2!+3!+20!,将成果输出。#includevoid main()float s=0,t=1;int n

6、;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+3!+20!=%en,s);8.打印如下图案: * * * *#includevoid main()int i,j;printf(The picture is:n);static char picture47= , , ,*, , ,*,*,*, , *,*,*,*,*,*,*,*,*,*,*,*;for(i=0;i=3;i+)for(j=0;j=6;j+) printf(%c,pictureij);printf(n);9.打印如下图案: *#includevoid main()int i,j;printf(T

7、he picture is:n); char picture44=*,*,*, *,*,*,*,*,*,*;for(i=0;i=3;i+)for(j=0;j=3;j+) printf(%c,pictureij);printf(n);10.求下列试子的值:1-1/2+1/3-1/4+1/99-1/100,将成果输出。#includevoid main()float sum=1.0,t,s=1;int i;for(i=1;i=100;i+)t=s/i;sum=sum+t;s=-s;printf(1-1/2+1/3-1/4+1/99-1/100=%5.4fn,sum);11.打印出100999之间的

8、所有水仙花数。#includevoid main()int i,j,k,n;printf(100999之间的所有水仙花数 are:n);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);12.求Sn=a+aa+aaa+aaa之值,n,a由键盘输入。#includevoid main()int a,n,i=1,sn=0,tn=0;printf(a,n=:);scanf(%d,%d,&a,&n);while(i=n)tn=tn+a;sn=sn+tn;a=a*10;

9、+i;printf(a+aa+aaa+aaa=%dn,sn);13.打印如下图案: * * * *#includevoid main()char a7=*,*,*,*,*,*,*;int i,j,k;char space= ;printf(The picture is:);for(i=0;i4;i+)printf(n);printf( );for(j=1;j=i;j+)printf(%c,space);for(k=0;k7;k+)printf(%c,ak);printf(n);14.打印如下图案: 1 121 12321 123432115. 打印如下图案: 1234321 12321 121

10、 116.编写一种记录学生成绩程序,完毕如下功能:输入4个学生的2门课成绩;求出全班的总平均分,将成果输出。#include#define N 4struct studentchar num3;char name4;float score2;float avr;stuN;void main()int i,j;float sum,average;for(i=0;iN;i+) /*输入数据*/printf( scores of student%d:n,i+1);printf(name:);scanf(%s,stui.name);for(j=0;j2;j+)printf(score %d:,j+1)

11、;scanf(%f,&stui.scorej);average=0; /*计算*/for(i=0;iN;i+)sum=0;for(j=0;j2;j+)sum+=stui.scorej;stui.avr=sum/2;average+=stui.avr;average/=N;printf( Name score1 score2 averagen);for(i=0;iN;i+)printf(%5s%10s,stui.num,stui.name);for(j=0;j2;j+)printf(%9.2f,stui.scorej);printf( %8.2fn,stui.avr);printf(averag

12、e=%5.2fn,average);17. 打印如下图案: * * * * *#includevoid main()char a5=*,*,*,*,*;int i,j,k;char space= ;printf(The picture is:);for(i=0;i5;i+)printf(n);printf( );for(j=1;j=i;j+)printf(%c,space);for(k=0;k5;k+)printf(%c,ak);printf(n);18.给出年、月、日,计算该日是该年的第几天。#includevoid main()int sum_day(int,int);int leap(i

13、nt year);int year,month,day,days;printf( date(year,month,day):);scanf(%d,%d,%d,&year,&month,&day);printf(%d/%d/%d,year,month,day);days=sum_day(month,day);if(leap(year)&month=3)days=days+1;printf(is the %dth day in this year.n,days);int sum_day(int month,int day)int day_tab13=0,31,28,31,30,31,30,31,3

14、1,30,31,30,31;int i;for(i=1;imonth;i+)day+=day_tabi;return(day);int leap(int year)int leap;leap=year%4=0&year%100!=0|year%400=0;return(leap);19.求一种3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输出。#includevoid main() float a33,sum=0; int i,j; printf(请输入元素:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%f,&aij); for(i=0;i3;i+) s

15、um=sum+aii; printf(对角线之和是:%6.2fn,sum); for(i=0;i=3;i+)for(j=0;j=3;j+)printf(%5.2f,aij);printf(n); 20.求一种4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值所有输出。#includevoid main() int a43,s4,i,j,k; for(i=0;i4;i+) for(j=0;j3;j+)scanf(%d,*(a+i)+j);for(i=0;i4;i+)k=0;for(j=0;j3;j+)k+=aij;printf(第%d行的平均值是%d,i+1,k);printf(n);21.求

16、一种3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值所有输出。#includevoid main() int a43,s4,i,j,k; for(i=0;i4;i+) for(j=0;j3;j+)scanf(%d,*(a+i)+j);for(i=0;i4;i+)k=0;for(j=0;j3;j+)k+=aij;printf(第%d行的平均值是%d,i+1,k);printf(n);22.求一种3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值所有输出。#includevoid main() int a35,s3,i,j,k; for(i=0;i3;i+) for(j=0;j5;j+) s

17、canf(%d,*(a+i)+j); for(i=0;i3;i+) *(s+i)= *(*(a+j); for(j=1;j5;j+) if(*(s+i) *(*(a+i)+j) *(s+i)= *(*(a+i)+j); for(i=0;i3;i+) printf(Line=%d Max=%d,j,sj ); printf(n); 23.求一种4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值所有输出。#includevoid main() int a43,s4,i,j,k; for(i=0;i4;i+) for(j=0;j3;j+) scanf(%d,*(a+i)+j); for(i=0;i

18、4;i+) *(s+i)= *(*(a+i); for(j=1;j3;j+) if(*(s+i) *(*(a+i)+j) *(s+i)= *(*(a+i)+j); for(i=0;i4;i+) printf(Row=%d Max=%d,i,si ); printf(n); 24.求一种M*N的矩阵中元素的最大值,将原矩阵和求出的最大值所有输出。#include #define N 10#define M 10void main() int a N,i,j,k ,max,m,n; scanf(%d %d,&m,&n); for(i=0;im;i+) for(j=0;jn;j+)scanf(%d,

19、*(a+i)+j);for(i=0;im;i+) for(j=0;jn-1;j+)if(aij=aij+1)max=aij+1;elsemax=aij;ki=max;for(i=0;im-1;i+)if(ki=ki+1)max=ki+1;elsemax=ki;printf(%d,max);25.判断一种N*N的矩阵与否为对称矩阵,将原矩阵输出,判断成果输出。#include #define N 10void main() int aNN,i,j,k,n; scanf(%d,&n); for(i=0;in;i+) for(j=0;jn;j+)scanf(%d,&aij);for(i=0;in;i

20、+) for(j=i+1;jn;j+)if(aij=aji)k=1;elsek=0;if(k=0)printf(bushi);else printf(shin);for(i=0;in;i+) for(j=0;jn;j+)printf(%d,aij);26.有一篇文章,有三行文字,每行有80个字符。规定记录出其中英文大写字母、消协字母、数字、空格以及其她字符的个数。#includevoid main()int i,j,big=0,sma=0,num=0,spa=0,oth=0;char text380;for(i=0;i3;i+)printf(请输入行%d:n,i+1);gets(texti);

21、for(j=0;j=A&textij=a&textij=0&textij=9)num+;else if(textij= )spa+;elseoth+;printf(大写字母:%dn,big);printf(小写字母:%dn,sma);printf(数字:%dn,num);printf(空格:%dn,spa);printf(其他:%dn,oth);27.将20个整数放到一维数组中,输出该数组的最大值和最小值。#includevoid main()int i,j,min,max,a21;printf(请输入数据:n);for(i=1;i=20;i+)printf(a%d=,i);scanf(%d,

22、&ai);for(i=1;i=19;i+)min=i;for(j=2;jaj);amin=aj;for(i=1;i=19;i+)max=i;for(j=2;j=19;j+)if(amaxaj);amax=aj;printf(最大数为:%dn,amax);printf(最小数为:%dn,amin);28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。#includevoid main()int i,j,min,max,a16,m,n;printf(请输入数据:n);for(i=1;i=15;i+)printf(a%d=,i);scanf(%d,&a

23、i);for(i=1;i=14;i+)max=i;for(j=2;j=14;j+)if(amaxaj);amax=aj; m=I,n=jprintf(最大数下标为:%d,%dn,m,n);29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。#include #include#define N 10void main() int i,n;char str1N,str2N; gets(str1); for(n=0;nN;n+) i=2*n; str2n=str1i; puts(str1); puts(str2);30.编写一种程序,将两个字符串连接起来,不

24、要使用strcat函数。#includevoid main()char str120,str220;int i=0,j=0;printf(请输入字符串1:n);scanf(%s,str1);printf(请输入字符串2:n);scanf(%s,str2);while (str1i!=0)i+;while (str2j!=0)str1i+=str2j+;str1i=0;printf(合并之后的字符串为:%sn,str1);31.编写一种程序,将字符数组a中的所有字符复制到字符数组b中。不要使用strcpy函数。#include#includevoid main()char a40,b40;int

25、 i;printf(请输入a:n);scanf(%s,a);for(i=0;i=strlen(a);i+)bi=ai;printf(b:%sn,b);32.编写一种程序,找出3个字符串中的最大者,将它输出。#include#includevoid main()char string20;char str320;int i;for(i=0;i0)strcpy(string,str0);elsestrcpy(string,str1);if(strcmp(str2,string)0)strcpy(string,str2);printf(最大的字符串是:n%sn,string);33.编写程序,输入任

26、意一种17之间的整数,将她们转换成相应的英文单词。例如:1转换成Monday,7转换成Sunday。#includevoid main()int a;printf(输入一种整数:n);scanf(%d,&a);if(a=1) printf(Mondayn);else if(a=2) printf(Tuesdayn);else if(a=3) printf(Wendesdayn);else if(a=4) printf(Thursdayn);else if(a=5) printf(Fridayn);else if(a=6) printf(Saturdayn);else if(a=7) print

27、f(Sundayn);else printf(错误n);34.编写程序,输入两个整数,和+、-、*、/之中的任意一种运算符,输出计算成果。#includevoid main()float a,b;char c; printf(请输入一种运算符:n);scanf(%c,&c);printf(请输入两个整数:n);scanf(%d,%d,&a,&b);switch(c) case+:printf(%fn,a+b);break; case-:printf(%fn,a-b);break; case*:printf(%fn,a*b);break; case/:printf(%fn,a/b);break;

28、 default:printf(错误); 35.输入年号,计算这一年的2月份的天数,将成果输出。#includevoid main()int year,leap;printf(请输入年份:n);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(%d年的2月有29天,year);elseprintf(%d年的2月有28天,year);36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。#inclu

29、de#includevoid main()float a,b,c,area;double s;printf(Please enter three sides of a triangle:n);scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);if(a+bc|b+ca|a+cb)printf(They cant form a triangle.n);else printf(The area of the triangle is:%fn,area);#include #define N 10#define M

30、10void main() int i,j,k,m,n,flag1,flag2,aN ,max,maxj;printf(输入行数nn10:);scanf(%d,&n); printf(输入列数mm10:); scanf(%d,&m); for(i=0;in;i+) printf(第%d行n,i+1); for(j=0;jm;j+) scanf(%d,&aij); 37. 输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,何种类型的三角形:等腰、等边、直角、等腰直角、一般。#include#includevoid main()float a,b,c;printf(请输入三角形边长:n)

31、;scanf(%f%f%f,&a,&b,&c);if(a-b=c)|(b-c=a)|(c-a=b) printf(不可以成三角形n);else if (a*a+b*b=c*c)|(b*b+c*c=a*a)|(c*c+a*a=b*b)if (a=b)|(b=c)|(c=a) printf(等腰直角三角形n);else printf(直角三角形n);else if (a=b)&(b=c) printf(等边三角形n);else if (a=b)&(b!=c)|(c=b)&(b!=a)|(a=c)&(c!=a) printf(等腰三角形n);else printf(一般三角形n);38.输入奖金数a

32、,计算并输出税率、应缴税款和实得奖金数。(用if语句编程)#includevoid main()int a;float r,t,s;printf(请输入奖金数:n);scanf(%d,&a);if (a500) r=0.00;else if (a1000) r=0.05;else if (a) r=0.08;else if (a) r=0.10;else r=0.15;t=a*r;s=a-t;printf(税率:%7.2fn,r);printf(税款:%7.2fn,t);printf(实得奖金:%7.2fn,s);39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用switch语句编

33、程)#includevoid main()int a,e;float r,t,s;printf(请输入奖金数:n);scanf(%d,&a);e=a/500;switch(e)case 0:r=0.00;break;case 1:r=0.05;break;case 2:case 3:r=0.08;break;case 4:case 5:case 6:case 7:case 8:case 9:r=0.10;break;default:r=0.15;break;t=a*r;s=a-t;printf(税率:%7.2fn,r);printf(税款:%7.2fn,t);printf(实得奖金:%7.2f

34、n,s);40.输入学生的成绩,运用计算机将学生的成绩划分出级别并输出: 90100:A级; 8089:B级; 7079:C级; 6069:D级; 059:E级;#includevoid main()float m;printf(输入学生成绩:n);scanf(%f,&m);if (m100)|(m=90) printf(A级n);else if (m=80) printf(B级n);else if (m=70) printf(C级n);else if (m=60) printf(D级n);else printf(E级n);41.编程序,求方程aX2+bX+c=0的解;输入a,b,c.#inc

35、lude #include void main()float a,b,c,t;double x1,x2;printf(请由高次到低次顺序输入系数:n);scanf(%f%f%f,&a,&b,&c);t=b*b-4*a*c;if (t0)x1=-(b+sqrt(t)/2/a;x2=-(b-sqrt(t)/2/a;printf(方程有两个不等实根,x1=%5.2f,x2=%5.2fn,x1,x2);42.编程序,输入4个整数,按由小到大的顺序输出。#include #define N 4void main()int aN,t,i,j;printf(输入四个整数:n);for (i=0;iN;i+)

36、scanf(%d,&ai);printf(n);for (i=0;iN-1;i+)for (j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;printf(排序后:n);for (i=0;iN;i+)printf(%dn,ai);43.求满足1+2+3+n500中最大的N,并求其和,编写程序实现。#include void main()int n=0,sum=0;while(sum500)+n;sum+=n;printf(N?:%dn,n-1);printf(1+2+3+4+.+%d500n,n-1);44.把100200之间的不能被3整除的数输出。#include void mai

37、n()int a;for (a=100;a=200;a+)if (a%3!=0) printf(%dt,a);45.求Fibonacci数列前40个数,每行输出5个,将40个Fibonacci数输出。#include long f(int);void main()int n,i=0;for (n=1;n41;n+)printf (%ldt,f(n);i+;if (i%5=0) printf(n);long f(int m)if (m=0)return 0;if (m=1)return 1;elsereturn f(m-1)+f(m-2);46.按如下规律翻译密码: 将每一种字母变成它背面的字母

38、,例如,将A变成B,B变成C,Z变成A,非字母字符不变,“!”作为电文结束标志。#include void main()char ch;printf(输入字符串:n);while (ch=getchar()!=!)if (ch=a & ch=A & ch=Z)if (ch=z) ch=a;else if (ch=Z) ch=A;else ch=ch+1; printf(%c,ch);printf(n);47.百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法。#include void main()int a,b,c,n=0;for (a=0;a=20;a+

39、)for (b=0;b=33;b+)for (c=0;c=100;c+)if (5*a+3*b+c=100) n+; printf(一共有%d种n,n);48.使用数组编程,计算出前20项fibonacci数列,规定一行打印5个数。#include long f(int);void main()int n,i=0;for (n=1;n21;n+)printf (%ldt,f(n);i+;if (i%5=0) printf(n);long f(int m)if (m=0)return 0;if (m=1)return 1;elsereturn f(m-1)+f(m-2);49.编程序求出两个3*

40、4矩阵的和并将原矩阵和求出的和矩阵按原矩阵的形式分别输出。#include void main()int a34,b34,s34,n,m;printf(输入数组A:n);for (n=0;n3;n+)printf(第%d行n,n+1);for (m=0;m4;m+) scanf (%d,&an );printf(输入数组B:n);for (n=0;n3;n+)printf(第%d行n,n+1);for (m=0;m4;m+)scanf (%d,&bn );for (n=0;n3;n+)for (m=0;m4;m+)sn =an +bn ;printf(原数组A:n);for (n=0;n3;n

41、+)for (m=0;m4;m+)printf(%5d,an );printf(n);printf(n);printf(原数组B:n);for (n=0;n3;n+)for (m=0;m4;m+)printf(%5d,bn );printf(n);printf(n);printf(所得数组:n);for (n=0;n3;n+)for (m=0;m4;m+)printf(%5d,sn );printf(n);50.将一种4*3的矩阵转置,并将原矩阵和求出的转置矩阵按原矩阵的形式分别输出。#include void main()int a43,b43,s43,n,m;printf(输入数组A:n)

42、;for (n=0;n4;n+)printf(第%d行n,n+1);for (m=0;m3;m+) scanf (%d,&an );printf(输入数组B:n);for (n=0;n4;n+)printf(第%d行n,n+1);for (m=0;m3;m+)scanf (%d,&bn );for (n=0;n4;n+)for (m=0;m3;m+)sn =an +bn ;printf(原数组A:n);for (n=0;n4;n+)for (m=0;m3;m+)printf(%5d,an );printf(n);printf(n);printf(原数组B:n);for (n=0;n4;n+)f

43、or (m=0;m3;m+)printf(%5d,bn );printf(n);printf(n);printf(所得数组:n);for (n=0;n4;n+)for (m=0;m3;m+)printf(%5d,sn );printf(n);51.输入一种字符,如果它是一种大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其他字符不变,请编程。#include void main()char ch;ch=getchar();if (ch=65)&(ch=97)&(ch=122) ch=ch-32;printf(%cn,ch);52.已知x和y存在下列相应关系,规定对输入的每个

44、x值,计算出y值,请编程。 y=x*(x+2),2x=10; y=2x, -1x=2; y=x-1, x=-1.#include void main()float x,y;printf(输入X值:);scanf(%f,&x);if (x=-1) y=x-1;printf (Y=%6.2fn,y);else if (x=2) y=2*x;printf (Y=%6.2fn,y);else if (x=10) y=x*(x+2);printf (Y=%6.2fn,y);else printf(取值范畴出错n);53.已知x和y存在下列相应关系,规定对输入的每个x值,计算出y值,请编程。 y=0,x=a|x=-a; y=sqrt(a*a-x*x), -axa; y=x,xa.#include #include void main()float x,y,a;printf(输入A值A0:);scanf(%f,&a);printf(输入X值:);scanf(%f,&x);if (x=a)|(x=-a) y=0;else if (x-a) y=sqrt(a*a-x*x);else if (xa) y=x;printf (

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!