C语言数据类型、运算符与表达式课件_第1页
C语言数据类型、运算符与表达式课件_第2页
C语言数据类型、运算符与表达式课件_第3页
C语言数据类型、运算符与表达式课件_第4页
C语言数据类型、运算符与表达式课件_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

1、 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式第第3章章 数据类型、运算符与表达式数据类型、运算符与表达式教学目标:教学目标:数据类型数据类型常量常量简单变量简单变量库函数库函数 1.1.运算符和表达式运算符和表达式 Page 1 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式第第3章章 数据类型、运算符与表达式数据类型、运算符与表达式知识点:知识点: v C C语言中数据类型的分类;常量、符号常量语言中数据类型的分类;常量、符号常量与变量的概念;与变量的概念; v 整型(短整整型(短整/ /长整长整

2、/ /无符号短整无符号短整/ /无符号长无符号长整)、实型(单精度整)、实型(单精度/ /双精度)、字符型双精度)、字符型(字符(字符/ /字符串)常量的书写方法和变量的字符串)常量的书写方法和变量的定义、存储格式、初始化、使用方法;定义、存储格式、初始化、使用方法;v 库函数的使用库函数的使用 v 算术、赋值、增量、关系、逻辑、条件、算术、赋值、增量、关系、逻辑、条件、逗号运算符和表达式,位运算等;逗号运算符和表达式,位运算等; Page 2 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式第第3章章 数据类型、运算符与表达式数据类型、运算符与表达

3、式重点:重点: v 整型、实型、字符型常量的书写方法和变量整型、实型、字符型常量的书写方法和变量的定义、存储格式、初始化、使用方法;的定义、存储格式、初始化、使用方法;v 库函数的使用;库函数的使用; v 算术、赋值、逗号运算符和表达式;算术、赋值、逗号运算符和表达式; v 各类数值型数据间的混合运算。各类数值型数据间的混合运算。 难点:难点: v 运算符优先级;运算符优先级; v 混合表达式计算。混合表达式计算。 Page 3 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式第第3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.1 3.1

4、 C C语言的数据类型语言的数据类型3.2 3.2 常量与变量常量与变量1 1) 整型数据整型数据2 2) 浮点型数据浮点型数据3 3) 字符型数据字符型数据3.4 3.4 库函数库函数3.5 3.5 运算符和表达式运算符和表达式 Page 4 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.1 3.1 C C语言的数据类型语言的数据类型 整型整型 字符型字符型 单精度型单精度型 双精度型双精度型 枚举类型枚举类型 数组类型数组类型 结构体类型结构体类型 共用体类型共用体类型指针类型指针类型空类型空类型数据类型数据类型基本类型基本类型构造类型构造

5、类型浮点型浮点型 Page 5 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.2 3.2 常量与变量常量与变量常量常量: 在程序运行中在程序运行中,其值不变的量其值不变的量,如如:23.7, -69 等。等。 常量分为两类:常数常量和符号常量常量分为两类:常数常量和符号常量变量变量: 在程序运行过程中在程序运行过程中,其值可以改其值可以改变的量变的量,在内存中占据一定的存储单元。在内存中占据一定的存储单元。 Page 6 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式常数常量与符号常量常数常量与符号

6、常量常数常量从其字面形式即可判别。常数常量从其字面形式即可判别。符号常量符号常量v 符号常量符号常量: 用标识符表示的常量。用标识符表示的常量。v 符号常量定义在函数之外,定义形式为符号常量定义在函数之外,定义形式为: #define 标识符标识符 常量常量 例:例:#define PI 3.14159 含义:定义含义:定义PI为符号常量(习惯用大写字为符号常量(习惯用大写字母),其值为母),其值为3.14159。 Page 7 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式变量变量变量以标识符命名。变量以标识符命名。变量的定义变量的定义: 类型名

7、类型名 标识符标识符1,标识符标识符2,.标识符标识符n; int a,b,c; /* a,b,c 为整型变量为整型变量 */ float x,y,z; /* x,y,z 为单精度型变量为单精度型变量 */注意事项注意事项: (1)变量必须先定义后使用变量必须先定义后使用 (2)每个变量必须被指定为一种类型每个变量必须被指定为一种类型 (3)一般习惯上用小写字母表示变量一般习惯上用小写字母表示变量, 用大写用大写字母表示符号常量,以示区别。(仅是习惯不是字母表示符号常量,以示区别。(仅是习惯不是规定)规定) Page 8 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据

