模块三:函数。
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,inty),在函数体内交换*x和y的值,则主函数中的调用形式应该为:swap(&a,b);只有实参a可能会得到改变,无法完成a、b互换的目的。
5)变量的作用域问题:
全局变量——在所有函数之外定义的变量,作用于定义点到程序结束处,但应去除掉同名局部量的作用域部分。
局部自动变量——在某函数内部定义的变量,包括形式参数也是,其作用域只在本函数内,生命期为:所在函数被调用时分配空间,该函数当次结束时空间不复存在。下次再调用则重新分配空间。
在不同函数中定义的局部量可以同名,因此形式参数可以与实在参数同名,因为处于不同的函数。
局部静态变量——在某函数内部定义的变量,有static关键字,其作用域只在本函数内,生命期为:所在函数被调用时在静态存储区分配空间,只初始化一次,本次函娄数调用结束后仍然存在,其值保留,但是在函数之外的其余部分均不可见,等该函数再次。
被调用时,该变量就在原来值的基础上继续变化。
6)函数的递归:会阅读递归函数,并能对简单的调用得到运行结果,理解递归的条件:有明确的边界条件;原问题可转化为新问题,新旧问题的解决方法一样。练习:
1、若用一维数组名作为函数调用时的实在参数,则实际上传递给形参的是___
2、若在主函数中定义了数组变量:intarr[20],并调用了函数。
f(arr),则下列关于函数f的原型声明,哪几个是完全等效的___
a、void f(intx[20b、void f(intx)
c、voidf(intx[10]);d、voidf(intx);e、void f(int *x);
3、有函数原型为voidf(int,int*);主函数中有变量定义:int a, *p=&a;则下列几种调用正确的是___
a、f(a,p); b、f(*p,&a); c、f(a,*p); d、f(*p,a);e、f(a,&a); f、f(*p,p); g、f(a,a); h、f(p,p);
函数模块测试 A
函数模块测试练习时间 60分钟姓名教师评定 一。选择题 1 函数y 的定义域为 a 2,3 b 2,3 c 2,3 d 3 2.下列函数中,满足 对任意,0,当 时,都有 的是 ab.c d 3 为了得到函数的图象,可以把函数的图象。a 向上平移一个单位b 向下平移一个单位 c 向左平移一个单位d ...
模块三作业
1.修订后明确的两个常见数量关系是什么?请选择一个本学期教材中你认为 最难 的应用问题,说一说您是如何鼓励学生先独立思考,再合作交流的,说一说学生所使用的方法。并结合新课标学习对自己的教学活动进行反思。修订后明确的两个常见数量关系 总价 单价 数量 路程 速度 时间。教学手段是实现教学目标的主要措施...
模块三作业
模块三 数与代数内容分析 专题3 数的认识 内容分析与教学建议。1.分数和小数的联系是 a.部分和整体的关系。b.具体的量。c.分数起源于分。d.小数是十进分数。专题4 数的运算 内容分析与教学建议。1.数的运算 教学中的核心概念是 a.数位 b.计数单位 c.运算律 专题5 估算内容分析及教学建议...