版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计第2章基本数据类型、运算符和表达式1/6/20231第1章C语言程序设计基础2章基本数据类型、运算符和表达式C语言程序设计第2章1/6/20【本章概要】本章主要介绍C语言的基本数据类型、常量与变量、运算符及表达式,以及C语言提供的常用库函数。1/6/20232第1章C语言程序设计基础2章基本数据类型、运算符和表达式【本章概要】本章主要介绍C语言的基本数据类型、常量与变量、运2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数1/6/20233第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量2.3运算符和计算机中处理的数据包括数字、文字、声音、图形、图像等各种形式。数据类型是按数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。2.1数据类型为了更好地对数据进行存储和处理,C语言中的数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类1/6/20234第1章C语言程序设计基础2章基本数据类型、运算符和表达式计算机中处理的数据包括数字、文字、声音、图形、图像等各种形式整型(int)数据类型基本类型整型单精度型(float)字符型(char)长整型(long)短整型(short)实型双精度型(double)枚举类型(enum)共用体类型(union)构造类型结构体类型(struct)数组类型空类型(void)指针类型(*)2.1数据类型1/6/20235第1章C语言程序设计基础2章基本数据类型、运算符和表达式整型(int)数据类型基本类型整型单精度型(float)字符基本整型int短整型short或shortint长整型long或longint无符号基本整型unsignedint无符号短整型unsignedshort或unsignedshortint无符号长整型unsignedlong或unsignedlongint
2.1.1整型注意:c语言没有规定各种整数类型的表示范围,只是规定了long类型的表示范围不小于int,但也允许它们表示范围相同。
1/6/20236第1章C语言程序设计基础2章基本数据类型、运算符和表达式基本整型int2.1.12.1.2实型实型数据又称浮点型数据。float,单精度浮点数类型,简称浮点类型;double,双精度浮点数类型,简称双精度类型;longdouble,长双精度类型。
所有整数类型和实数类型统称为算术类型。1/6/20237第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1.2实型实型数据又称浮点型数据。所有整数类型和实数类字符类型的数据即通常的字符。字符类型的数据在内存中存储的是它的ASCII码值,一个字符通常占用一个字节的内存空间。2.1.3字符型1/6/20238第1章C语言程序设计基础2章基本数据类型、运算符和表达式字符类型的数据即通常的字符。字符类型的数据在内存中存储的是它ASCII码字符的取值范围是0~127,既可以用char类型表示,也可以用unsignedchar类型表示;在128~255范围内的扩展ASCII码字符只能用unsignedchar类型表示。C语言规定字符类型与整型基本一致,分为有符号和无符号两种类型。2.1.3字符型1/6/20239第1章C语言程序设计基础2章基本数据类型、运算符和表达式ASCII码字符的取值范围是0~127,既可以用char类型注意:C语言类型的长度完全由编译器决定,char通常被定义成8位宽;int通常被定义成
16位或
32位宽(或更高),它取决于平台C语言规定:long>=int>=short>=char.(这里的">="指类型的宽度大于等于)。2.1.3字符型1/6/202310第1章C语言程序设计基础2章基本数据类型、运算符和表达式注意:C语言类型的长度完全由编译器决定,char通常被定义2.1数据类型历史和特点2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数2.2变量和常量1/6/202311第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.3运算符和表达式第2章基对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。与数据类型结合起来分类,分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先定义后使用。2.2变量和常量1/6/202312第1章C语言程序设计基础2章基本数据类型、运算符和表达式对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量在内存中开辟不同的存储单元,以便存放相应类型的值;不同类型的变量存放数据的方法也不相同。系统还根据变量的类型检查该变量所进行的运算是否合法,例如只有整型变量和整数才能参与求余(%)运算。2.2.1变量1/6/202313第1章C语言程序设计基础2章基本数据类型、运算符和表达式变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量2.2.1变量1.变量的定义和赋值C语言要求程序中使用的每个变量都必须先定义,然后才能使用。定义变量需要用变量定义语句进行,其形式为:类型变量名[=初值][,变量名[=初值],……];1/6/202314第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.1变量1.变量的定义和赋值1/6/202314第12.2.1变量2.变量中数据的存储C语言中无符号整数的存储相对简单,存储单元的每个二进制位存放的0或1均表示数。有符号整数则用补码表示实型数据是按指数形式存储的。用一个字节(8位二进制信息)存储字符类型数据。注意:可以把字符型数据看成是整型数据。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。1/6/202315第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.1变量2.变量中数据的存储1/6/202315第12.2.2常量常量可分为直接常量和符号常量,其中直接常量包括:整型常量、实型常量、字符型常量、字符串常量。1/6/202316第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量常量可分为直接常量和符号常量,其中直接常量包2.2.2常量1.整型常量整型常量有三种表示方法:(1)十进制整数:如154、565、-6523。(2)八进制整数:以0开头的数是八进制数。(3)十六进制整数:以0x开头的数是十六进制数。在上述方法表示的整数后面附一个字母l或L作后缀,即可表示该数据的类型是长整型的。注意:长整型数据和普通整型数据的区别。
1/6/202317第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量1.整型常量1/6/202317第1章2.2.2常量2.实型常量在C语言中,把带小数的数称为实数或浮点数。实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。实型常量有两种表示方法:小数形式:由数字和小数点组成,如3.1415926、-0.12、.4、3.等都是实数。(2)指数形式:如1.23e5或12.3E4都代表1.23x105。注意:字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.2、e等都不是合法的指数形式。
1/6/202318第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量2.实型常量1/6/202318第1章2.2.2常量3.字符常量字符型常量是由一对单引号括起来的单个字符构成,在C语言中,字符常量有以下特点:(1)字符常量只能用单引号括起来,不能用双引号或其它括号。(2)字符常量只能是单个字符,不能是字符串。(3)字符可以是字符集中任意字符。一个字符型常量的值是该字符集中对应的ASCII编码值。显然'5'和5是不同的。1/6/202319第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量3.字符常量1/6/202319第1章2.2.2常量表2-3转义字符表字符形式功能\n换行,将光标从当前位置移到下一行开头\t横向跳格,光标跳到下一个水平制表位\b退格\r回车,将光标从当前位置移到本行开头\f换页,将光标从当前位置移到下一页开头\\反斜杠字符“\”\'单引号字符“'”\"双引号字符“"”\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符1/6/202320第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量表2-3转义字符表字符功4.字符串常量C语言中没有专门的字符串类型的变量,但有字符串常量。字符串常量由一对双引号括起来的字符序列组成,如“abc”、“a”等都是字符串常量。双引号仅起定界符的作用。字符串常量与字符常量的区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量占一个字节的内存空间。字符串常量在内存中存储时由系统自动在存储的所有字符尾部添加串结束标记'\0',所以,字符串常量占的内存字节数等于字符串中字符所占的字节数加1。2.2.2常量1/6/202321第1章C语言程序设计基础2章基本数据类型、运算符和表达式4.字符串常量2.2.2常量1/6/202321第1章5.符号常量符号常量就是使用符号代表常量。C语言中允许用标识符定义一个常量,这种常量定义在C语言中被称之为“宏定义”,其一般形式为:#define标识符常量其中#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上,符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。2.2.2常量1/6/202322第1章C语言程序设计基础2章基本数据类型、运算符和表达式5.符号常量2.2.2常量1/6/202322第1章2.1数据类型历史和特点2.2变量和常量第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数2.3运算符和表达式1/6/202323第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量第2章基本数2.3.1运算符1.基本的算术运算符C语言中基本的算术运算符共有5种:+(加),-(减),*(乘),/(除),%(取模,或称求余运算符)C语言规定:(1)%运算符仅用于整型变量或整型常量的运算,a%b的结果为a除以b的余数,余数的符号与被除数相同,如:7%3的结果为1;7%-3的结果为1;-7%3的结果为-1。(2)+、-、*、/运算符的两个操作数既可以是整数,也可以是实数。当两个操作数均是整数时,结果仍是整数;若参加运算的两个操作数中有一个是实数,则结果为double型,因为所有实数都按double型进行运算。(3)当对两个整型的数据相除时结果为整数。1/6/202324第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符1.基本的算术运算符1/6/2023242.3.1运算符2.自增、自减运算符
自增运算符++和自减运算符--是C语言中两个较为独特的单目运算符,具有右结合性。它们既可以放在操作数前,也可以放在操作数后,并且操作对象只能是变量,不能是常量或表达式。如5++,++(a+b)等都是错误的。自增自减运算符的作用是将操作对象的值增加1或减去1。如:i++,i--/*表示在使用i值之后将i的值加(减)1*/++i,--i/*表示在使用i值之前将i的值加(减)1*/1/6/202325第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符2.自增、自减运算符1/6/2023252.3.1运算符3.赋值运算符C语言中,赋值被认为是一种运算,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其形式是:<变量><赋值运算符><表达式>赋值运算符为“=”,它的作用是将赋值运算符右边表达式或常量的值赋给其左边的变量。赋值表达式的值就是被赋值的变量的值。例如:a=6这个赋值表达式的值是6(变量a的值也是6)。赋值表达式的值也可以再赋给其它变量,如:a=(b=3+5),括号内的b=3+5是一个赋值表达式,其值为8,所以a的值为8,整个表达式的值也为8。1/6/202326第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符3.赋值运算符1/6/202326第1章2.3.1运算符4.复合赋值运算符C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。例如:a+=5; 等价于a=a+5;a*=b+5; 等价于a=a*(b+5);凡是双目运算符,都可以和赋值运算符一起组合成复合的赋值运算符。在C语言中,可以使用的复合赋值运算符有:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=1/6/202327第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符4.复合赋值运算符1/6/202327第12.3.1运算符5.关系运算符关系运算实际上就是比较运算。比较两个量的运算符就称为关系运算符。在C语言中为我们提供了6种关系运算符:<小于<=小于或等于>大于>=大于或等于==等于!=不等于关系运算符都是双目运算符,要求两个操作数是同一种数据类型,其结果为逻辑值。即关系成立时,其值为真,按C语言的习惯,用非0值(一般用1)表示;关系不成立时,其值为假,用0表示。1/6/202328第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符5.关系运算符1/6/202328第1章6.逻辑运算符C语言中为我们提供了三种逻辑运算符,分别是:&&与运算||或运算!非运算其中,与运算符&&和或运算符||均为双目运算符,非运算符!为单目运算符。例如:a&&b当a,b都为真时,结果为真a||b当a,b都为假时,结果为假!a当a为真时,结果为假;当a为假时,结果为真2.3.1运算符1/6/202329第1章C语言程序设计基础2章基本数据类型、运算符和表达式6.逻辑运算符2.3.1运算符1/6/202329第1章2.3.1运算符7.位运算位运算符是以单独的二进制位为操作对象的运算。也就是说,其操作数是二进制数。C语言中提供的位运算符有:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>),1/6/202330第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符7.位运算1/6/202330第1章2.3.1运算符8.求字节数运算符sizeof是C语言的一种单目操作符,并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。sizeof可以用于数据类型和变量。关于sizeof的结果:①操作数具有类型char、unsignedchar或signedchar,其结果等于1。因为ANSIC正式规定字符类型为1字节。②int、unsignedint、shortint、unsignedshort、longint、unsignedlong、float、double、longdouble类型的sizeof在ANSIC中没有具体规定,大小依赖于实现,一般可能分别为2、2、2、2、4、4、4、8、10。
1/6/202331第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符8.求字节数运算符1/6/202331第12.3.1运算符9.逗号运算符用逗号运算符可以将两个表达式连接起来,所形成的就是逗号表达式,其一般形式为:表达式1,表达式2逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,…,表达式n表达式n的值为整个表达式的值。1/6/202332第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符9.逗号运算符1/6/202332第1章2.3.1运算符10.条件运算符条件运算符是三目运算符,要求有3个操作对象,并且三个操作对象都是表达式。条件表达式的其一般形式为:表达式1?表达式2:表达式3
条件运算的求值规则为:计算表达式1的值,若表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。注意:(1)条件表达式中,表达式1通常为关系或逻辑表达式,表达式2、3的类型可以是数值表达式、赋值表达式、函数表达式或条件表达式。(2)条件表达式的结果类型:表达式2和表达式3中的较高者。1/6/202333第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符10.条件运算符1/6/202333第1章2.3.2表达式表达式由运算符和操作数构成。操作数可以是常量和变量。表达式的类型就是表达式计算结果的类型。混合于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。C语言的编译程序将所有操作数变换为与最大类型操作数同类型。1/6/202334第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.2表达式表达式由运算符和操作数构成。操作数可以是常2.3.2表达式C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。若一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。C规定了各种运算符的结合方向。算术运算符的结合方向为“自左至右”,又成为左结合性,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性。关系运算符的优先级低于算术运算符,关系运算符中>、>=、<、<=优先级相同;!=和==的优先级相同,但低于前四种。关系运算符的结合性均为左结合,若有多个关系运算同时进行时,先按优先级次序运算,优先级相同时从左向右计算。1/6/202335第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.2表达式C语言规定了运算符的优先级和结合性。在表达逻辑运算符中,非运算符(!)和单目的算术运算符同级,高于双目的算术运算符,优先于关系运算符,优先于逻辑运算符与(&&)和或(||),与(&&)运算高于或(||)运算。逻辑运算符中,非运算符(!)的结合性为右结合;与运算(&&)和或运算(||)的结合性为左结合。条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。因此,表达式max=(a>b)?a:b可以去掉括号,写为max=a>b?a:b,执行时意义是相同的。条件运算符的结合方向是自右至左。2.3.2表达式1/6/202336第1章C语言程序设计基础2章基本数据类型、运算符和表达式逻辑运算符中,非运算符(!)和单目的算术运算符同级,高于双目赋值运算符和复合赋值运算符的优先级相同,且都具有右结合性。它们的优先级除了比逗号运算符的优先级高以外,比其它运算符的优先级都低。逗号运算符是所有运算符中级别最低的。例如:逗号表达式:x=2,4*5运算时,先算第一个赋值表达式x=2,再算算术表达式4*5,最后算整个逗号表达式的值。逗号表达式的值为算术表达式的值20。2.3.2表达式1/6/202337第1章C语言程序设计基础2章基本数据类型、运算符和表达式赋值运算符和复合赋值运算符的优先级相同,且都具有右结合性。它2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2章基本数据类型、运算符和表达式2.5数据的输入输出2.6内部函数2.4数据类型转换1/6/202338第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量2.3运算符和C语言允许不同数据类型相互转换。类型转换有三种方式:自动类型转换、赋值类型转换和强制类型转换。1/6/202339第1章C语言程序设计基础2章基本数据类型、运算符和表达式C语言允许不同数据类型相互转换。1/6/202339第1章2.4.1类型自动转换高doublefloat
long
unsigned
低intchar,short1/6/202340第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.4.1类型自动转换高double2.4.2赋值类型转换赋值运算时,如果赋值运算符两侧的类型(指基本类型)不一致,系统自动将表达式的值转换成变量的类型存到变量的存储单元,转换的结果可能出现以下情况:(1)当整型数据赋给浮点型变量时,数值上不发生任何变化,但有效位增加。如:floatf;f=16;/*内存中变量f的值为16.000000*/(2)当单、双精度浮点型数据赋给整型变量时,浮点数的小数部分将被舍弃。如:inta;a=8.38;/*内存中变量a的值为8*/1/6/202341第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.4.2赋值类型转换赋值运算时,如果赋值运算符两侧的类型2.4.2赋值类型转换(3)将字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为2个字节,因此将字符数据(8位)放到整型变量低8位中。有两种情况:①将unsignedchar型数据赋给unsignedint或int型变量时,高8位补0。②将char型数据赋给unsignedint或int型变量时,若字符值最高位为0,则高8位补0;若字符值最高位为1,则高8位全补1。实际上,长度短的整型数据赋给长度长的变量时,都有类似的处理方法。如unsignedint型数据赋给unsignedlong或long型变量时,处理方法类似情况①,即将高16位补0;int型数据赋给unsignedlong或long型变量时,处理方法类似情况②,对高16位分情况处理。1/6/202342第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.4.2赋值类型转换(3)将字符型数据赋给整型变量时,2.4.2赋值类型转换(4)当长度长的整型数据赋给长度短的变量时,将进行截断赋值。如将一个long型数据赋给一个int或unsignedint型变量时,只将long型数据的低16位原封不动送到变量中。(5)当整型数据赋给长度相同的变量时,将进行原样赋值。1/6/202343第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.4.2赋值类型转换(4)当长度长的整型数据赋给长度短2.4.3强制类型转换可以利用强制类型转换运算符将一个表达式强制转换成所需类型。强制类型转换的一般形式为:(类型名)(表达式)【注意】(1)表达式应该用括号括起来。例如:(int)(a+b);/*表示将表达式a+b结果的类型强制转换成int型*/(int)a+b;/*表示将变量a的类型强制转换成int型后,再进行运算*/(2)经强制类型转换后,得到的是一个所需类型的中间变量,原来变量的类型并没有发生任何变化。1/6/202344第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.4.3强制类型转换可以利用强制类型转换运算符将一个表达2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.6内部函数2.5数据的输入输出1/6/202345第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量2.3运算符和C语言的输入和输出功能由标准输入输出库函数来实现。stdio.h是标准的输入输出函数库头文件,包括putchar(输出字符),getchar(输入字符),printf(格式输出),scanf(格式输入),puts(输出字符串),gets(输入字符串)等函数。考虑到printf、scanf使用频繁,系统允许在使用这两个函数时可省略#include命令。而使用其他函数必须使用预编译命令“#include”,将有关的“头文件”包含到用户源文件中,#include命令一般放在程序的开头。1/6/202346第1章C语言程序设计基础2章基本数据类型、运算符和表达式C语言的输入和输出功能由标准输入输出库函数来实现。stdi2.5.1格式化输出函数printfprintf函数的功能是向系统指定的设备输出若干个任意类型的数据。1.printf函数调用形式printf函数是一个标准库函数,其调用的一般形式:printf(格式控制字符串,输出列表);(1)格式控制字符串是用双引号括起来的字符串,它包括两个信息:①格式说明部分。由“%”开头和格式字符结尾,如%d,%c,%f等。它的作用是将要输出的数据转化成指定的格式输出,格式说明都是由“%”字符开始的。②一般字符(非格式字符)。即按原样输出的字符,在显示时起提示作用。它由普通字符和转义字符构成。如:printf("\na=%d\n",a);/*双引号内换行符、字符c=都是原样输出字符*/1/6/202347第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printfprintf函数的功能2.5.1格式化输出函数printf(2)输出列表是需要输出的一些数据,如变量、函数、表达式。输出列表的个数与格式说明符的个数一般应保持一致。如:1/6/202348第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf(2)输出列表是需要2.5.1格式化输出函数printf2.格式说明格式说明符由“%”开头,以一个英文字母结束,它表明输出数据的类型;其间还可以有一些格式控制字符,用以说明数据输出的长度、位数、对齐方式等。%[-][+][0][#][输出数据最小宽度m][.精度n][数据长度]类型其中:[]:表示可选项。格式控制字符-、+、0、#的具体含义如表2-5所示。1/6/202349第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf2.格式说明1/6/22.5.1格式化输出函数printf表2-5printf函数常用附加格式符字符形式字符含义+表示输出时输出数值的符号(+或-)且数值右对齐,左边补空格,缺省时表示若输出正值,则前面是空格,若是负数,则在数值前面输出负号(-)-表示输出时,数值左对齐,右边补空格0表示输出时,在数值的前面多余的空格用0来代替#对格式字符O(八进制)数字前加0,对格式字符x或X(十六进制)数字前加0x或0X1/6/202350第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf表2-5printf2.5.1格式化输出函数printf
[输出数据最小宽度m]:m是十进制整数,它表示用十进制输出的最少位数,当需要输出的数据长度超过该数时,该选项不起作用,数据按实际位数进行输出,当需要输出的数据长度小于该数时,则在该数的左边补空格或0。[.精度n]:是“.”加上十进制整数n。其含义是:如果输出的是数值,则该数表示小数位数,若实际位数大于所定义的精度,则截去超过部分;如果输出的是字串,则表示输出字符的个数。[数据长度]:是字符,它有两种形式:h、l。h表示按短整型量输出,l表示按长整型量输出。类型:是格式说明符中必须要有的,它表示输出列表里要输出的数据类型。表2-6给出了常用的类型格式符及含义。1/6/202351第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf[输出数据最小宽度m2.5.1格式化输出函数printf表2-6printf函数常用类型格式符表格式字符形式格式字符含义d(或i)表示以十进制形式输出一个带符号的整数(默认正数不输出符号)o表示以八进制形式输出一个无符号的整数(默认不输出前导符0)x(或X)表示以十六进制形式输出一个无符号的整数,用x则输出十六进制的a~f时以小写形式输出,用X则凡以大写形式输出,(默认不输出前导符0x或0X)u表示以十进制形式输出一个无符号的整数f表示以小数形式输出带符号的实数(包括单、双精度),默认输出6位小数e(或E)表示以指数形式输出,默认小数点前1位非0整数,5位小数。g(或G)表示选择%f或%e格式输出实数(选择占宽度较小的一种格式,不输出无意义的0)c表示输出一个单字符s表示输出一个字符串%表示输入百分号本身1/6/202352第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf表2-6printf2.5.1格式化输出函数printf在使用printf函数时,要注意以下几个问题:(1)在格式控制字符串中可包“转义字符”,如'\n'、'\t'、'\r'、'\b'、'\377'等。(2)控制输出类型的格式符除X(表示输出的十六进制数用大写字母输出)、E(表示输出的指数e用大写字母E输出)、G(表示若选用指数形式输出,则用大写字母E输出)外,其余必须是小写字母,如%d不能写成%D。(3)若想输出字符“%”,则在格式字符串中用连续两个%表示。如:printf("%f%%",1.0/4);则输出:0.250000%1/6/202353第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.1格式化输出函数printf在使用printf函数(4)输出是从右向左计算输出项后,按格式说明的顺序对应输出。一般格式说明和输出项的个数和类型应相同,如不匹配系统并不报错,系统将按以下操作。a、格式说明的个数少于输出项的个数,多余的输出项将不输出;格式说明的个数多于输出项的个数,多余的格式说明将输出随机的值。b、整型数据按%f输出,出现运行错误;实型数据按%d输出,运行错结果为0;
2.5.1格式化输出函数printf1/6/202354第1章C语言程序设计基础2章基本数据类型、运算符和表达式(4)输出是从右向左计算输出项后,按格式说明的顺序对应输出。2.5.2格式化输入函数scanfscanf函数的功能是从键盘上将数据按用户指定的格式输入并赋给指定的变量。1.scanf函数调用形式scanf函数是一个标准库函数,其调用的一般形式:scanf(格式控制字符串,地址列表);其中格式控制字符串的定义与使用方法和printf函数大致相同,但不能显示非格式字符串,即不能显示提示字符串。地址列表是要赋值的各变量地址。地址是由地址运算符“&”后跟变量名组成,如&x表示变量x的地址。&是取地址运算符,其作用是求变量的地址。1/6/202355第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.2格式化输入函数scanfscanf函数的功能是从2.5.2格式化输入函数scanf2.格式说明符与printf函数中的格式说明符相似,以%开始,后面跟一个格式符,中间可以有若干个附加字符,格式字符串的一般形式为:%[*][输入数据宽度m][长度]类型其中:[]:表示可选项*:表示输入的数值不赋给相应的变量,即跳过该数据不读。[输入数据宽度m]:m是十进制正整数,表示按m的宽度输入数据。[长度]:长度格式符为l和h,l表示输入长整型数据或双精度实型数据;h表示输入短整型数据。1/6/202356第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.2格式化输入函数scanf2.格式说明符1/6/22.5.2格式化输入函数scanf类型:是格式说明符中必须要有的,其格式符的意义与printf函数基本相同表2-7scanf函数常用类型格式符表格式字符形式格式字符含义d,i表示以十进制形式输入一个整数o表示以八进制形式输入一个整数x(X)表示以十六进制形式输入一个整数u表示以十进制形式输入一个无符号的整数f或e(E)表示输入一个实数,可以是小数形式或指数形式g(G)与f或e的作用相同c表示输入一个字符s表示输入一个字符串1/6/202357第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.2格式化输入函数scanf类型:是格式说明符中必须2.5.2格式化输入函数scanf说明:(1)对unsigned型变量所需的数据,可以用%u,%d,%o,或%x格式输入;(2)可以指定输入数据所占列数,系统自动按它截取所需数据。(3)如果在一个%后有一个*附加说明符,表示跳过它指定的列数。(4)输入数据时不能规定数据的精度。例如scanf("%8.2f",&a);是不合法的。1/6/202358第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.2格式化输入函数scanf说明:1/6/202352.5.2格式化输入函数scanf在使用scanf函数时,要注意以下几个问题:scanf函数中的“格式控制字符串”后面应该是变量的地址,而不应是变量名,这是C语言与其他高级语言不同的地方。例如不能将语句scanf(“%d,%d”,&a,&b);写成scanf(“%d,%d”,a,b);,这是初学者容易出错的地方。(2)在“格式控制字符串”中除了格式说明符外,还有其他字符,则在输入数据时在对应位置上应输入与这些字符相同的字符。例如scanf("a=%d,b=%d",&a,&b);则输入时应输入:a=12,b=-2↙其他任何输入形式都不正确。1/6/202359第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.2格式化输入函数scanf在使用scanf函数时,(3)输入数据时,遇到以下情况认为该数据输入结束:①按指定的宽度结束;②遇空格,或“回车”键,或“Tab”键;③遇到非法输入。如:scanf("%3d%d%c%f",&a,&b,&str,&c);若输入:12345a234o.78↙第一个数据取3位,即将123赋给变量a。45后面遇字母a,表示45后没有数据了,因此将45赋给第二个变量b。字符'a'赋给第三个变量str。由于%c要求只能输入一个字符,因此输入字符a之后不需要加空格,直接将后面的数据赋给第四个变量c。由于将数据2340.78错输入成234o.78,即在234后面出现了字母'o',因此就认为该数据到此结束,所以将234赋给变量c。2.5.2格式化输入函数scanf1/6/202360第1章C语言程序设计基础2章基本数据类型、运算符和表达式(3)输入数据时,遇到以下情况认为该数据输入结束:2.5.(4)在用“%c”格式输入字符时,所有输入的字符(包括空格字符和“转义字符”)都作为有效字符。例如:scanf("%c%c%c",&a,&b,&c);若输入为:a□b□c↙则把字符a赋给变量a,把字符空格赋给变量b,把字符b赋给变量c。(5)当输出的类型格式符与数据的类型不一致时,虽然编译没有提示出错,但结果有可能不正确。2.5.2格式化输入函数scanf1/6/202361第1章C语言程序设计基础2章基本数据类型、运算符和表达式(4)在用“%c”格式输入字符时,所有输入的字符(包括空格2.5.3字符数据的输入与输出1.字符输入函数getchar字符输入函数getchar()的功能是从标准设备(键盘)上读入一个字符。其一般调用形式:getchar();该函数没有参数,但一对圆括号不能省略。getchar()只能从键盘上接收一个字符,其常用形式:ch=getchar()与scanf(“%c”,&ch)等价。在使用这个函数时,程序的头部一定要加上文件包含命令:#include<stdio.h>1/6/202362第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.3字符数据的输入与输出1.字符输入函数getcha2.5.3字符数据的输入与输出2.字符输出函数putchar函数putchar()的功能是向标准输出设备(显示器)输出一个字符。其一般调用形式:putchar(c);其中c是参数,它可以是整型或字符型变量,也可以是整型或字符型常量或表达式。当是整型量时,输出以该数值作为ASCII码所对应的字符;当是字符型量时,直接输出字符。其功能和printf(“%c”,c)等价。1/6/202363第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.3字符数据的输入与输出2.字符输出函数putcha2.5.4字符串的输入与输出1.字符串输入函数getsgets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。gets(s)函数与scanf("%s",&s)相似,但不完全相同,使用scanf("%s",&s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。1/6/202364第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.4字符串的输入与输出1.字符串输入函数gets1/2.5.4字符串的输入与输出2.字符串输出函数putsputs()函数用来向标准输出设备(屏幕)写字符串并换行,其调用格式为:puts(s);其中s为字符串变量(字符串数组名或字符串指针)。puts()函数的作用与语句printf(“%s\n”,s)相同。但puts()函数只能输出字符串,不能输出数值或进行格式变换。另外,可以将字符串直接写入puts()函数中。例如:puts("Hello,TurboC2.0");1/6/202365第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.5.4字符串的输入与输出2.字符串输出函数puts1/2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数1/6/202366第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量2.3运算符和2.6内部函数C语言提供的函数以库文件的形式存放在系统中。用户在使用函数库时无需定义和说明,只需在程序前包含该函数原型的头文件,就可以在程序中直接使用。使用库函数应清楚四个方面的内容:①函数的功能及所能完成的操作,②参数的数目和顺序,以及每个参数的意义及类型,③返回值的意义及类型,④需要使用的包含文件。1/6/202367第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.6内部函数C语言提供的函数以库文件的形式存放在系统中。2.6内部函数常见的有九大类库函数:I/O函数、字符串、内存和字符函数、数学函数、时间、日期和与系统有关的函数、动态存储分配、目录管理、过程控制、字符屏幕和图形功能、其它函数。1/6/202368第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.6内部函数常见的有九大类库函数:1/6/202368第2.6内部函数1、用include命令(#开头,后面没有;)如:#include“stdio.h”//或#include<stdio.h>#include“math.h”2、调用形式:函数名(参数表)如:y=sqrt(x);ch=getchar();printf(“jhfjdg\n”);1/6/202369第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.6内部函数1、用include命令(#开头,后面没有;2.6内部函数函数名函数原型功能函数说明absintabs(intnum)计算整数num的绝对值acosdoubleacos(doublex);计算cos–1(x)的值x在–1~1范围内asindoubleasin(doublex);计算sin–1(x)的值x在–1~1范围内cosdoublecos(doublex);计算cos(x)的值x的单位为弧度expdoubleexp(doublex);求ex的值fabsdoublefabs(doublex);求x的绝对值floordoublefloor(doublex);求不大于x的最大整数其值为双精度整数powdoublepow(doublex,y);计算xy
的值1/6/202370第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.6内部函数函数名函数原型功能函数说明absintabrandintrand()产生一个伪随机数返回值为1~32767randomintrandom(intn)产生0~n之间的随机数sinsin(doublex);计算sinx的值x的单位为弧度sqrtsqrt(doublex);计算x的平方根x应大于等于0exitvoidexit(intstatus);终止程序运行systemintsystem(char*cmd)发出一个DOS命令clockclock_tclock(void)确定所用的处理器时间timetime_ttime(time_t*tp)获取系统时间1/6/202371第1章C语言程序设计基础2章基本数据类型、运算符和表达式randintrand()产生一个伪随机数返回值为1~C语言程序设计第2章基本数据类型、运算符和表达式1/6/202372第1章C语言程序设计基础2章基本数据类型、运算符和表达式C语言程序设计第2章1/6/20【本章概要】本章主要介绍C语言的基本数据类型、常量与变量、运算符及表达式,以及C语言提供的常用库函数。1/6/202373第1章C语言程序设计基础2章基本数据类型、运算符和表达式【本章概要】本章主要介绍C语言的基本数据类型、常量与变量、运2.1数据类型历史和特点2.2变量和常量2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数1/6/202374第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量2.3运算符和计算机中处理的数据包括数字、文字、声音、图形、图像等各种形式。数据类型是按数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。2.1数据类型为了更好地对数据进行存储和处理,C语言中的数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类1/6/202375第1章C语言程序设计基础2章基本数据类型、运算符和表达式计算机中处理的数据包括数字、文字、声音、图形、图像等各种形式整型(int)数据类型基本类型整型单精度型(float)字符型(char)长整型(long)短整型(short)实型双精度型(double)枚举类型(enum)共用体类型(union)构造类型结构体类型(struct)数组类型空类型(void)指针类型(*)2.1数据类型1/6/202376第1章C语言程序设计基础2章基本数据类型、运算符和表达式整型(int)数据类型基本类型整型单精度型(float)字符基本整型int短整型short或shortint长整型long或longint无符号基本整型unsignedint无符号短整型unsignedshort或unsignedshortint无符号长整型unsignedlong或unsignedlongint
2.1.1整型注意:c语言没有规定各种整数类型的表示范围,只是规定了long类型的表示范围不小于int,但也允许它们表示范围相同。
1/6/202377第1章C语言程序设计基础2章基本数据类型、运算符和表达式基本整型int2.1.12.1.2实型实型数据又称浮点型数据。float,单精度浮点数类型,简称浮点类型;double,双精度浮点数类型,简称双精度类型;longdouble,长双精度类型。
所有整数类型和实数类型统称为算术类型。1/6/202378第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1.2实型实型数据又称浮点型数据。所有整数类型和实数类字符类型的数据即通常的字符。字符类型的数据在内存中存储的是它的ASCII码值,一个字符通常占用一个字节的内存空间。2.1.3字符型1/6/202379第1章C语言程序设计基础2章基本数据类型、运算符和表达式字符类型的数据即通常的字符。字符类型的数据在内存中存储的是它ASCII码字符的取值范围是0~127,既可以用char类型表示,也可以用unsignedchar类型表示;在128~255范围内的扩展ASCII码字符只能用unsignedchar类型表示。C语言规定字符类型与整型基本一致,分为有符号和无符号两种类型。2.1.3字符型1/6/202380第1章C语言程序设计基础2章基本数据类型、运算符和表达式ASCII码字符的取值范围是0~127,既可以用char类型注意:C语言类型的长度完全由编译器决定,char通常被定义成8位宽;int通常被定义成
16位或
32位宽(或更高),它取决于平台C语言规定:long>=int>=short>=char.(这里的">="指类型的宽度大于等于)。2.1.3字符型1/6/202381第1章C语言程序设计基础2章基本数据类型、运算符和表达式注意:C语言类型的长度完全由编译器决定,char通常被定义2.1数据类型历史和特点2.3运算符和表达式第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数2.2变量和常量1/6/202382第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.3运算符和表达式第2章基对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。与数据类型结合起来分类,分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先定义后使用。2.2变量和常量1/6/202383第1章C语言程序设计基础2章基本数据类型、运算符和表达式对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量在内存中开辟不同的存储单元,以便存放相应类型的值;不同类型的变量存放数据的方法也不相同。系统还根据变量的类型检查该变量所进行的运算是否合法,例如只有整型变量和整数才能参与求余(%)运算。2.2.1变量1/6/202384第1章C语言程序设计基础2章基本数据类型、运算符和表达式变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量2.2.1变量1.变量的定义和赋值C语言要求程序中使用的每个变量都必须先定义,然后才能使用。定义变量需要用变量定义语句进行,其形式为:类型变量名[=初值][,变量名[=初值],……];1/6/202385第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.1变量1.变量的定义和赋值1/6/202314第12.2.1变量2.变量中数据的存储C语言中无符号整数的存储相对简单,存储单元的每个二进制位存放的0或1均表示数。有符号整数则用补码表示实型数据是按指数形式存储的。用一个字节(8位二进制信息)存储字符类型数据。注意:可以把字符型数据看成是整型数据。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。1/6/202386第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.1变量2.变量中数据的存储1/6/202315第12.2.2常量常量可分为直接常量和符号常量,其中直接常量包括:整型常量、实型常量、字符型常量、字符串常量。1/6/202387第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量常量可分为直接常量和符号常量,其中直接常量包2.2.2常量1.整型常量整型常量有三种表示方法:(1)十进制整数:如154、565、-6523。(2)八进制整数:以0开头的数是八进制数。(3)十六进制整数:以0x开头的数是十六进制数。在上述方法表示的整数后面附一个字母l或L作后缀,即可表示该数据的类型是长整型的。注意:长整型数据和普通整型数据的区别。
1/6/202388第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量1.整型常量1/6/202317第1章2.2.2常量2.实型常量在C语言中,把带小数的数称为实数或浮点数。实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。实型常量有两种表示方法:小数形式:由数字和小数点组成,如3.1415926、-0.12、.4、3.等都是实数。(2)指数形式:如1.23e5或12.3E4都代表1.23x105。注意:字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.2、e等都不是合法的指数形式。
1/6/202389第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量2.实型常量1/6/202318第1章2.2.2常量3.字符常量字符型常量是由一对单引号括起来的单个字符构成,在C语言中,字符常量有以下特点:(1)字符常量只能用单引号括起来,不能用双引号或其它括号。(2)字符常量只能是单个字符,不能是字符串。(3)字符可以是字符集中任意字符。一个字符型常量的值是该字符集中对应的ASCII编码值。显然'5'和5是不同的。1/6/202390第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量3.字符常量1/6/202319第1章2.2.2常量表2-3转义字符表字符形式功能\n换行,将光标从当前位置移到下一行开头\t横向跳格,光标跳到下一个水平制表位\b退格\r回车,将光标从当前位置移到本行开头\f换页,将光标从当前位置移到下一页开头\\反斜杠字符“\”\'单引号字符“'”\"双引号字符“"”\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符1/6/202391第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.2.2常量表2-3转义字符表字符功4.字符串常量C语言中没有专门的字符串类型的变量,但有字符串常量。字符串常量由一对双引号括起来的字符序列组成,如“abc”、“a”等都是字符串常量。双引号仅起定界符的作用。字符串常量与字符常量的区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量占一个字节的内存空间。字符串常量在内存中存储时由系统自动在存储的所有字符尾部添加串结束标记'\0',所以,字符串常量占的内存字节数等于字符串中字符所占的字节数加1。2.2.2常量1/6/202392第1章C语言程序设计基础2章基本数据类型、运算符和表达式4.字符串常量2.2.2常量1/6/202321第1章5.符号常量符号常量就是使用符号代表常量。C语言中允许用标识符定义一个常量,这种常量定义在C语言中被称之为“宏定义”,其一般形式为:#define标识符常量其中#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上,符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。2.2.2常量1/6/202393第1章C语言程序设计基础2章基本数据类型、运算符和表达式5.符号常量2.2.2常量1/6/202322第1章2.1数据类型历史和特点2.2变量和常量第2章基本数据类型、运算符和表达式2.4数据类型转换2.5数据的输入输出2.6内部函数2.3运算符和表达式1/6/202394第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.1数据类型历史和特点2.2变量和常量第2章基本数2.3.1运算符1.基本的算术运算符C语言中基本的算术运算符共有5种:+(加),-(减),*(乘),/(除),%(取模,或称求余运算符)C语言规定:(1)%运算符仅用于整型变量或整型常量的运算,a%b的结果为a除以b的余数,余数的符号与被除数相同,如:7%3的结果为1;7%-3的结果为1;-7%3的结果为-1。(2)+、-、*、/运算符的两个操作数既可以是整数,也可以是实数。当两个操作数均是整数时,结果仍是整数;若参加运算的两个操作数中有一个是实数,则结果为double型,因为所有实数都按double型进行运算。(3)当对两个整型的数据相除时结果为整数。1/6/202395第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符1.基本的算术运算符1/6/2023242.3.1运算符2.自增、自减运算符
自增运算符++和自减运算符--是C语言中两个较为独特的单目运算符,具有右结合性。它们既可以放在操作数前,也可以放在操作数后,并且操作对象只能是变量,不能是常量或表达式。如5++,++(a+b)等都是错误的。自增自减运算符的作用是将操作对象的值增加1或减去1。如:i++,i--/*表示在使用i值之后将i的值加(减)1*/++i,--i/*表示在使用i值之前将i的值加(减)1*/1/6/202396第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符2.自增、自减运算符1/6/2023252.3.1运算符3.赋值运算符C语言中,赋值被认为是一种运算,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其形式是:<变量><赋值运算符><表达式>赋值运算符为“=”,它的作用是将赋值运算符右边表达式或常量的值赋给其左边的变量。赋值表达式的值就是被赋值的变量的值。例如:a=6这个赋值表达式的值是6(变量a的值也是6)。赋值表达式的值也可以再赋给其它变量,如:a=(b=3+5),括号内的b=3+5是一个赋值表达式,其值为8,所以a的值为8,整个表达式的值也为8。1/6/202397第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符3.赋值运算符1/6/202326第1章2.3.1运算符4.复合赋值运算符C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。例如:a+=5; 等价于a=a+5;a*=b+5; 等价于a=a*(b+5);凡是双目运算符,都可以和赋值运算符一起组合成复合的赋值运算符。在C语言中,可以使用的复合赋值运算符有:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=1/6/202398第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符4.复合赋值运算符1/6/202327第12.3.1运算符5.关系运算符关系运算实际上就是比较运算。比较两个量的运算符就称为关系运算符。在C语言中为我们提供了6种关系运算符:<小于<=小于或等于>大于>=大于或等于==等于!=不等于关系运算符都是双目运算符,要求两个操作数是同一种数据类型,其结果为逻辑值。即关系成立时,其值为真,按C语言的习惯,用非0值(一般用1)表示;关系不成立时,其值为假,用0表示。1/6/202399第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符5.关系运算符1/6/202328第1章6.逻辑运算符C语言中为我们提供了三种逻辑运算符,分别是:&&与运算||或运算!非运算其中,与运算符&&和或运算符||均为双目运算符,非运算符!为单目运算符。例如:a&&b当a,b都为真时,结果为真a||b当a,b都为假时,结果为假!a当a为真时,结果为假;当a为假时,结果为真2.3.1运算符1/6/2023100第1章C语言程序设计基础2章基本数据类型、运算符和表达式6.逻辑运算符2.3.1运算符1/6/202329第1章2.3.1运算符7.位运算位运算符是以单独的二进制位为操作对象的运算。也就是说,其操作数是二进制数。C语言中提供的位运算符有:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>),1/6/2023101第1章C语言程序设计基础2章基本数据类型、运算符和表达式2.3.1运算符7.位运算1/6/202330第1章2.3.1运算符8.求字节数运算符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年内蒙古自治区网格员招聘考试题库及答案解析
- 2025年成人高考政治试题及参考答案
- 2026 年中国农民丰收节丰收映照国泰民安主题课件
- 2026 年世界地球日人类与自然共生课件
- 2026 年国庆厚植爱国情怀树立民族自豪感自信心课件
- 2026 年不忘国耻砥砺奋进新时代少年教育课件
- 儿童医院护理紧急意外情况应急处理预案培训考试试题及答案
- 内科专业分科考试题目和答案
- 2025年福建省南平市建阳市三年级数学下学期期中检测试题(含答案解析)
- 影视置景制作员操作水平模拟考核试卷含答案
- 幼儿园三年发展规划方案
- 2026年嘉黎县网格员招聘笔试备考题库及答案解析
- 2026国家通 用语言文字推广普及宣传周主题课件
- 2026年秋季学期泰山版(新教材)三年级信息科技上册教学计划
- 2026秋季学期新教材外研版(三起)六年级上册英语教学工作计划
- 新版教科版四年级上册科学第一单元教案教学设计
- 2026年国民经济核算考试题含答案
- 有限空间作业安全管理实施方案
- 第6课 古代罗马(课件)-(共50张+视频)统编版(2024)九年级历史上册2
- 项目安全员任命书
- AI在林业碳汇智能核算与监测中的实践
评论
0/150
提交评论