8、类型、运算符与表达式C 语言的标识符语言的标识符标识符标识符: 用来标识变量名、符号常量名、函数用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。名、数组名、类型名、文件名的有效字符序列。标识符命名规则标识符命名规则: 以字母或下划线开头;由字以字母或下划线开头;由字母、数字、下划线组成;母、数字、下划线组成;TC要求不超过要求不超过32个字个字符;不允许使用保留关键字。符;不允许使用保留关键字。注意:注意:* C语言标识符中大、小字母有区分。语言标识符中大、小字母有区分。* C语言规定,保留关键字不能作为标识符。语言规定,保留关键字不能作为标识符。 * C语言的保留关

9、键字共有语言的保留关键字共有32个,见个,见P301附录附录B。 Page 9 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式C 语言的标识符语言的标识符 判断下列用户标识符的合法性:判断下列用户标识符的合法性: a1 abc.c a_b a-b abc123 3a int X .不能作标识符不能作标识符X -不能作标识符不能作标识符X 不能以数字开头不能以数字开头X 关键字不能作标识符关键字不能作标识符 Page 10 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式1)整型数据)整型数据 整型数据在内

10、存中的存放形式:整数在计算机整型数据在内存中的存放形式:整数在计算机中按定点整数的补码存储。中按定点整数的补码存储。 例如:整数例如:整数 34 的的16位(位(2字节)编码字节)编码 原码:原码:00000000 00100010 反码:反码:00000000 00100010 补码:补码:00000000 00100010例如:整数例如:整数-34 的的16位(位(2字节)编码字节)编码 原码:原码:10000000 00100010 反码:反码:11111111 11011101 补码:补码:11111111 11011110内存中存内存中存储形式储形式 内存中存内存中存储形式储形式 P

11、age 11 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式整型变量的类型整型变量的类型整型变量的分类:整型变量的分类: 1)基本整型,以)基本整型,以int表示表示 2)短整型,以)短整型,以short int或以或以short表示表示 3)长整型,以)长整型,以long int或以或以long表示表示 修饰符:修饰符:unsigned(无符号数)(无符号数) signed(有符号数)(缺省表示)(有符号数)(缺省表示) Page 12 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式整型变量的定义整型

12、变量的定义整型变量的定义形式:整型变量的定义形式: 整型类型名整型类型名 变量名变量名1,变量名,变量名2,变量名变量名n;例如例如 int a; unsigned short b; 等价表达:等价表达: unsigned short int b; long c; 等价表达:等价表达: long int c; unsigned d; 含义:含义:d为为unsigned int变量变量 Page 13 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式变量赋初值变量赋初值方法方法1 先定义变量,再用赋值语句赋值先定义变量,再用赋值语句赋值 如:如: in

13、t a; a=3; /*赋值语句赋值语句*/方法方法2 变量初始化,在定义变量的同时为变变量初始化,在定义变量的同时为变量赋初值量赋初值 如:如: int a=3; float x=5.89; int a,b,c=8; /*只有只有c赋了初值赋了初值*/ int a=b=c=8; 错误!错误! 正确写法:正确写法: int a=8,b=8,c=8注意:不允许注意:不允许连续赋初值连续赋初值 Page 14 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式整型变量的取值范围整型变量的取值范围 Page 15 C语言语言程序设计程序设计 第第3 3章章

14、数据类型、运算符与表达式数据类型、运算符与表达式整型常量的表示方法整型常量的表示方法 (短)整型常量的表示方法:(短)整型常量的表示方法:v 十进制十进制: 如如: 123, 0, -125 v 八进制八进制: 以数字以数字 0 开头开头 如:如:042 即(即(42)8 表示表示(34)10 v十六进制十六进制: 以数字以数字0和字母和字母x开头开头 如:如:0 x22 即(即(22)16 表示表示(34)10 Page 16 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式整型常量的表示方法整型常量的表示方法 长整型常量的表示方法:长整型常量的表

15、示方法: (1)数值超过)数值超过 -3276832767范围、但在范围、但在 -2147483648(-231)2147483647(231-1)之间的数直接写成十进制整数形式之间的数直接写成十进制整数形式 如如 123456789 (2)十进制整数后面加字母)十进制整数后面加字母 l 或或 L 如如 123l ,-123L无符号整型常量的表示方法:无符号整型常量的表示方法: 在整数后面加字母在整数后面加字母 u 或或 U Page 17 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式整型数据的溢出整型数据的溢出 注意变量的取值范围,否则将会出现

