第1章C语言绪论

上传人:壹****1 文档编号:576831357 上传时间:2024-08-20 格式:PPT 页数:145 大小:613KB
返回 下载 相关 举报
第1章C语言绪论_第1页
第1页 / 共145页
第1章C语言绪论_第2页
第2页 / 共145页
第1章C语言绪论_第3页
第3页 / 共145页
第1章C语言绪论_第4页
第4页 / 共145页
第1章C语言绪论_第5页
第5页 / 共145页
点击查看更多>>
资源描述

《第1章C语言绪论》由会员分享,可在线阅读,更多相关《第1章C语言绪论(145页珍藏版)》请在金锄头文库上搜索。

1、主讲主讲 陆加木陆加木解放军信息工程学院解放军信息工程学院C C语言程序设计语言程序设计1 清华出版社出版清华出版社出版 谭浩强谭浩强 著著二OO七年三月 C程序设计程序设计(第三版)(第三版)2前前 言言语言语言是人类社会活动中最重要的交互形式和工具,而计算机语言则是人与计算机进行信息交互的主要工具,综观当前世界计算机语言,大体可分为三大类: 面向机器语言面向机器语言 面向过程语言面向过程语言 面向对象语言面向对象语言3 二进制编码的语言二进制编码的语言 汇编语言(符号语言)汇编语言(符号语言)BASICALGOLFORTRANPASSALADACOBOLC面向机器语言:面向机器语言:面向过

2、程语言:面向过程语言:面向对象语言面向对象语言:C+JAVA4 C语言语言是当代世界上应用最广泛的计算是当代世界上应用最广泛的计算机语言之一,与其他高级语言相比,特点是:机语言之一,与其他高级语言相比,特点是:(1)语言简洁,代码紧凑,语言简洁,代码紧凑,(2)功能丰富,表达能力强,)功能丰富,表达能力强,(3)使用灵活方便,应用面广,)使用灵活方便,应用面广,(4)编程效率高,可移植性好,)编程效率高,可移植性好, (5)具有高级语言与低级语言的特点,)具有高级语言与低级语言的特点,(6)特别适合于编写各种系统软件,)特别适合于编写各种系统软件, (如:(如:UNIX操作系统)。操作系统)。

3、认识认识C语言的特色语言的特色5 当前,当前,C语言已作为全国高等院语言已作为全国高等院校计算机专业和非计算机类专业的必修校计算机专业和非计算机类专业的必修课,也作为全国计算机等级考试和全国课,也作为全国计算机等级考试和全国计算机应用技术证书考试(计算机应用技术证书考试(NIT)的科的科目,因此学习目,因此学习C语言,学好语言,学好C语言已经语言已经成为广大计算机应用人员以及初学者的成为广大计算机应用人员以及初学者的迫切希望和要求。迫切希望和要求。学习学习C语言的广泛性语言的广泛性6 由于由于C语言的概念化,复杂性,规语言的概念化,复杂性,规则性,灵活性和易错性,因此应注意:则性,灵活性和易错

4、性,因此应注意:l理论与实践紧密相结合,既要学好并掌理论与实践紧密相结合,既要学好并掌握语言本身,还要加强编程和上机实践,握语言本身,还要加强编程和上机实践,做到:多看、多记、多编程、多上机。做到:多看、多记、多编程、多上机。l抓好课前预习和课后复习,利用课外时抓好课前预习和课后复习,利用课外时间加以间加以 消化,理解和掌握。消化,理解和掌握。l多做练习,多看参考书。多做练习,多看参考书。学习学习C语言的注意事项语言的注意事项7第一章C 语言概述语言概述8章节内容章节内容lC语言的特点语言的特点lC语言的产生语言的产生lC语言程序的基本结构语言程序的基本结构lC语言的风格语言的风格lC语言的基

5、本词法语言的基本词法lC语言程序上机步骤语言程序上机步骤9在在C 语言产生之前,许多系统软件语言产生之前,许多系统软件(包括操作系统)主要使用面向机器的(包括操作系统)主要使用面向机器的语言(低级语言)来编写,如:汇编语语言(低级语言)来编写,如:汇编语言。言。汇编语言的缺点汇编语言的缺点:l编程难、编程难、l程序可读性和程序可读性和l可移植性差可移植性差汇编语言的优点汇编语言的优点:l最贴近于硬件最贴近于硬件l执行速度快执行速度快一、一、C 语言的产生语言的产生10 相比之下,相比之下,面向过程语言面向过程语言(也称(也称高级语言)高级语言)编程容易,调试方便,程编程容易,调试方便,程序的可

6、读性和可移植性好序的可读性和可移植性好,但也有缺,但也有缺点:点:缺少访问硬件的机制,只适合于缺少访问硬件的机制,只适合于编写应用程序。编写应用程序。由此人们设想能寻求由此人们设想能寻求一种兼有汇编语言和高级语言两方面一种兼有汇编语言和高级语言两方面的优点,既适合于开发系统软件,又的优点,既适合于开发系统软件,又 适合于编写应用程序的语言工具,适合于编写应用程序的语言工具,C 语言就是在这一背景下产生了语言就是在这一背景下产生了。11C 语言的演变过程语言的演变过程PASSCALALGOLCPLBCC+BCPL面向问题的程序设计语言面向问题的程序设计语言(60年)年)复合程序设计语言复合程序设

7、计语言(63年)年)简化的简化的CPL(67年)年)充实完美的充实完美的B(72年)年)简化的简化的BCPL(70年)年)面向对象程序设计语言(面向对象程序设计语言(80年)年)125254 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPL BCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASICVBFORTRAN90p语言发展简

