网站大量收购独家精品文档,联系QQ:2885784924

C程序设计简明教程(第二版) 王晓东及源代码 课件 第7章 函数与编译预处理新.ppt

C程序设计简明教程(第二版) 王晓东及源代码 课件 第7章 函数与编译预处理新.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 函数与编译预处理 7.1. 模块化程序设计与函数 7.2. 函数的定义与调用 7.3. 函数的递归调用 7.4. 变量的作用域与存储方式 7.5. 编译预处理 7.6. 函数设计举例 7.1 模块化程序设计与函数 7.1.1 模块与函数 1.功能模块 求解较小问题的算法和程序称作“功能模块”, 各功能模块可以先单独设计,然后将求解所有子问题的模块组合成求解原问题的程序。 “自顶向下”的模块化程序设计方法: 将一个大问题分解成多个解决小问题的模块的设计思想。 2.由功能模块组成程序的结构图: 【例7-1】 求: 【例7-2】 输入年月日,计算出该日为该年的第几天。 程序实现: (1)判断闰年。 int leap(int year) { int lp; lp=(year%4==0year%100!=0||year%400==0)?1:0; return lp; } (2)求某月的天数。 int month_days(int year,int month) { int ds,d; switch(month) {case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 2:d=leap(year)?29:28;break; default:d=30; } return d; } (3)求天数和: int days(int year,int month,int day) { int i,ds=0; for (i=1;imonth;i++) ds=ds+month_days(year,i); ds=ds+day; return ds; } (4) 在主函数中分别调用三个函数。 void main() { int year,month,day,t_day; printf(Input year-month-day:\n); scanf(%d-%d-%d,year,month,day); t_day=days(year,month,day); printf(%d-%d-%d is %dth day of the year!\n,year, month,day,t_day); } 注意: 在完整的程序中,前三个函数应放在main( )函数之前。 7.1.2 模块设计三个原则 模块独立。 每个模块完成一个功能独立的子功能 模块之间的关系力求简单 使用独立变量 模块规模适当 分解模块要注意层次 对问题抽象化 设计时细化 7.2 函数的定义与调用 7.2.1 标准库函数 定义在不同的头文件中 用户使用时,必须用#include“头文件”把相应的头文件包含到程序中来。 #include math.h /* 包含math.h头文件 */ #include stdio.h /* 包含 stdio.h 头文件 */ main( ) { double a, b; scanf (“%f “,a); /*调用输入函数,输入变量a的值*/ b = sin (a); /*调用sin函数,求sin (a) 的值*/ printf( “%6.4f”, b); } /*调用输出函数,输出变量b的值*/ 7.2.2 用户自定义函数 函数类型 无参函数 函数的定义无参数说明 有参函数 定义的参数有一个或一个以上的参数 空函数 当定义的函数既无参数也无执行语句。 空函数被调用时,什么也不做立即返回其调用函数。 2. 函数定义 方式1 函数返回值类型名 函数名(参数列表) 参数类型说明 { 局部变量说明; 语句序列; } 方式2 函数返回值类型名 函数名(参数类型说明及参数列表) { 局部变量说明; 语句序列; } 【例7-3】定义符号函数sign。 int sign(x) /*函数返回值类型未说明,默认为int,建议给出函数类型说明*/ int x; /*形式参数说明*/ {int y; /*函数体局部变量*/ y=x0?1:(x==0?0:-1); return y; /*返回函数值*/ } 注意:C语言函数分为两大部分: 函数的说明部分 函数体部分。 函数各部分作用 1)函数的说明部分 函数说明部分说明函数的类型, 函数名, 参数表及参数类型。 (1)函数的类型说明 函数的类型即函数的返回值类型。若函数不提供返回

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档