C语言程序设计课件.ppt

上传人:李主任 文档编号:3650359 上传时间:2019-09-19 格式:PPT 页数:221 大小:583KB
返回 下载 相关 举报
C语言程序设计课件.ppt_第1页
第1页 / 共221页
C语言程序设计课件.ppt_第2页
第2页 / 共221页
C语言程序设计课件.ppt_第3页
第3页 / 共221页
C语言程序设计课件.ppt_第4页
第4页 / 共221页
C语言程序设计课件.ppt_第5页
第5页 / 共221页
点击查看更多>>
资源描述

《C语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件.ppt(221页珍藏版)》请在三一文库上搜索。

1、C语言程序设计 (王昱 陈延文 李德录 朱启家),天水师范学院计算机科学系 李德录,计算机科学系,第1章 C语言概述,1.1 C语言简介 1.1.1 什么是计算机语言 程序设计语言(Programming Language)是用于编写计算机程序的语言。 机器语言 汇编语言 高级语言 1.1.2 C语言的发展历史,计算机科学系,第1章 C语言概述,1.1.3 C语言的特点 1. C语言是一种结构化程序设计语言。 2. C语言的语句简练、书写灵活 3. C语言处理能力强 4. C语言具有很好的移植性 5. C语言是一种高效率的语言,计算机科学系,第1章 C语言概述,1.2 认识C语言程序 1.2.

2、1 从Hello World程序开始,#include main( ) printf(“Hello,World!n”); ,计算机科学系,第1章 C语言概述,1.2.2 C语言程序的组成 C语言程序主要由函数和变量组成,函数由语句组成,语句以分号结束,变量用来存贮运算过程中所需要的值以及运算过程中产生的中间值 。 main函数是一个特殊的函数,是你程序运行的开始点,这意味着一个程序有且仅有一个main函数。 用花括号括起来的部分是函数的语句,称为函数体。,计算机科学系,第1章 C语言概述,1.3 C程序的执行过程 1.3.1 从编写一个C语言程序到执行该程序的完整过程 1. 用文本编辑器编辑C

3、源程序 2. 编译源程序 3. 运行程序 例:example.h example.c,计算机科学系,第1章 C语言概述,1.3.2 计算机是如何执行程序的 通过编译程序把用高级语言编写的源程序翻译成目标机器能够执行的机器指令,这些机器指令被存放在一个叫做目标程序的文件中,以二进制文件的形式存在磁盘上。生成的目标程序还不能直接装入目标机器上,还需要用连接程序将目标程序和其它有关的模块进行连接,并进行一些必要的地址变换,生成一个可装载到目标机器上的可执行文件,然后才能执行。,计算机科学系,第1章 C语言概述,1.4 C程序上机步骤 1.4.1 C语言上机环境介绍 1.4.2 C语言上机步骤(以VC

4、+6.0为例) 1. 在磁盘上建立一个自己的文件夹。 2. 建立一个空工程,并用Visual C+6.0的编辑程序编写有关的文件(头文件、源文件等)。 3. 把程序源文件添加到工程中。 4. 编译、连接、调试、执行。,计算机科学系,第2章 数据类型、运算符与表达式,数据是程序处理的对象,而计算机中的数据包括数值型数据和非数值型数据。数据类型是按照数据的性质、表示形式和占据存储空间的大小以及构造特点来划分的。数据类型系统是一种抽象机制,将具有相同性质的数据抽象成同一种类型的数据。 运算是对数据进行加工的过程,用来表示各种不同运算的符号称为运算符。参加运算的数据称为运算量(也称运算对象或操作数)。

5、 表达式就是用运算符将运算量连接起来的符合C语言语法规则的式子。,计算机科学系,第2章 数据类型、运算符与表达式,2.1 字符集和标识符 2.1.1 字符集 C语言的字符集包括: 大、小写英文字母:A,B, ,Z,a,b,z 数字:0,1,2,9 运算符:+ - * / % = 特殊符号: _ $ # 空白符:空格符、换行符、制表符。,计算机科学系,第2章 数据类型、运算符与表达式,2.1.2 标识符 标识符是用来标识C程序中的变量、常量(指符号常量)、函数、标号及用户定义对象的名称。标识符的首字符必须是字母或下划线,后跟字母、数字或下划线,其有效长度为1至32个字符。 在C语言中,标识符中字