8、史语言发展简史13二、二、C语言的特点(语言的特点(1)l语言简洁、紧凑、使用灵活方便。语言简洁、紧凑、使用灵活方便。 只有只有32个关键字,个关键字,9 种控制语句,程序短,种控制语句,程序短,书写格式自由,编程工作量少。书写格式自由,编程工作量少。l数据类型丰富。数据类型丰富。 除整型、实型、字符型等基本类型外,还除整型、实型、字符型等基本类型外,还有数组有数组 、结构体,共用体、枚举类型和指、结构体,共用体、枚举类型和指针等类型。针等类型。l运算符特别丰富。运算符特别丰富。 有有34 种运算符分成十三类。种运算符分成十三类。14l具有结构化的控制语句具有结构化的控制语句l语法限制不太严格

9、,程序设计自由语法限制不太严格,程序设计自由度大。度大。l允许直接访问物理地址,且能进行允许直接访问物理地址,且能进行位操作。位操作。l生成目标代码度量高,程序执行效生成目标代码度量高,程序执行效率高。率高。l可移植性好。可移植性好。二、二、C语言的特点(语言的特点(2)1532个关键字:个关键字:( (由系统定义,不能重作其它定义由系统定义,不能重作其它定义由系统定义,不能重作其它定义由系统定义,不能重作其它定义) )auto break case char constauto break case char constcontinue default do double elseconti

10、nue default do double elseenumenum extern float for extern float for gotogotoif if intint long register long register returnreturnshort signed short signed sizeofsizeof static static structstructswitch switch typedeftypedef unsigned union unsigned union voidvoidvolatile whilevolatile while169种控制语句:种

11、控制语句:if( )elsefor( )while( )dowhile( ) Continue breakSwitch goto return1734种运算符种运算符算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 : sizeof强制型转换:(类型)分量运算符:. -下标运算符: 其 它:( ) -18 C语言语言 Pascal语言语言 含义含义 BEGIN.END 复合语句复合语句if(e) s; IF(e) THEN s 条件语句条件语句int i ; V

12、AR i:INTEGER定义定义i为整型变量为整型变量 int a10; VAR a:ARRAY1.10 OF INTEGER定义整型数组定义整型数组aint f(); FUNCTION f():INTEGER定义定义f为返值整型的为返值整型的函数函数int *p; VAR p: INTEGER定义定义p为指向整型变量的为指向整型变量的指针指针i+= 2; i=i+2 赋值赋值i+2ii+,+i; i=i+1 i自增值自增值 结论:结论:C比比 Pascal简练,源程序短简练,源程序短19C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型 void定义类型定义类

13、型 typedef数值类型数值类型字符类型字符类型char枚举类型枚举类型 enum整整 型型浮点型浮点型单精度型单精度型 float双精度型双精度型 double短整型短整型 short长整型长整型 long整型整型 int数组数组结构体结构体 struct共用体共用体 union20三、三、C 语言程序的基本结构语言程序的基本结构MAIN( )函数函数 1函数 2函数 N、l所有所有C 语言程序都由一语言程序都由一个或多个函数组成。个或多个函数组成。l在多个函数中,当且仅在多个函数中,当且仅当一个当一个MAIN( )函数。函数。l各个函数在程序中的位各个函数在程序中的位置并不十分重要。置并

14、不十分重要。l程序必定从程序必定从MAIN( )函数开始,其中可以调函数开始,其中可以调用其他函数,最后也以用其他函数,最后也以MAIN( )函数结束。函数结束。21四、四、C 语言的风格语言的风格l严格区分大小写英文字母,习惯上严格区分大小写英文字母,习惯上用小写字母,关键字必须用小写。用小写字母,关键字必须用小写。l源程序由一个或多个函数组成;函源程序由一个或多个函数组成;函数由一个或多个语句组成,每个语数由一个或多个语句组成,每个语句都以句都以“;”作结束符。作结束符。l“”和和“”的作用是:用以标定的作用是:用以标定一个函数的有效范围或用以标定一一个函数的有效范围或用以标定一个复合语句

15、的有效范围。个复合语句的有效范围。22五、五、C 语言的基本词法(语言的基本词法(1)1、C 语言的符号集:语言的符号集: 由英文大、小写字母、数字和一组具由英文大、小写字母、数字和一组具有特定含义的标点符号组成。有特定含义的标点符号组成。 字母:字母:AZ,az; 数字:数字:09; 下划线:下划线:_ 空白符:空白符:SPACE 标点符:,标点符:, 。;:?。;:? “ ()() !# %& + - * / = 23 转义字符:转义字符: n回车换行回车换行 t水平制表水平制表 v垂直制表垂直制表 b向左退一格向左退一格 r回车回车 ddd13位八进制所代表的字符位八进制所代表的字符 x

16、hh12位十六进制所代表的字符位十六进制所代表的字符五、五、C 语言的基本词法(语言的基本词法(2)24五、五、C 语言的基本词法(语言的基本词法(3)2、标识符的命名:、标识符的命名: 能使用的字符:英文字母、数字和下划线。能使用的字符:英文字母、数字和下划线。 长度:长度:132个字符,个字符, 规则:以字母或下划线开头、后跟字母、数字规则:以字母或下划线开头、后跟字母、数字 和下划线。和下划线。3、关键字:、关键字: 系统预先定义的一些具有特定含义的标识符。系统预先定义的一些具有特定含义的标识符。25六. 简单的C程序例例1.1 main ( ) printf (“This is a p

17、rogram.n”); 26例例 1.2lmain ( )ll int a,b,sum;l a=123; b=456;l sum=a+b; l printf (“sum is %dn”, sum); l27例例 1.3lmain ( )l int a,b,c ;l scanf (“%d,%d” ,&a,&b) ;l c=max (a , b) ;l printf (“max=%d”, c) ;llint max (int x ,int y )l int z ;l if (xy) z=x ;l else z=y ;l return (z) ;l 28例 1.4 求5的阶乘lmain ( )l i

18、nt a,b,c; a=1,c=1;l c=c*a; a=a+1;l c=c*a; a=a+1;l c=c*a; a=a+1;l c=c*a; a=a+1;l c=c*a;lprintf (“c=%d”,c);l29七、七、C 语言程序上机步骤语言程序上机步骤在在Turbo C 上运行上运行C程序步骤:程序步骤:l调用调用Turbo C 程序,只需键入程序,只需键入TC,回车。回车。l屏幕出现屏幕出现P8 的图的图1.2 Turbo C 集成环境。集成环境。l在行菜单上用光标指向在行菜单上用光标指向FILE,出现出现P9图图1.3R的的子菜单。子菜单。l在创建一个新文件时,选取在创建一个新文件

19、时,选取NEW,屏幕上出现屏幕上出现一个编辑窗口。一个编辑窗口。l编辑源程序。编辑源程序。l编译和连接源程序,产生一个可执行文件。编译和连接源程序,产生一个可执行文件。l运行可执行文件。运行可执行文件。l显示程序运行结果。显示程序运行结果。30第第 二二 章章算算 法法31本章内容本章内容 l算法的概念算法的概念l简单算法举例简单算法举例l算法的特性算法的特性l算法的表示形式算法的表示形式l结构化程序设计方法结构化程序设计方法32一、算法的概念(一、算法的概念(1)1、一个完整的、一个完整的C语言程序所包含内容:语言程序所包含内容:l对对数据的描述数据的描述 指定数据的类型和组织形式(数据指定

20、数据的类型和组织形式(数据 结构)。结构)。l对对操作的描述操作的描述 程序要完成的操作步骤(即算法程序要完成的操作步骤(即算法)。由此可得:由此可得:程序程序 = 数据结构数据结构 + 算法算法332、算法的定义:、算法的定义: 为解决某一特定问题而采取的方法和步骤为解决某一特定问题而采取的方法和步骤, 说明:说明:并非只有并非只有“计算计算”问题才有算法,而问题才有算法,而 “非计算非计算”问题也有算法。问题也有算法。3、算法的分类:、算法的分类:l 数值运算算法数值运算算法:为求取一个或几个数值型:为求取一个或几个数值型 的解。如:求方程的根,函数的值。的解。如:求方程的根,函数的值。l

21、 非数值运算算法非数值运算算法:用于各种事务管理。:用于各种事务管理。 如:人事管理、仓库管理、后勤管理。如:人事管理、仓库管理、后勤管理。一、算法的概念(一、算法的概念(2)34二、简单算法举例(二、简单算法举例(1)1、求求n!的算法:的算法: (1)P=1 (2)I=2 (3)PI=P (4)I+1=I (5)如果如果I 不大于不大于n,则返回(则返回(3) (6)输出输出n!的值的值。352、求求1n(n 为奇数)之间所有奇数之积。为奇数)之间所有奇数之积。 (1)P = 1 (2)I = 3 (3)PI =P (4)I +2 =I (5)若若I n,则返回则返回(3) (6)输出结果

22、。输出结果。二、简单算法举例(二、简单算法举例(2)363、求出求出1n(n为偶数)之间所有奇数之积为偶数)之间所有奇数之积。 (1) P=1 (2) I=3 (3) PI =P (4) I+2 =I (5) 若若In, 则返回则返回(3) (6) 输出结果。输出结果。二、简单算法举例(二、简单算法举例(3)374、例例2.2所示,打印输出成绩在所示,打印输出成绩在80分以分以 上学生的学号及成绩。上学生的学号及成绩。(1) i=1(2) 若若g i80则打印输出,则打印输出,n i和和g i,否否 则不打印则不打印,(3) i +1=i(4) i 50 ,则返回则返回(2),否则,算法结束。

23、,否则,算法结束。二、简单算法举例(二、简单算法举例(4)385、例、例2.2 统计成绩为统计成绩为90分以上人数和不及格分以上人数和不及格的人数。的人数。 (1)i = 1 (2)Y= 0 (3)B= 0 (4)若若gi 90,则则 Y+1=Y (5)若若gi60,则则 B+1=B (6)i +1= i (7)若若i 50,则返回则返回(4),否则算法结束,否则算法结束.二、简单算法举例(二、简单算法举例(5)396、判定、判定20002500年中任何一年是否闰年,年中任何一年是否闰年, 并将结果输出。判定条件是:能被并将结果输出。判定条件是:能被4整除,整除, 但不能被但不能被100整除的

24、年份是闰年,能被整除的年份是闰年,能被100 整除,又能被整除,又能被400整除的年份是闰年,凡整除的年份是闰年,凡 不符合上述条件的年份都不是闰年。不符合上述条件的年份都不是闰年。(1) Y=2000(2) 若若Y 不能被不能被4整除,则输出整除,则输出“Y不是闰年不是闰年”, 转(转(6););二、简单算法举例(二、简单算法举例(6)40二、简单算法举例(二、简单算法举例(7)(3)若)若Y能被能被4整除,不能被整除,不能被100整除,输整除,输 出出“Y是闰年是闰年”,转(,转(6););(4)若)若Y能被能被100整除,又能被整除,又能被400整除,整除, 输出输出“Y是闰年是闰年”,

25、转(,转(6););(5)输出)输出“Y不是闰年不是闰年”(6)Y+1=Y (7) 若若YI(6)若若i n-1,返回返回(3);否则打印否则打印 “N为素数为素数”,算法结束。算法结束。二、简单算法举例(二、简单算法举例(9)8、判断任意一个大于或等于判断任意一个大于或等于3 的正整数是否为素数。的正整数是否为素数。43三、算法的特点三、算法的特点l有穷性有穷性:任何一个算法的操作步骤都是:任何一个算法的操作步骤都是有限的。有限的。l确定性确定性:算法中的每一个步骤的操作都:算法中的每一个步骤的操作都确定的,而不是模糊的。确定的,而不是模糊的。l有效性有效性:算法中的每一个步骤都是有效:算法

26、中的每一个步骤都是有效的,并能得到。的,并能得到。l有有0N个输入个输入和和1M个输出个输出。44四、四、结构化程序设计方法结构化程序设计方法1、三种程序基本结构:、三种程序基本结构:l顺序结构顺序结构:程序执行顺序与程序编写顺:程序执行顺序与程序编写顺序一致。序一致。l分支结构分支结构:根据判定条件的成立与否选:根据判定条件的成立与否选择两段程序中的某一段来执行。择两段程序中的某一段来执行。l循环结构循环结构:根据判定条件的成立与否重:根据判定条件的成立与否重复多次地执行某一程序段。复多次地执行某一程序段。45五、算法的表示形式五、算法的表示形式1、自然语言表示法自然语言表示法。通俗易懂,但

27、文字见。通俗易懂,但文字见 长,易出现二义性。长,易出现二义性。2、流程图表示法流程图表示法。直观形象,易理解。直观形象,易理解。 (P20)3、NS图示算法图示算法。适用于结构化程序设计。适用于结构化程序设计。4、伪代码表示算法伪代码表示算法。介于自然语言和计算。介于自然语言和计算 机语言之间的一种用文字及符号来描机语言之间的一种用文字及符号来描 述操作步骤的算法。(述操作步骤的算法。(P30)5、计算机语言表示算法计算机语言表示算法。如:。如:P33 例例2.20。46六、结构化程序设计方法六、结构化程序设计方法(2)2、结构化程序设计方法:、结构化程序设计方法:l自顶向下,逐步佃化自顶向

28、下,逐步佃化:先构思程序将其分:先构思程序将其分成若干个大模块,再对每一个大模块进一成若干个大模块,再对每一个大模块进一步佃分成若干个模块,然后逐块设计。步佃分成若干个模块,然后逐块设计。l自下而上,逐步积累自下而上,逐步积累:对设计好各个程序:对设计好各个程序小模块,再将其汇总联接成大模块,形成小模块,再将其汇总联接成大模块,形成一个完整的结构化程序一个完整的结构化程序。47第三章l数 据 类 型l运 算 符l表 达 式48章节内容l数 据 类 型l常量与变量l各类运算符l表 达 式491、什么是数据类型?、什么是数据类型? 指数据的内在表现形式,即指数据在加工计算中的特征。如:两个人的年龄

29、和工资都是数值型,可以相加,也可以相减;而两人的姓名是字符型,不能相加减。一、数据类型一、数据类型50 2、C语言的数据类型语言的数据类型 基本类型数据类型空类型整型短整型无符号整型有符号整型长整型短整型长整型实型单精度型双精度型字符型枚举型构造类型数组类型结构体类型共用体类型指针类型51说明:说明:l整型和实型合称为数值型l数值型、字符型和枚举型合称为基本类型l由若干个相关和基本数据类型组合在一起形成的复杂数据类型称为构造类型。l对某个数据只能取确定的几个值中的某一个称为枚举型。l只能用作表示内存地址的类型称为指针型。l没有具体数据值的类型称为空类型。l某种类型的数据在计算机中所占用的字节数

30、据称为该数据的“数据长度”。52l常量又称常数,它在程序运行过程中其值不可改 变的数据。lC语言中常量有:整型常量、实型常量、字符常 量和字符串常量。l常量不需要事先定义,常量的类型也不需要事先 说明,它的类型是由书写方法自动默认的。l整型常量:用于表示数学中的整数。 十进制整数: + 1 2 3、0 、111 八进制整数:0 1 3 5. 0 0 、+ 7 7 7 十六进制整数:015、0*0、+0*2B二、常二、常 量量 书写方法53l实型常量实型常量:用于表示带小数点的实数。l字符常量字符常量:用于表示单个字符,(注:前后必须l用单引号括起来)。如:A、a、1、0、9、 、%。l字符串常

31、量字符串常量:用于表示一串字符。(注:前后必须用双引号括起来)。如:“ABC”,“abc”,”12345”,”a1b2c3”。书写方法普通形式的实数:123.45、1.789指数形式的实数:1.222E + 354 三、变三、变 量量l变量指在程序运行过程中,其值是可变的量。l一个变量在使用之前,必须预先作出定义,一个变量定义一个名字,在主存中占据一定的存储单元。l学习 C 语言中的变量,应掌握变量的下列属性:1)变量的数据类型及定义方法; 2 )变量的存储类型及定义方法; 3)变量的使用范围及说明方法; 4)变量初始化的方法;55 存储类型符 类型说明符 变量1,变量2,;其中:存储类型符说

32、明变量的存储特性。有以下四 种存储类型: 自动型自动型AUTO 存储地点为内存堆栈区; 寄存器型寄存器型REGISTER 存储地点为CPU的 通用R; 静态型静态型STATIC 存储地点为内存数据区; 外部参照型外部参照型EXTERN 注:省略时默认为AUTO型。1、变量的一般定义形式:、变量的一般定义形式:56l类型说明型:说明变量的数据类型。有以下九种 基本类型。 INT整型 2(4)B SHORT短整型 2B LONG长整型 4B UNSIGNED INT无符号整型 2(4)B UNSIGNED SHOERT 无符号整型 2B UNSIGNED LONG无符号长整型 4B FLOAT单精

33、度实型 4B DOUBLE双精度实型 8B CHAR字符型 1B57 变量名 = 表达式 说明:1)先计算表达式的值,再赋予该 变量, 2)表达式可以为常量,已赋值的 变量或表达式。 2、变量的赋值形式、变量的赋值形式 583、变量赋值时的类型转换(、变量赋值时的类型转换(1)(1)表达式计算机中数据类型的转换原则:当表达式中出现数据长度不一致的数据计算时,按最长的数据类型计算。 如:X +Y 时,X为短整型,Y为长整型, 则 X +Y 按长整型计算。59(2)运算结果存入变量时数据类型的自动转换: 例:W为实型变量,而X为整型变量, 则 W = X 时,将 X 先转换成实型再赋予W。(3)运

34、算结果的强制性数据类型转换: (类型说明符)(表达式) 详细说明见 P54 图 3.103、变量赋值时的类型转换(、变量赋值时的类型转换(2)60main( ) int a,b,c,d; char m;n; float x,y,z; a = 10;b = 20;c = 50;d = 100; m =a;n =b; x = a + 1; y = x + b * c5;4、实例、实例 1:61main ( ) char c1, c2; c1 = 97; c2 = 98; printf (“%c, % cn”, c1, c2); printf (“%d, % dn”, c1, c2);结果 a b

35、97 98实例实例 2:(P50 例3.6)62Main ( ) char c1,c2; c1 = a; c2 = b; c1 = c132; c2 = c232; printf (“% c,% cn”,c1,c2); printf (“% d,% dn”,c1,c2);结果 A B 65 66 实例实例3: (P51例例3.7)631、运算符的用途的用途是描述对数据的各种运算。 如:+,-,*,/等。2、运算符分为:单目运算符,双目运算符 和三目运算符。 如:-5,+X,X+Y , E1?E2:E33、运算式是用运算符把运算对象联接起来 的式子。每个运算式都应按照运算符的 运算规则进行运算,

36、最后得到一个确定 的值。四、各类运算符四、各类运算符64 算术运算符:(算术运算符:(+,-,*,/,%) 关系运算符:(关系运算符:(,=, 大于大于 = 大于等于大于等于 = 小于等于小于等于 = = 等于等于 ! = 不等于不等于1)算术运算符优于关系运算符2)所有关系运算符的优先级都是同级的3)同级关系运算符的结合是自左向右的6、关系运算符:双目运算符:关系运算符的优先级:68单目运算符:! 逻辑非逻辑非 &逻辑与逻辑与 | | 逻辑或逻辑或逻辑运算符的优先级:1)! 优于算术优于算术 优于关系优于关系 优于优于& 优于优于 | |2)! 和单目和单目 +、同级,其结合性是、同级,其结

37、合性是 自右向左的自右向左的3)&和和|的结合性是自的结合性是自左左向右向右的7、逻辑运算符:双目运算符:69单目运算符:+ 前缀增前缀增1 如:如:+A - - 前缀减前缀减1 如:如:- -A +后缀增后缀增1 如:如:A+ - - 后缀减后缀减1 如:如:A- -前缀加(减):先加(减)1,后使用;后缀加(减):先使用,后加(减)1;8、增1减1运算符:70例子:设变量例子:设变量A的值为的值为5,则,则 +A+1 先对先对A加加1,后作表达式运算,后作表达式运算 - -A+1 先对先对A减减1,后作表达式运算,后作表达式运算 A+1 先作表达式运算,后对先作表达式运算,后对A加加1,

38、A- -+1 先作表达式运算,后对先作表达式运算,后对A减减1;又例:设变量又例:设变量A为为2,则,则 +A+1= = 4 结果结果A 为为3,表达式值为,表达式值为 ? - -A+1 = =3 结果结果A为为1,表达式值为,表达式值为 ?71 双目运算符:= 如:变量=表达式(任何类型) 赋值运算符的优先级:1)算术优于关系优于双目逻辑优于赋值运算符算术优于关系优于双目逻辑优于赋值运算符2)相同赋值运算符的结合性是自右向左)相同赋值运算符的结合性是自右向左;例:设A为2,则 B=A&1 结果为: C=A= =!A 结果为: C=B=A- - 结果为:9、赋值运算符:72 + = 自反赋值加

39、自反赋值加 - = 自反赋值减自反赋值减 * = 自反赋值乘自反赋值乘 / = 自反赋值整数除自反赋值整数除 %= 自反赋值求余除优先级:1)算术优于关系优于双目逻辑优于算术自反赋)算术优于关系优于双目逻辑优于算术自反赋 值值2)算术自反赋值与算术赋值运算是同级的。)算术自反赋值与算术赋值运算是同级的。3)同级赋值运算符的结合性是自右向左的。)同级赋值运算符的结合性是自右向左的。10、算术自反赋值运算符:双目运算符:73main ( ) int n1,n2,n3,n4,m1,m2,m3,m4; n1 = n2 = n3 = n4 = 10; m1= m2 = m3 = m4= 20; n1 +