16、注意变量的取值范围,否则将会出现“溢出溢出”现象。现象。例例 #include void main() int a,b; a=32767; b=a+1; printf(%d,%dn,a,b); 运行结果:运行结果:32767,-32768 32767: (0111111111111111)232767+1: (1000000000000000)2 即即 32768 Page 18 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3)浮点型数据)浮点型数据注:浮点型数据在计算机中按规范化的浮点数注:浮点型数据在计算机中按规范化的浮点数形式存储,例如:形

17、式存储,例如: Page 19 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式浮点型常量的表示形式浮点型常量的表示形式 浮点型常量的表示形式浮点型常量的表示形式v十进制小数形式:十进制小数形式:.123 , -2.5 , 123.等等 v十进制指数形式:十进制指数形式:123e2, 2.45e-2 表示:表示:123*102,2.45*10-2 其中,其中,123,2.45 称为尾数部分,称为尾数部分,+2,-2 称为指数部分。称为指数部分。 注意:用指数形式表示时,尾数和指数部注意:用指数形式表示时,尾数和指数部分不能空,指数部分必须为整数。分不

18、能空,指数部分必须为整数。 例如:例如: e+3、2.03e+0.5 都是非法的实型常都是非法的实型常量表示方法。量表示方法。 小数点不可省略小数点不可省略 Page 20 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式浮点型变量的定义浮点型变量的定义实型变量的定义形式:实型变量的定义形式: 实型类型名实型类型名 变量名变量名1,变量名,变量名2,变量名变量名n; 如:如: float a,b,c; double a1,a2; Page 21 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3)字符型数据

19、)字符型数据 字符在内存中按字符在内存中按ASCII码存储码存储 例如:字符例如:字符 A 的机内存储的机内存储 001000001常见的常见的ASCII码码空格空格32 00100000 048 00110000 A65 01000001 a97 01100001 Page 22 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式字符常量字符常量字符常量字符常量:用单引号括起来的一个字符用单引号括起来的一个字符 如如: A, e。注意:注意:a、a、”a”互不相同,分别为变量、互不相同,分别为变量、字符常量、字符串常量。字符常量、字符串常量。9、9、

20、”9”互不相同,分别为整型互不相同,分别为整型常量、字符常量、字符串常量。常量、字符常量、字符串常量。 Page 23 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式转义字符转义字符转义字符:一对单引号括起来并以转义字符:一对单引号括起来并以“”开头的开头的字符序列,如字符序列,如n、123, 长度为长度为1个字个字节,其含义不是字符本身,而是转成为新的意义。节,其含义不是字符本身,而是转成为新的意义。几个常用的转义字符:几个常用的转义字符: (P25表表3.1)字符形式字符形式 功能功能 n n 换行换行t t 横向跳格,跳到下一个横向跳格,跳到

21、下一个TabTab位置位置b b 退格(删除前面的一个字符)退格(删除前面的一个字符) 表示一个反斜杆表示一个反斜杆 表示一个单引号字符表示一个单引号字符” ” 表示一个双引号字符表示一个双引号字符ddd ddd 表示以表示以1313位位8 8进制数为进制数为ASCIIASCII码的字符码的字符, ,如如101101为为AAxhh xhh 表示表示1212位位1616进制数为进制数为ASCIIASCII码的字符码的字符, ,如如x41x41为为AA Page 24 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式转义字符转义字符printf(n123

22、4nabcdn); (新行新行)1234 (新行新行)abcd (新行新行) printf(“nabttdtefn); (新行新行)ab td ef (新行新行)printf(n1234bn); (新行新行)123 (新行)新行)printf(x41n); A (新行新行) Page 25 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式字符变量字符变量 字符变量的定义字符变量的定义: char 变量名变量名; 例如:例如:char c1,c2;则变量则变量c1、c2中可存储一个字符。中可存储一个字符。 Page 26 C语言语言程序设计程序设计 第

