经典c语言例题.pdf
《经典c语言例题.pdf》由会员分享,可在线阅读,更多相关《经典c语言例题.pdf(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.输入两个正整数,m 和 n,求其最大公约数和最小公倍数。#includevoid main()(int hcf(int,int);/*函数声明*/int lcd(int,int,int);/*函数声明*/int u,v,h,l;printf(Please i n p u t two numbers:nM);scanf(H%d,%d,&u,&v);h=hcf(u,v);printf(MH.C.F=%dn,h);l=lcd(u,v,h);printf(LCD=%dnJ);)int hcf(int uJnt v)int t,r;if(vu)t=u;u=v;v=t;while(r=u%v)!=O)
2、u=v;v=r;return(v);Iint lcd(int u,int v,int h)return(u*v/h);12.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#includeint letter,digit,space,others;void main()(void count(char);char text8O;printfCTlease i n p u t string:n);gets(text);printf(string:n);puts(tcxt);letter=O;digit=O;space=0;others=0;count(text);printf(le
3、tter:%d,digit:%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 text8O;printfCPlease i n p u t num
4、bersAn);gets(text);printf(MNumbers:n);puts(text);digit=O;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 invertLonglnt(long);void main()unsigned long iNumber;printf(Please i n p u t a numbcr:n);scanf(%ld
5、,&iNumber);printf(The i n p u t number is:%ldn,iNumber);printfCThe inverse number is:);invertLonglnt(iNumber);(void invertLongInt(long x)if(x=0&x=9)printf(%dn,x);else(printf(%d;x%10);invertLongInt(x/10);)5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。6.从键盘上输入若干学生的 门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。7.
6、求1!+2!+3!+.+2 0!,将结果输出。#includevoid main()(float s=O,t=l;int n;fbr(n=1 ;n=20;n+)(t=t*n;s=s+t;1printf(l!+2!+3!+20!=%en,s);)8.打印以下图案:*#includevoid main()(int i,j;printf(The picture is:n);static char picture7=r V V;*),I ,,,J l ,J l ,,,,J J 5for(i=0;i=3;i+)for(j=0;j=6;j+)printf(%c,pictureij);printf(n);)
7、9.打印以卜.图 案:*#includevoid main()(int ij;printf(The picture is:n);char picture44=*,*1 11 for(i=0;i=3;i+)(for(j=0;j=3;j+)printf(%c,picture|ij);printf(n);110.求下列试子的值:1-1/2+1/3-I/4+1/99-1/100,将结果输出。#includevoid main()(float surn=1.0,t,s=l;int i;for(i=1;i=100;i+)(t=s/i;sum=sum+t;s=-s;)printfC1-1/2+1/3-1/4
8、4-.+1/99-l/100=%5.4fnH,sum);IL打印出100999之间的所有水仙花数。#includevoid main()(int i,j,k,n;printf(100999之间的所有水仙花数arc:nH);f or(n=1 0 0;n I 0(X);n+)i=n/1 0 0;j=n/1 0-i*1 0;k=n%1 0;i f(n=i*i*i+j*j*j+k*k*k)pri ntf(%d ,n);pri ntf C Xn1);)1 2.求 S n=a+a a+a a a+.+a a.a 之值、n,a 由键盘输入。#i nclud e voi d ma i n()(i nt a,n
9、,i=1 ,sn=0,tn=0;pri ntf(a,n=:);sca nf(n%d,%d ,&a,&n);wh i le(i =n)(tn=tn+a;sn=sn+tn;a=a*1 0;+i;pri ntf(,a+a a+a a a+.+a a.a=%d n,sn);I1 3.打印以下图案:*#i nclud e voi d ma i n()(ch a ri nt i,j,k;ch a r spa ce=pri ntf(HT h e pi cture i s:1 1);f or(i=0;i 4;i+)pri ntf C,Xn);pri ntf C );f or(j=l;j =i;j+)pri n
10、tf(%cn,spa ce);for(k=0;k7;k+)printf(%c,ak);)printf(nn);)14.打印以卜.图案:112112321123432115.打印以卜.图案:123432112321121116.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。#include#define N 4struct student(char num3;char name4;float score2;float avr;Istu|N|;void main()(int i,j;float sum,average;for(i=0;iN;i+)
11、/*输入数据*/(printf(i n p u t scores of student%d:n.i+l);printf(name:);scanf(n%sn,stu i.name);for(j=0;j2;j+)(printf(score%d:,j+l);scanf(%f&stui.scorelj);average=0;/*计算*/for(i=0;iN;i+)sum=O;for(j=0;j2;j+)sum+=stui.score|j;stui.avr=sum/2;average+=st u i .avr;)average/=N;printf(Name score 1 score2 averagen
12、);for(i=0;iN;i+)printf(%5s%10sstui.num,stui.name);for(j=0;j2;j+)printf(%9.2fn,stui.score|j|);printf(%8.2fn,stu|i|.avr);printf(average=%5.2fn,a verage);(17.打印以下图案:*#includevoid main()(char a5=int i,j,k;char space=printf(The picture is:);for(i=0;i5;i+)(printf(n);printfC);for(j=l;j=i;j+)printf(%c,space
13、);for(k=0;k5;k+)printf(%c,ak);)printf(n);)18.给出年、月、日,计算该日是该年的第几天。#includevoid main()int sum_day(intjnt);int lcap(int year);int year,month,day,days;printfC*i n p u t date(year,month,day):*);scanf(n%d,%d,%d,&year,&month.&day);printf(%d/%d/%d,year,month,day);days=sum_day(month,day);if(leap(year)&month=
14、3)days=days+l;printf(*is the%dth day in this year.n,days);)int sum_day(int monthjnt day)(int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31);int i;for(i=1 ;imonth;i+)day+=day_tabi;retum(day);int leap(int year)(int leap;leap=year%4=0&year%100!=0llyear%400=0;retum(leap);I19.求个3*3的整型矩阵对角线元素之和。将原矩阵和求出的
15、和输出。#includevoid main()(float a33,sum=0;int i,j;printf(请输入元素:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(n%f;&ai|j);for(i=0;i3;i+)sum=sum+a|ii;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()(inta43,s4,i,j,k;fo
16、r(i=0;i4;i+)for(j=0;j3;j+)scanf(H%d,*(a+i)+j);for(i=0;i4;i+)(k=0;for(j=0;j3;j+)k+=aij;prinif(第d行的平均值是d”,i+l,k);printf(n);21.求一个3*4的矩阵各列元素的平均值:将原矩阵和求出的平均值全部输出。#includevoid main()(int a43,s4,i,j,k;for(i=0;i4;i+)for(j=0;j3;j+)scanf(n%dn,*(a+i)+j);for(i=0;i4;i+)(k=0;forG=0;j3;j+)k+=aiUl;printf(第d行的平均值是d
17、”,i+l,k);printf(nu);)22.求 个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。#includevoid main()(int a35,s3,i,j,k;for(i=0;i3;i+)for(j=O;jv5;j+)scanf(n%dn,*(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);1for(i=0;i3;i+)printf(Line=%d Max=%d,j,sj);printf(Hn);)23.求一个4*3的矩阵各行元素的
18、最大值,将原矩阵和求出的最大值全部输出。#includevoid main()int a(43,s4jj,k;for(i=0;i4;i+)for(j=0;j3;j+)scanf(H%d,*(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 j,si);printf(nH);)24.求个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。#include#define N 10#defi
19、ne M 10void main()i nt aN.i,j,k,ma x.m,n;sca nf(n%d%d ,&m,&n);f or(i=0;i m;i+)f or(j=0;j n;j+)sca nf(%dn,*(a+i)+j);f or(i=0;i m;i+)(f or(j=0;j n-l;j+)(i f(a i j =a i U+l)ma x=a i|j+ll;e lsema x=a i j;)ki=ma x;1f or(i=0;i m-l;i+)(i f(ki =ki+l)ma x=ki+l;e lsei na x=ki;Ipri ntf(%d ma x);I2 5.判断一个N*N的矩阵
20、是否为对称矩阵,将原矩阵输出,判断结果输出。#i nclud e#d e f i ne N 1 0voi d ma i n()(i nt a N N,i j J c,n;sca nf(n%d ,&n);f or(i=0;i n;i+)f or(j=0;j n;j+)sca nf(H%d ,&a i L i);f b r(i=0;i n;i+)(f or(j=i+l;j n;j+)(i f(a i j=a j i)k=l;e lsek=0;)if(k=O)printf(bushiH);elseprintf(shin);for(i=0;in;i+)for(j=0;jn;j+)printf(-%d,
21、aij);)26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。#includevoid main()(int i,j,big=0,sma=0,num=0,spa=0,oth=0;char text38O;for(i=0;i3;i+)(printf(请输入行%d:n,i+l);gets(texti);for(j=0;j=,A&textij=a,&textij=O,&texti j=9)num+;else if(textij=)spa+;elseoth+;)1printf(“大写字母:%dn”,big);printf(小写字母:dn
22、,sma);printf(数字:dn,num);printf(空格:dn,spa);printf(其它:dn loth);27.将20个整数放到一维数组中,输出该数组的最大值和最小值。#includevoid main()int ij,min,max,a21;printf(请输入数据:n);for(i=l;i=20;i+)(printf(,a%d=,i);scanf(n%d,&ai|);for(i=l;i=19;i+)(min=i;for(j=2;jaj);a(min|=a|jl;)for(i=l;i=19;i+)max=i;for(j=2;j=I9;j+)if(amaxaj);amax=aj
23、;1printf(最大数为:%dnamax);printf(最小数为:%dnamin);I28.将15个整数放到维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。#includevoid main()(int i,j,min,max,a16,m,n;printf(请输入数据:n);fbr(i=l;i=l5;i+)(printf(a%d=,i);scanf(n%d,&ai);)for(i=l;i=14;i+)(max=i;for(j=2;j=14;j+)if(amax%dn,m,n);)29.将字符数组strl种下标为偶数的元素赋给另一字符数组s tr2,并输出strl
24、和str2o#include#include#define N 10void main()int i,n;char strlN,str2N;gets(strl);for(n=0;nN;n+)(i=2*n;str2n=strl i;)puts(strl);puts(str2):30.编写 个程序,将两个字符串连接起来,不要使用strcat函数。#includevoid main()(char strl20,str220;int i=0J=0;printf(“请输入字符串scanf(%s,strl);printf(请输入字符串2:n*);scanf(%s,str2);while(strli!=W)
25、i+;while(str2(j!=W)strli+=str2j+;strli=O;printf(合并之后的字符串为:%sn”,strl);)31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。#include#includevoid main()(char a40,b40;int i;printf(请输入 a:n);scanf(n%sn,a);for(i=0;i=strlen(a);i+)bi=ai;printf(b:%sn,b);)32.编写个程序,找出3个字符串中的最大者,将它输出。#include#includcvoid main()(char st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 语言 例题
限制150内