全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块三:函数C语言复习提纲C语言的源程序由一个或多个函数组成,其中必须有且只能有一个主函数main( ),程序执行总是从main函数开始的,也是因main函数的结束而结束整个程序。C函数只可以嵌套调用,而不能嵌套定义C函数可以在定义的时候调用自己,这就是直接递归方式这一部分需要搞清楚以下问题:(1)函数定义:包括函数首部和函数体,函数首部又包括了函数返回值类型 函数名(形式参数表),函数体是由一对大括号括起的语句系列组成,函数的形式参数名字是无关紧要的,若函数无需返回值,则将返回值类型可以定义为void。函数的返回值由首部的函数返回值类型决定,return后的表达式类型若与其不一致,则自动转换。函数只能返回一个值,如果一个函数需要返回多个信息,则要考虑其中的形式参数采用指针参数。例如:int f(int a,int n,int *max); 由函数返回数组a的前n个元素之和,而元素的最大值通过设定max指针,在函数体内求*max实现,外部调用时,要用一个地址实参对应于形式参数max。(2)函数原型:函数应当先定义后被调用,如果出现调用先于定义的情况,则必须对后定义的函数在调用点之前进行原型声明,函数原型就是函数定义的首部最后加一个分号,在原型声明中形式参数名字可以缺省。(3)函数调用:形式为:函数名(实在参数表),实在参数与形式参数对应的要求是:个数相同、对应位置的类型最好一致(4)形式参数类型:有值形式参数,这时实在参数将值赋值到值形式参数变量中;指针形式参数,这时将实参的地址赋值到指针形式参数中,虽然都是单向传递,但是可以通过在被调函数中修改指针所指向的内容达到修改实参变量的目的。如:swap(int *x,int *y),在该函数体内交换的是*x和*y的值;对swap的几种正确与错误实现需要能正确理解。如果函数原型为:swap(int *x,int y),在函数体内交换*x 和y的值,则主函数中的调用形式应该为:swap(&a,b);只有实参a可能会得到改变,无法完成a、b互换的目的。(5)变量的作用域问题:全局变量在所有函数之外定义的变量,作用于定义点到程序结束处,但应去除掉同名局部量的作用域部分。局部自动变量在某函数内部定义的变量,包括形式参数也是,其作用域只在本函数内,生命期为:所在函数被调用时分配空间,该函数当次结束时空间不复存在。下次再调用则重新分配空间。在不同函数中定义的局部量可以同名,因此形式参数可以与实在参数同名,因为处于不同的函数。局部静态变量在某函数内部定义的变量,有static关键字,其作用域只在本函数内,生命期为:所在函数被调用时在静态存储区分配空间,只初始化一次,本次函娄数调用结束后仍然存在,其值保留,但是在函数之外的其余部分均不可见,等该函数再次被调用时,该变量就在原来值的基础上继续变化。(6)函数的递归:会阅读递归函数,并能对简单的调用得到运行结果,理解递归的条件:有明确的边界条件;原问题可转化为新问题,新旧问题的解决方法一样。练习:1、若用一维数组名作为函数调用时的实在参数,则实际上传递给形参的是_。2、若在主函数中定义了数组变量:int arr20,并调用了函数f(arr),则下列关于函数f的原型声明,哪几个是完全等效的_。A、 void f(int x20); B、 void f(int x ); C、 void f(int x10 ); D、 void f(int x); E、 void f(int *x);3、以下程序的输出结果是_。#include long fun (int n)static long s;if (n= =0 | n= =1) s = n;else s = n+ fun( n-1 );return s;void main ( )int i;for (i=1;i4;i+) printf(%4ldn, fun(i);此题中既有递归调用,又有静态局部变量的使用这两个重要的知识点。教材中的习题P194,5.3也是涉及静态局部变量的使用。教材中的习题P375,9.2是利用递归进行十进制向二进制的转换问题,大家可以思考用类似方法实现十进制向其它进制的转换4、有函数原型为void f(int,int *);主函数中有变量定义:int a, *p=&a; 则下列几种调用正确的是_?A、 f(a,p); B、f(*p,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江西省乐平市高考物理5月学情自测试卷及答案详解【考点梳理】
- 2026年四川省简阳市高考物理一轮复习模拟卷附参考答案详解(考试直接用)
- 2026福建莆田第二批就业见习岗位考试备考题库及答案详解
- 2026年吉林省和龙市高考物理真题汇编试卷及参考答案详解(模拟题)
- 2025年河南省舞钢市高考物理强基计划考试卷含答案详解(预热题)
- 2026中国人民大学党委教师工作部(人才办)招聘1人考试备考试题及答案详解
- 2025年湖南省浏阳市高考物理学业考试模拟卷【典型题】附答案详解
- 2026年贵州省清镇市高考物理二模测试卷及参考答案详解(综合卷)
- 2025年辽宁省凌海市高考物理一模测试卷及参考答案详解【基础题】
- 2026年江苏省无锡市公务员招聘考试参考题库及答案详解
- 领导带值班制度培训课件
- 贵阳一中高一入学数学分班考试真题含答案
- 光伏电站安全管理培训
- 2026年江苏省《保安员资格证考试》考试题库及答案
- 2025年汕头市社区工作者招聘考试真题及答案
- 做账实操-再生铜行业行业账务处理分录示例
- 2026年乡村振兴专员招聘考试试题(含答案)
- 道路路基爆破施工管理方案
- 天融信考核制度
- 文物保护责任工程师《法律法规与工程管理》资格考核题(答案版)
- 汽车拆解劳务合同范本
评论
0/150
提交评论