2022年C语言经典例题和答案 .pdf

上传人:C****o 文档编号:32499635 上传时间:2022-08-09 格式:PDF 页数:18 大小:149.65KB
返回 下载 相关 举报
2022年C语言经典例题和答案 .pdf_第1页
第1页 / 共18页
2022年C语言经典例题和答案 .pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年C语言经典例题和答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言经典例题和答案 .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、. . 作业一一、求一个任意边长的矩形面积。#include void main() int w,h,sum; scanf(%d%d,&w,&h); sum=w*h; printf(area=%dn,sum); 二、求一个任意半径的圆的面积及周长。#define PI 3.14159 #include void main() float r,area,c; scanf(%f,&r); area=PI*r*r; c=2*PI*r; printf(area=%fncircle=%fn,area,c); 三、已知: w=5, y=4, z=2, 求表达式: w*y/z 的值,并输出。#include

2、 void main() int w,y,z,r; w=5; y=4; z=2; r=w*y/z; printf(%5d,r); 作业二一、从键盘上输入三个数,求出其中的最大值,并输出。#include void main() int a,b,c,max; scanf(%d%d%d,&a,&b,&c); max=a; if(maxb) max=b; if(maxc) max=c; printf(max=%dn,max); 二、求 sin300。+sin600+cos300+cos600之和。 (注意: 30*3.14159/180)名师资料总结 - - -精品资料欢迎下载 - - - - -

3、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - . . #include #define PI 3.14159 #include void main() float a,b,sum; a=30*PI/180; b=60*PI/180; sum=sin(a)+sin(b)+cos(a)+cos(60); printf(total=%fn,sum); 三、比较两个数的大小。如果x 大于 y,则输出: xy,否则输出: xy。#include void main() int x,y; scan

4、f(%d,%d,&x,&y); if(xy) printf(xyn); else printf(xyn); 作业三一、输入a、b、 c 三个值,按从小到大排序输出。#include void main() int a,b,c,t; scanf(%d%d%d,&a,&b,&c); if(ab) t=b; b=a; a=t; if(ac) t=a; a=c; c=t; if(bc) t=b;b=c;c=t; printf(%3d%3d%3dn,a,b,c); . 二、求自然数110 之和。#include void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - -

5、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - . . int i,sum; i=1; sum=0; while(i=10) sum=sum+i; i+; printf(sum=%dn,sum); 三、输入10 个整数,统计出正数之和以及负数之和。(求奇数之和以及偶数之和)#include void main() int sum1=0,sum2=0,i,x; i=1; while(i=10) scanf(%d,&x); if(x%2=0) sum1=sum1+x; else sum2=sum2

6、+x; i+; printf(sum1=%dnsum2=%dn,sum1,sum2); 作业四一、输入一个06 的整数,转换成星期输出。#include main() int a; scanf(%d,&a); switch(a) case 0: printf(Sunday);break; case 1: printf(Monday);break; case 2: printf(Tuesday);break; case 3: printf(Wednesday);break; case 4: printf(Thursday);break; case 5: printf(Friday);break;

7、 case 6: printf(saturday);break; default: printf(I am sorry.You are wrong.n); . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - . . 二、输入一个整数,将各位数字反转后输出。如:输入365,则输出 显示 为 563。#include void main() int x,r; scanf(%d,&x); printf(conver is:); wh

8、ile(x!=0) r=x%10; printf(%d,r); x=x/10; printf(n); 三、输入一个整数,求出它的所有因子。#include void main() int x,i; scanf(%d,&x); for(i=1;i=x;i+) if(x%i=0) printf(%3d,i); 作业五一、求 100 200 之间的素数。#include #include void main() int j=0,x,n,i; for(x=100;x=200;x+) n=sqrt(x); for(i=2;in) printf(%5d,x); j+; 名师资料总结 - - -精品资料欢迎

9、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - . . if(j%5=0)printf(n); 二、编程输出三角形的99 乘法表。#include void main() int i,j; for(i=1;i10;i+) for(j=1;j=i;j+) printf(%d*%d=%d ,i,j,i*j); printf(n); 三、求任意二个数的最大公约数。#include main() int a,b,m,n,q; scanf(%d%d,&m,&n); a=m

10、; b=n; if(ab) int z; z=a; a=b; b=z; do q=b%a; b=a;a=q; while(q!=0); printf(%dn,b); 作业六一、利用循环语句求1217151311n(直到第100 项的和)。#include void main() int i,t=1; float s=1,p=0,n=1; for(i=1;i=100;i+) p=p+s; n=n+2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - -

11、 - - - - - . . t=-t; s=t/n; printf(%fn,p); 二、编写求 S=51nn!。#include void main() int x,y=0,n,i; for(n=1;n=5;n+) x=1; for(i=1;i=n;i+) x=x*i; y=y+x; printf(%dn,y); 三、利用公式求 cosx 的近似值(精度为10-6):)!2()1(! 6! 4! 21cos20642nxxxxxnnn#include #include void main() float n=1,t=1,pi=0,s=1,x,i=1; scanf(%f,&x); while(

