第6章_函数与模块化程序设计基础
C语言的教师课件,总结
第六章
第6章 模块化程序设计1. 概述:模块,函数,算法 2. 函数的定义与说明(重点) 3. 函数的调用(重点,难点递归调用) 4. 变量的作用域(重点) 5. 变量的存储属性(重点,难点) 6. 编译预处理1
C语言的教师课件,总结
第六章
6.1 概述6.1.1 模块与函数 1.功能模块 求解较小问题的算法和程序称作“功能模 块”, 各功能模块可以先单独设计,然后将求 解所有子问题的模块组合成求解原问题的程 序。 “自顶向下”的模块化程序设计方法: 将一个大问题分解成多个解决小问题的模块 的设计思想。2
C语言的教师课件,总结
第六章
2.由功能模块组成程序的结构图:主控模块
模块1
模块2
模块n
模块1_1
模块1_n
模块2_1
模块2_n
模块n_1
模块n_n
3. 函数:完成相对独立功能的程序3
C语言的教师课件,总结
第六章
【例6-1】输入年月日,计算出该日为该年的第几天。主控模块
输入
求总天数
输出
判断闰年
求某月的天数
图6-2 程序结构图
C语言的教师课件,总结
第六章
程序实现: (1)判断闰年。 int leap(int year) {int lp;lp=(year%4==0&&year%100!=0||year%400==0)?1:0;
return lp; }
C语言的教师课件,总结
第六章
(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; }6
C语言的教师课件,总结
第六章
(3)求天数和。int days(int year,int month,int day) {int i,ds=0; for (i=1;i<month;i++) ds=ds+month_days(year,i); ds=ds+day; return ds; }
C语言的教师课件,总结
第六章
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( )函数之前。8
C语言的教师课件,总结
第六章
6.1.2 模块设计三个原则 模块独立。 功能独立的子功能 模块之间的关系简单 使用独立变量
模块规模适当 分解模块要注意层次 对问题抽象化 设计时细化
C语言的教师课件,总结
第六章
6.2 函数定义与使用一、标准库函数 定义在不同的头文件中 用户使用时,必须用#include“头文件”把相应的 头文件包含到程序中来。#include <math.h> /* 包含math.h头文件 */ #include <stdio.h> /* 包含 stdio.h 头文件 */ main( ) { double a, b; scanf (“%lf “,&a); /*调用输入函数,输入变量a的值*/ b = sin (a); /*调用sin函数,求sin (a) 的值*/ printf( “%6.4lf”, b); } /*调用输出函数,输出变量b的值*/10
C语言的教师课件,总结
第六章
二、用户自定义函数1. 函数类型 无参函数 函数的定义无参数说明 有参函数 定义的参数有一个或一个以上的参数 空函数 当定义的函数既无参数也无执行语句。 空函数被调用时,什么也不做立即返回其调用函 数。
C语言的教师课件,总结
第六章
2. 函
数定义 方式1函数返回值类型名 函数名(参数列表) 参数类型说明 { 局部变量说明; 如: int max(a,b) 语句序列; } int a,b; 函数返回值类型名 函数名(参数类型说明及参数列表) { 局部变量说明; 语句序列; } 如: int max(int a,int b)12
方式2
C语言的教师课件,总结
第六章
【例6-3】定义符号函数sign。int sign(x)/*函数返回值类型未说明,默认为int,建议给出函数类型说明*/
int x; /*形式参数说明*/ {int y; /*函数体局部变量*/ y=x>0?1:(x==0?0:-1); return y; /*返回函数值*/ } 注意:C语言函数分为两大部分: 函数的说明部分 函数体部分。13
C语言的教师课件,总结
第六章
函数各部分作用1)函数的说明部分 函数说明部分说明函数的类型, 函数名, 参数表 及参数类型。(1)函数的类型说明 函数的类型即函数的返回值类型。若函数不提供返 回值,则可定义其类型为: void。 例如: void putdata(int a) (2) 函数名 函数名又称函数标识符。命名遵循C语语言标识符 的规定;函数名要反映函数完成的功能。14
C语言的教师课件,总结
第六章
(3)参数表参数表写在函数名后的( )内,由一个或多个变 量标识符及类型标识符组成。 参数表中的变量称为形式参数, 简称形参。 若函数没有形参,则称为无参函数,其后 “( )”不能省略。 参数必须指定类型。形参的类型说明有两种:方法1: int max(a,b) int a,b; 方法2: int max(int a, int b)
省略函数类型名时,C语言默认其为int型。15
C语言的教师课件,总结
第六章
2)函数体函数体包括变量定义和执行语句序列。函数所 完成的工作由函数体中一段程序实现。 函数的返回值用返回语句return返回,形式:return(表达式);或 return 表达式;
如果函数的类型与return语句的表达式的类 型不一致时, 则以函数的类型为准。返回时 自动进行数据转换。(见下页例题)16
C语言的教师课件,总结
第六章
例6.3 定义函数power(x,n), 求x的n次方。 函数定义如下:float power( float x, int n) { int i; float t=1; for(i=1;i<=n;i++) t = t * x; /* 1*x*x*…*x 共乘n次 */ return t; } /* 返回t的值 */
C语言的教师课件,总结
第六章
6.3 自定义函数的调用6.3.1 函数调用与声明 1. 函数的调用 有参数函数的调用形式:函数名(参数)
无参数函数的调用形式:函数名()
注意:当实际参数的个数、次序、类型与对应形 式参数的个数、次序、类型不一致时,系统并 不提示错误,后果却难以预测。
C语言的教师课件,总结
第六章
函数调用形式 函数语句调用、函数表达式调用和函数参数调 用void max(int a,int b,int c) { int y; y=(a>b)?a:b; y=y>c?y:c; printf("max=%d\n",y);} void main() {int x,y,z,m; scanf("%d,%d,%d",&x,&y,&z); max(x,y,z); } /*采用函数语句形式调用函数max*/19
…… 此处隐藏:1632字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




