版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计主讲人:张康隆函数的定义一、函数的定义1.函数概念:在C语言中,函数是对实现某一功能的代码的模块化封装。2.函数组成:函数由函数首部和函数体组成。3.函数定义的一般形式:类型符
函数名(形式参数声明){函数体}函数首部函数体一、函数的定义4.函数首部函数类型:函数返回值的数据类型,可以是基本数据类型,也可以是构造类型。函数名:命名规则同标识符。参数表列:无参时,()不能省略,在参数表列中说明参数的类型和参数的名称,每个参数之间用英文逗号分隔。一、函数的定义5.函数体
函数体是指函数首部下面用一对“{}”括起来的部分。如果函数体内有多个“{}”,最外层是函数体的范围。
函数体一般包括声明部分和执行部分。声明部分:定义本函数所使用的变量和进行有关声明。执行部分:由若干条语句组成命令序列。一、函数的定义关于函数,需要注意:函数是规定格式书写的、能完成特定功能的一段程序;C语言是以源文件为单位进行编译的,一个源程序文件由一个或多个函数组成;一个程序由一个或多个源程序文件组成;函数与函数之间是平等独立的;函数不能嵌套定义,但可以相互调用,包括嵌套调用;主函数可以调用任何函数,但其它函数不能调用主函数;一个函数可以多次被调用。如果同一程序段出现多次,应该把这个程序段构造成一个函数;程序从主函数开始执行,在主函数中结束。调用其它函数后,再返回到主函数。主函数在程序中的位置没有要求。二、实例应用1.任务分析题目:比较两个整数,输出较大者。
本题利用两个函数来实现编程。利用max函数进行大小的比较,并在main函数中进行调用实现其功能。二、实例应用2.程序代码#include<stdio.h>intmain(){intmax(intx,inty);//对被调用函数max的声明inta,b,c;printf("pleaseinputtwointeger:");scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}二、实例应用3.代码调试运行结果输入4,9二、实例应用3.代码调试运行结果输入67,4小结
小结:本节课重点学习了函数定义相关知识,难点则是利用函数解决实际问题。感谢观看C语言程序设计主讲人:张康隆函数的调用一、函数调用1.函数调用定义:是指一个函数暂时中断本函数的运行,转去执行另一个函数的过程。2.函数调用的一般形式:函数名(实际参数列表)3.根据函数在程序中出现的位置,其调用方式有三种。1.将函数作为表达式调用,必须有返回值。例:inta=max(10,20);2.将函数作为语句调用,不要求函数有返回值。例:printf(“helloworld\n”);3.将函数作为实参调用,要求函数必须有返回值。例:printf(“%d\n”,max(10,20))。二、函数的参数传递及返回值1.在C语言中,参与的传递方式有两种:2.函数的返回值函数调用结束时一般需要得到一个确定的值,C语言中是通过return语句来实现的,其一般形式:return(表达式);return表达式;说明:(1)return语句有双重作用:①从函数中退出;②返回到调用函数中并向调用函数返回一个确定的值。(2)一个函数中可以有多个return语句,程序执行到那一个return语句,那一个语句起作用,其它不起作用。(3)若函数无return语句,则函数类型只能是void类型,即无返回值。值传递方式(传值):将实参单向传递给形参。地址传递方式(传址):将实参地址单向传递给形参。说明:单向传递,只能由实参传递给形参。三、函数原型声明1.函数原型声明的一般形式:2.说明:被调用函数的定义位于调用函数之后,则必须声明函数,反之则不用。函数“定义“是指对函数功能的确定,而“声明”则是对已定义函数的函数名、函数类型以及形参的类型、个数及顺序进行说明。函数原型声明也可以在函数的外部(#include语句后边),则在各个调用函数中不必再对所调用的函数进行声明。当被调用的函数与调用函数不在一个文件中时,必须使用函数声明。可以将多文件编译的函数声明放在自定义的.h文件中,然后在调用函数头部包含该.h文件。类型说明符 函数名(参数表)四、实例应用1.任务分析题目:编写一个函数,判断m是否为素数,并在主函数中调用。
定义了一个素数函数,该函数参数是一个整数,返回值也是一个整数,当输入的整数是素数时返回1,否则返回0。在主函数中调用素数函数,如果素数返回1,则输出是素数,否则输出不是素数。四、实例应用2.程序代码#include
<stdio.h>intmain(){intisPrime(intm);intm;printf("pleaseinputm:");scanf("%d",&m);if(isPrime(m))printf("%disaprime!\n",m);elseprintf("%disnotaprime!\n",m);return0;}intisPrime(int
m){int
i;for(i=2;i<=m-1;i++)if(m%i==0)return0;return
1; }四、实例应用3.代码调试运行结果输入68四、实例应用3.代码调试运行结果输入79小结
小结:本节课重点学习了函数调用相关知识,难点则是利用函数解决实际问题。感谢观看C语言程序设计主讲人:张康隆函数的嵌套调用一、函数嵌套调用1.定义:在调用一个函数的过程中,又调用另一个函数。3.执行过程:主函数调用函数a,函数a又调用函数b,函数b执行完毕返回函数a,函数a执行完后返回主函数,主函数继续执行函数调用下面的语句直至结束。2.调用过程:C语言不允许嵌套定义函数main函数调用a函数①②
a函数
b函数
③
④⑤调用b函数
⑦⑧
⑥⑨结束二、实例应用1.任务分析题目:输入4个整数,求其中最小的数。用函数的嵌套调用来处理。
本程序存在嵌套调用,在main函数中调用min4函数,在min4函数中调用min2函数。
min4函数的功能是找出四个变量的最小值,但是min4函数需要借助于min2函数才能实现;min2函数功能是返回两个整数中的最小值。
嵌套调用,先执行最内层的min2(a,b),再执行min2(min2(a,b),c),再执行min2(min2(min2(a,b),c),d)。二、实例应用2.程序代码#include
<stdio.h>intmain(){intmin4(inta,intb,intc,intd);inta,b,c,d,min;printf("Pleaseenter4intergernumbers:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);min=min4(a,b,c,d);//调用min4函数,得到4个数中的最小者printf("min=%d\n",min);//输出4个数中的最小者return0;}intmin4(inta,intb,intc,int
d){intmin2(inta,intb);intn;n=min2(a,b);
//调用min2函数,得到两个数中的小者n=min2(n,c);n=min2(n,d);return(n);}intmin2(inta,int
b){return(a<=b)?a:b;}二、实例应用3.代码调试运行结果输入9,3,12,5小结
小结:本节课重点学习了函数嵌套调用相关知识,难点则是函数嵌套调用的执行过程。感谢观看C语言程序设计主讲人:张康隆局部变量与全局变量局部变量与全局变量一、变量的作用域二、局部变量1.定义:在函数内部或复合语句中定义的变量称为局部变量。2.作用域:仅仅局限于定义它的函数和复合语句。注意:①在一个函数内部定义的变量只在本函数范围内有效。
②形式参数也是局部变量,只在定义它的函数中有效,其它函数不能使用。
③不同函数中定义的变量可以同名,它们的作用域不同,并不冲突。1.变量的作用域定义:是指变量的有效范围或者变量的可见性。2.变量的分类:
①按作用域角度划分,有局部变量和全局变量;
②按变量存在的时间划分,有静态存储变量和动态存储变量。三、全局变量1.定义:在函数体外定义的变量称为全局变量。2.作用域:从它的定义点开始到本源文件结束。注意:①在同一个源文件中,当局部变量与全局变量同名时,在局部变量的作用范围内,全局变量不起作用。②设置全局变量可以增加函数之间的联系。③全局变量使得函数的执行依赖于外部变量,降低了程序的通用性。四、实例应用1.任务分析题目:编写swap函数,实现两个整数的交换。
main函数与swap函数这两个函数中的两条输出语句输出的内容不同。局部变量的作用域只能在swap函数内,并不能改变全局变量的值。当局部变量与全局变量同名时,在局部变量的作用范围内,全局变量不起作用。四、实例应用2.程序代码#include<stdio.h>int
a=5,b=7;int
main(){voidswap(intx,inty);int
a,b;printf("pleaseenteraandb:");scanf("%d,%d",&a,&b);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心电图室医师晋升副主任医师高级职称病案分析专题报告(年轻男性心肌梗死)2篇
- 职工食堂工作总结(2篇)
- 2025清罐作业安全试题及答案
- 高三地理教学设计:影响气候的因素综合分析与高考应试策略
- 2026年铜仁市烟草专卖局人员招聘笔试模拟试题及详细答案解析
- 2025消防试题及答案大全
- 高一德育教学设计:感恩师恩逐光而行首课实践
- 2025照护试题及答案
- 初中地理九年级教学设计:地球宇宙环境与运动专题复习策略研究
- 2026安全生产培训考核试题有答案
- 教师心灵自我关怀 守护身心双向健康课件
- 2026年广东省考试录用公务员《行政执法专业和申论》试题附答案
- 自控系统现场验收测试 (SAT) 报告模板(完整版含安装后功能验证)
- 2026年员额法官遴选面试题及答案
- 2026年化工安全生产专业实务模拟试卷(2套)
- 肌少症防治科普课件
- 2026秋季新学期班干部聘任仪式
- 2026 年冬季取暖防一氧化碳中毒课件
- 高三物理一轮复习的几点建议
- 2026年党课党校考试题库及答案
- 2025四川成都兴城投资集团有限公司招聘11人笔试历年典型考点题库附带答案详解
评论
0/150
提交评论