书签 分享 收藏 举报 版权申诉 / 97
上传文档赚钱

类型C语言总复习课件.pptx

  • 上传人(卖家):ziliao2023
  • 文档编号:5645698
  • 上传时间:2023-04-28
  • 格式:PPTX
  • 页数:97
  • 大小:454.08KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言总复习课件.pptx》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 复习 课件
    资源描述:

    1、2.2 数据类型概述数据类型概述常量常量变量变量符号常量符号常量实型常量实型常量整型常量整型常量数据类型数据类型字符常量字符常量字符串常量字符串常量结构体变量结构体变量实型变量实型变量整型变量整型变量字符变量字符变量指针变量指针变量按数据的数值是否可变分为:按数据的数值是否可变分为:2.3 常量常量 2、数值常量:整型常量:12、-3 实型常量:13.45、-2.34 字符常量 字符串常量如:#define PRICE 30 定义:程序运行时其值不能改变的量(即常数)分类:1、符号常量:用一个符号代表常量 定义格式:#define 符号名 常量值例例2-1:符号常量举例:符号常量举例#defi

    2、ne PRICE 30main()int n,t;n=10;t=n*PRICE;printf(t=%d,t);运行结果:total=3002.4 变量变量变量:在程序运行过程中,其值可以改变的量;变量:在程序运行过程中,其值可以改变的量;l有关变量的规定:有关变量的规定:u 变量通过变量名来标识,变量名和内存中存储单元变量通过变量名来标识,变量名和内存中存储单元相对应。编写程序时通过变量名来存、取存储单元。相对应。编写程序时通过变量名来存、取存储单元。变量名变量名memorya88 81000H1000H1001H1001H1002H1002H2552551212int a=12;u 变量必须

    3、先定义,后使用。变量必须先定义,后使用。2.4 变量变量变量名的命名规则变量名的命名规则变量名必须是一个C语言合法的标识符!标识符标识符名称名称定义:定义:用来标识变量名、符号常量名等的用来标识变量名、符号常量名等的字符序列字符序列;组成:组成:u由由字母、数字、下划线字母、数字、下划线组成,且组成,且第一个字符第一个字符必须是必须是字母或下划线字母或下划线;u区分大小写;区分大小写;u不能使用不能使用关键字关键字;u最长最长3232个字符;个字符;命名原则:命名原则:1)1)见名知意;见名知意;2)2)不宜混淆,如:不宜混淆,如:l l与与I,oI,o与与0 0;3)3)符号常量习惯全用大写

    4、字母;符号常量习惯全用大写字母;2.4 变量变量变量名的命名规则变量名的命名规则例例2-2:2-2:判断下列标识符号合法性:判断下列标识符号合法性:sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$1233days#33char$123abM.D.John下面列出的是合法的标识符,也是合法的变量名:下面列出的是合法的标识符,也是合法的变量名:sum1,average,_total,month下面是不合法的标识符和变量名:下面是不合法的标识符和变量名:y 123,33,3d64,2.4 变量变量变

    5、量名的命名规则变量名的命名规则 下一页下一页call_n test39 _string1 abccall.n 39test -string1 c2.0 例例2-3:判断下列标识符号合法性:判断下列标识符号合法性:C C语言的基本字符集语言的基本字符集l 数数 字字:0 1 2 3 4 5 6 7 8 9l 字字 母母:a b c z A B C Zl 运运 算算 符符:+-*/%=!=&|&|()-.!?:,;“l 特殊符号:特殊符号:_(下划线下划线)回车回车(r)换行换行(n)制表符制表符(t)基本字符集基本字符集返回返回C C语言的关键字语言的关键字返回返回32个关键字:个关键字:aut

    6、o break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while关键字关键字由系统定义的具有特殊含义的符号,不能作其它定义由系统定义的具有特殊含义的符号,不能作其它定义2.4 变量变量变量定义的格式变量定义的格式定义变量的一般格式:定义变量的一般格式:数据类型数据类型 变量名

    7、变量名1,变量名,变量名2,变量名,变量名n;决定分配字节数和数的表示范围合法标识符如:int a,b,c;float data;2.4 变量变量变量的赋初值变量的赋初值定义变量之后可以给变量赋初值,可将一个同类型的常量赋值给变量定义变量之后可以给变量赋初值,可将一个同类型的常量赋值给变量;int a=2,b,c=4;float data=3.67;int a,b,c;float data;a=2;c=4;data=3.67;如:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;2.4 变量变量变量的使用规则变量的使用规则如:int

    8、 student;stadent=19;/Undefined symbol statent in function main 变量定义位置:一般放在函数开头main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);变量的使用:先定义,后使用main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句3.1 整型数据整型数据3.1.2 整型常量与整型变量整型常量与整型变量1.整型常量整型常量整型常量即整常数整型常量即整

    9、常数 如:如:123123、45453.1 整型数据整型数据3.1.2 整型常量与整型变量整型常量与整型变量2.整型变量的种类整型变量的种类有三种整型变量:有三种整型变量:(1)基本整型,以基本整型,以int表示;表示;(2)短整型,以短整型,以short int 表示,或以表示,或以 short 表示;表示;(3)长整型,以长整型,以long int 表示,或以表示,或以 long 表示;表示;3.1 整型数据整型数据3.1.2 整型常量与整型变量整型常量与整型变量2.整型变量的种类整型变量的种类u在实际应用中,变量的值常常是正的在实际应用中,变量的值常常是正的(如学号、库存量、年龄、存款额

    10、等如学号、库存量、年龄、存款额等);u为了充分利用变量的表数范围,此时可以将变量定义为为了充分利用变量的表数范围,此时可以将变量定义为“无符号无符号”类型;类型;u对以上三种都可以加上修饰符对以上三种都可以加上修饰符unsigned,以指定是,以指定是“无符号数无符号数”;u如果加上修饰符如果加上修饰符signed,则指定是,则指定是“有符号数有符号数”;u如果既不指定为如果既不指定为signed,也不指定为,也不指定为unsigned,则隐含为有符号,则隐含为有符号(signed);实际上;实际上signed是完全可以不写的;是完全可以不写的;3.1 整型数据整型数据3.1.2 整型常量与整

    11、型变量整型常量与整型变量2.整型变量的种类整型变量的种类归纳起来,可以用以下归纳起来,可以用以下6种整型变量;种整型变量;即:即:有符号基本整型有符号基本整型 signed int 无符号基本整型无符号基本整型 unsigned int 有符号短整型有符号短整型 signed short int 无符号短整型无符号短整型 unsigned short int 有符号长整型有符号长整型 signed long int 无符号长整型无符号长整型 unsigned long int3.1 整型数据整型数据3.1.2 整型常量与整型变量整型常量与整型变量2.整型变量的种类整型变量的种类 数据类型数据类

    12、型 所占位数所占位数 取值范围取值范围int 32-231.(231-1)unsigned int 32 0.(232-1)short 16-215.(215-1)unsigned short 16 0.(216-1)long 32-231.(231-1)unsigned long 32 0.(232-1)十进制小数 如12.,.12,2.34 指数形式 如1.2e3 123e3(123103),1e3(1103),10E2(10102)规范化形式:小数部分数字小于1,小数点后第一个数字必须是非0数字(必有小数必有小数点点)(e(e或或E E前必须有数前必须有数,且后必为整数且后必为整数)3.

    13、2.1 实型常量的表示形式实型常量的表示形式3.2 实型数据实型数据数符(数符(+-)小数部分小数部分 指数部分指数部分3.2 实型数据实型数据3.2.2 实型变量实型变量1.实型变量的分类实型变量的分类float float、doubledoubleANSI CANSI C并没有具体规定每种类型数据的长度、精度、数值范围,由编译并没有具体规定每种类型数据的长度、精度、数值范围,由编译系统自行决定;系统自行决定;一般编译系统规定如下表:一般编译系统规定如下表:数据类型数据类型 数据的长度数据的长度 精度有效位精度有效位单精度(float)4字节 6 7位有效数字双精度(double)8字节 1

    14、516位有效数字3.2.2 实型变量实型变量3.把实数按双精度数处理把实数按双精度数处理u系统默认将实型常量当作双精度处理,加上系统默认将实型常量当作双精度处理,加上f f或或F F 后就作单精度处理;后就作单精度处理;u一个实型常量可对其它实型变量赋值,但要根据变量的类型截取常量中一个实型常量可对其它实型变量赋值,但要根据变量的类型截取常量中相应的有效位数相应的有效位数如:如:如:如:Float aFloat a;double adouble a;a a123456.7 a=123456.789123456.7 a=123456.789接受接受7位有效数字位有效数字9位有效数字全部接受位有效

    15、数字全部接受3.2 实型数据实型数据3.3.1 字符常量和字符变量字符常量和字符变量1.字符常量字符常量定义:用单引号括起来单个普通字符或转义字符.如 a A?n 字符常量的值:该字符的ASCII码值如 A65,a97048,n123.3 字符型数据字符型数据3.3.1 字符常量和字符变量字符常量和字符变量2.转义字符转义字符转义字符转义字符含含 义义转义字符转义字符含含 义义n换行,下行开头t水平制表,跳到下一输出区f换页,下页开头b退格,消除前一个字符r回车,本行开头反斜线单引号“双引号ddd3位8进制数代表的字符xhh2位16进制数代表的字符方式:方式:反斜线后面跟一个字符或一个代码值;

    16、反斜线后面跟一个字符或一个代码值;意义:意义:表示将反斜杠后面的字符或代码转换成另外的意义,这这表示将反斜杠后面的字符或代码转换成另外的意义,这这些字符一般不能显示具体的字符形状出来,只表示特殊的含义;些字符一般不能显示具体的字符形状出来,只表示特殊的含义;3.3 字符型数据字符型数据3.3.1 字符常量和字符变量字符常量和字符变量2.转义字符转义字符注意:注意:u 转义字必须以反斜杠作为开头标志转义字必须以反斜杠作为开头标志,而且在其后只能有一个字符(或代,而且在其后只能有一个字符(或代表字符的八进制或十六进制数)表字符的八进制或十六进制数)如:如:nn 是不合法的是不合法的 101x41A

    17、 012nu 字符常量只包含一个字符,字符常量只包含一个字符,例如例如a,n(合法合法);ax,food(不合法不合法);u 字符常量区分大小写;字符常量区分大小写;u (单引号单引号)是定界符,表示内部是一个字符常量,引号本身不属于字是定界符,表示内部是一个字符常量,引号本身不属于字符常量;符常量;3.3 字符型数据字符型数据3.3.1 字符常量和字符变量字符常量和字符变量3.字符变量字符变量u 字符型变量是通过关键字字符型变量是通过关键字charchar来说明的,格式如下:来说明的,格式如下:如:如:char c1,c2;u 每个字符型变量可用来存放每个字符型变量可用来存放一个字符常量一个

    18、字符常量;如:如:c1=A ;c2=B ;可合并为:可合并为:char c1=A,c2=B;3.3 字符型数据字符型数据3.3.1 字符常量和字符变量字符常量和字符变量4.字符数据与整型数据在一定条件下可以通用字符数据与整型数据在一定条件下可以通用u1 1个字符型数据在内存用个字符型数据在内存用1 1个字节来存储,存储的是字符对应的个字节来存储,存储的是字符对应的ASCIIASCII码值,将码值,将ASCIIASCII码值用二进制形式存储;码值用二进制形式存储;如:如:A 65 A 65 B 66 B 66 01 00 00 01 01 00 00 10 u字符变量和整型变量是通用的字符变量和

    19、整型变量是通用的,可以互相赋值;可以互相赋值;如:如:char c=a ;char c=97 ;3.3 字符型数据字符型数据3.3.1 字符常量和字符变量字符常量和字符变量4.字符数据与整型数据在一定条件下可以通用字符数据与整型数据在一定条件下可以通用字符变量可以使用两种形式输出,既可以字符(字符变量可以使用两种形式输出,既可以字符(c c)的形式输出,也)的形式输出,也可以整型(可以整型(d d)的形式输出;)的形式输出;例例2.3 字符数据的赋值和输出字符数据的赋值和输出#include void main()char c1=97,c2=98;/*char c1=a,c2=b*/print

    20、f(“%c,%c n”,c1,c2);printf(“%d,%d n”,c1,c2);运行结果运行结果 a,b 97,983.3 字符型数据字符型数据C语言中的运算符语言中的运算符(15类类)算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它 :()学习运算符应注意:学习运算符应注意:与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型1 1 算术运算符和算术表达式算术运算符和算术表达式基本算

    21、术运算符:+-*/%结合方向:从左向右优先级:+-*/%-+-(2)(3)(4)说明:“-”作为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据+-*/中任意数类型为实型,结果均为实型例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10 =5%1 =5.5%2例 5/2 =2 -5/2.0=-2.5例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()int a,b,c;float d;a*b/c-1.5(a*b)/c*1.5 a-b*c a-(b*c)a-b+c(a-b)+c自增、自减运算符自增、自减运算符 +-+-作用:使变量值加1

    22、或减1 优先级与相同,(2)级,从右向左结合种类:前置 +i,-i (先执行i+1或i-1,再使用i值相当于i=i+1)后置 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)2 2 赋值运算符和赋值表达式赋值运算符和赋值表

    23、达式l简单赋值运算符 符号:=格式:变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3l复合赋值运算符 种类:+=-=*=/=%=&=|=含义:var1 op=exp2 var1=var1 op exp2l说明:结合方向:由右向左 优先级:(14)左侧必须是变量,不能是常量或表达式例 int i;i=2.56;/结果i=2;例:a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2 赋值转

    24、换规则:使赋值号右边表达式值自动转换成其左边变量的类型 赋值表达式的值与变量值相等,且可嵌套例:3=x-2*y;()a+b=3;()l关系运算符 种类:=!=结合方向:自左向右 优先级别:(6)-(7)运算结果为:1 或 0例 int a=3,b=2,c=1,d,f;ab c=ab b+cb f=abc表达式值1表达式值1表达式值0d=1f=0=!=优先级(高)(6)优先级(低)(7)3 3 关系运算符和关系表达式关系运算符和关系表达式关系运算注意事项:关系运算注意事项:例 若a=0;b=0.5;x=0.3;则 a=x0 结果为 A100 结果为10例 注意区分“=”与“=”int a=0,b

    25、=1;if (a=b)printf(“a equal to b”);else printf(“a not equal to b”);a equal to b(a=b)a not equal to b 注意数学上的关系运算符和C语言中的关系运算符的区别!ab!a!ba&ba|b真假真假假假真真逻辑运算符种类:!&|逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真4 4 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式!&|高低例 a=x&xb&xy a=b|x=y !a|abl优先级:(2)(11)(12)l结合方向

    26、:!:从右向左&:从左向右|:从左向右/*(a=x)&(xb)&(xy)*/*(a=b)|(x=y)*/*(!a)|(ab)*/例 a=4;b=5;!a a&b a|b !a|b 4&0|2 53&2|83)&2|(8b)&(n=cd)/*结果m=0,n=1*/l一般形式:expr1?expr2 :expr3l执行过程l功能:相当于条件语句,但不能取代一般if语句例 if(ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);l结合方向:自右向左 如 ab?a:cd?c:d ab?a:(cd?c:d)lexpr1、expr2、exp

    27、r3类型可不同,表达式值取较高的类型例 x?a:b /x=0,表达式值为b;x0,表达式值为a xy?1:1.5 /xy ,值为1.0;x=0);else y=x;while(x=1);返返 回回5.3 C语句的分类语句的分类用用 把一些语句括起来成为复合语句把一些语句括起来成为复合语句复合语句复合语句如:如:if(x 0)i+;sum=sum+x;else j+;sub=sub+x;注意:注意:复合语句中最后一个语复合语句中最后一个语句末尾的分号不能漏掉;句末尾的分号不能漏掉;C语言可以一行写几个语言可以一行写几个语句,也允许一个语句拆开语句,也允许一个语句拆开写在几行上;写在几行上;返返

    28、回回5.4 输入和输出语句输入和输出语句一、字符的输入和输出一、字符的输入和输出格式格式:getchar():getchar()功能:从键盘读一字符功能:从键盘读一字符字符输入函数字符输入函数格式格式:putchar(c):putchar(c)参数参数:c:c为字符变量为字符变量功能:把字符功能:把字符c c输出到显示器上输出到显示器上字符输出函数字符输出函数5.4 输入和输出语句输入和输出语句一、字符的输入和输出一、字符的输入和输出 可以赋给一个字符变量或整型变量可以赋给一个字符变量或整型变量 例:例:#include main()char c;c=getchar();putchar(c);

    29、a a5.4 输入和输出语句输入和输出语句二、格式化输入和输出二、格式化输入和输出格式:格式:printf(printf(“格式控制串格式控制串”,输出表,输出表)功能:功能:按指定格式向显示器输出数据按指定格式向显示器输出数据格式输出函数格式输出函数输出表:输出表:要输出的数据(可以没有,多个时以要输出的数据(可以没有,多个时以“,”分隔)分隔)格式控制串:格式控制串:包含两种信息包含两种信息 格式说明:格式说明:%修饰符修饰符 格式字符格式字符 ,用于指定输出格式,用于指定输出格式 普通字符或转义序列:普通字符或转义序列:原样输出原样输出5.4 输入和输出语句输入和输出语句二、格式化输入和

    30、输出二、格式化输入和输出例如:例如:printf(“%d%d”,a,b););格式控制格式控制 输出列表输出列表printf(“a=%d b=%d”,a,b)格式说明格式说明 普通字符普通字符 输出列表输出列表 可以是可以是表达式表达式5.4 输入和输出语句输入和输出语句十六进制无符号整数十六进制无符号整数不带符号十进制整数不带符号十进制整数十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e和和f中较短一种中较短一种百分号本身百分号本身d,ix,Xoucse,Efg%int a=567;printf

    31、(“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%(1)格式字符表:)格式字符表:5.4 输入和

    32、输出语句输入和输出语句(2)修饰符表:)修饰符表:.n对实数,指定小数点后位数(四舍五入)修饰符功 能m输出数据域宽,数据长度m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0 x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l对字符串,指定实际输出位数5.4 输入和输出语句输入和输出语句例例 int a=1234;float f=123.456;printf(“%08dn”,a);printf(“%010.2fn”,f)

    33、;printf(“%0+8dn”,a);0、+例例 int a=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);例例#例例 long a=65536;printf(“%d,%8ldn”,a,a);例例 l/00001234/0000123.45/000+1234/173,0173,7B,0X7B/0,65536例例5.4 输入和输出语句输入和输出语句%m.nf 指定输出的数据占指定输出的数据占m列,其中列,其中n位小数;位小数;右对齐右对齐;%-m.nf 同上同上;左对齐左对齐;例例:main()float f=123.456;printf(“%10f%10.2f%-

    34、10.2f%.2f n”,f,f,f,f);结果结果:123.455994 123.46 123.46 123.465.4 输入和输出语句输入和输出语句二、格式化输入和输出二、格式化输入和输出格式输入函数格式输入函数格式格式:scanf(:scanf(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表功能:按指定格式从键盘读入数据,存入地址表 指定的存储单元中指定的存储单元中,并按回车键结束并按回车键结束地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&格式字符格式字符:d,i,o,x,u,c,s,f,e:d,i,o,x,u,c,s,

    35、f,e例例 scanf(“%d”,&a);输入:输入:10 则则 a=10例例 scanf(“%x”,&a);输入:输入:11 则则 a=17程序的三种基本结构程序的三种基本结构结构化程序设计结构化程序设计基本思想:任何程序都可以用三种基本结构表示基本思想:任何程序都可以用三种基本结构表示结构化程序:由结构化程序:由三种基本结构反复嵌套三种基本结构反复嵌套构成的程序构成的程序叫结构化程序;叫结构化程序;优点:结构清晰,易读,提高程序设计质量和效率优点:结构清晰,易读,提高程序设计质量和效率三种基本结构三种基本结构一、顺序结构一、顺序结构AB程序的三种基本结构程序的三种基本结构二、选择结构二、选

    36、择结构l二分支选择结构二分支选择结构PAB真真假假kA1A2AiAnk=k2k=k1k=knk=ki.l多分支选择结构多分支选择结构注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构程序的三种基本结构程序的三种基本结构l当型循环结构l直到型循环结构PA假假真真AP假假真真三、循环结构三、循环结构第第6讲讲 顺序程序结构顺序程序结构顺序结构是最基本的一种程序结构!顺序结构是最基本的一种程序结构!特点:特点:程序中的语句完全按照语句出现的先后顺序程序中的语句完全按照语句出现的先后顺序依次执行依次执行前面的例子都是顺序结构,顺序结构的程序主要由前面的例子都是顺序结构,顺序结构的程序主要由

    37、4部分构成:部分构成:1、变量说明部分;、变量说明部分;2、数据输入部分;、数据输入部分;3、运算部分;、运算部分;4、运算结果输出部分、运算结果输出部分7.1 if语句语句 一、单分支选择一、单分支选择if语句语句if语句有三种形式:单分支选择语句有三种形式:单分支选择if语句、双分支语句、双分支面具选择面具选择if语句、多分支选择语句、多分支选择if语句。语句。语句形式:语句形式:if (表达式)表达式)语句;语句;语句执行流程:语句执行流程:表达式表达式语句语句真真(非非0)假假(0)例例7-1:从键盘输入两个整数:从键盘输入两个整数a和和b,如果,如果a大于大于b则交则交换两数,最后输

    38、出两个数。换两数,最后输出两个数。7.1 if语句语句#include 输入输入a,ba,babab交换交换a a、b b输出输出真真假假 void main()int a,b,t;scanf(%d,%d,&a,&b);if(ab)t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);7.1 if语句语句注意:注意:(1 1)ifif语句自动结合一个语句,当满足条件需要语句自动结合一个语句,当满足条件需要执行多个语句时,应用一对大括号执行多个语句时,应用一对大括号将需要执行将需要执行的多个语句括起,形成一个复合语句。的多个语句括起,形成一个复合语句。(2 2)ifif语句中表达

    39、式形式很灵活,可以是常量、语句中表达式形式很灵活,可以是常量、变量、任何类型表达式、函数等。只要表达式的变量、任何类型表达式、函数等。只要表达式的值为非零值,条件就为真,反之条件为假。值为非零值,条件就为真,反之条件为假。7.1 if语句语句2、双分支选择、双分支选择if语句语句语句形式:语句形式:if (表达式)表达式)语句语句1;else 语句语句2;语句执行流程:语句执行流程:表达式表达式语句语句1真真(非非0)假假(0)语句语句27.1 if语句语句例例7-2:输入两个整数,输出其中输入两个整数,输出其中较大的数。较大的数。#include#include void main()int

    40、 x,y,max;scanf(%d,%d,&x,&y);if(xy)max=x;else max=y;printf(max=%dn,max);输入输入x,yx,yxyxymax=xmax=x输出最大值输出最大值结束结束真真假假max=ymax=y7.1 if语句语句注意注意:if和和else语句之间只能有一个语句,当语句之间只能有一个语句,当ifelse之间的之间的语句不只一句时,应用一对语句不只一句时,应用一对 将语句括起。将语句括起。if(ab)a+;b+;else a=0;b=10;7.1 if语句语句3、多分支选择、多分支选择if语句语句语句形式:语句形式:if (表达式表达式1)语句

    41、语句1;else if (表达式表达式2)语句)语句2;else if (表达式表达式n)语句)语句n;else 语句语句n+1;7.1 if语句语句语句执行流程:语句执行流程:表达式表达式1 1语句语句1真真(非非0)假假(0)语句语句2表达式表达式2 2真真(非非0)表达式表达式n n语句语句n语句语句n+1假假(0)假假(0)真真(非非0)7.1 if语句语句提示提示:(1 1)当)当if if语句中出现多个语句中出现多个“if”if”与与“else”else”的时候,要的时候,要特别注意它们之间的匹配关系,否则就可能导致程序特别注意它们之间的匹配关系,否则就可能导致程序逻辑错误。逻辑错

    42、误。“else”else”与与“if”if”的匹配原则是的匹配原则是“就近一致原则就近一致原则”,即即“else”else”总是与它总是与它前面最近前面最近的的“if”if”相匹配。相匹配。if()if()if()else.else.else.7.1 if语句语句if ()if ()语句语句1else if ()语句语句2 else 语句语句3内嵌内嵌ifif ()if ()语句语句1 else if ()语句语句2 else 语句语句3 内嵌内嵌if内嵌内嵌if7.1 if语句语句例:例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改

    43、:修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);n实现实现if else 正确正确配对方法:配对方法:加加 n如果如果ifif与与elseelse的的数目不一样,可以数目不一样,可以加花括号加花括号来确定来确定配对关系。配对关系。7.2 switch语句语句1、语句形式:、语句形式:switch (表达式)(表达式)case 常量常量1:语句语句1;case 常量常量2:语句语句2;case 常量常量3:语句语句3;.case 常量常量n:语句语句n;default:语句语句n+1;。数值型数值型或或字符型字符型常量表达式的值必须互不

    44、相常量表达式的值必须互不相同,否则执行时将出现矛盾同,否则执行时将出现矛盾,即同一个开关值,将对应,即同一个开关值,将对应多种执行方案。多种执行方案。千万不能接;千万不能接;7.2 switch语句语句2、语句执行流程:、语句执行流程:指语句的最后指语句的最后一条是否为一条是否为break简单语句或简单语句或复合语句复合语句breakbreakbreakbreak有有无breakbreak有无有计算表达式计算表达式常量常量1 1常量常量2 2常量常量n n=语句语句1 1=语句语句2 2语句语句n n其它其它=语句语句n+1n+1无值值casecase语句出现的次序语句出现的次序并不影响执行结

    45、果。并不影响执行结果。8.1 while循环控制循环控制 l语句一般格式 while(表达式)语句 功能:功能:l计算表达式的值,为非0(逻辑真)时,重复执行内嵌语句,每执行一次,就判断一次表达式的值,直到表达式的值为0 时结束循环,转去执行while后面的语句。表 达 式 非表 达 式 非0?语句语句例如:例如:【例5.1】编写程序,求100个自然数的和即:s=1+2+3+100 思路:寻找思路:寻找加数加数与与求和求和的规律的规律 加数加数 从从1变到变到100,每循环一次,使,每循环一次,使i增增1,直到直到i的值超过的值超过100。的的设为设为1。求求 和和设变量设变量 存放和存放和,

    46、循环求,循环求,直至,直至i超过超过100。算法和程序:算法和程序:main()int i,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);程序输出结果:程序输出结果:sum=50508.2 do-while语句语句l语句一般格式 do 语句 while(表达式);l功能:先执行内嵌语句(循环体),之后计算表达式的值,不为0(逻辑真)时,再执行循环体并判断条件,直到表达式的值为 0 结束循环,转去执行while下面的语句。do-while循环的算法循环的算法NY循环体循环体表达式非表达式非0?流程图流程图main()int

    47、i=1,sum=0;do sum=sum+i;i+;while(i=100);printf(%dn,sum);说明:说明:lwhile和do-while都能实现循环控制,while结构程序通常都可以转换成do-while结构8.3 for语句语句 l语句一般格式 for(表达式1;表达式2;表达式3)语句 for语句的算法语句的算法NY流程图流程图计算表达式计算表达式1 语句语句计算表达式计算表达式3表达式表达式2为真为真?例如:main()int i,sum;sum=0;for(i=1;i y?x:y;return(z);类型省略时类型省略时默认为默认为int类型类型没有形式参数没有形式参数

    48、为为无参函数无参函数 函数名(实参表列)函数名(实参表列)在在C语言中,把函数调用也作为一个表达式。语言中,把函数调用也作为一个表达式。因此凡是表达式可以出现的地方都可以出现函数因此凡是表达式可以出现的地方都可以出现函数调用。例如:调用。例如:welcome();if(iabs(a)max)max=iabs(a);m=max(c,max(a,b);函数调用的一般形式:函数调用的一般形式:void swap(int x,int y)int z;z=x;x=y;y=z;printf(nx=%d,y=%d,x,y);main()int a=10,b=20;swap(a,b);printf(na=%d

    49、,b=%dn,a,b);9.2.3 函数参数与函数的返回值函数参数与函数的返回值程序输出结果:程序输出结果:x=20,y=10a=10,b=20形式参数(形参)形式参数(形参)【例例9.4】编一程序,将主函数中的两个变量的值传编一程序,将主函数中的两个变量的值传递给递给swap函数中的两个形参,交换两个形参的值。函数中的两个形参,交换两个形参的值。单向值传递单向值传递有关形参和实参的说明:有关形参和实参的说明:实参可以是常量、变量或表达式,但要求它们有实参可以是常量、变量或表达式,但要求它们有确定的值。确定的值。实参与形参类型要一致,字符型与整型可兼容实参与形参类型要一致,字符型与整型可兼容。

    50、实参与形参的个数必须相等。在函数调用时,实参与形参的个数必须相等。在函数调用时,实参的值赋给与之相对应的形参。实参的值赋给与之相对应的形参。“单向值传递单向值传递”。2.函数的类型与函数的返回值函数的类型与函数的返回值说明:说明:函数的类型函数的类型决定了函数返决定了函数返回值的类型。回值的类型。若省略函数的若省略函数的类型,系统默类型,系统默认其为认其为int型。型。无返回值的无返回值的函数应将其类函数应将其类型定义为型定义为void max(int x,int y)int z;z=xy?x:y;return(z);/*返回z的值*/main()int a,b,c;scanf(%d,%d,&

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言总复习课件.pptx
    链接地址:https://www.163wenku.com/p-5645698.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库