《c语言复习大纲》PPT课件.ppt_第1页
《c语言复习大纲》PPT课件.ppt_第2页
《c语言复习大纲》PPT课件.ppt_第3页
《c语言复习大纲》PPT课件.ppt_第4页
《c语言复习大纲》PPT课件.ppt_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

总复习,考试安排,时间:25日上午现科下午本部,考场以教学班为单位考试形式:笔试考试题型:选择题:20分,每题一分。判断题:20分,每题两分。问答题:30分,每题六分。包括:读程序写结果、写程序功能、写程序执行过程。编程题:30分,每题十分。顺序结构、选择结构和循环结构各一题。本门课程成绩比例构成:平时成绩(10%)+实验成绩(30%)+期末成绩(60%),第一章,概述,函数与主函数C语言是一种函数式语言,其程序基本组成是函数,程序由一个或多个函数组成,函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数必须有且只能有一个主函数main()不管主函数在程序中的位置如何,程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。,C程序开发步骤,程序代码的录入,生成源程序*.c,语法分析查错,翻译生成目标程序*.obj,与其它目标程序或库链接装配,生成可执行程序*.exe,第二章,变量与表达式,一、算术运算符和表达式基本算术运算符:+-*/%结合方向:从左向右优先级:-*/%-+-“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,余数符号与被除数符号一致。,2.1简单表达式,利用“/”和“%”可以求整数每一位上的数字。,例235%10=5235%100/10=3235/100=2,标识符组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感长度:最长32个字符,2.2常量与变量,关键字定义:有特殊含义的系统保留标识符,不能用来作为用户程序中定义的标识符。C语言保留的关键字,autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile,常量定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define符号常量常量,符号常量不同于变量,它的值在其作用域(在本例中为主函数)内不能改变,也不能再被赋值,如#definePRICE30,直接常量:,例:intia,ib,ic;floatfdata;,决定分配字节数和数的表示范围,合法标识符,变量定义的一般格式:数据类型变量1,变量2,变量n;,变量初始化:定义时赋初值,变量的使用:先定义,后使用,变量定义位置:一般放在函数开头,2.2数据类型,一、整型数据,整型常量(整常数)三种形式:十进制整数:由数字09和正负号表示.如123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0 xff,整型变量的分类整型变量的基本类型符为int。根据数值的范围定义为以下三种整型变量:(1)基本整型,以int表示。(2)短整型,以shortint表示,或以short表示。(3)长整型,以longint表示,或以long表示。在turboc中一个int型的变量的值范围为-215(215-1),即-3276832767。,有符号基本整型signedint无符号基本整型unsignedint有符号短整型signedshortint无符号短整型unsignedshortint有符号长整型signedlongint无符号长整型unsignedlongint,整型变量占字节数随机器不同而不同,一般占一个机器字shortintlong可用sizeof(类型标识符)测量,整型常量的类型(1)根据其值所在范围确定其数据类型(2)在整常量后加字母l或L,认为它是longint型常量,例12与12L,例30000为int型65536为longint型,二、实型数据,实型常量(实数或浮点数)表示形式:十进制数形式:由数字和小数点组成(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5规范化的指数形式:即在字母e(或e)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。,实型变量的分类单精度(float):占4字节,提供7位有效数字双精度(double):占8字节,提供1516位有效数字长双精度(longdouble),实型变量,实型常量的类型默认double型在实型常量后加字母f或F,认为它是float型,三、字符型数据,字符常量,定义:用单引号括起来的单个普通字符或转义字符,如aA?n101,字符常量的值:该字符的ASCII码值,如A65,a97,048,n10,如101-A012-n376-x61-a060-0483-(),例:A-101-x41-65,转义字符:反斜线后面跟一个字符或一个代码值表示,字符变量字符型变量用来存放字符常量,只能放一个字符。一个字符变量在内存中占一个字节。,字符变量在内存中的存储方式字符变量存放字符的ASCII码,存储形式与整型类似。一个字符数据既可以以字符形式输出,也可以以整数形式输出。char与int数据间可进行算术运算,字符型数据和整型数据是通用的。它们既可以用字符形式输出(用%c),也可以用整数形式输出(用%d)。注意:字符数据只占一个字节,它只能存放0255范围内的整数。,字符串常量定义:用双引号(“”)括起来的字符序列注意:不能把字符串赋给字符变量,字符常量与字符串常量不同,例:charch;ch=“A”;,存储:每个字符串尾自动加一个0作为字符串结束标志,没有字符串变量,用字符数组存放,四、各类数值型数据间的混合运算,显式转换(强制转换)一般形式:(类型名)(表达式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变,2.3运算符与表达式,一、算术运算符和表达式基本算术运算符:+-*/%结合方向:从左向右优先级:-*/%-+-说明:(2)(3)(4)“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,自增、自减运算符+-作用:使变量值加1或减1种类:前置+i,-i(先执行i+1或i-1,再使用i值)后置i+,i-(先使用i值,再执行i+1或i-1),例j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,说明:+-不能用于常量和表达式,如5+,(a+b)+-结合方向:自右向左优先级:-+-*/%-+-(2)(3)(4),二、赋值运算符和赋值表达式,简单赋值运算符符号:=格式:变量标识符=表达式,复合赋值运算符种类:+=-=*=/=%=a+=a-=a*a;,/a=-264等价于a=a+(a=a-(a*a),三、逗号运算符和逗号表达式,形式:表达式1,表达式2,表达式n结合性:从左向右优先级:15逗号表达式的值:等于表达式n的值用途:常用于循环for语句中,例a=3*5,a*4,a+5例a=1;b=2;c=3;printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值20,/3,2,3,四、关系运算符和关系表达式,关系运算符种类:=!=结合方向:自左向右优先级别:,关系运算符的优先级低于算术运算符,高于赋值运算符,关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例intia=3,ib=2,ic=1,ie;ie=iaibic,/ie=0,注意区分“=”与“=”,讨论:if(1=80)printf(A);,形式二:格式:if(表达式)语句1else语句2功能:首先对表达式进行求解,若表达式的值为真,则执行语句1,否则执行语句2。,if(igrade=60)printf(PASS);elseprintf(NotPASS!Pleaseworkhard!);,形式三:格式:if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句elseif(表达式n)语句nelse语句n+1功能:依次判断表达式的值,当某个表达式i为真时,则执行其对应的语句i,然后跳到整个if语句之后继续执行程序。如果所有的表达式均不为真,则执行语句n+1,然后执行后续程序。,if(igrade=80)printf(A);elseif(igrade=70)printf(B);elseif(igrade=60)printf(C);elseprintf(D);,如:if(a=b,说明:if后面的表达式类型任意,第二、第三种形式的if语句中,每个else前有一分号,整个语句结束处有一分号。,else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。,语句可以是复合语句,if(x)if(x!=0)if(!x)if(x=0),ia=3;ib=8;if(iaib)printf(“themaxis%d”,ia);printf(“theminis%d”,ib);,ia=3;ib=8;if(iaib)printf(“themaxis%d”,ia);printf(“theminis%d”,ib);,比较输出结果,ifelse配对原则:缺省时,else总是和它上面离它最近的未配对的if配对,if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。,例:if(a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,修改:if(a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,实现ifelse正确配对方法:加,条件运算符一般形式:表达式1?表达式2:表达式3,max=(ab)?ab,if(ab)max=a;elsemax=b;,功能:如果表达式1的值为非0,则表达式2的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值。条件表达式常用于赋值语句中。,优先级:条件运算符优先于赋值运算符,优先级别比关系运算符和算术运算符都低。,结合性:自右至左,3.2switchcase语句(多分支选择语句),switch(表达式)case常量表达式1:语句1case常量表达式2:语句2case常量表达式n:语句ndefault:语句n1,一般形式,说明:(1)switch后面括弧内的“表达式”,可为任何类型。(2)当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。(3)每一个case的常量表达式的值必须互不相同。(4)各个case和default的出现次序不影响执行结果。(5)“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。必须用break跳出。,switch(grade)caseAprintf(85100n);caseBprintf(7084n);caseCprintf(6069n);caseDprintf(60n);defaultprintf(errorn);,若grade的值等于A,则将连续输出:851007084606960error,switch(grade)caseAprintf(85100n);break;caseBprintf(7084n);break;caseCprintf(6069n);break;caseDprintf(60n);break;defaultprintf(errorn);,(6)case后可包含多个可执行语句,且不必加(7)多个case可以共用一组执行语句,如:caseA:caseB:caseC:printf(“score60n”);break;.,3.3循环概述,循环是在循环条件为真时计算机反复执行的一组指令(循环体)。循环控制通常有两种方式:计数控制事先能够准确知道循环次数时用之用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。标记控制事先不知道准确的循环次数时用之由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。,循环结构两大要素:循环条件p:结束循环的条件表达式循环体A:循环执行的语句或语句组设置循环条件要特别注意确定:循环变量的初值循环变量的终值循环变量的变化规律,3.3循环概述,一般形式:,3.4for语句,for(表达式1;表达式2;表达式3)循环体语句,执行流程:,(1)先求解表达式1。(2)求解表达式2,若其值为真(非0),则执行循环体语句,然后执行第(3)步。若为假(值为0),则结束循环,转到第(5)步。(3)求解表达式3。(4)转回上面第(2)步骤继续执行。(5)循环结束,执行for语句下面的一个语句。,for语句一般应用形式:,for(循环变量赋初值;循环条件;循环变量增值)循环体语句;,说明:for语句中表达式1,表达式2和表达式3类型任意,都可省略,但分号;不可省,(1)省略表达式1,此时应在for语句之前给循环变量赋初值。ii=1;for(;ii=100;ii+)isum=isum+ii;,(2)表达式2省略,即不判断循环条件,认为表达式2始终为真,循环无终止地进行下去。for(ii=1;ii+)isum=isum+ii;,(3)省略表达式3,但此时应保证循环能正常结束。for(ii=1;ii=100;)isum=isum+ii;ii+;,(4)省略表达式1和表达式3,只有表达式2,即只给循环条件:for(;ii=100;)while(ii=100)isum=isum+ii相当于isum=isum+ii;ii+;ii+;,(5)三个表达式都可省略,无限循环:for(;)语句相当于while(1)语句。,(6)表达式一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。,3.5while、dowhile语句,一般形式:,while(表达式)循环体语句;,执行流程:先判断表达式,当表达式的值为非0时,反复执行循环体语句,直到表达式的值为0.退出while语句。,特点:先判断表达式,后执行循环体说明:循环体有可能一次也不执行循环体可为任意类型语句下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,return,goto无限循环:while(1)循环体;,一、while语句,例求,main()intii,isum=0;ii=1;while(ii=100)isum=isum+ii;ii+;printf(%d,isum);,注意:(1)循环体包含一个以上的语句,应用花括弧括起来。(2)循环体中应有使循环趋向于结束的语句。,二、dowhile语句,一般形式:,do循环体语句;while(表达式);,执行流程:先执行循环体,然后判断表达式的值,若为非0时,反复执行循环体语句,直到表达式的值为0,退出while语句。,特点:先执行循环体,后判断表达式说明:至少执行一次循环体dowhile可转化成while结构,3.6break语句和continue语句,break语句功能:在循环语句和switch语句中,终止并跳出循环体或开关体一般形式为:break;说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中在循环语句中,break语句一般都是与if语句一起使用。,continue语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断,如:while(表达式1)语句组1if(表达式2)continue;语句组2当表达式1成立时,进入循环体执行语句组1,若表达式2成立时执行continue语句,语句组2就不再执行,而转去判定下一次循环是否执行。,continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。,说明:continue语句使用应该注意的问题(1)continue语句只能用在循环语句中。(2)一般都是与if语句一起使用。,第四章,数组,4.2一维数组,inta10;它表示数组名为a,此数组有10个元素。,说明:(1)数组名定名规则和变量名相同,遵循标识符定名规则。(2)数组名后是用方括弧括起来的常量表达式,不能用圆括弧,下面用法不对:inta(10);,一维数组的定义定义方式:数据类型数组名常量表达式;,说明:(3)常量表达式表示元素的个数,即数组长度。下标从0开始。(4)常量表达式中可以包括常量和符号常量,不能包含变量。,错误:intn=5;intan;,正确:#defineN5intaN;,一维数组的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式a0=a5+a7-a2*3,例inta6;,编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型),数组名表示内存首地址,是地址常量,C语言对数组不作越界检查,使用时要注意,一维数组的初始化初始化方式,在定义数组时,为数组元素赋初值(在编译阶段使之得到初值),inta5=1,2,3,4,5;等价于:a0=1;a1=2;a2=3;a3=4;a4=5;,说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值,当全部数组元素赋初值时,可不指定数组长度,如inta5=6,2,3;等价于:a0=6;a1=2;a2=3;a3=0;a4=0;如inta3=6,2,3,5,1;(),只给部分数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论