6、母大小写是有区别的 。 C语言中标识符分为系统定义标识符和用户定义标识符。,计算机科学系,第2章 数据类型、运算符与表达式,2.1.3 系统定义标识符 1. 关键字 数据类型说明符 int,long,short,char,float,double,signed,unsigned,struct,union,enum,void,volatile,const,typedef 存储类别说明符 auto,static,register,extern 语句命令字 goto,return,break,continue,if,else,while,do,for,switch,case,default 运算符

7、sizeof,计算机科学系,第2章 数据类型、运算符与表达式,2.1.4 系统定义标识符 2. 预定义标识符 标准库函数 输入输出函数: scanf,printf,getchar,putchar,gets,puts 数学函数: sqrt,fabs,sin,cos,pow等。 编译预处理命令 define,endif,include,ifdef,ifndef,line等。,计算机科学系,第2章 数据类型、运算符与表达式,2.1.2 用户定义标识符 用户定义标识符不能使用关键字和预定义标识符。 用户定义标识符为了标识不同的对象,标识符的前8个字符要有区别。 用户定义标识符最好按义取名,即根据它所代

8、表的操作对象的含义取名。 避免使用容易混淆的字符,如l与1,o与0,z与2等。 大、小写代表不同的意义。 尽量不要与某个库函数同名。,计算机科学系,第2章 数据类型、运算符与表达式,2.2 常量和变量 2.2.1 常量 在C语言中,常量是指在程序执行的过程中其值不能改变的量。常量分为直接常量和符号常量。直接常量不需要类型说明就可以直接使用,其类型是由常量本身隐含决定的。符号常量是为了增加程序的可读性和易修改性而经常使用的另外一种形式的常量。,计算机科学系,第2章 数据类型、运算符与表达式,2.2.1 常量 1. 直接常量 数值常量 整形常量 实型常量 字符常量 字符常量是由一对单引号所括起来的

9、一个字符 字符串常量 字符串常量是由一对双引号所括起来的一个字符序列,计算机科学系,第2章 数据类型、运算符与表达式,2.2.1 常量 1. 直接常量 2. 符号常量 符号常量定义的一般形式为 #define 符号常量标识符 直接常量 如:#define PI 3.1415926 其中#define是一条预处理命令,称为宏定义命令,其功能是将符号常量标识符定义为其后的直接常量。一经定义,以后做预处理时,凡是碰到该符号常量标识符,都将替换为相对应的直接常量值。,计算机科学系,第2章 数据类型、运算符与表达式,2.2.2 变量 变量是指在程序执行过程中其值可以改变的量。 1. 定义变量 定义变量的

10、一般形式为: 类型标识符 变量名1,变量名2,变量名3,;,计算机科学系,第2章 数据类型、运算符与表达式,2.2.2 变量 2. 变量赋值 变量赋值的一般格式为: 变量名=表达式 3. 变量初始化 变量初始化就是在定义变量时给变量赋以初值。 在变量初始化时不允许对多个未定义的同类型变量连续初始化,例如int a=b=c=5;是不合法的。 变量初始化时,必须保证“=”右边的常量表达式与“=”左边的变量类型一致。,计算机科学系,第2章 数据类型、运算符与表达式,2.3 数据类型 数据类型是一组值的集合和定义在这个值集上的一组操作的总称。 C语言规定,C程序中使用的每一个数据都属于唯一的一种数据类

11、型,没有无类型的数据,一个数据也不能同时属于多种数据类型。 C语言中的数据类型分为4类:基本类型、构造类型、指针类型和空类型。其中基本类型又包括:整型、实型、字符型和枚举类型。,计算机科学系,第2章 数据类型、运算符与表达式,计算机科学系,第2章 数据类型、运算符与表达式,2.3 数据类型 C语言的基本数据类型有三种:整型、实型和字符型。 在C语言中有4种类型修饰符,它们是: signed(有符号) unsigned(无符号) long(长型) short(短型) 它们可以与int或char结合使用,long也可与double结合使用。,计算机科学系,第2章 数据类型、运算符与表达式,2.3

12、数据类型 2.3.1 整型数据 在C语言中,整型数据取值范围是数学中整数集中的一个有限子集。对于不同的计算机系统,这个有限子集是不同的,它与计算机分配给整数所占的存储位数有关。 在C语言中,整型数据根据其所占的存储位数分为普通整型(int)、短整型(short)和长整型(long)三种类型,根据其有无符号又分为无符号整型(unsigned)和有符号整型,而无符号整型(unsigned)的整数都是正的。,计算机科学系,第2章 数据类型、运算符与表达式,2.3.1 整型数据 1. 整型变量 类型修饰符 int 变量名1,变量名2,变量名n; 2. 整型常量 在C语言中,整形常量的表示有三种:十进制

