函数(课件)-《C语言程序设计》同步教学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数知识点
1、函数的定义——(1)函数首部
函数类型 函数名(形参表) {
函数实现过程 return 表达式; }
/* 1、函数首部 */
①函数类型,给出了处理后的数据类型,即返回值的类型。 函数有0个或者1个返回值: ➢ 没有返回值,函数类型为 void,不可省略。若省略,默认是int型; ➢ 若有1个返回值,比如是一个double类型变量,则函数类型应写double。
函数类型 函数名(形参表) {
函数实现过程 return 表达式; }
/* 1、函数首部 */ /* 2、函数体 */
函数体:体现函数的功能,是由一对大括号“{”“}”括起来的代码段组成的。 ➢ 若有返回值,在函数体中通过 return变量名;语句将该变量返回出去; ➢ 若没有返回值,通过return;语句在需要时返回出去,或者执行到函数体的右大括号
②若函数首部为:void printMax(int a,int b),该函数没有返回值。
printMax(m,n);
//仅仅调用函数,不参与任何计算、输出等
函数知识点
3、函数原型声明
一般情况下,被调函数的定义要放在主调函数的调用前。 在实际应用中,函数经常会在其定义之前被调用,这时就需要在该函数被调用前提前声明,叫 做函数原型声明。
“}”时自动结束。
函数知识点
1、函数的定义
举例:
//有返回值的函数定义,getMax()函数返回x 和y的最大值。 double getMax(double x,double y){
if(x>y) return x;
else return y;
}
函数类型 函数名(形参表) /* 1、函数首部 */ {
函数原型声明,一般形式如下: 函数类型 函数名(形参表) ;
函数知识点
3、函数原型声明
举例:
定义一个获取最大值的函数,并采用函数原型声明->函数调用->函数定义的代码编写方式。
#include<stdio.h> int getMax(int m,int n);
//函数原型声明
int main(){
} } //执行到函数体的”}”右括号结束。
函数知识点
1、函数的定义——实例讲解
函数类型 函数名(形参表) /* 1、函数首部 */ {
函数实现过程 return 表达式; }
自定义一个计算字符串长度的函数(如何将实际问题转化为用函数来实现)
①先分析下这个要解决的问题(3个方面): ➢ 已知条件:现有这个需要计算长度的字符串,
char str1[] = "Happy Learning!"; char str2[] = "C Language programing!"; int i,len;
count = 0; for(i=0;str[i]!='\0';i++)
count++;
len = getStrLen(str1) printf("the length of str1 is %d\n",len);
函数类型 函数名(形参表) {
函数实现过程 return 表达式; }
/* 1、函数首部 */
③ 形式参数表,给出了可以处理的数据,列出0个、1个或多个参数: 0个参数:此处是void,可省略不写。 多个参数: 类型1 参数1 ,类型2 参数2 ,……,类型n 参数n
函数知识点
1、函数的定义——(2)函数体
以getStrLen()函数的调用为例,讲解: 函数调用的形式 函数调用的过程 参数传递 函数返回值
函数知识点
2、函数的调用——调用形式
#include<stdio.h> int getStrLen(char str[]){ //函数定义,形参是一个字符数组str,返回一个整形变量,为str的有效字符长度
类型是字符数组; ➢ 对已知条件进行的处理:计算该字符串的长 度; ➢ 处理后得到的运算结果:字符串的长度,类 型是int。
②转化为函数来实现, 首先确定函数首部: ➢ 形参表:为上面分析出来的已经条件,即一个字符 数组,char str[]; ➢ 函数名:根据函数的功能取名字,函数名建议用能 表达函数功能的英文单词。如计算字符串长度,就用 getStrLen来作为函数名; ➢ 函数类型:即运算结果的类型,为int。
自定义函数:程序员根据自己的需求定制自己的函数
函数知识点
1、函数的定义 函数定义的一般形式:
函数首部指出了函数的名字、可以处 理的数据,以及处理后的数据类型。
函数类型 函数名(形参表) {
函数实现过程 return 表达式; }
/* 1、函数首部 */ /* 2、函数体 */
函数体给出了对数据的处理过程
①若函数首部为:int getMax(int a,int b),该函数有一个int返回值。
max = getMax(m,n); //函数调用主被可调调作函函为数数同通通类过过型函返int数回变调量值使用的用时方的式参,数实传现递两、
m = n + getMax(m,n);
个函数之间的数据传递。
printf("the max of (%d %d) is %d",m,n,getMax(m,n)); //函数调用作为输出函数的实参
函数知识点
2、函数的调用
函数被定义后,就可以被使用了,使用函数的过程就叫做函数调用。
函数调用的一般形式:
函数名(实际参数表);
已经定义好的 函数的名称
要处理的数据,一般 为主调函数中的变量。
实参表中实参的类型、顺序和个数需要和形参表一致。 不需写类型名,要有准确的值。中间用分号隔开。
函数知识点
2、函数的调用
函数知识点
用strlen()函数改进案例8.1.1的代码
#include<stdio.h> #include<string.h> int main(){
char str1[] = "Happy Learning!"; char str2[] = "C Language programing!"; int i,count; //计算str1字符串的长度 count = strlen(str1); printf("the length of str1 is %d\n",count); //计算str2字符串的长度 count= strlen(str2); printf("the length of str2 is %d\n",count); return 0; }
//计算str2字符串的长度
count=0; for(i=0;str2[i]!='\0';i++)
代码段2
count++;
printf("the length of str2 is %d\n",count);
return 0;
}
案例8.1.1运行结果: the length of str1 is 15 the length of str2 is 22
函数知识点
2、函数的调用——调用过程
main称为主调函数,getStrLen称为被调函数。
函数知识点
2、函数的调用——参数传递
以值传递
int main(){
#include<stdio.h>
"Happy Learning!"
int getStrLen(char str[]){
int count,i;
①两段代码是一样的,存在冗余现象 ②每段代码功能单一 ③如需修改代码,需修改多处,难以维护
函数知识点
将前面例子中功能单一、并且会在多处调用的代码块抽象、并封装为一个模块 ,那么后续通过模块名就可以反复使用该模块了。 在C语言中这样一个模块叫做函数。
函数是完成一个特定功能的独立代码块。其英文名是Function,是对数据进行 一系列操作后转化为新的数据。
int count,i; count = 0; for(i=0;str[i]!='\0';i++) //函数体中,直接对形参str进行操作。
count++; return count; }
Байду номын сангаас
注意: ➢ 若不要已知条件,形参表个数为0,形参表处为空或者void; ➢ 若处理后不会得到运算结果,则函数不需要返回值,函数类型为void; ➢ 只能有一个返回值。 ➢ 函数不可以嵌套定义。
函数知识点
1、函数的定义——(1)函数首部
函数类型 函数名(形参表) {
函数实现过程 return 表达式; }
/* 1、函数首部 */
②函数名,即函数的名称 ➢ 由程序员自定义的标识符,要是一个合法的标识符。 ➢ 建议用有意义的英文表示,求和sum,求最大值max
函数知识点
1、函数的定义——(1)函数首部
len = getStrLen(str1); //函数调用,要处理的是str1,返回str1的字符长度,将其值赋给了len变量 printf("the length of str1 is %d\n",len);
len = getStrLen(str2); printf("the length of str2 is %d\n",len); return 0; }
return count; }
len = getStrLen(str2); printf("the length of str2 is %d\n",len);
return 0;
形参必须是变量的形式,对应的实参为
}
同类型的常量、变量和表达式均可以。
函数知识点
2、函数的调用——函数返回值
函数返回值存在两种情况,第一种是有返回值,第二种无返回值,两者调用方式有区别:
int count,i; count = 0; for(i=0;str[i]!='\0';i++)
count++; return count; } int main(){ char str1[] = "Happy Learning!"; char str2[] = "C Language programing!"; int i,len;
函数知识点
1、函数的定义——实例讲解
自定义一个计算字符串长度的函数
②转化为函数来实现, 首先确定函数首部: ➢ 形参表:为上面分析出来的已经条件,即一个字符数组,char str[]; ➢ 函数名:根据函数的功能取名字,函数名建议用能表达函数功能的 英文单词。如计算字符串长度,就用getStrLen来作为函数名; ➢ 函数类型:即运算结果的类型,为int。
char str1[] = "Happy Learning!";
char str2[] = "C Language programing!";
int i,count;
//计算str1字符串的长度
count = 0; for(i=0;str1[i]!='\0';i++)
代码段1
count++;
printf("the length of str1 is %d\n",count);
int a,b;
C 语言程序设计
翻转课堂实用教程
函数
1
导入案例
导入函数
2
3
4
知识点
函数的定义 函数的调用 函数原型声明 递归函数
案例分析
函数的案例
练习题
练习函数的定义及其 调用
导入案例
案例 现有2个字符串,计算并输出这二个字符串的长度。
(不使用strlen()函数)
#include<stdio.h>
int main(){
然后是函数体:在函数体中编写代码对str进行操作。 ➢ 在函数体中,形式参数作为已知变量。 ➢ 定义int型变量count来保存计算的字符串长度,并返回。
函数知识点
1、函数的定义——实例讲解
自定义一个计算字符串长度的函数
运算结果
函数的功能
已知条件
//将计算字符串的长度抽象为一个函数getStrLen int getStrLen(char str[]){
案例8.1.1(改进)运行结果: the length of str1 is 15 the length of str2 is 22
调用函数的代码 更加简洁、直观。
函数知识点
函数
库函数:像scanf()、printf()、strcat()、strlen()这些由C 语言提供的、供程序员直接调用的函数。
函数实现过程 return 表达式; }
//没有返回值的函数定义,printMax()打印x和y中的最大值 void printMax(double x,double y){
if(x>y){ printf("the max of %f and %f is %f",x,y,x);
}else{ printf("the max of %f and %f is %f",x,y,y);
相关文档
最新文档