23、第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式字符型数据的使用方法字符型数据的使用方法1. 按字符使用:使用字符本身。按字符使用:使用字符本身。2. 按数值使用:使用该字符的按数值使用:使用该字符的ASCII码值。码值。例如例如 字符字符 a 内存内存cda97输出结果输出结果输出格式符输出格式符 Page 27 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式字符型数据的使用方法字符型数据的使用方法注意:注意:1) 字符型数据和整型数据是通用的,可用字符形式字符型数据和整型数据是通用的,可用字符形式输出(输出(c),也可用整数形式输

24、出(),也可用整数形式输出(d),但),但字符数据只占一个字节。字符数据只占一个字节。2) C语言允许字符数据与整数直接进行算术运算。语言允许字符数据与整数直接进行算术运算。3)TC中将字符变量定义分为中将字符变量定义分为signed char与与unsigned char; 其中其中signed char类型变量的存储单元中最高类型变量的存储单元中最高位为符号位,取值范围(位为符号位,取值范围(-128127),而),而 unsigned char类型变量的取值范围(类型变量的取值范围(0255)。)。 Page 28 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据

25、类型、运算符与表达式字符型数据的使用方法字符型数据的使用方法例如:例如: char c=130; printf(”%d”,c); 结果为结果为-126例如:例如: unsigned char c=130; printf(”%d”,c); 结果为结果为130 无符号数无符号数 (130)10有符号数有符号数 (-126)10 Page 29 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式字符串常量字符串常量 字符串常量字符串常量: 一对双引号括起来的字符序列一对双引号括起来的字符序列,隐含以隐含以0结尾。如:结尾。如:“ABCE”, 存储长度存储长度

26、为为5个字节;个字节; “ABtCE”,存储长度为存储长度为6个字个字节。节。 注意注意:(1)字符串常量不能赋给字符变量。)字符串常量不能赋给字符变量。 (2)字符常量与字符串常量不同。)字符常量与字符串常量不同。例如:例如:char c1=A; 是可以的,是可以的, 但但 char c1=A; 是不合法的。是不合法的。 Page 30 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.4 3.4 库函数库函数1)库函数的使用方式)库函数的使用方式在使用标准输入输出函数时,需要使用在使用标准输入输出函数时,需要使用预编译命令:预编译命令:#inc

27、lude Page 31 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式2)常用数学函数(自学)常用数学函数(自学)1)三角函数)三角函数sin、cos、tan2)绝对值函数)绝对值函数abs、fabs、labs3)exp和和pow函数函数4)log和和log10函数函数5)sqrt函数函数6)随机函数)随机函数rand、srand Page 32 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3)字符输入输出函数)字符输入输出函数putchar函数:字符输出函数函数:字符输出函数 格式格式: putc

28、har(ch) 功能功能: 将将ch代表的字符输出到屏幕上。代表的字符输出到屏幕上。ch可以是字符常量、字符变量及数值表达式可以是字符常量、字符变量及数值表达式 例例1: putchar(n) ; 在屏幕上在屏幕上输出一个换行符输出一个换行符 例例2: c=* ; putchar(c) ; 在屏在屏幕上输出一个幕上输出一个“*”号号 例例3: putchar(65) ; 在屏幕上输出在屏幕上输出ASCII值为值为65的字符,即字母的字符,即字母A Page 33 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式putchar函数函数注意:注意: 若要

29、调用该函数若要调用该函数,应在程序的前面使用命令:应在程序的前面使用命令: #include stdio.h 或或 #include 否则会出现下面的出错信息:否则会出现下面的出错信息: undefine sybom _putchar in Page 34 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式getchar函数函数 getchar 函数:字符输入函数函数:字符输入函数 格式格式: getchar( ) 功能功能: 从键盘上读入一个字符作为函数返从键盘上读入一个字符作为函数返回值。回值。注意:注意:(1)程序运行到)程序运行到getchar

30、函数时,将返回用户函数时,将返回用户屏幕,等待用户输入一个字符后,才能继续向屏幕,等待用户输入一个字符后,才能继续向下运行。下运行。(2)使用)使用getchar函数时,需要包含函数时,需要包含stdio.h头文件:头文件:#include stdio.h 或或 #include Page 35 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式举例举例程序举例:程序举例: #include /* 包含头文件包含头文件stdio.h */ main( ) char c1,c2; c1=getchar( ); c2=c1+2; putchar(c1);