13、表示、八进制表示和十六进制表示。 十进制表示不能以数字0开始;八进制表示以数字 0开始;十六进制表示以0x开始。,计算机科学系,第2章 数据类型、运算符与表达式,2.3.2 实型数据 在C语言中,实型数据(也称作浮点型数据)分为单精度型(float)、双精度型(double)和长双精度型(long double),它们的区别在于所占存储位数不同。,计算机科学系,第2章 数据类型、运算符与表达式,2.3.2 实型数据 1. 实型变量 在C语言中,定义实型变量的一般格式为: float 变量名1,变量名2,变量名n; double 变量名1,变量名2,变量名n; long doublet 变量名1

14、,变量名2,变量名n; 2.实型常量 在C语言中,实型常量的表示有两种形式:小数表示法和科学计数表示法。,计算机科学系,第2章 数据类型、运算符与表达式,2.3.3 字符型数据 在C语言中,一个字符型数据的值只能是单个字符,在内存中占一个字节(8位),用来存储该字符对应的ASCII码值(无符号整数)。 由于字符型数据在内存中是以ASCII码值(无符号整数)的形式存放的,所以通常情况下,字符型数据和整型数据是可以相互通用的,二者的区别仅在于:字符型数据占一个字节(8位),整型数据占两个字节(16位)。,计算机科学系,第2章 数据类型、运算符与表达式,2.3.3 字符型数据 1. 字符型变量 ch

15、ar 变量名1,变量名2,变量名n; 2. 字符型常量 在C语言中,字符型常量是将单个字符用单引号括起来表示的。 对于非打印字符和一些特殊字符,如退格、换行、反斜杠、单引号等,表示方法是使用转义字符。,计算机科学系,第2章 数据类型、运算符与表达式,2.4 运算符与表达式 运算是对数据进行加工的过程,用来表示各种不同运算的符号称为运算符。参加运算的数据称为运算量(也称运算对象或操作数)。用运算符将运算量连接起来的符合C语言语法规则的式子称为运算表达式,简称表达式。,计算机科学系,第2章 数据类型、运算符与表达式,2.4 运算符与表达式 2.4.1运算符与表达式概述 1. 运算符 C语言提供了丰

16、富的运算符,其种类如下:,计算机科学系,第2章 数据类型、运算符与表达式,算术运算符:+、-、*、/、%、+、-、+、- 关系运算符:、=、 指针运算符:*、& 长度运算符:sizeof 强制类型转换:类型名 分量运算符:. 、- 下标运算符: 其它运算符:( ),计算机科学系,第2章 数据类型、运算符与表达式,运算符的优先级是指当一个表达式中如果有多个运算符时,表达式中各运算符的运算是有先后次序的,这种运算的先后次序称为相应运算符的优先级。 运算符的结合性是指当一个运算量两侧的运算符的优先级相同时,运算进行的结合方向。如果按“从左向右”的顺序运算,称为左结合性;如果按照“从右向左”的顺序运算

17、,称为右结合性。,计算机科学系,第2章 数据类型、运算符与表达式,2.4.1运算符与表达式概述 2. 表达式 算术表达式 关系表达式 逻辑表达式 赋值表达式 条件表达式 逗号表达式 位表达式 其它表达式,计算机科学系,第2章 数据类型、运算符与表达式,2.4.2 算术运算符与算术表达式 1. 算术运算符 基本算术运算符 基本算术运算符有5个,它们分别是:+(加)、-(减)、*(乘)、/(除)、%(模除)。它们都是双目运算符。 自增、自减运算符 自增运算符是+,自减运算符是-,它们都是单目运算符 正、负运算符 正运算符是+,负运算符是-,它们都是单目运算符,计算机科学系,第2章 数据类型、运算符

18、与表达式,2.4.2 算术运算符与算术表达式 2. 算术表达式 用算术运算符、圆括号将运算量(常量、变量和函数)连接起来的符合C语言语法规则的式子称为算术表达式。,计算机科学系,第2章 数据类型、运算符与表达式,表达式中的乘号不能省略 C语言表达式只能使用系统允许的标识符 C语言表达式中的内容必须书写在一行,不允许有分子分母形式,必要时要使用圆括号保证运算的正确顺序 C语言表达式不允许使用方括号和花括号,只能使用圆括号 在书写包含多种运算符的表达式时,应注意各个运算符的优先级,要确保表达式中运算符能以正确的顺序执行,如果对复杂表达式中运算符的计算顺序没有把握,可以使用圆括号强制使计算顺序按照设

