- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章模块化程序设计(函数)
【计划课时】授课8课时+上机4课时(预习内容:教材第七章、第八章)
一、概述
回顾:
·程序设计方法:自上而下,逐步细化
·C语言:函数式语言
在C程序设计中,通常:
·将一个大程序分成几个子程序模块(自定义函数)
·将常用功能做成标准模块(标准函数)放在函数库中供其他程序调用
如果把编程比做制造一台机器,函数就好比其零部件。
·可将这些“零部件”单独设计、调试、测试好,用时拿出来装配,再总体调试。
·这些“零部件”可以是自己设计制造/别人设计制造/现在的标准产品
而且,许多“零部件”我们可以只知道需向它提供什么(如控制信号),它能产生什么(如速度/动力),并不需要了解它是如何工作、如何设计制造的——所谓“黑盒子”。
控制信号 速度/动力
(输入参数) (返回结果)
【例】编写一个儿童算术能力测试软件
显示软件封面
检查密码
产生题目
接受回答
评判计分
显示结果
如果要继续练习
告别词
main() {
char ans = ‘y’;
clrscr();
cover(); /*调用软件封面显示函数*/
password(); /*调用密码检查函数*/
while (ans ==’y’|| ans ==’Y’)
{ question(); /*调用产生题目函数*/
answers(); /*调用接受回答函数*/
marks(); /*调用评分函数*/
results(); /*调用结果显示函数*/
printf(“是否继续练习?(Y/N)\n”);
ans=getch ();
}
printf(“谢谢使用,再见!”);
}
/*定义所用函数*/
cover() { } /*软件封面显示函数*/
password(){ } /*密码检查函数*/
question(){ } /*产生题目函数*/
answers(){ } /*接受回答函数*/
marks(){ } /*评分函数*/
results(){ } /*结果显示函数*/
函数使用常识: P102
1、C程序执行总是从main函数开始,调用其它函数后总是回到main函数,最后在 main函数中结束整个程序的运行。
2、一个C程序由一个或多个源(程序)文件组成——可分别编写、编译和调试。
3、一个源文件由一个或多个函数组成,可为多个C程序公用。
4、C语言是以源文件为单位而不以函数为单位进行编译的。
5、所有函数都是平行的、互相独立的,即在一个函数内只能调用其他函数,不能再定义一个函数(嵌套定义)。
6、一个函数可以调用其他函数或其本身,但任何函数均不可调用main函数。
二、函数的定义
函数定义——“制造函数”
1、无参函数 P102
定义格式:
数据类型 函数名() /*现代风格是:函数名(void)*/
{ 函数体(说明部分+ 语句)}
【注意】每个函数之前可以有自己的编译预处理命令组。
数据类型为int时,可以省略。
2、有参函数 P102
定义格式:
数据类型 函数名(形参表) /*现代风格是:函数名(带类型形参表)*/
形参类型说明;
{ 函数体(说明部分+ 语句)}
函数的返回值通过函数体中的return语句获得。
形式: return (x); return (x+y); return (xy?x:y);
语句中圆括号亦可省略。
【注意】如果函数值类型与return语句表达式值的类型不一致,以函数类型为准(数值型会自动进行类型转换)。如果明确表示不需返回值,可用void作函数的数据类型。
【例一】
main()
{ float a=1.5,b=2.5;
int c;
c=max(a,b);
printf(“Max is %d\n”,c);
}
max(x,y) /*用“值传递”分析法进行变量跟踪*/
float x,y;
{float z;
z=xy?x:y;
return z;
}
结果:Max is 2 (编译通过,结果错误)
【讨论】如何改错?
·如果将输出语句中的%d改为%f,结果: Max is 0.125000 (亦错)
·如果将max(x,y)改为float max(x,y),结果编译出错:
Type mismatch in redeclaration of ‘max’
您可能关注的文档
- 人教版九年级数学上册课件:211一元二次方程第1课时.ppt
- 第3篇 网络消费者.ppt
- 软件工程导论作业和解答.ppt
- 第4讲_系统控制模块及GPIO.ppt
- 实验基地七下104用方程组解决问题2.ppt
- 三年级科学下册 植物与我们 3课件 苏教版.ppt
- 数据库课件 第四节.ppt
- 第5篇 梁弯曲内力.ppt
- 第5章2 局域网技术和组建.ppt
- 第6课《罗马法的起源与发展》说课课件 新人教版必修1.ppt
- 市文化广电和旅游局局长专题学习中央城市工作会议精神研讨交流发言稿.docx
- 深学笃行城市会议精神,护航城市发展新征程——在专题学习中央城市工作会议精神研讨交流会上的发言.docx
- 在城市建设暨“共创”工作推进会上的讲话.docx
- 市融媒体中心党支部党建工作情况汇报.docx
- 研讨发言:深学笃行,奋力书写新时代人民城市建设的统战答卷.docx
- 在全市危险化学品和烟花爆竹安全生产专委会会议上的讲话.docx
- 贯彻城市工作精神,开启城市发展新篇——在中央城市工作会议精神专题学习研讨会上的发言.docx
- 理论学习中心组发言:学习贯彻新时代党的组织路线,奋力开创市直宣传思想工作新局面.docx
- 县委组织部部长在党的作风建设理论研讨会上的发言.docx
- 副市长在2025年全市基孔肯雅热疫情防控工作会议上的讲话.docx
最近下载
- 智能网联汽车底盘线控系统与控制技术.pdf VIP
- 2025年江苏省常州市初一新生入学分班数学考试真题及答案.docx VIP
- 民航安检 中级题库.docx VIP
- 耳鼻咽喉头颈外科学,下颌下腺肿瘤病例分析.docx VIP
- 部编版九年级上册第四单元 单元整合教学设计.pdf VIP
- 外研版(2019)选择性必修 第二册Unit 5 A delicate world Developing ideas 语言点 课件(共53张).pptx VIP
- 九年级上册月考物理.doc VIP
- 康复医学科诊疗指南--技术操作规范.docx VIP
- 小森印刷机s40操作说明.pdf VIP
- 部编版语文九下-第四单元整合教学.ppt VIP
文档评论(0)