100道经典的C语言编程题及解答.docx

上传人:无*** 文档编号:68361811 上传时间:2022-12-27 格式:DOCX 页数:125 大小:47.43KB
返回 下载 相关 举报
100道经典的C语言编程题及解答.docx_第1页
第1页 / 共125页
100道经典的C语言编程题及解答.docx_第2页
第2页 / 共125页
点击查看更多>>
资源描述

《100道经典的C语言编程题及解答.docx》由会员分享,可在线阅读,更多相关《100道经典的C语言编程题及解答.docx(125页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 .输入两个正整数,m和n,求其最大公约数和最小公倍数。#includevoid main()(int hcf(intjnt);int lcd(int,int,int);int u,v,h,l;printf(Please input 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)!=O)int lcd(int u,int v,i

2、nt h)(return(u*v/h);2 .输入一行字符,分别统计出其中字母、空格、数字和其他字符的个 数。#includeint letter,digit,space,others;void main()(void count(char);char text80;printf(Please input string:n);gets(text);printf(string:n);puts(text);letter=0;digit=O;space=0;count(text);printf(letter:%d,digit:%d,space:%d,others:%dn”, letter,digit

3、,space,other s);void count(char str)(int i;for(i=0;str!=0;i+)if(str=a&str=A&str=0&str=0&str=0&x=9)printf(%dn,x);else(printf(%d,x%10);invertLonglnt(x/10);5 .从键盘上输入若干学生的门课成绩,统计并输出最高成绩和最低 成绩及相应的序号,当输入负数时结束输入。6 .从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数 时结束输入。将结果输出。7 .求1!+2!+3!+20!,将结果输出。void main() float s=O,t=l;i

4、nt n;for(n=l;n=20;n+)(t=t*n;s=s+t;printf(l!+2!+3!+20!=%en,s);8 .打印以下图案:* * *#include void 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,picturej);printf(n);9 .打印以下图案:#include void main() int ij;printf(The picture is:n);char picture44=*,*

5、,*;for(i=0;i=3;i+) for(j=0;j=3;j+) printf(%c,picture j);printf(n);)10 .求下列试子的值:1-1/2+1/3-1/4+1/99-1/100J将结果输出。#includevoid main。(float sum=1.0,t,s=l;int i;for(i=l;i=100;i+)(t=s/i;sum=sum+t;s=-s;)printf(l-l/2+l/3-l/4+l/99-l/100=%5.4fn,sum);)11 .打印出10999之间的所有水仙花数。#include void main()int i,j,k,n;printf

6、(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=l,sn=0,tn=0;printf(a,n=:);scanf(%d,%d,&a,&n);while(i=n)sn=sn+tn;a=a*10;+i;printf(a+aa+aaa+.+aa.a=%dn,sn);13 .打印以下图案:#incl

7、udevoid main()(char a7=*;int i,j,k;char space=;printf(The picture is:);for(i=0;i4;i+)(printf(n);printf();for(j=l;j=i;j+)printf(%c,space);for(k=0;k7;k+)printf(%c,ak);printf(n);14 .打印以下图案:112112321123432115 .打印以下图案:123432112321121116 .编写个统计学生成绩程序,完成以下功能:输入4个学生的2 门课成绩:求出全班的总平均分,将结果输出。#include#define N

8、4 struct studentchar num3;char name4;float score2;float avr;stuN;void main()(int ij;float sum,average;for(i=0;i(printff input scores of student%d:n,i+l);printf(name:);scanf(%s,stu.name);for(j=0;j2;j+)(printf(score %d:,j+l);scanf(%f,&stu.scorej);)average=O;for(i=0;i(sum=O;for(j=0;j2;j+)sum+=stu.score

9、j;stu.avr=sum/2;average+=stu.avr;)average/=N;printff Name scorel score2 averagen);for(i=0;i(printf(%5s%10s/stu.num,stu. name);for(j=0;j2;j+)printf(%9.2f,stu.score j);printf( %8.2fn,stu.avr);)printf(average=%5.2fn,average);)17 .打印以下图案:#includevoid main()(char a5=,*;int i,j,k;char space=;printf(The pi

10、cture is:);for(i=0;i5;i+)(printf(n);printf();for(j=l;j=i;j+)printf(%c,space);for(k=0;k=3)days=days+l;printf(is the %dth day in this year.n,days);int sum_day(int month,int day)(int day_tab13=O,31,28,31,3O,31,3O,31,31,3O,31,3O,31;int i;for(i=l;iday+=day_tab;return(day);int leap(int year)(int leap;leap

11、=year%4=0&year%100!=011 year%400=0;return(leap);19 .求一个3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输 出。#includevoid main()(float a33,sum=0;int ij;printf(请输入元素:、n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%f,&aj);for(i=0;i3;i+)sum=sum+a;printf(对角线之和是:%6,2fn,sum);for(i=0;i=3;i+) for(j=0;j=3;j+)printf(%5.2f;aj);printf(n);20 .求一

12、个4*3的矩阵各行元素的平均值:将原矩阵和求出的平均值 全部输出。#includevoid main()(inta43,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+=aj;printf(第d行的平均值是d”,i+l,k);printf(n);21 .求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值 全部输出。#includevoid main()(inta ,s4,i,j,k;for(i=0;i4;i+)for(j=0;j3;j+)scanf(%d

13、/(a+i)+j);for(i=0;i4;i+)(k=0;for(j=0;j3;j+)k+=aj;printf(第d行的平均值是d,i+l,k);printf(n);22 .求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值 全部输出。#includevoid main()(inta35,s3JXk;for(i=0;i3;i+)for(j=0;j5;j+) scanf(%d?*(a+i)+j);for(i=0;i3;i+)*(s+i)= *(*(a+j);for(j=l;j5;j+)if(*(s+i) *(*(a+i)+j)*(s+i)= *(*(a+i)+j);for(i=0;i3;

14、i+)(printf(Line=%d Max=%d,j,sj);printf(n);23 .求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值 全部输出。#includevoid main()(inta43,s4JXk;for(i=0;i4;i+)for(j=0;j3;j+) scanf(%dz*(a+i)+j);for(i=0;i4;i+)*(s+i)= *(*(a+i);for(j=l;j3;j+) if(*(s+i) *(*(a+i)+j) *(s+i)= *(*(a+i)+j);)for(i=0;i4;i+) printf(Row=%d Max=%d,i,s);printf(n

15、);24 .求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全 部输出。/include#define N 10#define M 10void main()(int aMN,i,j,kM,max,m,n;scanf(%d %d,&m,&n);for(i=0;ifor(j=0;jscanf(%d,*(a+i)+j);for(i=0;i(for(j=0;j(if(aj=aj+l)max=aj+l;elsek=max;for(i=0;i(if(k=ki+l)max=ki+l;elsemax=k;printf(%d,max);25.判断个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果 输

16、出。#include#define N 10void main()(intaNN,i,j,k,n;scanf(%d,&n);for(i=0;i for(j=0;jscanf(%d,&aj);for(i=0;i(for(j=i+l;j(if(aj=aj)k=l;elsek=0;if(k=O)printf(bushi);elseprintf(shin);for(i=0;ifor(j=0;jprintf(%d,aD);26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英 文大写字母、消协字母、数字、空格以及其他字符的个数。void main() int i/j,big=0/sma=0,n

17、um=0,spa=0,oth=0;char text380;for(i=0;i3;i+)(printf(请输入行%d:n,i+l);gets(text);for(j=0;j=A!&texti=a&textj=0&textj=,9,)num+;else if(textj=)spa+;elseoth+;printf(大写字母:dn,big);printf(小写字母:dn,sma);printf(数字:%dn,num);printf(空格:%dn,spa);printf(其它:dn,oth);27 .将20个整数放到一维数组中,输出该数组的最大值和最小值。#includevoid main()(in

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

19、max,a口6,m,n;printf(请输入数据:、n);for(i=l;i=15;i+) printf(a%d=,i);scanf(%d,&a);for(i=l;i=14;i+)(max=i;for(j=2;jO;printf(合并之后的字符串为:sn,strl);xiang69632008-11-12 23:42:3731 .编写个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。#include#includevoid main()(char a40,b40;int i;printf(请输入 a:n);scanf(%s,a);for(i=0;i=strlen(a

20、);i+)b=a;printf(b:%sn,b);32 .编写一个程序,找出3个字符串中的最大者,将它输出。#include#include void main() char string20;char str320;int i;for(i=0;i0)strcpy(string,strO);elsestrcpy(string,strl);if(strcmp(str2,string)0)strcpy(string,str2);printf(最大的字符串是:n%sn,string);33 .编写程序,输入任意个17之间的整数,将他们转换成对应的 英文单词。例如:1转换成Monday,7转换成Sun

21、day。#includevoid main()(int a;printf(输入个整数:n);scanf(%d,&a);if(a=l) 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) printf(Sundayn);else printf(错误、n);34 .编写程序,输入两个整数,和

22、+、-、/之中的任意个运算符, 输出计算结果。#includevoid main()(float a,b;char c;printf(请输入一个运算符:、n1);scanf(%c,&c);printf(请输入两个整数:、n);scanf(%d,%d,&a,&b);case+:printf(%fn,a+b);break;casel-:printf(%fn/a-b);break;case*:printf(%fn,a*b);break;case7:printf(%fn,a/b);break;default:printf (错误;35 .输入年号,计算这一年的2月份的天数,将结果输出。#include

23、void main()(int yearjeap;printf(请输入年份:、n1);scanf(%d,&year);if(year%4=0)(if(year%100=0)(if(year%400=0)leap=l;else leap=0;elseleap=l;elseleap=O;if(leap)printf(%d 年的 2 月有 29 天,year);elseprintf(%d 年的 2 月有 28 天,year);36 .输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计 算面积。#include#includevoid main()(float a,b,c,area;

24、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);elseprintf(The area of the triangle is:%fn,area);#include#define N 10#define M 10void main()(int i,j,k,m,n,flagl,fl

25、ag2,aNM,max,maxj;printf(输入行数 nn10:);scanf(%d,&n);printf(输入列数 mm10:);scanf(%d,&m);for(i=0;in;i+)printf(第d 行、n,i+l);for(j=0;jm;j+)scanf(%d,&aj);37 .输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,何种类型 的三角形:等腰、等边、直角、等腰直角、一般。#include#includevoid main()(float a,b,c;printf(请输入三角形边长:n);scanf(%f%f%f,&a,&bz&c);if(a-b=c)| |(b-

26、c=a)| |(c-a=b) printf(不能够成三角形、n);else if (a*a+b*b=c*c) I |(b*b+c*c=a*a)| | (c*c+a*a=b*b)if (a=b)11(b=c)11 (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(一般三角形角);38 .输入奖金数a,计算并输出税率、应缴税款和实得

27、奖金数。(用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 (a2000) r=0.08;else if (a2000) 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语句编程)#inc

28、lude void main()int a,e;float r,t,s;printf(请输入奖金数:、n1);scanf(%d,&a);e=a/500;switch(e)case 0:r=0.00;break;case l: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;defaul r=0.15;break;t=a*r;s=a-t;printf(税率:%7.2fn,r);printf(税款:%7.2fn,t);printf(实得奖金:%7.2fn,s)

29、;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

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

31、:、n);for (i=0;iN;i+)scanf(%d,&a);printf(n);for (i=0;iN-l;i+)(for (j=O;jaU+l)(t=aj;aj=aj+l;aj+l=t;printf(排序后:、n);for (i=0;iN;i+)printf(%dn,a);43 .求满足1+2+3+n500中最大的N,并求其和,编写程序实现。#include void main()(int n=0,sum=0;while(sum500)(+n;sum+=n;printf(NJ:%dn,n-l);printf(l+2+3+4+%d500n,n-l);44 .把100-200之间的不能被3

32、整除的数输出。#include void main()(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=l;n41;n+)(printf (%ldt,f(n);i+;if (i%5=0) printf(n);long f(int m)(if (m=0)return 0;if (m=l)return 1;elsereturn f(m-l)+f(m-2

33、);46 .按以下规律翻译密码: 将每个字母变成它后面的字母,例如,将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+l;printf(%c,ch);printf(n);47 .百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元, 问百元买百只鸡有几种买法。#include void mai

34、n()int a,b,c,n=O;for (a=0;a=20;a+)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=l;n21;n+)(printf (%ldt,f(n);i+;if (i%5=0) printf(n); long f(int m) if (m=0)return 0;if (m=l)return 1;elsereturn f(m-l)+f(m-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