19、计要求进行,计算机科学系,第2章 数据类型、运算符与表达式,2.4.2 算术运算符与算术表达式 3. 算术运算符的优先级和结合性 优先级举例: -a-b*c+a/c 运算顺序为:取负、乘、除、减、加。 结合性举例: -x+ -和+优先级相同,结合性为从右向左,所以x先与+结合,再与-结合,相当于-(x+)。,计算机科学系,第2章 数据类型、运算符与表达式,2.4.3 赋值运算符与赋值表达式 1. 赋值运算符 变量名=表达式 2. 赋值表达式 用赋值运算符将运算量(常量、变量和函数)连接起来的符合C语言语法规则的式子称为赋值表达式。 3. 复合赋值运算符 为了简化程序并提高编译效率,C语言允许在

20、赋值运算符“=”之前加上一些其他运算符,以构成复合赋值运算符。,计算机科学系,第2章 数据类型、运算符与表达式,2.4.4 关系运算符与关系表达式 1. 关系运算符 关系运算就是比较两个数值的大小。 2. 关系表达式 用关系运算符、圆括号将运算量(常量、变量和函数)连接起来的符合C语言语法规则的式子称为关系表达式。 3. 关系运算符的优先级和结合性,计算机科学系,第2章 数据类型、运算符与表达式,2.4.5 逻辑运算符与逻辑表达式 1. 逻辑运算符 逻辑运算符有3个,它们分别是:&(与)、|(或)、!(非)。其中&和|是双目运算符,!是单目运算符。 2. 逻辑表达式 用逻辑运算符将运算量(常量

21、、变量和函数)连接起来的符合C语言语法规则的式子称为逻辑表达式。 3. 逻辑运算符的优先级和结合性,计算机科学系,第2章 数据类型、运算符与表达式,2.4.6 条件运算符与条件表达式 条件运算符由“?”和“:”组成,是C语言唯一提供的一个三目运算符,为从右向左。 表达式1 ? 表达式2 : 表达式3 条件表达式的计算过程为:先计算表达式1的值,如果表达式1的值为非0,则计算表达式2的值,并将表达式2的值作为整个条件表达式的值;否则,计算表达式3的值,并将表达式3的值作为整个条件表达式的值,计算机科学系,第2章 数据类型、运算符与表达式,2.4.7 逗号运算符与逗号表达式 逗号运算符是:,,用于

22、把两个表达式连接起来组合成一个表达式,也即逗号表达式。它是一个双目运算符,优先级是C语言运算符中最低的,结合性为从左向右。 表达式1 , 表达式2 逗号表达式的计算过程是为:先计算表达式1的值,再计算表达式2的值,最后整个表达式的值为表达式2的值。,计算机科学系,第2章 数据类型、运算符与表达式,2.5 数据类型转换 2.5.1 数据类型的自动转换 在一个表达式(特别是算术表达式)中出现各种数据类型时,C语言会自动将不同类型的数据转换成同一类型,然后再进行计算。 2.5.2 数据类型的强制转换 在C语言中,可以在任何表达式中使用一个叫做类型转换的形式来对数据类型进行强制转换。 (类型名)表达式

23、,计算机科学系,第3章 顺序结构程序设计,顺序结构是结构化程序设计的3种基本结构之一,是最简单、最常见的一种程序结构。在顺序结构中,程序的执行是按照语句出现的先后顺序进行的,并且每条语句都会执行到。 顺序结构程序通常有3部分组成:数据的输入、数据的处理、数据的输出。,计算机科学系,第3章 顺序结构程序设计,3.1 C语言语句概述 在C语言程序中,无论是数据的描述,还是操作的描述,都是以语句的形式表现出来的,程序的功能也是靠语句的执行来实现的。 C语言语句分为4类:简单语句、复合语句、流程控制语句和空语句。,计算机科学系,第3章 顺序结构程序设计,3.1 C语言语句概述 3.1.1 简单语句 简

24、单语句包括变量定义语句、外部变量声明语句、函数声明语句、表达式语句。 1. 变量定义语句 类型名 变量名1,变量名2,变量名3,; 2. 外部变量声明语句 extern 类型名 变量名1,变量名2,变量名3,;,计算机科学系,第3章 顺序结构程序设计,3.1.1 简单语句 3. 函数声明语句 类型名 函数名(参数类型1,参数类型2,参数类型n); 或 类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,参数类型n 参数名n);,计算机科学系,第3章 顺序结构程序设计,3.1.1 简单语句 4. 表达式语句 表达式; 运算符表达式语句 函数调用表达式语句,计算机科学系,第3章 顺序结构程