12、fabs(t)=1e-6) pi+=t; n=n*i*(i+1); s=-s*x*x; i+; t=s/n; printf(%f,pi); 作业七一、用选择法对10 个整数排序(由大到小)。#include void main(void) int a10,i,j,t; for(i=0;i10;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - . . scanf(%d,&ai); for(i=0;i9;i+) for(j=

13、0;jaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i10;i+) printf(%6d,ai); printf(n); 二、输入 10 个学生的一门课成绩,用一维数组存放其成绩,统计并输出不及格人数及其百分比。#include void main(void) int i,count=0; float score10,percent; for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) if(scorei60) count+; percent=(float)count/10; printf(%d,%5.1f,count,pe

14、rcent); 三、编程实现N阶方阵转置。#include void main() int a33,b33,i,j; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j3;j+) bji=aij; printf(n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%4d,bij); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 1

15、8 页 - - - - - - - - - . . 作业八一、把输入的一个字符串按逆序重新排序其字符,并输出。#include #include void main() char a80,k; int i,j; gets(a); for(i=0,j=strlen(a)-1;ij;i+,j-) k=ai; ai=aj; aj=k; puts(a); 二、从键盘输入一个字符串。要求分别统计出其中英文大写字母、小写字母、 数字、空格、以及其它字符的个数#include void main() int i,a=0,b=0,c=0,d=0,e=0; char q20; gets(q); for(i=0;

16、qi!=0;i+) if(qi=0&qi=a&qi=A&qi=Z) c+; else if(qi= ) d+; else e+; printf(%3d%4d%3d%3d%3d,a,b,c,d,e); 三、输入五个英文单词,请找出它们之中按字典排序法排在最前的一个词。#include #include void main() char a530,b30; int i,j,k; for(i=0;i5;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - -

17、 - - - - - - . . gets(ai); for(i=0;i5;i+) k=i;strcpy(b,ai); for(j=i+1;j5;j+) if(strcmp(aj,b)0) k=j; strcpy(b,aj); if(k!=i) strcpy(b,ai); strcpy(ai,ak); strcpy(ak,b); puts(ai); printf(n); 作业九一、编写一函数,将字符串中的小写字母转换为大写字母,主函数输入字符串并输出结果。#include char change (char a) int i; for(i=0;ai!=0;i+) if(ai=a&ai=z) a

18、i=ai-32; void main() char b80; gets(b); change(b); puts(b); 二、编写一函数求N! 。在主函数中输入N,调用函数求N! ,输出结果。#include int sum(int n) int i,pi=1; for(i=1;i=n;i+) pi=pi*i; return(pi); void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - . . int p=0

19、,n; scanf(%d,&n); p=sum(n); printf(%dn,p); 三、编写一个函数,求二维数组所有元素的和,要求二维数组的行、列以及数组通过函数参数传递,并通过主函数调用求2行 3 列的数组的所有元素之和。#include int num(int a23, int n,int m) int sum=0,i,j; for(i=0;in;i+) for(j=0;jm;j+) sum=sum+aij; return(sum); void main() int a23,i,j; int p=0,n=2,m=3; for(i=0;i2;i+) for(j=0;j3;j+) scanf

20、(%d,&aij); p=num(a,n,m); printf(%d,p); 作业十一、编写程序,通过函数求6 300 以内的素数的和。#include #include void main( ) int i,sum=0; int per(int); for(i=6;i=300;i+) sum=sum+per(i); printf(SUM=%dn,sum); int per(int n) int k,i; k=sqrt(n); for(i=2;i=k+1) return n; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师

21、精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - . . else return 0; /* 8265*/ 二、求 sin300。+sin600+cos300+cos600之和。 ( 自编 sin 和 cos 函数 ) #include #include #define PI 3.14159 void main( ) float y,x30,x60; float sin1(float); float cos1(float); x30=30*PI/180; x60=60*PI/180; y=sin1(x30)+cos1(x30)+sin1(x6

