- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
课程名称:C语言程序设计
课型与教法:讲授,经过程序扩展,进行对比学习
课时:2课时
讲课题目:
第6章函数、存放类和预处理程序
基本教材:C语言程序设计(高等教育出版社)廖雷主编
教学目标与要求:经过本章学习使学生了解结构化程序设计思想,掌握函数定义方法,函数调用和参数传递;了解什么是嵌套调用和递归调用,嵌套调用和递归调用时程序执行次序,编写简单递归函数
教学难点:形参加实参意义、作用与区分,参数传递,函数递归
教学重点:函数定义和调用;形参加实参意义、作用与区分;参数按值传递;第六章函数、存放类和预处理程序;;从用户角度
标准函数(库函数):由系统提供
用户自定义函数
从函数形式
无参函数
有参函数;类型标识符函数名([参数说明部分])
{
说明部分
语句部分
};类型标识符函数名(形参表)
形参类型说明
{
说明部分
语句部分
};
函数定义不允许嵌套。
在C语言中,全部函数(包含主函数main())都是平行。一个函数定义,能够放在程序中任意位置,主函数main()之前或之后。但在一个函数函数体内,不能再定义另一个函数,即不能嵌套定义。;函数返回;
返回语句
功效:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数
形式:
return(表示式);或return表示式;
return;
说明:
函数中可有多个return语句
在定义函数时,对函数类型说明应与return语句中返回值类型一致。
若函数类型与return语句中表示式值类型不一致,按前者为准,自动转换------函数调用转换
不带表示式return语句位于函数体最终时,允许省略,用作函数体结束“}”会将流程返回调用函数
函数中无return语句或使用不带表示式return语句,并不是不返回一个值,而是一个不确定值。为了明确表示不返回值,能够用“void”定义成“无(空)类型”------void型函数;对被调用函数要求:
必须是已存在函数
库函数:#include*.h
用户自定义函数:函数说明
函数说明
采取函数原型方式,???被调用函数进行说明
普通形式:类型标识符函数名([参数表列]);
作用:告诉编译系统函数类型、参数个数及类型,方便检验
函数定义与函数说明不一样
函数说明位置:程序数听说明部分(函数内或外)
以下情况下,可不作函数说明
函数返值是int型
被调用函数定义出现在主调函数之前;doublefun(intn)
{
…
}
main()
{
…
fun(1);
…
};
在程序中,是经过对函数调用来执行函数体
函数调用普通形式:
函数名([实参表列])
说明:
调用函数时,函数名称必须与含有该功效自定义函数名称完全一致。
实参加形参个数相等,类型一致,按次序一一对应,才能正确地进行数据传递
实参表求值次序,因系统而定(TurboC自右向左)
C语言要求,在调用函数之前,必须有对应函数说明或函数定义。;函数调用语句:
例:printstar();
printf(“Hello,World!\n”);
函数表示式:
例:m=max(a,b)*2;
函数参数:
例:printf(“%d”,max(a,b));
m=max(a,max(b,c));;;形参加实参
形式参数:定义函数时函数名后面括号中变量名
实际参数:调用函数时函数名后面括号中表示式
C语言参数传递规则是按值传递
方式:函数调用时,为形参分配单元,并将实参值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值
特点:
形参加实参占用不一样内存单元
单向传递
;;说明:
实参必须有确定值
形参必须指定类型
形参加实参类型一致,个数相同,按次序一一对应
若形参加实参类型不一致,自动按形参类型转换———函数调用转换
形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放
形参加实参占用不一样内存单元
单向传递;#includestdio.h
longsum(inta,intb);
longfactorial(intn);
main()
{intn1,n2;
longa;
scanf(%d,%d,n1,n2);
a=sum(n1,n2);
printf(a=%1d,a);
}
longsum(inta,intb)
{
longc1,c2;
c1=factorial
您可能关注的文档
- 拼音in市公开课一等奖省赛课微课金奖课件.pptx
- 化学金属的防护和回收沪教版九年级上省公开课一等奖全国示范课微课金奖课件.pptx
- 历史第四单元构建文化的圣殿复习北师大版九年级上省公开课一等奖全国示范课微课金奖课件.pptx
- 人员绩效考核方案.pdf
- 新视野大学英语4读写教程答案思政智慧版.pdf
- 北师大版四年级上册数学期末测试卷【含答案】.pdf
- 高一数学目录(高中数学人教A版必修1-必修5的目录).pdf
- 各种动物英语单词 Animal English.pdf
- 2022-2023学年冀教版四年级数学上册期末测试卷含答案.pdf
- 2023年一年级语文上册一单元考试题(含答案).pdf
- 新的一年工作展望.docx
- 医生年终个人工作的述职报告(3篇).docx
- 2023年消防设施操作员之消防设备中级技能考前冲刺练习题附答案详解.docx
- 2022-2023年环境影响评价工程师之环评技术导则与标准通关练习题包括详细解答.docx
- 2023年中级注册安全工程师之安全生产管理考前冲刺检测卷和答案.docx
- 2023年中级银行从业资格之中级银行管理考前冲刺测试卷提供答案解析.docx
- 2023年公共营养师之二级营养师通关模拟考试试卷附带答案.docx
- 证券分析师之发布证券研究报告业务考前冲刺模拟题库.docx
- 2022-2023年二级建造师之二建建设工程法规及相关知识综合提升测试卷附答案.docx
- 2023年二级建造师之二建机电工程实务通关模拟考试试卷提供答案解析.docx
文档评论(0)