25、序设计,3.1.2 复合语句 把多个单一语句用花括号括起来便组成一个复合语句。复合语句在语法上相当于一条语句。 语句1; 语句2; 语句n; ,计算机科学系,第3章 顺序结构程序设计,3.1.3. 流程控制语句 流程控制语句用于控制程序流程,以实现程序的各种控制结构,它们由特定的语句定义符组成。 C语言提供的流程控制语句共有9个,根据它们的功能可以分成3类,它们是: 条件判断语句:if语句、switch语句 循环控制语句:while语句、dowhile语句、for语句 流程转向语句:break语句、continue语句、return语句、goto语句,计算机科学系,第3章 顺序结构程序设计,3

26、.1.4. 空语句 空语句只有一个分号,即: ; 它是什么也不执行的语句。在C语言程序中,空语句常用来做转向点和空循环体。,计算机科学系,第3章 顺序结构程序设计,3.2 数据输入与输出 3.2.1 格式输入输出函数 1. 格式输入函数scanf( ) scanf(”格式控制串”, 输入地址列表);,计算机科学系,第3章 顺序结构程序设计,3.2.1 格式输入输出函数 1. 格式输入函数scanf( ) 格式控制串:用双引号括起来的字符串,也称转换控制字符串,由格式说明符和普通字符组成。 格式说明符:由“%”和格式字符组成,如%d、%c、%f,其作用是指定格式输入数据。 普通字符:格式说明符以

27、外的字符,这些字符可以有也可以没有,如果有,则在输入数据时必须在对应的位置上原样输入这些字符。 地址表列:由若干个地址组成的列表,可以是变量的地址,也可以是字符串或数组的首地址。,计算机科学系,第3章 顺序结构程序设计,3.2.1 格式输入输出函数 1. 格式输入函数scanf( ) 常用格式字符 格式输入函数scanf( )中的格式控制串必须以%开始,以一个格式字符结束,并且要用双引号括起来。,计算机科学系,第3章 顺序结构程序设计,3.2.1 格式输入输出函数 1. 格式输入函数scanf( ) 使用scanf( )函数应注意的事项 用scanf( )函数输入数据时,输入的数据只能是常量,

28、而不能是表达式。 如果实际输入的数据宽度大于格式说明中规定的数据宽度,则系统自动从左到右按规定的数据宽度截去数据,多余的数据被丢掉。 在%后面加一个“*”修饰符,则表示要跳过此项,即不把此输入送给任何变量。 在格式控制串中,如果格式说明符的类型和输入项的类型不匹配,系统不会给出错误信息,但可能得不到正确的结果。 当调用scanf( )函数从简输入数据是,最后一定要按回车键,scanf( )函数接收不到输入的数据。,计算机科学系,第3章 顺序结构程序设计,3.2.1 格式输入输出函数 2. 格式输出函数printf( ) printf(”格式控制串”, 输出项列表); 格式控制串:用双引号括起来

29、的字符串,由格式说明符、普通字符和转义字符组成。 格式说明符:由“%”和格式字符组成,如%d、%c、%f,其作用是将要输出的数据以指定的格式输出,格式说明符在个数和类型上应与输出项相匹配。 普通字符:格式说明符以外的字符,这些字符可以有也可以没有,如果有,则原样输出,其作用是为了提高输出结果的可读性,使人机交流变得更加容易。 转义字符:以“”开头的字符序列,其作用是在输出时产生一个特殊字符或特殊操作。转义字符在第2章字符型常量中已做了详细介绍。 输出项列表:输出项列表列出了所要输出的数据,它们可以是常量、变量、表达式。输出项列表所列输出项的个数和类型必须与格式说明相匹配。,计算机科学系,第3章

30、 顺序结构程序设计,3.2.1 格式输入输出函数 2. 格式输出函数printf( ) 常用格式字符 格式输出函数printf( )中的格式控制串必须以%开始,以一个格式字符结束,并且要用双引号括起来。,计算机科学系,第3章 顺序结构程序设计,3.2.1 格式输入输出函数 2. 格式输出函数printf( ) 使用printf( )函数应注意的事项 在格式控制串中,格式说明符要与输出项从左到右在个数和类型上相互匹配。如果不匹配,系统并不报错,但将导致数据不能正确输出。 若要输出%,则应该在格式控制串中使用两个“%”,即“%”。 printf( )函数输出数据后并不换行,要换行必须在格式控制串中

