第四篇模块化程序设计(函数).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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’

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档