第02章数据描述和运算-PPT_第1页
第02章数据描述和运算-PPT_第2页
第02章数据描述和运算-PPT_第3页
第02章数据描述和运算-PPT_第4页
第02章数据描述和运算-PPT_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、教学目标教学目标 掌握掌握基本数据类型基本数据类型:整型、实型、双精度型、字符型:整型、实型、双精度型、字符型和字符串常量的表示方法,变量的定义和初始化方法;和字符串常量的表示方法,变量的定义和初始化方法; 理解理解算术运算、赋值运算、逗号运算、关系运算和逻算术运算、赋值运算、逗号运算、关系运算和逻辑运算辑运算的实现和运算规则;的实现和运算规则; 熟悉不同类型数据的熟悉不同类型数据的输入和输出操作输入和输出操作(输入输出函数(输入输出函数的调用,正确输入数据并正确设计输出格式);的调用,正确输入数据并正确设计输出格式); 了解了解测试数据长度运算和位运算测试数据长度运算和位运算的基本功能。的基

2、本功能。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录C C 语言的数据类型如图所示语言的数据类型如图所示2.1.2 C2.1.2 C语言的基本数据类型语言的基本数据类型1 1、五种基本数据类型、五种基本数据类型表表2-1 C2-1 C语言基本数据类型及其对应的类型说明符(关键字)语言基本数据类型及其对应的类型说明符(关键字)数据类型数据类型类型说明符类型说明符说说 明明字符型字符型char用来描述单个的字符用来描述单个的字符整型整型int用来

3、描述在计算机中可以准确表示的整用来描述在计算机中可以准确表示的整数数浮点(单精度浮点(单精度)型)型float用来描述在计算机中近似表示的实数,用来描述在计算机中近似表示的实数,双精度型比浮点型表示的精度高双精度型比浮点型表示的精度高双精度型双精度型double无值型无值型void用来描述无形式参数的用来描述无形式参数的C函数、无返回值函数、无返回值的的C函数或无定向指针等函数或无定向指针等常量、变量及其类常量、变量及其类型型运算符、表达式及运算符、表达式及C C语句语句不同数据类型的输不同数据类型的输出出不同数据类型的输不同数据类型的输入入目目 录录2.1.2 C2.1.2 C语言的基本数据

4、类型语言的基本数据类型2 2、基本数据类型的修饰、基本数据类型的修饰 表表2-2 2-2 不同数值类型的数值取值范围(不同数值类型的数值取值范围(vc+6.0vc+6.0集成环境)集成环境)数据类型数据类型类型说明符类型说明符比特数比特数(字字节数节数)有效有效位数位数数值范围数值范围基本整型基本整型 、长整型长整型int long int 32(4)-21474836482147483647即即-231(231-1)短整型短整型short int 16(2)-3276832767即即-215(215-1)长整长整无符号整型无符号整型long unsigned int32(4)04294967

5、295无符号短整型无符号短整型unsigned short16(2)065535即即0(216-1)无符号无符号unsigned32(4)04294967295即即0(232-1)字符型字符型char8(1)C字符集字符集单精度实型单精度实型float32(4)67负数:负数:-3.41038 -1.410-45正数:正数:1.410-45 3.41038双精度实型双精度实型double64(8)1516负数:负数:-1.710308 -4.910-324正数:正数:4.910-324 1.710308长双精度型长双精度型long double128(16)1819 10-4931104932

6、 常量、变量及其常量、变量及其类型类型运算符、表达式运算符、表达式及及C C语句语句不同数据类型的不同数据类型的输出输出不同数据类型的不同数据类型的输入输入目目 录录常量:常量:在程序执行过程中,其值不发生改变的量。在程序执行过程中,其值不发生改变的量。变量:变量:取值可变的量。取值可变的量。 例如:例如: 整型常量、整型变量、浮点常量;整型常量、整型变量、浮点常量; 浮点变量、字符常量、字符变量等。浮点变量、字符常量、字符变量等。在程序中,常量是可以不经说明而直接引用的,在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。而变量则必须先说明后使用。C C语言的数据类型语言的数