31、使用转义字符“n”。,计算机科学系,第3章 顺序结构程序设计,3.2.2 字符输入输出函数 1. 字符输入函数gechar( ) getchar( ); 使用字符输入函数getchar( )的注意事项 getchar( )函数的调用不需要参数,它的返回值为输入的字符。 getchar( )函数的返回值可以作为表达式或表达式的一部分。,计算机科学系,第3章 顺序结构程序设计,3.2.2 字符输入输出函数 2. 字符输出函数putchar( ) putchar(表达式 ); 使用字符输出函数pu tchar( )的注意事项 putchar( )函数的参数可以是字符常量、字符变量,还可以是别的表达式

32、。 putchar( )函数每次只能输出一个字符,若要输出多个字符,必须多次调用。,计算机科学系,第3章 顺序结构程序设计,3.3 顺序结构程序设计举例 【例3.1】 编写程序,输入两个整数,交换它们的值后再输出。 【例3.2】 编写程序,输入摄氏温度数,然后转换为华氏温度数并。 【例3.3】 编写程序,输入三角形的三条边长,求三角形的面积 。 【例3.4】 编写程序,输入一个字符,输出这个字符的后继字符。,计算机科学系,第4章 选择结构程序设计,顺序结构程序的流程方向永远是自上而下顺序执行的。然而,在实际应用中常常需要根据不同的条件,执行不同的程序流程。这样就形成了选择结构程序。 C语言提供

33、了可以进行逻辑判断的选择语句,由其构成的选择结构根据逻辑判断的结果决定程序的不同流向。,计算机科学系,第4章 选择结构程序设计,4.1 if语句 If语句也称作二路选择语句。二路选择是最简单的一种选择结构,它是根据条件的表达式值来选择执行给出的两个分支程序段之一。,计算机科学系,第4章 选择结构程序设计,4.1.1 if语句的基本形式 1. ifelse形式 if(表达式) 分支语句1 else 分支语句2 2. if形式 if(表达式) 分支语句,计算机科学系,第4章 选择结构程序设计,if语句中的表达式可以是C语言中的任意合法表达式,一般情况下为关系表达式和逻辑表达式。 ifelse形式中

34、的“分支语句1”、“分支语句2”和if形式中的“分支语句”,在语法上只能是一条语句。因此,如果需要多条语句来完成任务的话,就必须将这多条语句用花括号括起来,从而形成复合语句,使之在语法上是一条语句。 不论是哪种形式的if语句,也不论if语句中的分支语句是何种语句,整个if语句在语法上只算一条语句。,计算机科学系,第4章 选择结构程序设计,4.1.2 if语句的嵌套 1. if语句的嵌套的基本形式 if(表达式1) if语句1 else if语句2 或者 if(表达式) if语句,计算机科学系,第4章 选择结构程序设计,4.1.2 if语句的嵌套 if语句的嵌套结构不论嵌套多少层,在语法上只算一

35、条语句。 缩进格式的书写只是为了阅读的方便,即这种格式表示了程序设计者的意图,但整个if语句的嵌套结构的含义与此并无关系,它的含义完全由C语言编译系统来解释。 if语句的嵌套结构中的else要与if配对出现,原则是else与其最近的未配对的if配对。,计算机科学系,第4章 选择结构程序设计,4.1.2 if语句的嵌套 2. 一种特殊的if语句的嵌套形式ifelse if if(表达式1) 分支语句1 else if(表达式2) 分支语句2 else if(表达式3) 分支语句3 else if else if(表达式n) 分支语句n else 分支语句n+1,计算机科学系,第4章 选择结构程序

36、设计,4.2 switch语句 4.2.1 switch语句 switch(表达式) case 常量表达式1: 分支语句组1 case 常量表达式2: 分支语句组2 case 常量表达式n: 分支语句组n default: 分支语句组n+1 ,计算机科学系,第4章 选择结构程序设计,switch后的表达式类型可以为任意类型,但一般为整型、字符型和枚举类型。 case后的常量表达式的类型必须与switch后的表达式类型一致。 case后的常量表达式的值必须互不相同。 case后的分支语句组可以是一条语句,也可以是多条语句。 多个case可以共用一个分支语句组,即连续的k个case语句,前k-1个

37、后面可以没有分支语句组,只有第k个case语句后面有分支语句组。 default及其分支语句组可以省略。 各个case和default的前后次序并不影响switch语句的执行结果。 switch语句可以嵌套,即case后的分支语句组也可以是switch语句。 不论switch语句内部结构如何,整个switch语句在语法上只算一条语句。,计算机科学系,第4章 选择结构程序设计,4.2.2 break语句 break语句也称间断语句,通常在switch语句和循环语句中使用。当break语句用于switch语句中时,可使程序跳出当前switch结构,转而执行当前switch语句后的语句。,计算机科学