22、0)+cos1(x60); printf(SUM=%fn,y); float sin1( float x) float sum=0,t=x; int i=1,f=1; do sum=sum+t; i=i+2; f=-f; t=t*f*x*x/(i*(i-1); while(fabs(t) 1e-6); return sum; float cos1(float x) float sum=0,t=1; int i=0,f=1; do sum=sum+t; i=i+2; f=-f; t=t*f*x*x/(i*(i-1); while(fabs(t)1e-6); return sum; /*SUM=2

23、.608201*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - . . 三 、编写函数,求级数S=1+2+3+.n ,并在主函数中求:)7654321()654321 ()54321()4321 ()321(y#include int f(int); void main( ) float s; s=(float)(f(3)+f(4)+f(5)/(f(5)+f(6)+f(7); printf(SUM=%fn,s); int

24、 f(int a) int sum=0,i; for(i=1;i=a;i+) sum=sum+i; return sum; /* SUM=0.484375*/ 作业十一一、编写一个函数,求一维数组的平均值、最大值。#include void main( ) int a5,i,max; void maxave(int w5,int *p,float *q); float ave=0; for(i=0;i5;i+) scanf(%d,&ai); maxave(a,&max,&ave); printf(MAX=%d,AVER=%fn,max,ave); void maxave(int w5,int

25、*p,float *q) int i; *p=w0; for(i=1;i5;i+) if(*pwi) *p=wi; for(i=0;i5;i+) *q=*q+wi; *q=*q/5; 二、输入10 个数,编写一个函数,按降序对其排序,统计其中大于平均值的数的个数。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - . . int sort(int w,int n); void main( ) int i,a10

26、,count=0; for(i=0;i10;i+) scanf(%d,&ai); count=sort(a,10); for(i=0;i10;i+) printf(%3d,ai); printf(nCOUNT=%dn,count); int sort(int w,int n) int i,j,t,c=0; float av=0; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(wiwj) t=wi; wi=wj; wj=t; for(i=0;in;i+) av=av+wi; av/=10; for(i=0;iav) c+; return c; 三、编写一个函数,求N阶

27、二维矩阵的主和辅对角线元素之和。#include #define N 3 void main( ) int aNN,i,j,sum,sun; for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,&aij); for(i=0;iN;i+) for(j=0;jN;j+) printf(%3d,aij); printf(n); sum=zdj(a,N); sun=fdj(a,N); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - -

28、 - - - - - - . . printf(sum=%d,sun=%dn,sum,sun); int zdj(int cN,int n) int i,s=0; for(i=0;in;i+) s+=cii; return s; int fdj(int dN,int n) int i,j,s=0; for(i=0;in;i+) for(j=0;jn;j+) if(i+j=n-1) s+=dij; return s; 作业十二一、用指针的方法,把输入的一个字符串按逆序重新排序其字符,并输出。#include #include void main( ) char w20,ch,*b,*e,*s;

29、int i; s=b=w; gets(w); i=strlen(w); e=s+i-1; for(;be;b+,e-) ch=*b; *b=*e; *e=ch; puts(s); 二、用指针的方法,将键盘输入的两个字符串连接起来形成一个新字符串。#include #include void main( ) char a30,b20,*p,*q,*s; int i,j; p=s=a; q=b; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - -

30、- - - - . . gets(p); gets(q); i=strlen(p); p=p+i; while(*p+=*q+) ; puts(s); 三、用指针的方法,将键盘上输入的一串数值字符串转换为数值输出。如输入: -132 ,则输出为: -132 。#include #include void main( ) char a10,*p; int t=1,n=0; gets(a); p=a; if(*p=-) t=-t; p+; while(*p!=0) n=n*10+(*p-0); p+; n=n*t; printf(%dn,n); 作业十三一、通过函数统计某字符串中,英文单词的个数。

31、(参考 p69)#include #define YES 1 #define NO 0 void main() int nl,nw,nc,inword; char c; inword=NO; nl=nw=nc=0; while(c=getchar()!=*) +nc; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - . . if(c=n) +nl; if(c= | c=t | c=n) inword=NO; else if(

32、inword=NO) inword=YES; +nw; nl+; nc+; printf(%dt%dt%dn,nl,nw,nc); 二、在主函数中初始化一个3 行 4 列的矩阵并将每个元素都输出,然后调用子函数,分别计算每一行的元素之和,将和直接存放在每行的第一个元素中,返回主函数之后输出各行元素的和。#include void main() int a34,i,j; void sum(int w4,int n,int m); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j4;j+) printf(%

33、3d,aij); printf(n); sum(a,3,4); for(i=0;i3;i+) printf(%3d,ai0); printf(n); void sum(int w4,int n,int m) int i,j; for(i=0;in;i+) for(j=1;jm;j+) wi0+=wij; 三、己知有若干个学生的数据(包括学号、姓名和一门课程的成绩)。请编程实现:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - -

34、. . 1 求课程的平均成绩,输出低于平均成绩的同学的学号、姓名及成绩;2 找出学生中的成绩最高者,输出该学生的学号、姓名及成绩;3 按成绩从高到低排序并输出。#include struct student int num; char name8; float score; ; float average(struct student w,int n) float av=0; int i; for(i=0;in;i+) av=av+wi.score; av=av/n; return av; int mmax(struct student w,int n) int i, maxi=0; floa

35、t max=w0.score; for(i=0;imax) max=wi.score; maxi=i; return maxi; void sort(struct student w,int n) int i,j,k; struct student t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(wk.scorewj.score)k=j; if(k!=i) t=wi; wi=wk; wk=t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

36、17 页,共 18 页 - - - - - - - - - . . void main() struct student stu5=11,aa,80,22,bb,90,33,cc,70,44,dd,80,55,ee, 60; int i,maxi; float av; av=average(stu,5); for(i=0;i5;i+) if(stui.scoreav) printf(%d %s %fn,stui.num,stui.name,stui.score); maxi=mmax(stu,5); printf(%d %s %fn,stumaxi.num,stumaxi.name,stumaxi.score); sort(stu,5); for(i=0;i5;i+) printf(%d %s %fn,stui.num,stui.name,stui.score); 欢迎您的光临,Word 文档下载后可修改编辑.双击可删除页眉页脚. 谢谢!你的意见是我进步的动力,希望您提出您宝贵的意见!让我们共同学习共同进步!学无止境. 更上一层楼。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

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

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