五、C语言模块化设计与函数_习题解答_第1页
五、C语言模块化设计与函数_习题解答_第2页
五、C语言模块化设计与函数_习题解答_第3页
五、C语言模块化设计与函数_习题解答_第4页
五、C语言模块化设计与函数_习题解答_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言模块化设计与函数,2,课后练习,1、已知四边形边长a、b、c、d及一条对角线长e,求四边形面积。2、用字符*打印一个梯形。3、用函数求m个元素中取n个的组合。公式:定义函数:main:实现I/O、调用comp函数;comp:按公式计算、调用阶乘函数fact;fact:阶乘函数;4、输入132767之间的正整数,用递归方式分离各数符并反序输出。如:2466425、给出年、月、日,问是星期几(星期日六用06表示)。6、用递归法将一个整数转换成字符串输出。7、有一篇三行文字的文章,每行最多80个字符,编写函数,由实参传递字符串,分别统计文章中大写字母、小写字母、数字、空格及其它字符的个数。分析:自定义函数需返回多个统计结果,可采用一个专门的数组存放统计结果,并将其作为函数参数,在被调函数中计数。用自定义函数判断一个数是否素数;在主函数main中输出100200之间的全部素数。,a,b,c,d,e,3,函数调用举例例:已知四边形边长a、b、c、d及一条对角线长e,求四边形面积。,a,b,c,d,e,分析:可分解为求任意三角形面积的问题。将求三角形面积的功能独立出来,用自定义函数实现。,4,#includemath.hfloatss(floata,floatb,floatc)/*函数定义*/floatt,s;t=(a+b+c)/2.0;s=sqrt(t*(t-a)*(t-b)*(t-c);return(s);main(),5,main()floata,b,c,d,e,area;inti,j;floatss(float,float,float);/*函数声明*/printf(nInputa,b,c,d,e:);scanf(%f,%f,%f,%f,%f,YS,6,例:用字符*打印一个梯形。main()voidpstar(int);inti,n;printf(Enterlinenumber:);scanf(%d,*5个*7个*9个*11个*13个,YS,7,6.5函数的嵌套调用在一个函数被调用的过程中,又发生了对另一个函数的调用,这种现象称为函数嵌套调用;嵌套的层次可是多层的。例:用函数求m个元素中取n个的组合。公式:定义函数:main:实现I/O、调用comp函数;comp:按公式计算、调用阶乘函数fact;fact:阶乘函数;,8,调用关系:maincompfact,main()intn,m;longc;longcomp(int,int);/*原形声明*/printf(Enterm,n:);scanf(%d,%d,9,main()longcomp(intm,intn)longs;longfact(int);/*声明函数*/s=fact(m)/(fact(n)*fact(m-n);/*嵌套调用*/return(s);longfact(intx)inti;longf=1;for(i=1;i=x;i+)f=f*i;return(f);,YS,10,例:输入132767之间的正整数,用递归方式分离各数符并反序输出。如:246642voidfun(intn)intd;d=n%10;/*取n当前的个位*/printf(%d,d);n=n/10;if(n!=0)fun(n);/*条件成立递归调用*/main()intn;doprintf(nEntern(1-32767):);scanf(%d,11,例:给出年、月、日,问是星期几(星期日六用06表示)。intisleap(inty)/*是闰年返回1,否则为0*/return(y%4=0,12,intlastyear(inty)/*返回y-1年12月31日是星期几*/inti,n=y-1;/*每年365天为52个星期多1天*/for(i=1;iy;i+)n+=isleap(i);/*加上闰年天数*/returnn%7;main()inty,m,d,n,i;printf(nInputdate(yyyy-mm-dd):);scanf(%d-%d-%d,13,【例】用递归法将一个整数转换成字符串输出。#includestdio.hcharch12=0;/*定义全局数组*/main()voidinttostr(long);longnum;scanf(%ld,课堂练习,14,【例】有一篇三行文字的文章,每行最多80个字符,编写函数,由实参传递字符串,分别统计文章中大写字母、小写字母、数字、空格及其它字符的个数。分析:自定义函数需返回多个统计结果,可采用一个专门的数组存放统计结果,并将其作为函数参数,在被调函数中计数。,课堂练习,15,#includestdio.hmain()charstr380;staticintc5,i;/*c各元素为0*/voidcount(char80,int);for(i=0;i=2;i+)/*输入三行字串*/gets(stri);count(str,c);/*实参:两个数组指针*/for(i=0;i=4;i+)/*输出统计结果*/printf(%5d,ci);voidcount(chars380,intc5),课堂练习,16,main();count(str,c);voidcount(chars380,intc5)inti,j;chart;/*用临时变量t提高效率*/for(i=0;i=A,课堂练习,17,【例】用自定义函数判断一个数是否素数;在主函数main中输出100200之间的全部素数。#includemath.hmain()intnum,m,count=0,prime(int);for(num=101;num=199;num=num+2)m=prime(num);if(m)printf(%5d,num);count+;if(count%10=0)printf(n);,课堂练习,18,main();for(num=101;num=199;num=num+2)m=prime

温馨提示

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

评论

0/150

提交评论