7、据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型2.2.1 2.2.1 常量及其类型常量及其类型1 1、整型常量、整型常量整型常量有:十进制、八进制、十六进制数字表示整型常量有:十进制、八进制、十六进制数字表示的整数。的整数。八进制整数:必须以八进制整数:必须以0 0开头,数码为开头,数码为0 07 7;十六进制整数:必须以十六进制整数:必须以0X0X或或0 x0 x开头,开头,数码为:数码为:0 09 9,A AF F或或a af f;数字或符号之间不能;数字或符号之间不

8、能有空字符。有空字符。例如:例如:十进制常量:十进制常量:371371、-87-87、-472-472、90819081、八进制常量:八进制常量:01010101、-0724-0724、06770677、-011-011、十六进制常量:十六进制常量:0 x2130 x213、-0 xa7b-0 xa7b、-0X84B2-0X84B2、0 xF1100 xF110、C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型2.2.1 2.2.1 常量及其类型

9、常量及其类型2 2、实型常量、实型常量 又称为浮点型常量,是一个十进制表示的符号又称为浮点型常量,是一个十进制表示的符号实数。实数。例:例:0.320.32,.98.98,139.0139.0,2.34E-52.34E-5,1.23457e21.23457e2等。等。 C C中的浮点常数为双精度型,两种书写方式:中的浮点常数为双精度型,两种书写方式:十进制小数表示法,例如十进制小数表示法,例如2.342.34;科学计数法科学计数法( (即指数形式即指数形式) ), 例如例如2.34E-52.34E-5,表示,表示2.342.341010-5-5,其中的,其中的E E也可用也可用小写小写e e。

10、C C语言的数据类语言的数据类型型运算符、表达运算符、表达式及式及C C语句语句不同数据类型不同数据类型的输出的输出不同数据类型不同数据类型的输入的输入目目 录录常量、变量常量、变量及其类及其类型型2.2.1 2.2.1 常量及其类型常量及其类型2 2、实型常量、实型常量 一个实数可以有多种指数表示形式。例如一个实数可以有多种指数表示形式。例如123.457123.457可以可以表示为表示为123.457e0123.457e0,12.3457e112.3457e1,1.23457e21.23457e2,0.123457e30.123457e3,0.0123457e40.0123457e4等。等

11、。其中,其中,1.23457e21.23457e2称为称为“规范化的指数形式规范化的指数形式” ” 【1.234571.23457* *10102 2 】科学计数法科学计数法C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型3 3、字符型常量、字符型常量有两种表示方法:有两种表示方法:(1 1)例如例如ii,jj等。等。直接用单引号括起来的直接用单引号括起来的单个字符,即为字符常量,单个字符,即为字符常量,对应可显示的字符对应可显示的字符。(2 2

12、)如如n-“n-“换行换行”符,符,主要是控制字符主要是控制字符( (如如换行符、回车符等换行符、回车符等) )和在和在C C语言中有特殊含义和用语言中有特殊含义和用途的字符途的字符( (如单引号、双引号、反斜杠等如单引号、双引号、反斜杠等) ),可以,可以用用转义字符形式转义字符形式表示。表示。对应不可显示字符。对应不可显示字符。 C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型转义字符是由反斜杠转义字符是由反斜杠()()后跟某个字母组成的,如