31、putchar(c2); putchar(n); 输入:输入: A 输出:输出: AC (换行)(换行) Page 36 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式格式输出函数:格式输出函数:printf() 格式输出函数格式:格式输出函数格式: printf (”格式控制串格式控制串”,输出表列,输出表列) 1、格式控制串、格式控制串 组成:组成: 1)“%”起头的输出项格式符(按指定起头的输出项格式符(按指定格式输出,与输出项一一对应)格式输出,与输出项一一对应) 2)普通字符(原样输出)普通字符(原样输出) 3)“”起头的转义字符(输出所

32、表示起头的转义字符(输出所表示的字符或实现其功能)的字符或实现其功能) Page 37 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式printf函数的格式控制字符串函数的格式控制字符串 整型整型%d长整型长整型%ld浮点型浮点型%f(%e指数形式)指数形式)字符型字符型%c字符串字符串%s Page 38 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式格式输出函数:格式输出函数:printf()2、输出表列、输出表列 一个或多个输出项组成一个或多个输出项组成(多个之间用逗号多个之间用逗号隔开隔开),常

33、量、变量、函数、表达式等均可做,常量、变量、函数、表达式等均可做输出项。输出项。 Page 39 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式格式输出函数:格式输出函数:printf()例:例: #include void main( ) int a,b,sum; a=123;b=456; sum=a+b; printf(”a=%d,b=%d,c=%dn”,a,b,sum); (换换行)行)结结果果: a=123,b=456,c=579 Page 40 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式p

34、rintf函数的附加格式符函数的附加格式符 输出格式附加符:最小宽度输出格式附加符:最小宽度m 截取的小数位数截取的小数位数/字符个数字符个数.n 左对齐输出左对齐输出 %2d: 123123%5d: 123123%-5d: 123123%8.2f : 123.456 123.46%8.2e : 123.4561.23e+02%-3c: aa%7.2s: ”CHINA” CH取取n位小数,其位小数,其余四舍五入余四舍五入 取字符串头取字符串头n个个字符字符 Page 41 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式格式输入函数:格式输入函数:s

35、canf() 格式输入函数格式:格式输入函数格式: scanf (格式控制串格式控制串 , 地址表列地址表列) 功能功能: 按照格式控制字符串所规定的格按照格式控制字符串所规定的格式,从键盘上输入数据,依次赋给各个式,从键盘上输入数据,依次赋给各个变量。变量。 如:如:scanf(“%d,%d”,&a,&b); 输入:输入:123,456 注意:注意: 输入结束,需要按回车键!输入结束,需要按回车键! Page 42 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式格式输入函数:格式输入函数:scanf()1、格式控制串组成:、格式控制串组成: 1)

36、“%”起头的输入项格式符(与输入项起头的输入项格式符(与输入项一一对应)一一对应) 2)普通字符(原样输入)普通字符(原样输入) 3)“%*”起头的格式符(无对应输入项)起头的格式符(无对应输入项) 注意:不使用转义字符注意:不使用转义字符 2、地址表列:各变量的地址,用逗号隔开。、地址表列:各变量的地址,用逗号隔开。 变量地址组成:变量地址组成:地址运算符地址运算符“&”后跟变后跟变量名量名 Page 43 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式scanf函数中的格式符函数中的格式符 整型整型%d长整型长整型%ld浮点型:浮点型: 单精度

37、型单精度型%f 双精度型双精度型%lf字符型字符型%c字符串字符串%s Page 44 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式scanf函数中的附加格式符函数中的附加格式符1)l:用于输入长整型以及:用于输入长整型以及double型数据;型数据;2)域宽:指定输入数据所占宽度(列数);)域宽:指定输入数据所占宽度(列数);3)*:表示本输入项在读入后不赋给相应变量;:表示本输入项在读入后不赋给相应变量; Page 45 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函