40、= n2; n2 -= n3; n3 *= n4; n4 /= 2; m1 += m2 -= m3 *= m 4/ = 2; printf(“n1= %d,n2 = %d,n3 = %d,n4 = %dn”, n1, n2, n3, n4); printf(“m1= %d,m2= %d,m3= %d,m4= %dn”,m1,m2, m3,m4););例子:74双目运算符:,优先级:1)任何运算符)任何运算符 优于优于 逗号运算符;逗号运算符;2)逗号运算符的结合性是自左向右的;)逗号运算符的结合性是自左向右的;例:设a,b为2,则 b = a+3, c = b+4 结果值为 ? d =a -

41、-, e =d - -,f = - - e 结果值为 ? b =(a +3,c = b+4) 结果值为 ? g =(h =1,I =2,j =3) 结果值为 ?11、逗号运算符:、逗号运算符:75三目运算符:?,: 若E1为真,执行E2 若E1为假,执行E3优先级:1)其它运算符)其它运算符 优于优于 条件条件 优于优于 赋值、自反赋值赋值、自反赋值2)条件运算符的结合性是自右向左的;)条件运算符的结合性是自右向左的;例:设a,b,c 均为 2,则 (a = = b)? c = 1:0 结果为 ? d =a+1= = 3? b =a + 2:a + 3 结果为 ? e = a! = a?b =

