资源描述:
《C语言 第5章 模块化程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验安排:一.实验内容:循环结构程序设计(2)请见网站作业管理模块或公邮二.时间地点:10月30日(本周四)晚上8:00—10:00,逸夫楼二层机房。三.要求:请同学们完成实验后整理实验报告,并将实验报告于11月3日前以附件形式通过网站作业管理模块提交。第5章模块化程序设计何平何平2020/9/152例如:编程,计算任意两个正整数x,y的最大公约数及最小公倍数。定义变量x,y键盘输入x,y调用f1(x,y)计算最大公约数调用f2(x,y)计算最小公倍数输出结果主函数为了使程序结构清晰,便于编写,需要将程序
2、按功能划分成一些相对独立、功能单一的子模块。1模块化程序设计概述2函数的声明、定义和调用3函数的多级调用4变量的作用域和存储类别5计算机随机模拟方法6编译预处理(简介)重点:1:理解如何用函数模块构造程序,清楚函数的分类2:掌握如何定义和调用函数并理解函数调用的机制3:掌握变量的作用域和存储类别4:掌握随机数的产生方法。内容:预备内容C程序是由函数构成的,必须有且只能有一个称为main的主函数,程序的执行是从main函数的第一条语句开始。如果把代码都写在main函数中,将使程序的结构显得很庞大、混乱,结构
3、不清晰。为了使程序结构清晰,便于编写及调试,需要将程序按功能划分成一些相对独立、功能单一的子模块。复杂任务可以分解为若干子任务——子模块。重复使用的程序段,将其进行独立设计,使计算机可以重复执行。如:a!+b!+c!4.1模块化程序设计概述main()f1()f2()f3()f4()f5()f6()图4-1程序模块结构图函数:可以完成一定功能的程序模块。分类:标准库函数;自定义函数。引例/*功能:计算两个实数中大的值*/#includefloatfmax(floatx,floaty);/
4、*函数说明*/voidmain(){floata,b,c;scanf(“%f,%f”,&a,&b);c=fmax(a,b);/*函数调用*/printf(“max=%f”,c);}floatfmax(floatx,floaty)/*函数定义,完成两个数的比较,将大的数返回*/{floatz;z=x>y?x:y;returnz;}1.函数说明说明格式为:函数返回值类型函数名(参数表);#includefloatfmax(floatx,floaty);/*函数说明*/voidmain()
5、{floata,b,c;scanf(“%f,%f”,&a,&b);c=fmax(a,b);printf(“max=%f”,c);}函数说明是一条语句,它指出函数返回值的类型、函数的名称、函数要接收的参数的个数、顺序和类型。如果在一个函数中要调用另外一个函数,则在调用之前要对该函数进行说明。如果函数定义出现在程序中首次使用该函数之前,则不需要说明函数原型。2.函数定义函数定义的一般形式:函数返回值类型函数名(形参表)/*函数头*/{/*函数体*/说明部分执行部分}floatfmax(floatx,flo
6、aty){floatz;z=x>y?x:y;returnz;}函数头函数体注意:形参的值由实参传递;函数体中使用的变量必须放在函数体内定义。如左侧的变量z3.函数调用函数调用的一般形式为:函数名(实参表);voidmain(){floata,b,c;scanf(“%f,%f”,&a,&b);c=fmax(a,b);printf(“max=%f”,c);}可用两种方式调用函数:(1)函数的调用原则上可以在允许表达式出现的任何地方。如:c=fmax(a,b);(2)函数调用可以作为一条独立的语句。比如,有
7、函数定义:voidprint(){printf(“***************”);}则可以把该函数调用作为一个独立语句。print();4.函数返回值函数返回值的类型是由函数说明中的函数返回类型决定的。如果返回的类型与函数说明的不同,则在返回值时,先作隐含的类型转换,然后再返回。#includeintfmax(floatx,floaty){returnx>y?x:y;}voidmain(){floatmax;max=fmax(3.5,2.6);printf(“max=%.2f”,
8、max);}结果?形式参数:定义函数时放在函数名称之后括号中的参数,简称形参。实际参数:调用函数时括号中的参数,简称实参。形参与实参的结合:函数在调用时,将生成实参值的一个副本传递给对应的形参,这个过程称为形参与实参的结合。如果只允许实参向形参传递数据,则被称为“单向传递”。实参a实参b形参x形参y5.形参和实参#includefloatfmax(floatx,floaty){returnx>y?x:y;}v