网站大量收购独家精品文档,联系QQ:2885784924

C程序设计 第八章 函数课件.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第八章函数;C程序结构;函数分类

从用户角度

标准函数(库函数):由系统提供

用户自定义函数

从函数形式

无参函数

有参函数;8.2自定义函数

多函数程序;;函数类型函数名(形参表)

形参类型说明

{

说明部分

语句部分

};函数类型;返回语句

形式:return(表达式);

或return表达式;

或return;

功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数

;函数的调用

调用形式

函数名(实参表);;例比较两个数并输出大者;函数调用机制(参数及其传递方式)

实际参数:调用函数时函数名后面括号中的表达式

形式参数:定义函数时函数名后面括号中的变量名;实参必须有确定的值

形参必须指定类型

形参与实参类型一致,个数相同

若形参与实参类型不一致,自动按形参类型转换——函数调用转换

形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放,实参单元仍保留并维持原值。也就是说,形参与实参占用不同的内存单元——单向传递/值传递;例计算x的立方;printstar()

{printf(**********);

}

main()

{inta;

a=printstar();

printf(%d\n,a);

};#includestdio.h

intf(inta,intb)

{intc;

if(ab)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

main()

{inti=2,p;

p=f(i,++i);

printf(%d\n,p);

};

对被调用函数要求:必须是已存在的函数

库函数:#include*.h

用户自定义函数:函数类型说明

要求使用函数之前做函数说明

一般形式:函数类型函数名(形参类型[形参名],…..);

作用:告诉编译系统函数类型、参数个数及类型,以便检验

函数说明位置:程序的数据说明部分(函数内或外)

下列情况下,可不作函数说明

若函数返值是char或int型,系统自动按int型处理

被调用函数定义出现在主调函数之前;例函数说明举例;7;/*callbyaddress*/

s*p1,int*p2)

{intp;

p=*p1;

*p1=*p2;

*p2=p;

}

main()

{inta,b;

ints*,int*);

scanf(%d,%d,a,b);

printf(“a=%d,b=%d\n”,a,b);

printf(“s:\n”);

s);

printf(”a=%d,b=%d\n,a,b);

};传递数组给函数

数组元素作函??实参——值传递;数组名作函数参数

地址传递

形参数组大小(多维数组第一维)可不指定。常用方法是用另一参数传递数组长度

形参数组名是地址变量;例求学生的平均成绩;例数组元素与数组名

作函数参数比较;;例数组排序----简单选择排序;例数组排序----简单选择排序;;例求二维数组中最大元素值;例求二维数组中各行元素之和;8.3函数的嵌套与递归调用

嵌套调用p271

C规定:函数定义不可嵌套,但可以嵌套调用函数;例求三个数中最大数和最小数的差值;例用弦截法求方程根;;运行情况:

Inputx1,x2:

26?

Arootofequationis5.0000;递归调用p272

定义:函数直接或间接的调用自身叫函数的递归调用;例求n的阶乘;例Hanoi问题;C编译系统对递归函数的自调用次数没有限制

每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出;6.4变量的存储属性p279

概述

变量是对程序中数据的存储空间的抽象;局部变量

局部变量---内部变量

规则:在函数内定义,只在本函数内有效

不同函数中同名变量,占不同内存单元。形参属于局部变量;#includestdio.h

main()

{voidincrement(void);

increment();

increment();

increment();

}

voidincrement(void)

{intx=0;

x++;

printf(“%d\n”,x);

};全局变量/外

文档评论(0)

mwq365 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档