42、 1:a = = a ? b = 0:1 结果为 ?12、条件运算符:、条件运算符:如:e1?e2:e376l位运算是一种对运算对象按二进制进行位运算是一种对运算对象按二进制进行操作的运算,操作的运算,C语言中的位运算是对整语言中的位运算是对整个数据进行运算,而不是只对其中某一个数据进行运算,而不是只对其中某一位进行运算。位进行运算。l位运算的类型可分为位运算的类型可分为位逻辑运算位逻辑运算、位移位移位运算位运算和和位自反赋值运算符位自反赋值运算符。13、位运算、位运算771 1、位逻辑运算符、位逻辑运算符 位逻辑运算符是将数据中的每一个二进制位逐位进行逻辑运算,位逻辑运算符有以下四个: 单目

43、位运算符:单目位运算符: 位非位非 & 位与位与 | 位或位或 按位加按位加双目位运算符:双目位运算符:78优先级:优先级:1)优于算术优于算术 优于优于 关系关系 优于优于& 优于优于 | 优于优于 双目逻辑;双目逻辑;2)和!、和!、+、-、+、-是同级的;是同级的;3)同级位逻辑运算符的结合性是自左向右的;)同级位逻辑运算符的结合性是自左向右的;例:设例:设a为为01111010,b为为10111101,则,则 a为为10000101 b为为01000010 a 01111010 b 10111101 a&b 0011100079 a 01111010 b 10111101 a|b 11