38、数注意点 例:给整型例:给整型a、b输入数据,使输入数据,使a=123,b=456 1) scanf(%d,%d,&a,&b); 输入:输入:123,456 或:或:123,456 2) scanf(a=%d,b=%d,&a,&b); 输入:输入:a=123,b=456 3) scanf(%d%d,&a,&b); 输入:输入:123456 或:或:123 456 或:或:123 456 Page 46 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函数注意点注意:注意: scanf()中的非格式字符要原样输入;中的非格式

39、字符要原样输入; 输入数值数据时,前导空格不计;输入数值数据时,前导空格不计; 一个或多个空格、一个或多个一个或多个空格、一个或多个Tab、一个或、一个或多个回车均等效;多个回车均等效; 在输入多个数值数据时,若格式控制串中没在输入多个数值数据时,若格式控制串中没有非格式字符作为数据间隔符,则可用空格、有非格式字符作为数据间隔符,则可用空格、TAB或回车作间隔。或回车作间隔。 Page 47 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函数注意点 例:给字符型例:给字符型x、y、z输入字符,输入字符, 使使x=d, y

40、=e,z=f scanf(%c%c%c,&x,&y,&z); 或或 scanf(%c%c,&x,&y); scanf(%c,&z); 输入:输入:def 注意:注意:在用在用“%c”输入字符时,不能额外添加分隔符。输入字符时,不能额外添加分隔符。 Page 48 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函数注意点例:使例:使a=1, b=2, x=a, y=bint a,b; char x,y; 1) scanf(%d%d,&a,&b); scanf(%c%c,&x,&y); 输入:输入:1 2ab 2) scan

41、f(%d%d,&a,&b); scanf( %c%c,&x,&y); 输入:输入:1 2 ab Page 49 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函数注意点注意:注意:当两个当两个scanf函数与两个输入行一一对应且第二函数与两个输入行一一对应且第二行首列为字符时,应在第二个行首列为字符时,应在第二个scanf函数的格式函数的格式控制串开头设一个空格以抵消上行末尾的回车;控制串开头设一个空格以抵消上行末尾的回车;或者使用函数或者使用函数fflush(stdin)来清除输入缓冲来清除输入缓冲区的内容。区的内容。

42、 例如:例如: scanf(%d%d,&a,&b); scanf(%d%d,&a,&b); fflush(stdin) fflush(stdin) scanf(%c%c,&x,&y); scanf(%c%c,&x,&y); Page 50 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式使用使用scanf函数注意点函数注意点例:例: int a; char b; float c; scanf(%d%c%f,&a,&b,&c); 输入:输入:1234a123o.26 则则 a=1234, b=a, c=123.0注意:注意:输入数据时遇非法输入,则当前

43、数据到此结束。输入数据时遇非法输入,则当前数据到此结束。 Page 51 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式scanf( )与与printf( )的区别的区别 int a; printf(%d,a)scanf(%d,a); int b;printf(%dn,b); scanf(%dn,&b);double d; printf(%fn,d); scanf(%f,&d);float c; printf(%7fn,c); scanf(%7f,&c); float c; printf(%.2fn,c); scanf(%.2f,&c); Page

44、 52 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.5 3.5 运算符和表达式运算符和表达式C运算符的种类运算符的种类 算术运算符算术运算符 关系运算符关系运算符 逻辑运算符逻辑运算符 位运算符位运算符 赋值运算符赋值运算符 条件运算符条件运算符 逗号运算符逗号运算符 指针运算符指针运算符(课本(课本P40P40页)页)成员运算符成员运算符自增自减运算符自增自减运算符强制类型转换运算符强制类型转换运算符下标运算符下标运算符求字节数运算符求字节数运算符负号运算符负号运算符9.括号运算符括号运算符 Page 53 C语言语言程序设计程序设计 第第

45、3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.5 3.5 运算符和表达式运算符和表达式各类运算符的优先级(高到低)各类运算符的优先级(高到低)初等运算符(下标、括号、成员)初等运算符(下标、括号、成员)单目运算符单目运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符赋值运算符赋值运算符逗号运算符逗号运算符注意:注意:C运算符的优先级和结合性具体参运算符的优先级和结合性具体参见课本见课本P42页表页表3-3。 Page 54 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.5 3.5 运算符和表达式运算符和表达式C