13、表后跟某个字母组成的,如表2.32.3所示。所示。 表表2-32-3常用转义字符表常用转义字符表转义字符转义字符ASCII码值码值(十进制十进制)功能功能n10换行,将光标移到下一行开头换行,将光标移到下一行开头00空字符(空字符(NULL)(作字符串结束标志)(作字符串结束标志)t9水平制表(水平制表(HT),(跳到下一个(跳到下一个tab位置)位置)v11垂直制表(垂直制表(VT)a7响铃(响铃(BEL)b8退格,将光标移到前一列退格,将光标移到前一列r13回车,将光标移到本行的开头回车,将光标移到本行的开头f12换页,将光标移到下页开头换页,将光标移到下页开头92反斜杠字符反斜杠字符39

14、单引号字符单引号字符”34双引号字符双引号字符ddd1到到3位位8进制进制ASCII码所代表的字符码所代表的字符xhh1到到2位进制位进制16ASCII码所代表的字符码所代表的字符C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型【温馨提醒温馨提醒】: 在转义字符中只能使用小写字母,每个转义字符只在转义字符中只能使用小写字母,每个转义字符只能看作一个字符。能看作一个字符。 广义地讲,广义地讲,C C语言字符集中的任何一个字符均可用转义语言字符集中的

15、任何一个字符均可用转义字符来表示。表中的字符来表示。表中的 dddddd和和 xhhxhh正是为此而提出的。正是为此而提出的。 dddddd和和hhhh分别为八进制和十六进制的分别为八进制和十六进制的ASCIIASCII代码。代码。 如如101101(八进制)表示字母(八进制)表示字母AA, 102102表示字母表示字母BB, 134134表示表示, x65(x65(十六进制十六进制) )表示表示ee等。等。 C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、

16、变量及其类型4 4、 字符串常量字符串常量 用用“”“”括号括起来的字符括号括起来的字符。例如,例如,“Hello”Hello”其中含有其中含有5 5个字符,它在内存中要占用个字符,它在内存中要占用6 6个字节,即:个字节,即:( (即即0) 0) 作为字符串结束标志。因此,如果一个作为字符串结束标志。因此,如果一个字符串常量含有字符串常量含有n n个字符,则它要占用的存储空间个字符,则它要占用的存储空间为为n+1n+1个字节。个字节。 HELLO0C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型

17、的输入目目 录录常量、变量及其类型常量、变量及其类型问题:问题:字符常量字符常量AA字符串常量字符串常量AA是两回事:是两回事: 字符常量字符常量AA是一个字符,字符常量占一个字是一个字符,字符常量占一个字节的内存空间。节的内存空间。 字符串常量字符串常量AA是两个字符。字符串常量占的内是两个字符。字符串常量占的内存字节数等于字符串中字符数加存字节数等于字符串中字符数加1 1。增加的一个字。增加的一个字节存放字符节存放字符0(ASCII0(ASCII码值为码值为0)0),这是字符串,这是字符串的结束标志。的结束标志。C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句

18、句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型AA02.2.2 2.2.2 变量及其类型变量及其类型 在程序运行过程中,其值可以被改变的量称为变量。在程序运行过程中,其值可以被改变的量称为变量。 一个变量有:一个变量有: 数据类型数据类型 变量名变量名 例:例:intint x;/ x;/整型变量整型变量x x,表示占,表示占4 4个字节。个字节。变量,必须变量,必须“先定义或说明先定义或说明【指定存储空间指定存储空间】,后使用后使用”。 C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不

19、同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型2.2.2 2.2.2 变量及其类型变量及其类型 定义变量就是对变量的数据类型进行说明。定义变量就是对变量的数据类型进行说明。 一般定义格式为:一般定义格式为: 数据类型变量表列;数据类型变量表列;例如:例如:intint i; i; / /* * 定义整型变量定义整型变量 * */ /intint a=2,b=4,m; a=2,b=4,m; / /* * 定义整型变量定义整型变量, ,并部分初始化并部分初始化 * */ /char char a,b,ca,b,c; ; / /*

20、 * 定义字符型变量定义字符型变量 * */ /float float f,gf,g=3.14,t; =3.14,t; / /* * 定义单精度实型变量定义单精度实型变量 * */ /注:每个变量都应该有值!(赋以初值或程序中赋注:每个变量都应该有值!(赋以初值或程序中赋值)值)C C语言的数据类型语言的数据类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录常量、变量及其类型常量、变量及其类型2.3.1 2.3.1 运算符的种类、运算优先级和结合性运算符的种类、运算优先级和结合性1 1、 运算符的种类运算符的种类

21、 (1 1)算术运算符)算术运算符 用于各类数值运算。包括用于各类数值运算。包括加加(+)(+)、减、减(-)(-)、乘、乘( (* *) )、除除(/)(/)、求余、求余( (或称模运算,或称模运算,%)%)、自增、自增(+)(+)、自减、自减(- -)(- -)共七种。共七种。 (2 2)关系运算符)关系运算符 用于比较运算。包括大于用于比较运算。包括大于()()、小于、小于()(=)(=)、小于等于、小于等于(=)(=)和不等于和不等于(!=)(!=)六种。六种。 (3 3)逻辑运算符)逻辑运算符_ _ 用于逻辑运算。用于逻辑运算。 包括与包括与(&)(&)、或、或(|)

22、(|)、非、非(!)(!)三种。三种。目目 录录C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句(4 4)位操作运算符)位操作运算符 参与运算的量,按二进制位进行运算。包括位参与运算的量,按二进制位进行运算。包括位与与(&)(&)、位或、位或(|)(|)、位非、位非()()、位异或、位异或()()、左移、左移()()()六种。六种。 (5 5)赋值运算符)赋值运算符 用于赋值运算,分为简单赋值用于赋值运算,分为简单赋值(=)(=)