44、111111 a 01111010 b 10111101 ab 1100011180l位移位运算是将某一个数看成二进制数,对其整体左移或右移若个位的运算;l位移位运算符分以下二种: 左移左移 如:a右移右移 如:ab(2) 位移位运算符位移位运算符 双目运算符:81优先级优先级:1)算术优于位移位算术优于位移位 优于优于 关系关系2)位移位运算是同级的位移位运算是同级的3)同级位移位运算的结合性是自左向右的。同级位移位运算的结合性是自左向右的。例:设 a 为01110101,b 为10011010,a,b 均为 无符号整型数,则 c =a3 结果 d 为0001 0011又例:设 a 和 b

45、均为有符号整型数时,则 c = a 3 结果 d 为1111 0011823、位自反赋值运算符、位自反赋值运算符l将将 a,b 两个数进行位运算后把结果自反赋值给两个数进行位运算后把结果自反赋值给 a 。l位自反赋值运算符有以下五种:位自反赋值运算符有以下五种: & = 位与赋值位与赋值 a & = b | = 位或赋值位或赋值 a | = b = 位按位加赋值位按位加赋值 a = b = 位左移赋值位左移赋值 a = 位右移赋值位右移赋值 a = b 双目运算符双目运算符:831)条件条件 优于优于 位自反赋值位自反赋值2)位自反赋值运算符和位自反赋值运算符和 =、+=、- =、*=、/=、

46、%= 是同级的;是同级的;3)同级运算符的结合性是自右向左的同级运算符的结合性是自右向左的;例:设a为6,b为3,均为无符号数,则 b & = a 结果为? b | = a 结果为 ? b = a 结果为 ? a = b 结果为 ?优先级:8414. 指针运算符和取地址运算符指针运算符和取地址运算符l * -指针运算符指针运算符( 间访运算符间访运算符) (p204)l &-取地址运算符取地址运算符 8515. 下标运算符l -指出数组的下标 (p122)l 8616. 结构体运算符l . -结构体成员运算符 (p263)l -指向结构体成员运算符8717. 长度运算符l sizeof-求某一

47、个变量或数组的长度l (即其所占内存字节数)881、用各类运算符将运算对象连接形成的运算式 称为表达式;2、C 语言中表达式的构成规则;l单个常量、变量、函数调用都是表达式l“前缀单目运算符 表达式 ”是表达式l“表达式 后缀单目运算符”是表达式l“表达式 双目运算符 表达式”是表达式l“表达式 ?表达式:表达式”是表达式l有限次使用上述规则获得的式子也是表达式五、表达式五、表达式89 算术表达式算术表达式 关系表达式关系表达式 逻辑表达式逻辑表达式 条件表达式条件表达式 赋值表达式赋值表达式 逗号表达式逗号表达式3、C语言中表达式的种类语言中表达式的种类:C语言表达式语言表达式:90l由算术

