版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
------------------------------------------------------------------------C语言经典例题及答案作业一求一个任意边长的矩形面积。#include<stdio.h>voidmain(){intw,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}求一个任意半径的圆的面积及周长。#definePI3.14159#include<stdio.h>voidmain(){floatr,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f\ncircle=%f\n",area,c);}已知:w=5,y=4,z=2,求表达式:w*y/z的值,并输出。##include<stdio.h>voidmain(){intw,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}作业二从键盘上输入三个数,求出其中的最大值,并输出。#include<stdio.h>voidmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("max=%d\n",max);}求sin300。+sin600+cos300+cos600之和。(注意:30*3.14159/180)#include<stdio.h>#definePI3.14159#include<math.h>voidmain(){floata,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f\n",sum);}比较两个数的大小。如果x大于y,则输出:x>y,否则输出:x<y。#include<stdio.h>voidmain(){intx,y;scanf("%d,%d",&x,&y);if(x>y)printf("x>y\n");elseprintf("x<y\n");}作业三输入a、b、c三个值,按从小到大排序输出。#include<stdio.h>voidmain(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){t=b;b=a;a=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%3d%3d%3d\n",a,b,c);}.求自然数1~10之和。。#include<stdio.h>voidmain(){inti,sum;i=1;sum=0;while(i<=10){ sum=sum+i; i++;}printf("sum=%d\n",sum);}输入10个整数,统计出正数之和以及负数之和。(求奇数之和以及偶数之和)#include<stdio.h>voidmain(){intsum1=0,sum2=0,i,x;i=1;while(i<=10){scanf("%d",&x);if(x%2==0)sum1=sum1+x;elsesum2=sum2+x;i++;}printf("sum1=%d\nsum2=%d\n",sum1,sum2);}作业四输入一个0~6的整数,转换成星期输出。#include<stdio.h>main(){inta;scanf("%d",&a);switch(a){case0:printf("Sunday");break;case1:printf("Monday");break;case2:printf("Tuesday");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5:printf("Friday");break;case6:printf("saturday");break;default:printf("Iamsorry.Youarewrong.\n");}}.输入一个整数,将各位数字反转后输出。如:输入365,则输出显示为563。#include<stdio.h>voidmain(){intx,r;scanf("%d",&x);printf("converis:");while(x!=0){r=x%10;printf("%d",r);x=x/10;}printf("\n");}输入一个整数,求出它的所有因子。#include<stdio.h>voidmain(){ intx,i; scanf("%d",&x); for(i=1;i<=x;i++) if(x%i==0) printf("%3d",i);}作业五求100~200之间的素数。#include<stdio.h>#include<math.h>voidmain(){intj=0,x,n,i;for(x=100;x<=200;x++){n=sqrt(x);for(i=2;i<=n;i++){if(x%i==0)break;}if(i>n){printf("%5d",x);j++;}if(j%5==0)printf("\n");}}编程输出三角形的9×9乘法表。#include<stdio.h>voidmain(){ inti,j; for(i=1;i<10;i++) { for(j=1;j<=i;j++) printf("%d*%d=%d",i,j,i*j); printf("\n"); }}求任意二个数的最大公约数。#include<stdio.h>main(){inta,b,m,n,q;scanf("%d%d",&m,&n);a=m;b=n;if(a>b){intz;z=a;a=b;b=z;}do{q=b%a;b=a;a=q;}while(q!=0);printf("%d\n",b);}作业六利用循环语句求(直到第100项的和)。#include<stdio.h>voidmain(){inti,t=1;floats=1,p=0,n=1;for(i=1;i<=100;i++){p=p+s;n=n+2;t=-t;s=t/n;}printf("%f\n",p);}编写求S=。#include<stdio.h>voidmain(){intx,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("%d\n",y);}利用公式求cosx的近似值(精度为10-6):#include<stdio.h>#include<math.h>voidmain(){floatn=1,t=1,pi=0,s=1,x,i=1;scanf("%f",&x);while(fabs(t)>=1e-6){pi+=t;n=n*i*(i+1);s=-s*x*x;i++;t=s/n;}printf("%f",pi);}作业七用选择法对10个整数排序(由大到小)。#include<stdio.h>voidmain(void){inta[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%6d",a[i]);printf("\n");}输入10个学生的一门课成绩,用一维数组存放其成绩,统计并输出不及格人数及其百分比。#include<stdio.h>voidmain(void){inti,count=0;floatscore[10],percent;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++) if(score[i]<60) count++;percent=(float)count/10;printf("%d,%5.1f",count,percent);}编程实现N阶方阵转置。#include<stdio.h>voidmain(){inta[3][3],b[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=a[i][j];printf("\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%4d",b[i][j]);printf("\n");}}作业八把输入的一个字符串按逆序重新排序其字符,并输出。#include<stdio.h>#include<string.h>voidmain(){chara[80],k;inti,j;gets(a);for(i=0,j=strlen(a)-1;i<j;i++,j--){k=a[i];a[i]=a[j];a[j]=k;}puts(a);}从键盘输入一个字符串。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其它字符的个数#include<stdio.h>voidmain(){inti,a=0,b=0,c=0,d=0,e=0;charq[20];gets(q);for(i=0;q[i]!='\0';i++){if(q[i]>='0'&&q[i]<='9') a++;elseif(q[i]>='a'&&q[i]<='z') b++;elseif(q[i]>='A'&&q[i]<='Z') c++;elseif(q[i]=='') d++;elsee++;}printf("%3d%4d%3d%3d%3d",a,b,c,d,e);}输入五个英文单词,请找出它们之中按字典排序法排在最前的一个词。#include<stdio.h>#include<string.h>voidmain(){chara[5][30],b[30];inti,j,k;for(i=0;i<5;i++)gets(a[i]);for(i=0;i<5;i++){k=i;strcpy(b,a[i]);for(j=i+1;j<5;j++)if(strcmp(a[j],b)<0){k=j; strcpy(b,a[j]);}if(k!=i){strcpy(b,a[i]); strcpy(a[i],a[k]); strcpy(a[k],b);}puts(a[i]);}printf("\n");}作业九一、编写一函数,将字符串中的小写字母转换为大写字母,主函数输入字符串并输出结果。#include<stdio.h>charchange(chara[]){inti;for(i=0;a[i]!='\0';i++)if(a[i]>='a'&&a[i]<='z')a[i]=a[i]-32;}voidmain(){charb[80];gets(b);change(b);puts(b);}二、编写一函数求N!。在主函数中输入N,调用函数求N!,输出结果。#include<stdio.h>intsum(intn){inti,pi=1;for(i=1;i<=n;i++)pi=pi*i;return(pi);}voidmain(){intp=0,n;scanf("%d",&n);p=sum(n);printf("%d\n",p);}三、编写一个函数,求二维数组所有元素的和,要求二维数组的行、列以及数组通过函数参数传递,并通过主函数调用求2行3列的数组的所有元素之和。#include<stdio.h>intnum(inta[2][3],intn,intm){intsum=0,i,j;for(i=0;i<n;i++)for(j=0;j<m;j++)sum=sum+a[i][j];return(sum);}voidmain(){inta[2][3],i,j;intp=0,n=2,m=3;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);p=num(a,n,m);printf("%d",p);}作业十一、编写程序,通过函数求6–300以内的素数的和。#include<stdio.h>#include<math.h>voidmain(){inti,sum=0;intper(int);for(i=6;i<=300;i++)sum=sum+per(i);printf("SUM=%d\n",sum);}intper(intn){intk,i;k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1)returnn;elsereturn0;}/*8265*/二、求sin300。+sin600+cos300+cos600之和。(自编sin和cos函数)#include<stdio.h>#include<math.h>#definePI3.14159voidmain(){floaty,x30,x60;floatsin1(float);floatcos1(float);x30=30*PI/180;x60=60*PI/180;y=sin1(x30)+cos1(x30)+sin1(x60)+cos1(x60);printf("SUM=%f\n",y);}floatsin1(floatx){floatsum=0,t=x;inti=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);returnsum;}floatcos1(floatx){floatsum=0,t=1;inti=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);returnsum;}/*SUM=2.608201*/三、编写函数,求级数S=1+2+3+...n,并在主函数中求:#include<stdio.h>intf(int);voidmain(){floats;s=(float)(f(3)+f(4)+f(5))/(f(5)+f(6)+f(7));printf("SUM=%f\n",s);}intf(inta){intsum=0,i;for(i=1;i<=a;i++)sum=sum+i;returnsum;}/*SUM=0.484375*/作业十一编写一个函数,求一维数组的平均值、最大值。#include<stdio.h>voidmain(){inta[5],i,max;voidmaxave(intw[5],int*p,float*q);floatave=0;for(i=0;i<5;i++)scanf("%d",&a[i]);maxave(a,&max,&ave);printf("MAX=%d,AVER=%f\n",max,ave);}voidmaxave(intw[5],int*p,float*q){inti;*p=w[0];for(i=1;i<5;i++)if(*p<w[i])*p=w[i];for(i=0;i<5;i++)*q=*q+w[i];*q=*q/5;}输入10个数,编写一个函数,按降序对其排序,统计其中大于平均值的数的个数。#include<stdio.h>intsort(intw[],intn);voidmain(){inti,a[10],count=0;for(i=0;i<10;i++)scanf("%d",&a[i]);count=sort(a,10);for(i=0;i<10;i++)printf("%3d",a[i]);printf("\nCOUNT=%d\n",count);}intsort(intw[],intn){inti,j,t,c=0;floatav=0;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(w[i]<w[j]){t=w[i]; w[i]=w[j]; w[j]=t; }for(i=0;i<n;i++)av=av+w[i];av/=10;for(i=0;i<n;i++)if(w[i]>av)c++;returnc;}编写一个函数,求N阶二维矩阵的主和辅对角线元素之和。#include<stdio.h>#defineN3voidmain(){inta[N][N],i,j,sum,sun;for(i=0;i<N;i++)for(j=0;j<N;j++) scanf("%d",&a[i][j]);for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3d",a[i][j]);printf("\n");}sum=zdj(a,N);sun=fdj(a,N);printf("sum=%d,sun=%d\n",sum,sun);}intzdj(intc[][N],intn){inti,s=0;for(i=0;i<n;i++)s+=c[i][i];returns;}intfdj(intd[][N],intn){inti,j,s=0;for(i=0;i<n;i++)for(j=0;j<n;j++)if(i+j==n-1)s+=d[i][j];returns;}作业十二用指针的方法,把输入的一个字符串按逆序重新排序其字符,并输出。#include<stdio.h>#include<string.h>voidmain(){charw[20],ch,*b,*e,*s;inti;s=b=w;gets(w);i=strlen(w);e=s+i-1;for(;b<e;b++,e--){ch=*b;*b=*e;*e=ch;}puts(s);}用指针的方法,将键盘输入的两个字符串连接起来形成一个新字符串。#include<stdio.h>#include<string.h>voidmain(){chara[30],b[20],*p,*q,*s;inti,j;p=s=a;q=b;gets(p);gets(q);i=strlen(p);p=p+i;while(*p++=*q++);puts(s);}用指针的方法,将键盘上输入的一串数值字符串转换为数值输出。如输入:‘-132’,则输出为:-132。#include<stdio.h>#include<string.h>voidmain(){chara[10],*p;intt=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("%d\n",n);} 作业十三通过函数统计某字符串中,英文单词的个数。(参考p69)#include<stdio.h>#defineYES1#defineNO0voidmain(){intnl,nw,nc,inword;charc;inword=NO;nl=nw=nc=0;while((c=getchar())!='*'){++nc;if(c=='\n') ++nl;if(c==''||c=='\t'||c=='\n') inword=NO;else if(inword==NO) {inword=YES; ++nw; }}nl++;nc++;printf("%d\t%d\t%d\n",nl,nw,nc);} 在主函数中初始化一个3行4列的矩阵并将每个元素都输出,然后调用子函数,分别计算每一行的元素之和,将和直接存放在每行的第一个元素中,返回主函数之后输出各行元素的和。#include<stdio.h>voidmain(){inta[3][4],i,j;voidsum(intw[][4],intn,intm);for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",a[i][j]);printf("\n");}sum(a,3,4);for(i=0;i<3;i++){printf("%3d",a[i][0]);printf("\n");}}voidsum(intw[][4],intn,intm){inti,j;for(i=0;i<n;i++)for(j=1;j<m;j++)w[i][0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银发旅游体验提升与服务质量方案
- 铝合金铸造产品检测与品质保证体系
- 热力回收系统优化方案
- 农村污水处理设施选址与规划方案
- 解除食堂承揽合同协议
- 老城区古典园林改造的可行性与发展方向
- 休学就业协议书模板
- 公务车维修合同范本
- 住房转让协议合同书
- 排水工程施工质量控制与管理方案
- 大学生心理健康教育(第三版)教案:第三章 学业发展 成长之基
- 基础设施建设投资合同
- 党政干部安全课课件
- 小学国学主题校本课程计划
- 老年重症患者静脉血栓栓塞症预防中国专家共识(2023)解读
- 企业管理-电信客户经理岗位职责说明书
- 客户参观接待管理
- 青少年心理健康问题现状与解决方案研究汇报
- 夜店消费行为研究-洞察分析
- 【7年级-上】2024新版教材
- 《植物资源裸子》课件
评论
0/150
提交评论