23、、复合算术赋、复合算术赋值值(+=,-=,(+=,-=,* *=,/=,%=)=,/=,%=)和复合位运算赋值和复合位运算赋值(&=,|=,=,=,=,-,. .,+,-,!,!,* *,& &, 等等等等 (2 2)双目运算符双目运算符,如:,如:* *,/ /,% %,+ +,- -, ,=,!=!=,&,|,+=+=,* *= =等等等等 (3 3)三目运算符三目运算符,语言中,只有条件运算符,语言中,只有条件运算符( ?:)?:)是三目运算符。是三目运算符。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类

24、型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2 2、 优先级和结合性优先级和结合性参看附录参看附录4 4。 语言中,运算符的运算语言中,运算符的运算优先级优先级共分为共分为1515级。级。1 1级最高,级最高,1515级最低。在表达式中,优先级较高的级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。所规定的结合方向处理。 语言中各运算符的结合性分为两种,即语言中各运算符

25、的结合性分为两种,即左结左结合性合性( (自左至右自左至右) )和和右结合性右结合性( (自右至左自右至左) )。 C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.2 2.3.2 表达式表达式 表达式表达式:用:用运算符运算符将将操作数操作数(运算对象)连接(运算对象)连接起来的式子。起来的式子。 操作数操作数(运算对象)包括常量、变量、函数值等。(运算对象)包括常量、变量、函数值等。 表达式按照运算符的运算规则进行运算可以获表达式按照运

26、算符的运算规则进行运算可以获得一个值,称为得一个值,称为“表达式的值表达式的值”。 表达式的分类有:表达式的分类有: 赋值表达式,算术表达式,关系表达式,逻辑赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式等。表达式,条件表达式,逗号表达式等。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则1 1、 算术运算算术运算 算术运算符包括基本算术运算符和自增自减运算术运算符包括基本算术运算符

27、和自增自减运算符,其运算规则如表算符,其运算规则如表2-52-5。【温馨提醒温馨提醒】: C C语言中的运算符是采用键盘可输入的符号,乘语言中的运算符是采用键盘可输入的符号,乘法运算符法运算符* *在表达式中不能省略,也不可用在表达式中不能省略,也不可用. .或或来代替;除法运算符来代替;除法运算符/ /也不可用也不可用代替。代替。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则1 1、 算术运算算术运算表

28、表2-52-5算术运算符及自增自减运算符运算规则表算术运算符及自增自减运算符运算规则表运算运算对象对象个数个数运算符运算符例例运算规则运算规则运算对象类型运算对象类型结合性结合性优先优先级级单目单目+k取原值取原值整型或实型整型或实型自右向左自右向左2-k取负值取负值+k先加先加1,后使用,后使用整型、整型、实型或字符型的实型或字符型的变量变量+k+先使用,后加先使用,后加1- - -k先减先减1,后使用,后使用- -k- -先使用,后减先使用,后减1双目双目+x+y加法加法整型或实型整型或实型自左向右自左向右4-x-y减法减法*x*y乘法乘法整型或实型整型或实型自左向右自左向右3/x/y除法

29、除法%x%y模(整除取余)模(整除取余)整型整型C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则2 2、关系运算、关系运算所谓所谓“关系运算关系运算”就是就是“比较运算比较运算”,其运算规则如表,其运算规则如表2-52-5:表表2-52-5关系运算规则表关系运算规则表运算运算对象对象个数个数名称名称运算运算符符运算规则运算规则运算对象类型运算对象类型结合性结合性优优先先级级双目双目小于小于条件成立为条件成立

30、为真,结果为真,结果为1;不成立;不成立时为假,结时为假,结果为果为0整型、实型或字整型、实型或字符型符型(运算结果为逻(运算结果为逻辑值,整型)辑值,整型)自左向自左向右右6小于等小于等于于大于等大于等于于=等于等于=同上同上同上同上自左向自左向右右7不等于不等于!=【温馨提醒温馨提醒】:在表达式中不可用在表达式中不可用、= =、来代替来代替=、=、!=!=。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规

