收藏 分销(赏)

《C语言学习与应用》教学课件05模块化结构程序设计.pdf

上传人:曲**** 文档编号:225294 上传时间:2023-03-08 格式:PDF 页数:46 大小:2.53MB 下载积分:19 金币
下载 相关 举报
《C语言学习与应用》教学课件05模块化结构程序设计.pdf_第1页
第1页 / 共46页
《C语言学习与应用》教学课件05模块化结构程序设计.pdf_第2页
第2页 / 共46页


点击查看更多>>
资源描述
C语言学习与应用教学课件任务说明本学习任务是通过若干个程序设计任务的完 成学习模块化的程序设计技能,感受同学之间的 协同合作,要求学生能根据要求编写函数,并利 用函数完成程序设计任务,学习自定义函数与主 函数之间的数据传递知识。利林5鞅催齐姗一触肥丽知诙要求。掌握库函数的调用方法。掌握函数的定义、调用和说明方法。理解实参与行参。掌握函数值的概念。0掌握主函数与函数间的数据传递。利林5鞅催齐姗一触肥帆辘能力要求0能够读懂具有自定义函数的程序。0能够完成累加和、判断素数、求绝对值的函数编写。0能够根据函数编写对应的主函数并调试通过。I 0能够判断程序运行结果的对错。*6能够修改错误的程序。利林5鞅催齐姗一触肥丽自定义函数.自定义函数的形式函数返回值的类型 函数名(类型名形参1,类型名形参2)说明部分 语句部分1自定义函数简称函数。微课学习任务五模块化程序设计_建立自己的函数库知似四效传播任务准备一、自定义函数1.自定义函数的形式自定义函数2.相关约定O在同一个程序文件中,函数名必须是唯一的,形参名只要在同 一函数中是唯一的即可。函数不能嵌套定义,即不能在一个函数内部再定义另一个函数。省略函数返回值的类型时,默认为int型,当不需要返回值时,可定义为空类型,即void。函数值的类型可以是整型、实型、字符型、指针型、结构体型。函数也可以无形参,形参及函数体中定义的变量只有在函数被 调用时才临时开辟存储单元,当退出函数时,将全部被释放,它 们都属于局部变量。3,函数值函数值通过r etur n语句返回。例如:r etur n 表达式;或r etur n(表达式);或r etur n;表达式的类型必须与函数首部所说明的类型一致,若 不一致,则由系统自行转换为函数定义时的类型。如遇到r etur n语句,程序流程则返回调用该函数处,并带回函数值。在同一函数体内,可有多处r etur n语句,当执行到某条r etur n语句时即返回调用处。函数也可无r etur n语句,当无r etur n语句时,函数执 行到结束时,再返回到调用处。_1利林5鞅催齐姗一触肥帆辘4.函数的调用函数调用的一般形式如下:函数名(实参表)各实参之间用逗号隔开,必须有确定的实参值,此调用 可作为独立的语句出现,也可以出现在各种表达式中。函数调用时应注意函数名应一致,实参与形参的个数和 类型要匹配,函数应先定义后调用,否则应在调用前有相应公 的说明。微课任务准备函数的调用:r利林5鞅催齐姗一触肥丽5.函数的说明函数说明的一般形式如下。类型名函数名(形参1的类型,形参2的类型,形参3的类型,);函数说明只说明形参的类型即可,不必写出表示形参的变量。函数说明的位置一般出现在所有函数的前面,文件包含之后,这样 在后面的所有函数中都可以调用它,函数说明是一条语句,要有分 号结尾。上应用举例5-l求肖翔m的豳效解法.#incl ude Hstdio.hMdoubl e add(doubl e,doubl e);函数说明void main()(doubl e a,b,sum;scanfC1%l f%ir,&a,&b);sum=add(a,b);函数调用,将获得的函数值赋给sum pr intf(tsum=%l fnH,sum);doubl e add(doubl e x,doubl e y)函数定义(doubl e s;s=x+y;r etur n s;输入:3.5-2.1输出:sum=1.400000闹t触肥葩输入正方形的边长,求面 积的函数解法。利林5鞅催齐姗一触肥帆辘调用函数和被调函数间的数据传递1.实参传给形参实参传给形参的数据传递方式是单向的,按值传递。应用举例5-1中出现在主函数中的调用语句“sum=add(a,b)中的a和b就是实参,a、b必有确定的值,调 用时将a、b的值各复制一份,分别赋给函数定义中的形参x和y,这就是实参向形参的传递。微课学习任务五 模块化程序设计建立自己的函数库 悠.臂楞学任务准备二、调用函数和被调函数间的数据传递实参传给形参利林5鞅催齐姗一触肥帆辘2.通过函数的返回值传递主函数中的语句“sum=add(a,b)是将获得的函数值赋给 sum,函数通过r etur n语句将函数值返回调用处,即“add(a,b)带回一个值,将这个值赋给了sum,这是函数向 主函数的数据传递。此外,还可以通过全局变量在函数和主函数之间传递信科林5鞅傩齐姗一触耻帆辘微课学习任务五 模块化程序设计.建立自己的函数库 悠茂二、调用函数和被调函数间的数据传递应用举例5-2:判断素数的函数解法。#incl ude stdio.hM#incl ude math.h 包含数学函数头文件 int ispr ime(int a)(int i;for(i=2;iy)max=x;elsemax=y;printf(较大值是:%dn,max);编程训练#includenstdio.hH voidfmax()/自定义函数/将原来主函数中的内容全部搬来intx,y,max;while(l)printf(请输入两个整数:n);scanf(n%d%du,&x,&y);if(xy)max=x;elsemax=y;printf(较大值是:dn”,max);编程训练void main()主函数中仅一条函数调用语句5-1-3编写带参数的函数。进一步改进上面的程序代码,将输入和输出部 分写在主函数中,使函数fmax(x,y)具有求两数较大 数的独立功能,即fmax2)的值是5。自定义函数 中有返回语句return,主函数中有调用自定义函数 的语句,前后呼应共同完成程序功能。编程训练#i ncIudestd io.h i nt fmax(i nta,i ntb)(i nt m;自定义函数if(ab)e I sereturn)函数返回值编程训练vo i d ma i n()(i ntx,y,max;wh i le(1)(pr i ntf(”请输入两个整数:n);scanf(,%d%dH,&x,&y);max=fmax(x,y);调用函数 pr i ntf(较大值是:dn,max);)利林5鞅催齐姗一触肥丽编程训练5-1-4借用上面的fmax函数实现输入三个整数、输出较 大数的程序。#i ncIudestd i o.hI nt fmax(i nta,i ntb)编程训练vo i d ma i n()i ntx,y,z,max;wh i le(1)pri ntf(“请输入三个整数:个);scanf(%d%d%d,&x,&y,&z);max=.第一次调用函数,将x、y间的较大值赋给maxmax=/第二次调用,用max与间的较大值更新maxpr i ntf(较大值是:dn”,max);)利林5鞅催齐姗一触肥帆辘编程训练5-1-5编写fun(x)函数,函数值是x的绝对值。#incIudestdio.h.fun(i ntx)编程训练vo i d ma i n()(i ntx,y;printf(请输入一个整数:n);scanf(H%d,&x);y=.调用函数获得x的绝对值赋给ypr i ntf(|%d|=%dn,x,y);任务二建立曲教库工作内容及要求:将功能相对独立的程序模块定义为函数,为程序中多次调用 函数提供了方便,增加了程序的可读性。如果将若干个这样的 函数写进一个文件供使用者调用,这就是函数库。编写一个有 关计算各种累加和的函数库,从中体验这种模块化程序设计的 乐趣。编写以下自定义函数。int fun1(int n),n为正整数,函数值为1-n的奇数和。int fun2(int n),n为10以内8勺正整数,函数值为n的阶乘 doubIe fun3(int n),n为正整数,函数值为 1/1-1/3+1/5-1/7+.1/n 的值。编程训练5-2-1编写fun1函数,并通过主函数对函数的调用调 试通过。#include“stdio.h int fun 1(int n)利林5鞅催齐姗一触肥帆辘编程训练void main()(printf(dn”,ftml(10);)编程训练5-2-2编写fun2函数,并通过主函数对函数的调用调试通过。#include“stdio.h int fun2(int n)利林5鞅催齐姗一触肥帆辘编程训练scanf(n%dn,&n);while(n10);mtf(n%d!=%dnu,n,fun2(n);void main()(int n;do 此循环用于剔除不合格的输入printf(“请输入一个正整数:”);因为计算较大数的阶乘时会出现 溢出,所以在主函数中加入了对数据的 筛选环节“dowhile(n10)广 O只有当n为110时,才能运行下面程 序。5-2-3编写fun3函数。计算1/1-1/3+1/5-1/7+.1/n时要单独设符号变量f初值为1,在循环中有f=-f,使千变量正负交替,例如:int i,f=1;doubIe s=0;for(i=1;i=n;i=i+2)s=s+f*1.0/i;f=-f;编程训练#incl udestdio.hdoubl e fun3(int n)Void mai n(),fun3(5);pr%iN5-2-4用上面的三个函数建立一个函数库。在VS 2010环境中创建工程,在工程中分别创建源文件和头文件,此处的头文件名为l x.h,如图57所示。科林5鞅傩齐姗一触耻帆辘图57创建头文件源文件的内容如下:#incl ude stdio.h#incl ude Ix.hvoid main()(int n;dopr intf(“请输入一个正整数:”);scanf(“d,&n);whil e(n10)pr intf(l-%d的奇娄攵和为:%dn,n?funl(n);pr intf(%d!=%dn,n,fUn2(n);pr intfCl/1-1/3+1/5-.l/n%d=%l fn,n.fun3(n);头文件I X.h的内容如下:int fun 1(int n)头文件I X.h的内容如下:int fun2(int n)头文件I X.h的内容如下:doubl e fun3(int n)祝你进步!谢
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 语言学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服