46、运算符的结合性运算符的结合性v 左结合性:指运算顺序左结合性:指运算顺序“先左后右先左后右” 例如算术运算符例如算术运算符 x-y+z 其中其中y先作减法,再做加法先作减法,再做加法v 右结合性:指运算顺序右结合性:指运算顺序“先右后左先右后左” 例如赋值运算符例如赋值运算符 x=y=1 相当于相当于 x=(y=1) 1.当某一运算对象两侧的运算符号优先级相同当某一运算对象两侧的运算符号优先级相同时,按照结合性所规定的方向进行运算。时,按照结合性所规定的方向进行运算。 Page 55 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式算术运算符和算术表

47、达式算术运算符和算术表达式 基本算术运算符(五个):基本算术运算符(五个): + (加加) - (减减) * (乘乘) / (除除) % (求余求余)优先级优先级34: (*、/、%) 高于高于 (+、-)“左左”结合性结合性注意事项:注意事项: 1. “ % ” 的运算对象必须为整数的运算对象必须为整数 2. 两个整数相除取整数商两个整数相除取整数商 例:例:2.5%3 出错出错 5/4 值为值为1 5.0/4 值为值为1.25 Page 56 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式各类数值型数据间的混合运算各类数值型数据间的混合运算数值

48、型数据的级别及运算时的类型转换:数值型数据的级别及运算时的类型转换:char,shortdoublefloatlongunsignedint高高低低横向向左的箭头表示必定的横向向左的箭头表示必定的转换;转换;纵向的箭头表示当运算对象纵向的箭头表示当运算对象为不同类型时转换的方向;为不同类型时转换的方向; Page 57 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式各类数值型数据间的混合运算各类数值型数据间的混合运算运算规律:运算规律: 1)两个同类型数的运算结果为原类型;)两个同类型数的运算结果为原类型; 例如:例如:28+32的结果的结果 1/

49、2的结果的结果2)两个不同类型数运算时,系统自动将低级类)两个不同类型数运算时,系统自动将低级类型转换为高级类型,而后进行同类型运算,结型转换为高级类型,而后进行同类型运算,结果为高级类型;果为高级类型; 例如:例如:28+32.5的类型的类型 28+A的类型的类型3)多个数运算时,类型转换是逐步进行的。)多个数运算时,类型转换是逐步进行的。int 60int 0floatdoubleint Page 58 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式算术表达式算术表达式表达式:用运算符号将运算对象按表达式:用运算符号将运算对象按C语语言的语法规

50、则连接起来的式子。言的语法规则连接起来的式子。算术表达式:用算术运算符号将运算对算术表达式:用算术运算符号将运算对象按象按C语言的语法规则连接起来的式子。语言的语法规则连接起来的式子。运算对象:常量、变量、函数等。运算对象:常量、变量、函数等。 Page 59 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值运算符、赋值表达式赋值运算符、赋值表达式和赋值语句和赋值语句赋值运算符:赋值运算符: = 赋值表达式:变量赋值表达式:变量 = 表达式表达式 功能:将功能:将“=”右侧表达式的值赋给左右侧表达式的值赋给左侧变量的值,赋值表达式的值就是被赋值变