31、则3 3、 逻辑运算逻辑运算 语言提供了三个的逻辑运算符,逻辑运算符及运算语言提供了三个的逻辑运算符,逻辑运算符及运算规则如表规则如表2-62-6和表和表2-72-7:表表2-62-6逻辑运算符逻辑运算符运算对运算对象象个数个数名称名称运算符运算符运算规则运算规则运算对象类型运算对象类型结合性结合性优先优先级级单目单目非非!逻辑非逻辑非整型、实型或字符型整型、实型或字符型(运算结果为逻辑值,(运算结果为逻辑值,整型)整型)自右向左自右向左2双目双目与与&逻辑与逻辑与自左向右自左向右11或或|逻辑或逻辑或12C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类

32、型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则3 3、 逻辑运算逻辑运算 语言提供了三个逻辑运算符,运算规则如表语言提供了三个逻辑运算符,运算规则如表2-72-7:表表2-72-7逻辑运算符的运算规则逻辑运算符的运算规则运算对象运算对象a a运算对象运算对象b ba&ba&ba|ba|b!a!a!b!b0 00 00 00 01 11 10 0非非0 00 01 11 10 0非非0 00 00 01 10 01 1非非0 0非非0 01 11 10 00 0C C语

33、言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则、 赋值运算赋值运算 语言提供的赋值运算符如表语言提供的赋值运算符如表2-82-8所示:所示:表表2-82-8赋值及自反赋值(复合赋值)运算符赋值及自反赋值(复合赋值)运算符运算运算对象对象个数个数名称名称运算运算符符运算规则运算规则运算对象运算对象类型类型结合结合性性优先优先级级双目双目赋值赋值=a=b, 把把b赋值给赋值给a任何合法任何合法类型类型自右自右向左向左