38、系,第4章 选择结构程序设计,4.3 选择结构程序设计举例 【例4.1】 编写程序,输入一个实数,输出它的绝对值。 【例4.2】 编写程序,输入两个整数m、n,若mn,交换m和n的值。最后输出m和n的值。 【例4.3】 编写程序,输入三个整数a、b、c,将它们按从小到大的顺序输出。 【例4.4】 编写程序,输入一个百分制成绩,转换为等级制成绩输出。1,2,3 【例4.5】 编写程序,求解一元二次方程。,计算机科学系,第5章 循环结构程序设计,5.1 while语句 while语句是C语言提供的三个循环控制语句之一。它的特点是先判断循环控制条件,再根据循环控制条件是否成立来决定是否执行循环体。

39、5.1.1 while语句的基本形式 while(表达式) 循环体语句,计算机科学系,第5章 循环结构程序设计,while语句中的表达式可以是C语言中的任意合法表达式,它的作用是控制循环次数,一般情况下为关系表达式和逻辑表达式。 while语句中的循环体语句在语法上只能是一条语句。因此,如果需要多条语句来完成任务的话,就必须将这多条语句用花括号括起来,从而形成复合语句,使之在语法上是一条语句。 while语句是“先判断,后执行”的循环控制语句。因此,如果表达式的值一开始就为0,则循环体语句一次都不执行,但表达式还是要计算的。 如果表达式的值一开始就为非0,循环体语句中又没有随着每次循环能使表达

40、式的值变化趋于0的语句,则表达式的值一直为非0,这样while语句就进入了死循环,无法结束,所以,在循环体语句中一定要有随着每次循环能使表达式的值变化趋于0的语句或能结束循环的语句。 while语句不论其循环体语句是何种语句,整个while语句在语法上只算一条语句。,计算机科学系,第5章 循环结构程序设计,5.1.2 while语句的应用 【例5.1】 编写程序,输入一个整数n,计算sum(n)=1+2+n的值。 【例5.2】 编写程序,输入一串字符并在屏幕显示,直到输入字符$为止。,计算机科学系,第5章 循环结构程序设计,5.2 do-while语句 do-while语句是C语言提供的三个循

41、环控制语句之一。它的特点是先执行循环体,再判断循环控制条件,根据其是否成立来决定是否继续执行循环体。 5.2.1 do-while语句的基本形式 do 循环体语句 while(表达式);,计算机科学系,第5章 循环结构程序设计,do-while语句中的表达式可以是C语言中的任意合法表达式,它的作用是控制循环次数,一般情况下为关系表达式和逻辑表达式。 do-while语句中的循环体语句在语法上只能是一条语句。因此,如果需要多条语句来完成任务的话,就必须将这多条语句用花括号括起来,从而形成复合语句,使之在语法上是一条语句。 do-while语句是“先执行,后判断”的循环控制语句。因此,即使表达式的

42、值一开始就为0,循环体语句也要执行一次,表达式也要计算一次。 如果表达式的值一开始就为非0,循环体语句中又没有随着每次循环能使表达式的值变化趋于0的语句,则表达式的值一直为非0,这样do-while语句就进入了死循环,无法结束,所以,在循环体语句中一定要有随着每次循环能使表达式的值变化趋于0的语句或能结束循环的语句。 do-while语句不论其循环体语句是何种语句,整个do-while语句在语法上只算一条语句。,计算机科学系,第5章 循环结构程序设计,5.2.2 do-while语句的应用 【例5.3】 编写程序,输入一个整数n,计算sum(n)=1+2+n的值。 【例5.4】 编写程序,输入

43、一串字符并在屏幕显示,直到输入字符$为止。,计算机科学系,第5章 循环结构程序设计,5.3 for语句 for语句是C语言提供的三个循环控制语句之一。它是C语言中最有特色的循环控制语句,使用最为灵活方便。不仅可以用于已知循环次数的循环控制结构,也可以用于未知循环次数的循环控制结构,而且可以完全代替while语句和do-while语句。 5.3.1 for语句的基本形式 for(表达式1; 表达式2; 表达式3) 循环体语句,计算机科学系,第5章 循环结构程序设计,for语句中的表达式1、表达式2、表达式3可以是C语言中的任意合法表达式。一般应用情况下:表达式1的作用是给变量赋初值,通常为赋值表