51、侧变量的值,赋值表达式的值就是被赋值变量的值。量的值。赋值语句:变量赋值语句:变量 = 表达式表达式 ; 功能:将功能:将“=”右侧表达式的值赋给左右侧表达式的值赋给左侧变量的值。侧变量的值。注意:所有表达式末尾加注意:所有表达式末尾加“;”后即变成语后即变成语句句 Page 60 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值运算符赋值运算符 赋值运算符:赋值运算符: =优先级优先级14(倒(倒2)“右右”结合性结合性注意事项:赋值运算符号不等于数学中的注意事项:赋值运算符号不等于数学中的“等等号号” 例:例:3=a 非法非法 a=3 赋值表

52、达式,其值和变量赋值表达式,其值和变量a的值均为的值均为3 b=a=3; 赋值语句,先执行语句:赋值语句,先执行语句:a=3; 再执行语句:再执行语句:b=a; Page 61 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值运算过程赋值运算过程 “变量变量=表达式表达式” 的赋值运算过程:的赋值运算过程: 计算右侧表达式的值;计算右侧表达式的值; 类型转换:若赋值运算符两侧的类类型转换:若赋值运算符两侧的类型不一致,将右侧表达式值的类型转换型不一致,将右侧表达式值的类型转换为左侧变量的类型;为左侧变量的类型; 赋值给左侧变量。赋值给左侧变量。

53、Page 62 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换 若赋值运算符两侧的类型不一致,在赋若赋值运算符两侧的类型不一致,在赋值时需进行类型转换:将右侧表达式值值时需进行类型转换:将右侧表达式值的类型转换为左侧变量的类型的类型转换为左侧变量的类型 (一)(一) double型数据赋给型数据赋给float型,型,截取前截取前7位有效数据。应注意数值范围位有效数据。应注意数值范围不能溢出。不能溢出。 (二)(二) float型数据赋给型数据赋给double型,型,数值不变,有效数据扩展到数值不变,有效数据扩展到16

54、位。位。 Page 63 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换(三)把浮点型数据赋给整型(三)把浮点型数据赋给整型/字符型变量,则字符型变量,则舍去小数部分。应注意数值范围不能溢出。舍去小数部分。应注意数值范围不能溢出。(四)整型(四)整型/字符型数据赋给浮点型变量,值大字符型数据赋给浮点型变量,值大小不变,类型变浮点型。小不变,类型变浮点型。 例例 :#include void main( ) float a=6.56392e1; int i;char j; i=a; j=a; printf(”%d,%d

55、,%cn”,i,j,j ); a=j; printf ( ”%fn”,a); 结果:结果: 65,65,A结果:结果: 65.000000 Page 64 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换(五)长整型数据赋给短整型变量,或整型数据五)长整型数据赋给短整型变量,或整型数据赋给字符型变量,取所需的低位赋给字符型变量,取所需的低位例:例:#include void main( ) int n=289; char m; long b=65536; int a; m=n; a=b; printf(”%c%d n”

56、,m,a); 结果结果 !0 Page 65 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换(六)短整型数据赋给长整型变量,或字符型数(六)短整型数据赋给长整型变量,或字符型数据赋给整型变量,值大小不变,类型变据赋给整型变量,值大小不变,类型变例:例:#include void main( ) unsigned char c1=376; char c2=376 ; int a1,a2 ; a1=c1; a2=c2 ; printf ( ”%d,%dn”,a1,a2) ; 结果:结果:254,2存储存储(1111111

57、0)2(254)10(-2)10符号扩展的结果符号扩展的结果 Page 66 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换例:例:#include void main( ) int a=32768 ; long b; b=a; printf ( ”%ldn”,b) ; 结果结果 15个个0(100)2 Page 67 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换(七)无符号整型数据赋给有符号整型变量,或(七)无符号整型数据赋给有符号整型

58、变量,或有符号整型数据赋给无符号整型变量,按存储有符号整型数据赋给无符号整型变量,按存储形式原样照赋形式原样照赋例:例:#include void main( ) unsigned a; int b=-1; a=b; printf ( ”%un”,a) ; 结果结果 Page 68 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换赋值时的类型转换例:例:#include void main( ) unsigned a=32768; int b; b=a; printf ( ”%dn”,b) ; 结果结果 Page 69 C语言语言程序

59、设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值时的类型转换小结赋值时的类型转换小结 长类型长类型短类型短类型 float/doubleint/long longint intchar 保持数值大小不变保持数值大小不变短类型短类型长类型长类型 int/longfloat/double intlong charint 可能会丢失数据可能会丢失数据等长类型等长类型类型类型 intunsigned unsignedint 按存储形式原样照赋按存储形式原样照赋 Page 70 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式

60、复合赋值运算符复合赋值运算符 复合赋值运算符:复合赋值运算符: *= /= += -= 等等 使使用格式:变量用格式:变量 复合赋值运算符复合赋值运算符 表达式表达式 功能:功能: 例如:例如: a*=3 等价于等价于 a=a*3 a/=b*3 等价于等价于 a=a/(b*3) 优先级优先级14(倒(倒2):与):与“=”同级。同级。 “右右”结合性结合性 Page 71 C语言语言程序设计程序设计 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式赋值表达式和赋值语句举例赋值表达式和赋值语句举例 例例1 1: a=(b=5) a=(b=5) 等价等价 a=b=5a=b=5例例2

温馨提示

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

评论

0/150

提交评论