c语言复习市公开课一等奖百校联赛获奖课件.pptx
《c语言复习市公开课一等奖百校联赛获奖课件.pptx》由会员分享,可在线阅读,更多相关《c语言复习市公开课一等奖百校联赛获奖课件.pptx(104页珍藏版)》请在咨信网上搜索。
1、c语言复习第1页标识符注意事项标识符注意事项标识符用来命名变量、函数或类型;由英文字母、数字和下划线组成组成,大小写敏感;大小写敏感;不能够不能够是数字开头;命名标准命名标准1 1直观,见名知意,便于记忆和阅读最好使用英文单词或其组合切忌使用汉语拼音命名标准命名标准2 2可用下划线或大小写来增强可读性variablenamevariable_nameVariableName,variableName不允许使用关键字关键字作为标识符名字int,float,for,while,if等一些功效变量采取习惯命名如:for语句所采取循环变量习惯用i,j,k第2页变量类型转换自动转换发生在不一样数据类型变
2、量混合运算时,由编译系统自动完成强制转换经过类型转换运算来实现(类型说明符)(表示式)(int)(a+b)第3页结合性在表示式中,在表示式中,各运算量参加运算先后次序各运算量参加运算先后次序不但要恪守运算符优先级别要求,还要受不但要恪守运算符优先级别要求,还要受运算符结合性制约,运算符结合性制约,方便确定是自左向右方便确定是自左向右进行运算还是自右向左进行运算进行运算还是自右向左进行运算算术运算符结合性是算术运算符结合性是自左至右自左至右,即先左后,即先左后右右:x-y+z赋值运算符是赋值运算符是右结合性右结合性运算符:运算符:x=y=z;第4页一、算术运算符基本算术运算符:+-*/%说明:(
3、1)在“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。比如:5/3=1(2)“”要求两侧均为整数,“”运算不能用于float和double型数据比如:2(3)优先级高于第5页二、自增、自减运算符(、-)+i,-i(先加/减1,然后取i值)i+,i-(先取i值,然后加/减1)b=2 ,a=2b=2 ,a=3作用:使变量值增或减,如:比如:inta=1,b;b=+a;b=a+;先使用i值,再执行i=i+1先执行i=i+1,再使用i值+ii+第6页说明:1.+、只能用于变量,不能用于常量或表示式。比如:10,(x+y)+,+a,b+中正当为:2.自增、自减运算符为右结合性。比如:a+b+
4、(a+)3.惯用于循环变量自动加 1 第7页4.表示式中运算符组合,尽可能左结合 如:I+J(I+)+J5.表示式中使用自加或自减运算时,需注意 如:I=3K=(I+)+(I+)+(I+)结果:k=9,I=6如:I=3I=(I+)+(+I)+(I+)结果:I=14第8页若a=2,b=3,x=3.5,y=2.5,则表示式(float)(ab)/2(int)x%(int)y值是3.5表示式1/4+2.75值是2.75第9页三、赋值运算符和赋值表示式 1.赋值运算符为“=”形式:变量名=常量或表示式作用:将一个数据赋给一个变量右结合性比如:a=3;b=c+d;C要求:任何表示式在末尾加上分号就组成语
5、句。如:A=B+C表示式A=B+C;语句第10页“=”号两端数据类型不一样时进行转换转换是系统自动进行,右边转换为左边类型。规则以下:(1)整型=实型舍去小数部分(2)实型=整型值不变,以浮点形式存放(3)整型=字符型值放入低8位,高8位为0(4)字符型=整型仅将整型低8位存入第11页 六、关系运算符和关系表示式语言中关系运算符有种。(左结合性)、!2.算术运算符(高)关系运算符赋值运算符(低)优先次序:1.前种同级,高于后种(后种同级)比如:x!=y、s-db+c、a=bc第12页关系运算符运算出结果为0或10,表示假,即该关系不成立1,表示真,即该关系成立在全部包括到真假判断地方,0表示假
6、,非0表示真第13页优先级:!高于&高于|混合运算中:!高算术运算关系运算&、|低赋值运算注:怎样判断一个逻辑表示式为“真、假”?用“非”代表“真”,用“”代表“假”。如:b&0值为:“0”第14页逻辑表示式:1.运算结果为逻辑值2.编译系统以非0、0判定逻辑值真、假3.逻辑表示式中作为参加逻辑运算运算对象能够是0或非0数值。但要区分运算对象。例:53&2|8b?a:b将条件表示式值赋给变量max说明:例:设a,b,c,d值为1、2、3、4求下述表示式值max=ab?a:cd?c:d等价于max=ab?a:(cd?c:d)结果为:4第19页优先级:!高于&高于|混合运算中:!高算术运算关系运算
7、&、|低赋值运算第20页表示式:2-2值是 1设x、y和z是int类型变量,且x=3;y=4;z=5;则下面表示式中值为0是 。Ax&y Bx=y Cx|y+z&y-z D!(x=A&x=a&x=z第32页whilewhile(表示式)语句块1;语句块2;只要表示式值为非0,就重复执行语句块1,直到表示式值为0时止,开始执行语句块2表示式表示式表示式表示式!=0?!=0?Y YN N语句块语句块语句块语句块1 1语句块语句块语句块语句块2 2第33页forfor(表示式1;表示式2;表示式3)语句块;首先执行表示式1。假如表示式2值为非0,就重复执行语句块和表示式3,直到表示式2值为0时止相当
8、于:表示式1;while(表示式2)语句块;表示式3;for全部表示式均可省略表示式表示式表示式表示式2!=0?2!=0?Y YN N语句块语句块语句块语句块表示式表示式表示式表示式3 3表示式表示式表示式表示式1 1第34页注意在for和while语句之后普通没有分号有分号表示循环体就是分号之前内容,即循环体不存在while(i 100);i+;for(i=0;i 100;i+);printf(%d,i);for通常有一个循环变量控制循环次数,不要在循环体内改变这个变量第35页循环do-whiledo语句块1;while(表示式);语句块2;首先执行语句,然后判断表示式值。假如表示式为0,继
9、续向下执行,不然,再次执行语句,再次判断表示式值语句块1会被执行最少一次表示式表示式表示式表示式!=0?!=0?Y YN N语句块语句块语句块语句块1 1语句块语句块语句块语句块2 2第36页break和continue对for、while、do-while循环进行内部手术break,退出循环退出循环continue,中止此次循环执行,开始下一次中止此次循环执行,开始下一次break和continue少用为妙它们增加了循环执行分支,break更增加了循环出口它们能够用来处理程序异常,而尽可能不要用来处理正常流程第37页若intx=4,y=6,z=0;有循环while(x=y)z+;y-;则循环
10、语句执行完后,z值为。6判断题:1.标准C中,并不区分英文字符大小写。2.表示式“ELSE”是正当C语言标识符。错对第38页若一自然数全部正整数因子(该因子不包含其本身)之和仍为该自然数,则该自然数称为完全数。如:6=1+2+3,则6是完全数。求2,1000以内全部完全数。main()intx,n,m;for(n=2;n=1000;n+);for(m=1;my?x:y);函数可依据需要出现个return语句第45页(1)假如函数值类型与return语句表示式值类型不一致,以函数类型为准(数值型会自动进行类型转换)(2)申明为void型函数中不能包含带值return语句;主函数体内不能出现ret
11、urn语句。注意注意:第46页注意注意:(3)当函数没有return语句时,以结束函数大括号作为返回点。但这时并不表明函数没有返回值,这时返回值是系统给不确定值。(4)除了空值函数以外全部函数都返回一个值,那么我们是不是非得去使用这个返回值呢?答案是否定。假如没有用它赋值,那它就被丢弃了。(5)在同一函数内,可用依据需要在多处出现return语句,但函数第一次碰到return时就马上停顿执行,并返回到主调函数第47页函数调用形式参数:在定义定义函数时函数名后面括弧中变量名,简称形参实际参数:在调用函数时函数名后面括弧中表示式,简称实参调用格式:函数名函数名(实参实参表列表列)第48页说明:实参
12、必须有确定值形参必须指定类型形参加实参类型一致,个数相同若形参加实参类型不一致,自动按形参类型转换函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放函数参数及其传递方式第49页值传递方式方式:函数调用时,为形参分配单元,并将实参值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值,形参作域只限函数内特点:形参加实参占用不一样内存单元单向传递参数传递方式第50页方式:函数调用时,将数据存放地址作为参数传递给形参特点:形参加实参占用一样存放单元“双向”传递实参和形参必须是地址常量或变量函数地址传递第51页递归调用函数在它函数体内调用自己,以实现层次数
13、据结构查询和访问使用递归条件:1一个问题能够逐步处理,而且每一步处理方法一样,只是问题参数有规律改变2有一个明确结束递归条件优点:优点:递归使用能够使代码更简练清楚,可读性更加好缺点:缺点:因为递归需要系统堆栈,所以空间消耗要比非递归代码要大很多,而且,假如递归深度太大,可能系统资源会不够用方便了程序员难为了机器全部递归函数都能够转换为迭代函数全部递归函数都能够转换为迭代函数,反之亦然,反之亦然第52页概述变量是对程序中数据存放空间抽象内存.main()inta;a=10;printf(“%dn”,a);printf(“%dn”,&a)编译或函数调用时为其分配内存单元10程序中使用变量名对内存
14、操作6.6变量存放属性第53页6.6.1变量作用域与生存期变量作用域与生存期C语言中变量必须先定义后使用,变量数据类型决定了计算机为变量预留多少存放空间以及该变量上应含有一组运算。C语言中,除了对变量进行数据类型说明,还能够说明变量存放类型。不一样存放类型能够确定一个变量作用域和生存期。变量存放类型变量存放类型第54页1.1.变量作用域变量作用域 变量作用域是指变量作用范围,在C语言中分为在全局有效、局部有效和复合语句内有效三种。语言中全部变量都有自己作用域。变量说明位置不一样,其作用域也不一样,据此可将语言中变量分为局部变量(内部变量)和全局变量(外部变量)。2.生存期生存期变量生存期是指变
15、量作用时间长短,在C语言中分为程序期、函数期和复合期三种。第55页变量属性数据类型:变量所持有数据性质(操作属性)存放属性存放器类型:存放器、静态存放区、动态存放区生存期:变量在某一时刻存在-静态变量与动态变量作用域:变量在某区域内有效-局部变量与全局变量变量存放类型auto-自动型register-存放器型static-静态型extern-外部型变量定义格式:存放类型数据类型变量表;数据类型存放类型变量表;staticintx,y;第56页局部变量定义:在函数内定义,只在本函数内有效说明:main中定义变量只在main中有效不一样函数中同名变量,占不一样内存单元形参属于局部变量可定义在复合语
16、句中有效变量局部变量可用存放类型:autoregisterstatic(默认为auto)#includemain()intTest_Var=1;intTest_Var=2;intTest_Var=3;printf(“%dn”,Test_Var);/*?*printf(“%dn”,Test_Var);/*?*printf(“%dn”,Test_Var);/*1*第57页1.自动变量在函数内部或复合语句内部定义变量,假如没有写明存放类,或使用了auto说明符,系统就认为所定义变量含有自动变量类别,有时也称(动态)局部变量。形参属于被调用函数局部变量。注意:形参缺省关键字是auto,但不能将auto
17、直接加在形参之前。自动变量初始化是:每一次调用,形参都以实参为初值,非形参自动变量在函数体内部或复合语句内部都重新赋初值。所以,未赋初值自动变量,“无定义”,其值不定。第58页3.静态局部变量静态局部变量在函数体(或复合语句)内部,用以下定义格式定义变量称为静态局部变量:static数据类型变量表;比如:staticinta=8;静态局部变量初始化只在编译时进行一次,每次调用它们所在函数时,不再重新赋初值,只是保留上次调用结束时值。若定义但不初始化,则自动赋以(数值型)或0(字符型)。第59页例例6.18求以下程序输出结果#includemain()intf(void);/*函数申明*/int
18、j;for(j=0;j3;j+)printf(%dn,f();intf(void)/*无参函数*/staticintx=1;x+;returnx;程序运行结果:程序运行结果:234第60页例例:分析执行结果f(inta)intb=0;staticintc=3;b+;c+;printf(“%5d%5d%5d”,a,b,c);return(a+b+c);main()inta=2,k;for(k=0;k3;k+)printf(“%5dn”,f(a);静态变量只初始化一次结果:214(a,b,c)7(f(a)21582169第61页2.静态全局变量静态全局变量当用static说明符说明全局变量时,此变
19、量就称为静态全局变量或静态外部变量。此时static作用不是把全局变量改为静态存放,因为它本身就是静态存放类,而是限制了它作用域只能在本文件内,不能用extern说明符使其作用域扩展到程序其它文件中。静态外部变量允许程序一部分对其它部分充分隐蔽,这有利于管理大型复杂程序,程序员无须担心因全局变量重名而引发混乱。第62页静态动态存放方式程序整个运行期间函数调用开始至结束生存期编译时赋初值,只赋一次每次函数调用时赋初值自动赋初值0或空字符不确定未赋初值静态存放区动态区存放区存放器局部变量外部变量作用域定义变量函数或复合语句内本文件其它文件u局部变量默认为auto型uregister型变量个数受限,
20、且不能为long,double,float型u局部static变量含有全局寿命和局部可见性u局部static变量含有可继承性uextern不是变量定义,可扩展外部变量作用域register局部staticauto外部static外部存放类别变量存放类型第63页找出2个错误用递归语句编函数计算10!longf(intm)longa;if(m0)printf(“dataerror!”);elsea=f(m1)*m;main()intn;n=10;printf(“%d!=%ld”,n,f(n);if(m=0)a=1;return(a);第64页用递归语句编函数计算6!longf(intm)longa
21、;if(m0)printf(“dataerror!”);elsea=f(m-1)*m;main()intn=6;printf(“%d!=%ld”,n,f(n);if(m=0)a=1;return(a);第65页#includeinti=0;main()intk=1;i+;k+;printf(“goodi=%d,k=%dn”,i,k);sub();sub();staticinty=0;sub()intk=0;staticintx=1;y+;k+;x+;printf(“badi=%d,k=%d,x=%d,y=%dn”,i,k,x,y);goodi=1,k=2badi=1,k=1,x=2,y=1ba
22、di=1,k=1,x=3,y=2第66页一维数组定义v定义方式:数据类型 数组名常量表示式;正当标识符表示元素个数下标从0开始:数组运算符单目运算符优先级(1)左结合不能用()例 inta6;a00145a1a2a3a4a523a编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量 一维数组一维数组第67页 .4高位字节4低位字节2高位字节2低位字节a0a1a2a3a4数组在内存数组在内存中首地址中首地址即即a=int a5=2,4,23,6,78;第68页二维数组定义v定义方式:数据类型数组名常量表示式常量表示式;v数组元素存放次序l原因:内存
23、是一维l二维数组:按行序优先l多维数组:最右下标改变最快例inta34;floatb25;intc234;inta3,4;()行数列数元素个数=行数*列数inta32a01a10a11a20a21014523a00a00a01a10a11a20a21intc23401234567.20212223c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c123二维数组及多维数组二维数组及多维数组第69页v引用例aij(i:0N-1,j:0M-1)v初始化例 inta2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 公开 一等奖 联赛 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。