44、达式;表达式2的作用是控制循环次数,通常为关系表达式或逻辑表达式;表达式3的作用是影响循环控制条件,通常也是赋值表达式。 for语句中的三个表达式是可选项,即省略任一个、任两个以及三个都可以,但括号中的两个分号不能省略。 for语句中的循环体语句在语法上只能是一条语句。因此,如果需要多条语句来完成任务的话,就必须将这多条语句用花括号括起来,从而形成复合语句,使之在语法上是一条语句。,计算机科学系,第5章 循环结构程序设计,for语句是“先判断,后执行”的循环控制语句。因此,如果表达式2的值一开始就为0,则循环体语句一次都不执行,但表达式1和表达式2还是要计算的。 如果表达式2的值一开始为非0,

45、表达式3和循环体语句中没有对表达式产生影响的语句,则表达式2的值一直为非0,这样for语句就进入了死循环,无法结束,所以,在表达式3或循环体语句中一定要有对表达式产生影响的语句或能结束循环的语句。 for语句不论其循环体语句是何种语句,整个for语句在语法上只算一条语句。,计算机科学系,第5章 循环结构程序设计,5.3.2 for语句的应用 【例5.5】 编写程序,输入一个整数n,计算sum(n)=1+2+n的值。 【例5.6】 编写程序,输入一串字符并在屏幕显示,直到输入字符$为止。,计算机科学系,第5章 循环结构程序设计,5.4 break语句和continue语句 5.4.1 break

46、语句 当break语句用于循环语句中时,可使程序跳出当前循环结构,转而执行当前循环语句后的语句。 break; break语句只能用于循环语句和switch语句中,而不能用于其它任何语句中。 在具有嵌套的结构中(switch嵌套和循环嵌套),一条break语句只能向外跳出一层,即只能跳出它所在的那一层。,计算机科学系,第5章 循环结构程序设计,5.4.2 continue语句 continue语句的作用是结束当前循环的本次循环(并不是终止循环),即跳过本次循环体中剩下的尚未执行的语句,转向循环控制条件的判定,进行下一次循环。 continue; continue语句只能用于循环语句中,而不能用

47、于其它任何语句中。 对于while语句和do-while语句,continue语句将控制转向循环控制表达式;对于for语句,continue语句将控制转向for语句的表达式3处。 在循环嵌套的结构中,continue语句只在它所在的循环控制层起作用。,计算机科学系,第5章 循环结构程序设计,应用举例 【例5.7】 编写程序,输入一个正整数n,判断其是否是素数。若是素数,输出“Yes.”,否则,输出“No.”。 【例5.8】 编写程序,输出1100之间的所有不能被3和7同时整除的整数。,计算机科学系,第5章 循环结构程序设计,5.5 goto语句 goto语句为无条件转向语句,转向到指定标号处,

48、执行标号以后的程序。 5.5.1 goto语句的基本形式 goto 标号; 标号必须是合法的标识符,不能使用10:、35:等数字形式,但可以和变量同名(一般不推荐)。 标号可以放在程序中同一个函数内的任一个语句的前面,标号与语句之间用冒号分隔。 标号既可以放在goto语句的前面,也可以放在goto语句的后面。,计算机科学系,第5章 循环结构程序设计,5.5.2 goto语句的应用 1. 用goto语句形成循环语句 【例5.9】 编写程序,输入一个整数n,计算sum(n)=1+2+n的值。1,2 2. goto语句的其它应用 【例5.10】 编写程序,输入程序中的密码“123”,如果密码正确,在

49、屏幕显示“OK!”,否则,程序结束。 【例5.11】 编写程序,找出从1到1000以内第一个能被3、5、7同时整除的数并输出。,计算机科学系,第5章 循环结构程序设计,3. 使用goto语句的注意事项 一般情况不建议使用goto语句,因为它容易使程序层次不清,且不易懂,通常是只有需要快速退出多层嵌套时,才使用goto语句。 使用goto语句时,一般情况是goto语句从循环结构内转向循环结构外,而不是从循环结构外转向循环结构内,如果这样的话会造成程序的混乱。 使用goto语句时,标号必须与goto语句处于同一个函数中。,计算机科学系,第5章 循环结构程序设计,5.6 循环的嵌套 循环的嵌套是指一个循环结构的循环体是一个循环结构,即一个循环结构内嵌了另一个循环结构,而内嵌的循环结构还可以内嵌循环结构。 C语言提供的三个循环语句,它们不仅可以自身内嵌,也可以相互内嵌。,计算机科学系,第5章 循环结构程序设计,5.6 循环的嵌套举例 【例5.12】 编写程序,输出以下形式的乘法九九表。 【例5.13】 编写程序,某班有25个学生,每个学生有6门课,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1