48、运算符连接数值型对象构成的式子,由算术运算符连接数值型对象构成的式子,l算术表达式的构成:算术表达式的构成:1)数值型常量,数值型变量,数值函数调用)数值型常量,数值型变量,数值函数调用2)+(算术表达式),(算术表达式),-(算术表达式)(算术表达式)3)+ + 整型变量,整型变量,-整型变量,整型变量整型变量,整型变量+ +,整整 型变量型变量 - -,4)(算术表达式)双目算术运算符(算术表达)(算术表达式)双目算术运算符(算术表达 式)式)5)有限次使用上述规则获得的式子也是算术表)有限次使用上述规则获得的式子也是算术表 达式。达式。4、算术表达式、算术表达式91a -2- a*6/f

49、 + c %a 结果值为 ?( a2 ) ?3:2 ) 结果值为 ?(a = 2 ) * f 结果值为 ?(1,2 ) - a 结果值为 ?例:设a为2,c=a,f=3.0,则925、关系表达式、关系表达式l由关系运算符连接的表达式称为关系表达式,l关系表达式构成规则: 表达式表达式 1 关系运算符关系运算符 表达式表达式 2其中:表达式1,2主要是算术表达式,也可以为 字符型数据,关系表达式,逻辑表达式, 条件表达式,赋值表达式,逗号表达式。93a + 2 !=c -100 结果值为 ?f /3= a - c 结果值为 ?a =(fc)=(fc) 结果值为 ?!a = =!f 结果值为 ?(

50、!a &1)!=(!c|1) 结果值为 ?(a 2)?3:0)(f !=1)?0:1) 结果值为 ?(a =2)=(f=1) 结果值为 ?(c=a)!=(f=100.5) 结果值为 ?(1,2)=(2,1) 结果值为 ?例:设a=2,c=a,f=3.0 则94 1)单目逻辑运算符)单目逻辑运算符 表达式表达式 2)表达式)表达式1 双目逻辑运算符双目逻辑运算符 表达式表达式2其中:表达式1,2主要是关系表达式,也可以为 字符型数据,算术表达式,条件表达式, 赋值表达式,逗号表达式。6、逻辑表达式、逻辑表达式l由逻辑运算符连接的式子称为逻辑表达式,由逻辑运算符连接的式子称为逻辑表达式,l逻辑表达

51、式构成规则:95!(c -a) 结果值为 ?f /3 & a - c 结果值为 ?a = c | f a) & (f 4) 结果值为 ?! a | !f 结果值为 ?!(1 & ! a ) 结果值为 ?( a 2)?3:0) | (f !=1)? 0:1) 结果值为 ?(a =0) | (f =1) 结果值为 ?! (c=a) 结果值为 ?! (1, 2 ) 结果值为 ?(1, 2, 3 )& (3, 3, 3 ) 结果值为 ?例:设a为2,c=a,f=3.0,则96l由条件运算符连接的式子称为条件表达式,l条件表达式构成规则: 表达式表达式1 ? 表达式表达式2 :表达式表达式3其中:表达式

52、 1 主要是关系或逻辑表达式,也可 以是字符型数据,算术表达式,条件表达 式,赋值表达式,逗号表达式。7、条件表达式、条件表达式97a 0 ? a: - a 结果值为 ?f = =3.0 ? a = c 结果值为 ? (a = =0)? !a :!a 结果值为 ?(f 0)?(c 0)? 2:1): (a =0)? 1:0) 结果值为 ?(a =0)?(a =1) : (a =0) 结果值为 ?(c = =a)? (0, 1): (1, 0) 结果值为 ?例::设a =2,c =a, f =3.0 则98l由赋值运算符连接的式子称为赋值表达式l赋值表达式构成规则: 1)变量=表达式 2)变量

53、自反赋值运算符 表达式其中:表达式可以是字符型数据,算术表达式,逻 辑表达式,条件表达式,赋值表达式,逗号 表达式。8、赋值表达式、赋值表达式99例:设A = 2, C=a, F=3.0 则F *=A+2 结果值为 ?D=A0)?2:1 结果值为 ?D=E=F+2.1 结果值为 ?D=(A,C,F,0) 结果值为 ?1009、逗号表达式、逗号表达式l由逗号运算符连接的式子称为逗号表达式l逗号表达式构成规则: 表达式表达式1, 表达式表达式2,表达式表达式n其中:表达式 i ( i =1, 2, n ) 一般都是 同类型表达式,可以是算术表达式, 关系表达式,逻辑表达式,条件表达 式,赋值表达式

54、,逗号表达式。101例:设a =2 , c =a, f =3.0 则 a + 2 , c + 2 结果值为 ? a =c 结果值为 ? ! (a = = 0),f != 0 & c = =a 结果值为 ? (a? 0:1), (a 0?1:2) 结果值为 ? d =f +2.1 , e = a-10 结果值为 ? a , c, f, 10 结果值为 ?102第第 四四 章章 顺序结构程序设计103章章 节节 目目 标标lC语言语句概述l赋值语句l字符数据的输入/输出函数l格式化输入/输出函数104 C语言源程序是由语言源程序是由一个或多个函数一个或多个函数组组成,而每一个函数又由一个或多个语句

55、组成,而每一个函数又由一个或多个语句组成,语句的功能主要包括数据描述和数据成,语句的功能主要包括数据描述和数据操作两部分。操作两部分。 数据描述数据描述定义数据结构和给数据定义数据结构和给数据 赋初值。赋初值。 数据操作数据操作对已提供的数据进行各对已提供的数据进行各 种加工处理。种加工处理。一、一、C语言语句概述语言语句概述105 表达式语句(表达式;)表达式语句(表达式;) 简单语句简单语句 函数调用语句(函数名(参数表);函数调用语句(函数名(参数表); 空语句(;)空语句(;) C语言语言 数据操作数据操作 复合语句(复合语句( 一条或多条语句一条或多条语句 ) 语句语句 条件语句(条

56、件语句(if语句,语句,switch语句)语句) 结构化语句结构化语句 while语句语句 循环语句循环语句 do_while语句语句 for语句语句 流程控制语句流程控制语句 break语句语句 限定转向语句限定转向语句 continue语句语句 非结构化语句非结构化语句 return语句语句 非限定转向语句(非限定转向语句(goto语句)语句)C语言的语句分类:语言的语句分类:106if()()elseFor ( )While ( )dowhile ( )continuebreakswitchgotoreturn1)控制语句:)控制语句:在程序中完成一定的控制功能。在程序中完成一定的控制功

57、能。1072)函数调用语句:)函数调用语句: 在函数调用后加上一个分号便构成了一个语句, 如:printf (“This is C statement.”); 3)表达式语句:表达式语句: 在一些在一些表达式后加上一个分号表达式后加上一个分号,也可构成一,也可构成一 个语句个语句. + + x ; x - - ; a =3 ;4)空语句:空语句: 只有一个分号,构成一个空语句. ;1085)复合语句:)复合语句: 用一对 把多个语句括起来形成一 个复合语句。如: z =x y; t = x + z /2 y; printf (“%f ”, t ); 109 在在赋值表达式后加上一个分号赋值表达