34、14加赋值加赋值+=a+=b 等价于等价于a=a+b整型或实整型或实型型减赋值减赋值-=a-=b 等价于等价于a=a-b乘赋值乘赋值*=a*=b 等价于等价于a=a*b除赋值除赋值/=a/=b 等价于等价于a=a/b模赋值模赋值%=a%=b 等价于等价于a=a%b整型整型C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则5 5、 逗号运算逗号运算 在语言中,逗号(在语言中,逗号(, ,)也是一种运算符,称为逗

35、号运算)也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个逗号表达式。符。其功能是把两个表达式连接起来组成一个逗号表达式。逗号运算符的优先级最低。运算规则如表逗号运算符的优先级最低。运算规则如表2-92-9所示:所示:例:例:X=3,5 /xX=3,5 /x的值为的值为5 5表表2-92-9逗号运算符逗号运算符运算对运算对象象个数个数名称名称运算符运算符运算规则运算规则运算对象类型运算对象类型结合性结合性优先级优先级双目双目逗号逗号,从左向右顺序从左向右顺序求表达式的值求表达式的值表达式表达式(运算结果是第(运算结果是第二个表达式的值二个表达式的值)自左向自左向右右15C C

36、语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则6 6、 条件运算条件运算 条件运算符由条件运算符由? ?和和: :组成一个条件运算符组成一个条件运算符?:?:,是语言中,是语言中唯一的三目运算符。条件运算符规则如表唯一的三目运算符。条件运算符规则如表2-102-10所示:所示:表表2-102-10条件运算符条件运算符运算运算对象对象个数个数名称名称运算运算符符运算规则运算规则运算对象类运算对象类型型结合结合性性

37、优先优先级级三目三目条件条件?:?:对于条件表达式对于条件表达式a?b1:b2若若a非零,取非零,取b1的值;的值;若若a为零,取为零,取b2的值;的值;表达式表达式(条件表达(条件表达式的值是式的值是b1或或b2)自右自右向左向左13C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.3 2.3.3 求值规则求值规则7 7、 求长度运算求长度运算 语言提供的长度运算符如表语言提供的长度运算符如表2-112-11所示:所示:表表2-112-1

38、1长度运算符长度运算符运算对运算对象象个数个数名称名称运算符运算符运算规则运算规则运算对象类运算对象类型型结合性结合性优先优先级级单目单目长度长度sizeof测试数据类型或测试数据类型或变量所占用的字变量所占用的字节数节数类型说明符类型说明符或变量或变量(结果为整(结果为整数)数)自右向自右向左左28 8、其它运算符在后续章节介绍。、其它运算符在后续章节介绍。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.4 2.3.4 类型转换类型转换

39、 变量运算时需要转换相同类型的数据。变量运算时需要转换相同类型的数据。转换的方法有两种:转换的方法有两种:自动转换自动转换强制转换强制转换。1 1、 自动转换自动转换 自动转换发生在不同数据类型的量混合运算时,自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:由编译系统自动完成。自动转换遵循以下规则: C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.4 2.3.4 类型转换类型转换图图2-22-2。C C

40、语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句自动转换遵循以下规则:自动转换遵循以下规则: l 若参与运算量的类型不同,则先转换成同一类型,然后进若参与运算量的类型不同,则先转换成同一类型,然后进行运算。行运算。l 转换按数据长度增加的方向进行,以保证精度不降低。如转换按数据长度增加的方向进行,以保证精度不降低。如intint型和型和longlong型运算时,先把型运算时,先把intint量转成量转成longlong型后再进行运型后再进行运算。算。l

41、 所有的浮点运算都是以双精度进行的,即使仅含所有的浮点运算都是以双精度进行的,即使仅含floatfloat单精单精度量运算的表达式,也要先转换成度量运算的表达式,也要先转换成doubledouble型,再作运算。型,再作运算。l charchar型和型和shortshort型参与运算时,必须先转换成型参与运算时,必须先转换成intint型。型。l 在赋值运算中,赋值号两边量的数据类型不同时,赋值号在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度

42、,类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按丢失的部分按四舍五入四舍五入向前舍入。向前舍入。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.4 2.3.4 类型转换类型转换2 2、 强制转换强制转换 强制类型转换是通过类型转换运算来实现的。强制类型转换是通过类型转换运算来实现的。一般形式为:一般形式为: ( (数据类型名数据类型名) () (表达式表达式) ) 其功能是把表达式的运算结果强制转换成类型其功能是把表达式

43、的运算结果强制转换成类型说明符所表示的类型。说明符所表示的类型。例:例: y=y=(floatfloat)x;x; 【温馨提醒温馨提醒】 转换是转换是临时性转换临时性转换,而不改变数据说明时对该变,而不改变数据说明时对该变量定义的类型。量定义的类型。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.5 C2.3.5 C语言语句语言语句 一个一个C C程序应包含数据描述和数据操作。数据描程序应包含数据描述和数据操作。数据描述主要定义数据结构(

44、用数据类型表示)和数据述主要定义数据结构(用数据类型表示)和数据初值,由数据声明部分来实现。数据操作的任务初值,由数据声明部分来实现。数据操作的任务是对已提供的数据进行加工,是对已提供的数据进行加工,由执行语句来实现。由执行语句来实现。 C C语句分为以下五类:语句分为以下五类: 控制语句控制语句 函数调用语句函数调用语句 表达式语句表达式语句 空语句空语句 复合语句复合语句C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.5 C2.3.5

45、 C语言语句语言语句1 1、 控制语句控制语句 完成一定的控制功能,完成一定的控制功能,C C语言中有以下语言中有以下9 9种控制种控制语句:语句:if( ) if( ) 或或if( ) else if( ) else (条件语句)(条件语句)forfor( ) ( (循环语句循环语句) )whilewhile( ) ( (循环语句循环语句) )do whiledo while( ) ( (循环语句循环语句) )continue continue (结束本次循环语句)(结束本次循环语句)break break (中止执行(中止执行switchswitch或循环语句)或循环语句)switch s

46、witch (多分支选择语句)(多分支选择语句)gotogoto (转向语句)(转向语句)return return (从函数返回语句)(从函数返回语句)C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.5 C2.3.5 C语言语句语言语句2 2、 函数调用语句函数调用语句 函数调用加一个分号。函数调用加一个分号。3 3、 表达式语句表达式语句 在一个表达式的后面加上分号(在一个表达式的后面加上分号(; ;)4 4、 空语句空语句 空语句只

47、有一个分号,它什么也不做。空语句只有一个分号,它什么也不做。 可用来作被转向点或循环语句中的循环体。可用来作被转向点或循环语句中的循环体。5 5、 复合语句复合语句 可以用可以用 把多个语句括起来变成一个语句,称把多个语句括起来变成一个语句,称为:为:“复合语句复合语句”。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句2.3.5 C2.3.5 C语言语句语言语句【例例2.12.1】输入三个整数,按从大到小的顺序输出。输入三个整数,按从大到小的顺

48、序输出。流程图参看图流程图参看图2-32-3。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句#include#include / /* *预处理预处理* */ /void main()void main() intint a,b,c,ta,b,c,t=0;=0;printf(nprintf(n请输入三个整数:并用空格隔开请输入三个整数:并用空格隔开nn); /); /* * 函数调函数调用语句,提示输入信息用语句,提示输入信息 * */ /sc

49、anf(%dscanf(%d %d % %d %d,&a,&b,&cd,&a,&b,&c);); / /* * 函数调用语句,从键函数调用语句,从键盘输入三个数盘输入三个数 * */ /if(aif(ab) /b) /* * ifif条件语句条件语句 * */ / t=a; a=b; b=tt=a; a=b; b=t; /; /* * 复合语句,交换复合语句,交换a a、b b的值的值 * */ /if(aif(ac) t=a; a=c; c=t; c) t=a; a=c; c=t; if(bif(bc) t=b; b=c; c=t; c) t=

50、b; b=c; c=t; printf(nprintf(n三个数从大到小的顺序为:三个数从大到小的顺序为:%d%d,%d%d,%dn,a,b,c%dn,a,b,c);); C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句运行结果为:运行结果为:请输入三个整数:请输入三个整数:6767 0 0 8484三个数从大到小的顺序为:三个数从大到小的顺序为:8484,6767,0 0 【分析分析】程序中有四种语句形式:函数调用语句,程序中有四种语句形式:函

51、数调用语句,ifif条件语句,条件语句,赋值表达式语句,复合语句。其中的每一个复合语句分别是由三个赋值表达式语句,复合语句。其中的每一个复合语句分别是由三个赋值表达式语句构成的,复合语句是由多个语句构成的一个语句。赋值表达式语句构成的,复合语句是由多个语句构成的一个语句。本例中的本例中的ifif条件语句在判定条件为真后只执行一个语句,所以,此条件语句在判定条件为真后只执行一个语句,所以,此处使用了复合语句,实际上是通过三个赋值表达式语句完成了两个处使用了复合语句,实际上是通过三个赋值表达式语句完成了两个变量的值的交换,变量的值的交换,加加 后,三个语句就变成了一个语句后,三个语句就变成了一个语

52、句。这种处理。这种处理方式,以后常用。方式,以后常用。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型不同数据类型的输出不同数据类型的输出不同数据类型的输入不同数据类型的输入目目 录录运算符、表达式及运算符、表达式及C C语句语句 C C语言没有提供输入输出语句,数据的输入输出语言没有提供输入输出语句,数据的输入输出是由函数来完成的。常用的输出函数:是由函数来完成的。常用的输出函数:格式输出函数格式输出函数 printfprintf()()单字符输出函数单字符输出函数 putcharputchar()()字符串输出函数字符串输出函数 puts()puts()等。等。C C

53、语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输入不同数据类型的输入目目 录录 不同数据类型的输出不同数据类型的输出2.4.1 2.4.1 格式输出函数格式输出函数printfprintf()() printfprintf()()函数调用的一般形式为:函数调用的一般形式为: printfprintf(“(“格式控制字符串格式控制字符串”,输出表列,输出表列););其功能是其功能是按指定的格式,把指定的数据显示到显示器屏幕上按指定的格式,把指定的数据显示到显示器屏幕上。其中双引号部分是其中双引号部分是【格式控制字符串格

54、式控制字符串】用于指定输出格式。用于指定输出格式。格式控制串可由格式控制串可由【格式控制说明符格式控制说明符】和和【普通字符普通字符】两种组两种组成。成。 【格式控制说明符格式控制说明符】是以是以% %开头的字符,在开头的字符,在% %后面跟有各后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位种格式字符,以说明输出数据的类型、形式、长度、小数位数等。例如:数等。例如: “%d”%d”表示按十进制整型输出;表示按十进制整型输出;(“%ld”%ld”表示按十进制表示按十进制长整型输出;)长整型输出;) “ “%c”%c”表示按字符型输出等。表示按字符型输出等。要求要求格式控制说明符和

55、各输出项在数量和类型上应格式控制说明符和各输出项在数量和类型上应该一一对应。该一一对应。C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输入不同数据类型的输入目目 录录 不同数据类型的输出不同数据类型的输出【例例2.22.2】格式输出举例格式输出举例#include#include / /* *预处理预处理* */ /void void main()main() intint a=88, b=89; a=88, b=89; / /* * 定义定义a a,b b为整型变量,并对为整型变量,并对a a,b b赋初值赋

56、初值 * */ / printf(%dprintf(%d % %dn,a,bdn,a,b); ); / /* * 格式输出函数调用,是函数调用语句格式输出函数调用,是函数调用语句 * */ / printf(%d,%dn,a,bprintf(%d,%dn,a,b); ); / /* * 上一句的普通字符空格换为本语句的逗号上一句的普通字符空格换为本语句的逗号 * */ / printf(%c,%cn,a,bprintf(%c,%cn,a,b); ); / /* * 格式字符串格式字符串%d%d换为换为%c %c * */ / printf(aprintf(a=%=%d,bd,b=%=%dn,a

57、,bdn,a,b); ); / /* * 普通字符普通字符“a=”a=”和和“b=”b=”原样输出,作提示用原样输出,作提示用 * */ / 目目 录录C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输入不同数据类型的输入目目 录录 不同数据类型的输出不同数据类型的输出2.4.1 格式输出函数printf()2.4.1 2.4.1 格式输出函数格式输出函数printfprintf()()【例例2.22.2】格式输出举例格式输出举例 【分析分析】本例中利用格式输出函数四次输出了本例中利用格式输出函数四次输出了a,b

58、a,b的值,但的值,但由于格式控制串不同,输出的结果也不相同。四个函数调由于格式控制串不同,输出的结果也不相同。四个函数调用语句中的格式字符串用语句中的格式字符串nn表示换行。表示换行。 第一次输出第一次输出a,ba,b时,两数之间有空格,即输出:时,两数之间有空格,即输出:88 8988 89 第二次输出第二次输出a,ba,b时,两数之间是逗号,即输出:时,两数之间是逗号,即输出:88,8988,89 第三次输出第三次输出a,ba,b时,格式是时,格式是%c%c,输出的不在是十进制数,输出的不在是十进制数,而是而是8888和和8989所对应的所对应的ASCIIASCII码字符,两字符之间是逗

59、号,即码字符,两字符之间是逗号,即输出:输出:X,YX,Y 第四次输出第四次输出a,ba,b时,多了普通字符时,多了普通字符a=a=和和b=b=,两数之间有逗,两数之间有逗号,即输出:号,即输出:a=88,b=89a=88,b=89运行结果为:运行结果为:C C语言的数据类型语言的数据类型常量、变量及其类型常量、变量及其类型运算符、表达式及运算符、表达式及C C语语句句不同数据类型的输入不同数据类型的输入目目 录录 不同数据类型的输出不同数据类型的输出2.4.1 2.4.1 格式输出函数格式输出函数printfprintf()() printfprintf()()函数的格式控制说明符如表函数的

60、格式控制说明符如表2-122-12所示:所示:表表2-122-12printfprintf()()函数的格式控制说明符函数的格式控制说明符格式字符格式字符功能说明功能说明%d%i以十进制形式输出带符号整数以十进制形式输出带符号整数(正数不输出符号正数不输出符号)%o以八进制形式输出无符号整数以八进制形式输出无符号整数(不输出前缀不输出前缀0)%x%X以十六进制形式输出无符号整数以十六进制形式输出无符号整数(不输出前缀不输出前缀0 x);使用使用%X,则输出十六进制数的,则输出十六进制数的af时以大写字母形式输出。时以大写字母形式输出。%u以十进制形式输出无符号整数以十进制形式输出无符号整数%f以小数形式输出单、双精度实数以小数形式输出单、双精度实数%e%E以指数形式输出单、双精度实数;以指数形式输出单、双精度实数;

温馨提示

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

评论

0/150

提交评论