- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言模块化程序设计1_王新余
模块化程序设计
概述
本节课,先讲述程序库,即函数级,C语言程序模块化的基础知识和注意点。再讲述RMX上多进程的特点。
?·程序设计方法:自上而下,逐步细化?·原则:模块间耦合越小越好
·C语言:函数式语言
在C程序设计中,通常:
·将一个大程序分成几个子程序模块(自定义函数)
·将常用功能做成标准模块(标准函数)放在函数库中供其他程序调用
如果把编程比做制造一台机器,函数就好比其零部件。
·可将这些“零部件”单独设计、调试、测试好,用时拿出来装配,再总体调试。
·这些“零部件”可以是自己设计制造/别人设计制造/现在的标准产品
而且,许多“零部件”我们可以只知道需向它提供什么(如控制信号),它能产生什么(如速度/动力),并不需要了解它是如何工作、如何设计制造的——所谓“黑盒子”。 控制信号 速度/动力
(输入参数) (返回结果)
?【例】编写一个儿童算术能力测试软件
显示软件封面
检查密码
产生题目
接受回答
评判计分
显示结果
如果要继续练习
告别词
main() {
char ans = ‘y’;
clrscr();
cover(); /*调用软件封面显示函数*/
while (ans ==’y’|| ans ==’Y’)
{ question(); /*调用产生题目函数*/
answers(); /*调用接受回答函数*/
marks(); /*调用评分函数*/
results();?? /*调用结果显示函数*/
printf(“是否继续练习?(Y/N)\n”);
ans=getch ();
}
printf(“谢谢使用,再见!”);
}
/*定义所用函数*/
cover() { } /*软件封面显示函数*/
password(){ } /*密码检查函数*/
question(){ } /*产生题目函数*/
answers(){ } /*接受回答函数*/
marks(){ } /*评分函数*/
results(){ } /*结果显示函数*/ ?
函数使用常识:
1、C程序执行总是从main函数开始,调用其它函数后总是回到main函数,最后在 main函数中结束整个程序的运行。
2、一个C程序由一个或多个源(程序)文件组成——可分别编写、编译和调试。
3、一个源文件由一个或多个函数组成,可为多个C程序公用。
4、C语言是以源文件为单位而不以函数为单位进行编译的。
5、所有函数都是平行的、互相独立的,即在一个函数内只能调用其他函数,不能再定义一个函数(嵌套定义)。
6、一个函数可以调用其他函数或其本身,但任何函数均不可调用main函数。
二、函数的定义
?
函数定义——“制造函数”
1、无参函数
定义格式:
数据类型 函数名() /*现代风格是:函数名(void)*/
{ 函数体(说明部分+ 语句)}
【注意】数据类型为int时,可以省略。
?
2、有参函数
定义格式:
数据类型 函数名(形参表) /*现代风格是:函数名(带类型形参表)*/
形参类型说明;
{ 函数体(说明部分+ 语句)}
?
函数的返回值通过函数体中的return语句获得。
形式: return (x); return (x+y); return (xy?x:y);
语句中圆括号亦可省略。
【注意】如果函数值类型与return语句表达式值的类型不一致,以函数类型为准(数值型会自动进行类型转换)。如果明确表示不需返回值,可用void作函数的数据类型。
?空函数
类型说明符 函数名()
{}
空函数,什么工作也不作,没有任何实际作用,只表明“这里要调用一个函数”,而现在这个函数没有起作用,等以后扩充函数功能时补上。这样做可使程序结构清晰,可读写好,以后扩充新功能方便,对程序结构影响不大。
【例一】max(float x, float y) /*用“值传递”分析法进行变量跟踪*/{
float z;
z=xy?x:y;
return z;
}
main()
{
float a=1.5,b=2.5;
int c;
c=max(a,b);
printf(“Max is %d\n”,c);
}
结果:Max is 2 (编译通过,结果错误)【讨论】如何改错?
·如果将输出语句中的%d改为%f,结果: Max is .000000 (亦错)
·
您可能关注的文档
- 道德困境自述_浅析_局外人_中_审判_主题_周俊平.pdf
- 过轨钢管与电缆井技术交底.pdf
- 进化生物学绪论-进化生物学--01.pdf
- 道德价值观问卷调查0.pdf
- 遗传信息传递中心法则发展过程.pdf
- 速冻食品与速冻设备发展概况与趋势_岳希举.pdf
- 配置 Outlook 2007 中保留设置和自动存档.doc
- 超高性能混凝土组合结构在桥梁工程中应用与展望.pdf
- 郭辉 0811090549 报告与任务书.pdf
- 邓晋福.-2016-关于火成岩常用图解正确使用 讨论与建议.pdf
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)