58、式后加上一个分号,构,构成一个赋值语句。成一个赋值语句。 如:如:x = y +1; s = a*a+b*b+1;二、赋值语句二、赋值语句110三、数据输入三、数据输入/输出在输出在C语言中的体语言中的体现现l在计算机主机与外部设备之间经常需要作大在计算机主机与外部设备之间经常需要作大量数据的输入或输出。外部设备向主机输入量数据的输入或输出。外部设备向主机输入源程序和原始数据,待主机加工处理后向外源程序和原始数据,待主机加工处理后向外部设备输出运算结果。部设备输出运算结果。lC语言与其他高级语言(如:语言与其他高级语言(如:BASIC PASCAL等)不同,没有提供专门用于输入等)不同,没有提

59、供专门用于输入/输出的语句,而数据的输入输出的语句,而数据的输入/输出由系统提供输出由系统提供的一系列输入的一系列输入/输出函数来完成。如:输出函数来完成。如:scanf( )和和printf( )不是输入不是输入/输出语句,而是输出语句,而是标准的输入标准的输入/ 输出函数。输出函数。111 C语言标准语言标准 I/O 函数库中提供了专门用于字函数库中提供了专门用于字符的输入符的输入/输出函数。输出函数。1、getchar( )函数函数 格式:格式:getchar( ) 功能:功能:从键盘上输入一个字符。从键盘上输入一个字符。 例:例:#include main ( ) char c; c

60、= getchar ( ); 四、字符数据的输入输出四、字符数据的输入输出1122、putchar( )函数函数 格式:格式:putchar(C) 功能:功能:输出字符型变量输出字符型变量C中的值中的值; 例:例:#include main ( ) char a, b; a =x; b=y; putchar (a); putchar(b); 1133、gets( )函数函数: 格式格式::gets(S) 功能:功能:从键盘上输入一串字符到字符数从键盘上输入一串字符到字符数 组组;4、puts( )函数函数 格式格式:puts ( s ) 功能:功能:在屏幕上显示一串字符在屏幕上显示一串字符。1

61、14 格式化输入输出函数有格式化输入输出函数有 scanf( )和和 printf( )。)。1、printf( )函数:函数:格式:格式:printf (格式控制串,输出项表列)格式控制串,输出项表列)功能:功能:按格式控制串中要求的格式输出数据。按格式控制串中要求的格式输出数据。说明:说明:1)格式控制串是用双引号括起来的字符串。)格式控制串是用双引号括起来的字符串。 其中包含三种信息:其中包含三种信息: 格式说明:由格式说明:由“%”和格式字符组成,将输出的数据和格式字符组成,将输出的数据 转换成指定的格式输出。格式说明是以转换成指定的格式输出。格式说明是以 “%”字符开始。字符开始。五

62、、格式的输入输出函数五、格式的输入输出函数115% d以带符号的十进制形式输出整数;以带符号的十进制形式输出整数;% o以无符号的八进制形式输出整数;以无符号的八进制形式输出整数;% x以无符号的十六进制形式输出整数;以无符号的十六进制形式输出整数;% u以无符号的十进制形式输出整数;以无符号的十进制形式输出整数;% c以字符形式输出,只输出一个字符;以字符形式输出,只输出一个字符;% s以字符串形式输出;以字符串形式输出;% f以小数形式输出单、双精度数;以小数形式输出单、双精度数;% e以标准指数形式输出;以标准指数形式输出;另外:还有printf( )函数的一些附加格式说明符:l用于长整

63、型数据,可加在字符用于长整型数据,可加在字符D、O、U前面;前面;m指定输出数据所占宽度;指定输出数据所占宽度;n对实数,表示输出对实数,表示输出N位小数,对字符串,表示截取的位小数,对字符串,表示截取的 字符个数;字符个数;- 输出的数字或字符在域内向左靠。输出的数字或字符在域内向左靠。116n回车换行t水平制表v垂直制表b向左退一格r回车f换页ddd表示1到3位八进制所代表的字符xhh表示1到2位十六进制所代表的字符。l转义字符转义字符:具有特定含义的字符:具有特定含义的字符:117l普通字符:普通字符: 在打印过程中以原样输出的字符,包括逗号、在打印过程中以原样输出的字符,包括逗号、空格

64、。空格。2)输出项表列:)输出项表列: 指指需要输出的一些数据需要输出的一些数据,输出项可以是变量,输出项可以是变量 名,表达式。名,表达式。例例1:main( ) int a =65,b =97; float x=3.0 d , y=7.81 ; char c=A , d=a; printf (“a =% d, b = % dn”, a, b ); a = 65, b =97 printf (“x = % f, y = % fn”, x, y); x =3.0, y =7.81118 printf (“c=%c, d=%cn”,c,d); c=A, d=a printf (“a=%c,b=%

65、cn”,a+32,b); a=a, b=b 2、scanf()()函数函数 格式:格式:scanf(格式控制串,地址项表列)格式控制串,地址项表列) 功能:功能:按格式控制串的要求从键盘输入数据依次按格式控制串的要求从键盘输入数据依次 存入地址项表列指出的内存单元中。存入地址项表列指出的内存单元中。 说明:说明:1)格式控制串的形式与)格式控制串的形式与printf()()函数中函数中 格式控制字符串类似,所不同的只格式控制字符串类似,所不同的只 是对输入格式进行控制。是对输入格式进行控制。119 scanf 格式字符的说明见P80表4.3 scanf 的附加格式说明见P80表4.42)地址项

66、表列中只能包含变量的地址地址项表列中只能包含变量的地址,而不能是变量名。表示而不能是变量名。表示变量地址是在变量名前加一变量地址是在变量名前加一&。例例2:计算某圆柱体的侧面积。:计算某圆柱体的侧面积。 设设 已知半径为已知半径为r,圆柱体高为圆柱体高为h,则圆柱体侧面积为则圆柱体侧面积为 S=2RH # include main ( ) float r, h, s; scanf (“%f, %f”, &r, &h); s =2*3.1416*r*h; printf (“R=%f, h=%f, s=%fn”, r, h, s); 120顺序结构程序设计举例顺序结构程序设计举例121例例1.输入

67、三角形的三条边长输入三角形的三条边长,求三角形的面积求三角形的面积.#include main( ) fioat a,b,c,area,s; scanf (“%f,%f,%f ”, &a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s); printf(“area=%7.2fn”, area); 122例例2.从键盘输入一个大写字母从键盘输入一个大写字母,将其转换成将其转换成 小写字母输出小写字母输出.#include main (

