函数及变量存储类型省公共课一等奖全国赛课获奖课件.pptx
《函数及变量存储类型省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《函数及变量存储类型省公共课一等奖全国赛课获奖课件.pptx(42页珍藏版)》请在咨信网上搜索。
第七章 函数及变量存贮类型 第七章 函数及变量存贮类型 7.1 函数基础与函数基础与C程序结构程序结构7.2 函数定义和申明函数定义和申明7.3 函数调用函数调用7.4 函数嵌套与递归函数嵌套与递归7.5 变量存贮类别变量存贮类别 第1页第七章 函数及变量存贮类型 7.1 函数基础与函数基础与C程序结构程序结构 7.1.1 C程序结构化设计思想程序结构化设计思想 图 7.1 C程序结构示意图 第2页第七章 函数及变量存贮类型 7.1.2 函数概述函数概述 在C程序设计中,函数是独立C程序模块,它完成一个特定任务并可选择是否将一个值返回调用程序。在C语言中,子程序被称为函数,它对应于其它高级语言中过程(无返回值子程序)和函数(经过函数名返回一个值子程序)。一个C程序普通由多个函数组成,其中必须有一个且仅有一个名为main主函数,其余为被main函数或其它函数调用函数,不论main函数位于程序中什么位置,C程序总是从main函数开始执行。第3页第七章 函数及变量存贮类型 main函数可调用其它函数来实现所需功效。被main函数调用函数分为两类:一类是由系统提供标准库函数,比如,标准输入输出函数(scanf,printf,getche,putchar,)、数学计算函数(sin,cos,fabs,sqrt,)、数据格式转换函数(atoi,atof,sscanf,sprintf,)、字符串处理函数(strlen,strcpy,strcmp,)和文件读写函数(fread,fwrite,fopen,)等。这类函数能够由用户程序直接调用;另一类是用户在自己程序中定义函数,即需要由用户自己编写函数。第4页第七章 函数及变量存贮类型 例例 7.1 用户自定义函数求数平方。include long square(long);/*函数申明 */void main()long in-num,result;printf(Input an integer:);scanf(%ld,&in-num);result=square(in-num);/*函数调用 */printf(nThe square number of%ld is%ld,in-num,result);第5页第七章 函数及变量存贮类型 long square(long x)/*函数定义 */long x-square;/*说明部分 */x-square=x*x;/*执行部分 */return x-square;Input an integer:100 (输入)The square number of 100 is 10000 (输出)第6页第七章 函数及变量存贮类型 7.2 函数定义和申明函数定义和申明 7.2.1 函数定义函数定义例例 7.2 计算xn次方,x=2,-3;(n=1,2,9)。include int main(void)*测试power函数 *int i;double power(int,int);/*函数申明 */for(i=1;i10;i+)printf(power(2,%d)=%8.4f,power(-3,%d)=%11.4fn,第7页第七章 函数及变量存贮类型 i,power(2,i),i,power(-3,i);return 0;double power(int x,int n)/*函数首部 */int i;/*说明部分 */double p;p=1;/*执行部分 */for(i=1;i=y)return(x);else return(y);main()float a,b,c;scanf(%f%f,&a,&b);c=max(a,b);printf(max=%5.2fn,c);运行情况以下:2.5 5.6max=5.00 第24页第七章 函数及变量存贮类型 7.4 函数嵌套与递归函数嵌套与递归 7.4.1 函数嵌套调用函数嵌套调用 例例 7.6 输入三个数,计算以它们作为两个底半径和高所形成圆台体积。分析分析:已知圆台上下底半径,可用下式计算圆台体积 第25页第七章 函数及变量存贮类型 程序以下:include include define PI 3.1416 float area(float r)return(PI*r*r);float volume(float r1,float r2,float h)float v;v=h*(area(r1)+area(r2)+sqrt(area(r1)*area(r2)/3.0;return(v);第26页第七章 函数及变量存贮类型 main()float r1,r2,h;printf(Please input r1 r2 h:n);scanf(%f%f%f,&r1,&r2,&h);printf(The volume is%fn,volume(r1,r2,h);运行结果Please input r1 r2 h:2.5 6.8 3.3The volume is 240.140762 第27页第七章 函数及变量存贮类型 7.4.2 函数递归及条件函数递归及条件 递归是一个特殊处理问题方法,要用递归处理问题,应满足两个条件:(1)函数直接或间接地调用它本身;(2)应有使递归结束条件。第28页第七章 函数及变量存贮类型 例例 7.7 用函数递归方法以字符串形式输出一个整数。include void printd(int n)if(n0)putchar(-);n=-n;if(n/10)/*n/10=0时,递归结束*/printd(n/10);/*递归调用*/putchar(n%10+0);/*以字符输出*/void main()int number;scanf(%d,&number);printd(number);第29页第七章 函数及变量存贮类型 7.5 变量存贮类别变量存贮类别 7.5.1 变量作用域和生存期变量作用域和生存期 例例 7.8 变量作用域。include int x999;/*定义全局变量x */void print-value(void);void main()printf(%dn,x);print-value();void print-value(void)printf(%dn,x);输出:999 999 第30页第七章 函数及变量存贮类型 例例 7.9 变量作用域。include void print-value(void);void main()int x=999;/*定义局部变量x */printf(%dn,x);print-value();void print-value(void)printf(%dn,x);第31页第七章 函数及变量存贮类型 7.5.2 动态存贮和静态存贮动态存贮和静态存贮 内存中供用户使用存贮空间可分为程序区、动态存贮区和静态存贮区。程序区用来存放程序代码,动态存贮区和静态存贮区用来存放数据,即数据与处理数据程序是分离,这是面向过程程序设计方法特点。动态存贮和静态存贮是指C对数据存贮两种方式。动态存贮是指存贮一些数据存贮单元可在程序运行不一样时间分配给不一样数据,而静态存贮是指存贮单元在程序运行整个过程中固定地分配给一些数据。第32页第七章 函数及变量存贮类型 7.5.3 局部变量局部变量 局部变量又称内部变量,是在一个函数内定义,其作用域限制在所定义函数中。例例 7.10 局部变量与全局变量同名。int a=1,b=2;/*定义全局变量a、b */max(int a,int b)/*子函数中局部变量a、b */int c;c=ab?a:b;return(c);main()int a=8;/*定义局部变量a */printf(%d,max(a,b);运行结果:8 第33页第七章 函数及变量存贮类型 7.5.4 局部静态变量使用局部静态变量使用 例例 7.11 静态局部变量使用。void f()int a,b=3;static int c,d=5;a=3;c=5;a+;b+;c+;d+;printf(%d t%d t%d t%dn,a,b,c,d);main()f();f();运行结果:4 4 6 64 4 6 7 第34页第七章 函数及变量存贮类型 例例 7.12 打印1到5阶乘。fac(int n)static int f=1;f*=n;return(f);main()int i;for(i=1;i=5;i+)printf(%d!=%dn,i,fac(i);第35页第七章 函数及变量存贮类型 运行结果:1!=1 2!=2 3!=6 4!=24 5!=120 第36页第七章 函数及变量存贮类型 7.5.5 全局变量全局变量 全局变量(也称外部变量)是在全部函数、包含main函数之外定义。全局变量是存放在静态存贮区中,它作用域是从全局变量定义之后直到该源文件结束全部函数;经过用extern作引用说明,全局变量作用域能够扩大到整个程序全部文件。在定义全局变量时能够使用static存贮类型标识符,它与普通全局变量区分在于变量作用域。普通全局变量不但对文件中全部函数都是可见,而且能被其它文件中函数所用;而static型全局变量仅对其所在文件中定义处之后函数是可见,不能被其它文件使用。这种差异适合于程序源代码包含在两个或多个文件中情况。第37页第七章 函数及变量存贮类型 全局变量初始化是在全局变量定义时进行,且其初始化仅执行一次,若无显式初始化,则由系统自动初始化为与变量类型相同0初值:整型变量初始化为整数0 浮点型变量初始化为浮点数0.0 字符型变量初始化为空字符0在有显式初始化情况下,初值必须是常量表示式。全局变量存放在静态存贮区中,全局变量在程序执行之前分配存贮单元,在程序运行结束后才被收回。第38页第七章 函数及变量存贮类型 例例7.13 输入以秒为单位一个时间值,将其转化成“时:分:秒”形式输出。将转换工作定义成函数。include int hh,mm,ss;void convertime(long seconds)hh=seconds/3600;mm=(seconds-hh*3600L)/60;ss=seconds-hh*3600L-mm*60;void main(void)long seconds;第39页第七章 函数及变量存贮类型 printf(hh=%d,mm=%d,ss=%dn,hh,mm,ss);printf(input a time in second:);scanf(%ld,&seconds);convertime(seconds);printf(%2d:%2d:%2dn,hh,mm,ss);执行时输出:hh0,mm0,ss0 input a time in second:41574 (输入)11:32:54 (输出)第40页第七章 函数及变量存贮类型 7.5.6 存放器变量存放器变量 例例 7.14 计算 s=x1x2x3xn,x和n由终端输入。include long sum(register int x,int n)long s;int i;register int t;t=s=x;for(i=2;in;i+)t*=x;s+=t;第41页第七章 函数及变量存贮类型 return(s);main()int x,n;printf(Input x,n:);scanf(%d%d,&x,&n);printf(s=%ldn,sum(x,n);执行时输出:Input x,n:4 5 S=1364 第42页- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 变量 存储 类型 公共课 一等奖 全国 获奖 课件
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文