68、 ) char c1,c2; c1=getchar( ); printf (“%c,%dn”,c1,c1); c2=c1+32; printf(“%c,%dn”,c2,c2); 123例3. 求ax2+bx+c=0 的根.#include main ( ) float a,b,c,disc,x1,x2,p,q; scanf(“a=%f,b=%f,c=%f”,&a,&b,&c); disc=b*b-4*a*c; p= -b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(“nnx1=%5.2fnx2=%5.2fn” x1,x2); 124例4:

69、已知半径R,圆心角度为N,则求弧长L和面积S. L=r n/180 S= r L/2 # include # define PI 3.14159 main ( ) float r, n, L, S; scanf (“%f, %f”, &r, &n ), L=PI*r*n/180; S=r*L/2; printf (“r=%f, n=%f, L=%f, S=%fn”, r, n, L, S ); 125例5:计算等差数列前N项和.已知,等差数列第一项为已知,等差数列第一项为a, 公差为公差为d, 前前n项和为项和为 n(n-1) 2 # include main ( ) int a1, n, d

70、, s; scanf (“%d, %d, %d”, &a1,&n,&d); s =a1*n+n*(n-1)*d/2; printf (“a1=%d, n=%d, d=%d, s=%dn”, a1, n, d, s); S=a1n+d126第第 五五 章章选择结构程序选择结构程序设计设计127章章 节节 内内 容容lIf 语句语句lSWITCH 语句语句l程序举例程序举例128If 语句也称条件判断语句,根据判定结果语句也称条件判断语句,根据判定结果(真或假)来决定执行两个分支中哪一个(真或假)来决定执行两个分支中哪一个 分支的程序。分支的程序。1、if 语句的三种格式:语句的三种格式:lIf

71、(表达式)表达式) 语句语句lIf (表达式)表达式) 语句语句1 else 语句语句2一、一、if 语句语句129lIf (表达式表达式1) 语句语句1 else if (表达式表达式2) 语句语句2 else if (表达式表达式3) 语句语句3 else if (表达式表达式4) 语句语句4 else if (表达式表达式m) 语句语句m else 语句语句 m+1130三种形式的流程图见三种形式的流程图见P92图图5.5 图图5.6If 语句的使用说明:语句的使用说明: 1)表达式一般为关系或逻辑表达式,也可为数表达式一般为关系或逻辑表达式,也可为数 值型表达式,这是值型表达式,这是C

72、语言的特点之一。语言的特点之一。 2)第二、三种形式的第二、三种形式的 if 语句中,在每一个语句中,在每一个else 前面都有一分号前面都有一分号,整个语句结束处也有一个整个语句结束处也有一个 分号。分号。 3)在在 if 和和 else后面可以只包含一个语句,也可后面可以只包含一个语句,也可 为一个用为一个用 括起来的复合语句。括起来的复合语句。 例例1:见:见P93 例例5.1 例例2:见:见P93 例例5.21312、if 语句的嵌套:语句的嵌套:l规则嵌套:每一个内层的规则嵌套:每一个内层的 if 语句都有嵌语句都有嵌入在外层的入在外层的else之后。之后。 如:如:if (表表1)

73、 语句语句1 else if (表表2)语句)语句2 else 语句语句3132l不规则嵌套:每一个内层的不规则嵌套:每一个内层的if可以嵌入外可以嵌入外层的层的if之后或之后或else之后。之后。如:if (表表1) if (表表2) 语句语句1 else 语句语句2 else if (表表3)语句)语句3 else 语句语句4例子:见例子:见P95 例例5.3133 Switch语句又称开关语句,它是一个分语句又称开关语句,它是一个分支选择语句,根据表达式的值依次与支选择语句,根据表达式的值依次与 n 个常个常量表达式匹配量表达式匹配,以选择n+1个语句(组)之一来执行。二、二、switc

74、h switch 语句语句格式:格式:swtich(表达式)表达式) case 常表常表1: 语句组语句组1;break; case 常表常表2: 语句组语句组2;break; | case 常量常量n:语句组语句组n;break; default :语句组语句组 n+1 134说 明:见P99 (1)(5)流程图:见“辅”P117 图48135三、程序举例:三、程序举例:例5.5 见P106例5.6 见P108例5.7 见P110111136第第 六六 章章循环结构程序设计137章章 节节 内内 容容lgoto语句及用goto语句构成的循环结构lWhile 语句lDowhile语句lFor

75、语句lbreak语句和continue语句l多种循环结构的比较l程序举例138l格式:goto 语句标号l功能:无条件转向语句标号所指向语句执行。l与if语句配合使用形成循环结构: 标号:if (表达式) 语句1; 语句2; goto 标号; 一、一、goto语句语句139 while语句也称“当型”循环语句,l格式:while(表达式) 循环体语句 l功能:先作表达式的比较运算,当条件为真时, 执行循环体,而后再次作表达式的比较; 当某次条件比较为假时,则停止循环语句 的执行。l流程图:见P107 图6.1二、二、while 语句语句l例子:见P107 图6.2140dowhile 语句又称

76、 “直到型” 语句;l格式:do 循环体语句 while(表达式)l功能:先执行一次循环体语句,后作表达式判断当表达式的值为真(非零)时,重新返回执行循环体语句当表达式的值为假(零)时,则停止循环语句的执行 三、三、dowhile 语句语句l流程图:见P108 图6.3 例子:见P108 例6.3141l格式: for(表1;表2;表3) 循环体语句 l功能:对循环次数已知情况下,重复n次执 行循环体语句。l流程图:见P110 图书6.6l执行过程:见P110 (1)(5)l使用说明:见P111112 (1)(7) 四、四、for 语句语句142l一个循环体内又包含另一个完整的循环结构称为循环

77、嵌套。l三种循环结构的互相嵌套形式: 1)while 包含 while 2)while 包含 dowhile 3)While 包含 for 4)Dowhile 包含 do while 5)Dowhile 包含 while 6)Dowhile 包含 for 7)For 包含 while 8)For 包含 dowhile 9)For 包含 for五、循环嵌套五、循环嵌套143 1、break语句格式:1)用于switch语句中跳出多分支结构。 2)用于循环体内跳出循环体并终止循 环语句的执行。 2、continiue语句:格式:continue;功能:用于终止某一次循环体的执行,接着 进行下一次执行循环体的判断。l流程图: 见P115图6.10 和图6.11l例子:见P115 例6.5六、六、break 语句和语句和continue 语句语句144见P114 (1)(4)七、三种循环结构的比较:七、三种循环结构的比较:见P116 例6.7见P118 例6.8见P118 例6.9八、程序设计举例:八、程序设计举例:145

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号