资源预览内容
第1页 / 共71页
第2页 / 共71页
第3页 / 共71页
第4页 / 共71页
第5页 / 共71页
第6页 / 共71页
第7页 / 共71页
第8页 / 共71页
第9页 / 共71页
第10页 / 共71页
亲,该文档总共71页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C C语言程序设计语言程序设计语言程序设计语言程序设计C C语言程序设计语言程序设计 第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式9/18/20241第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计【本章概要本章概要】本章主要介绍本章主要介绍C C语言的基本数据类型、常量与变量、运语言的基本数据类型、常量与变量、运算符及表达式,以及算符及表达式,以及C C语言提供的常用库函数。语言提供的常用库函数。9/18/20242第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 2.1 数据类型历史和特点数据类型历史和特点2.2 变量和常量2.3 运算符和表达式第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.4 数据类型转换2.5 数据的输入输出2.6 内部函数9/18/20243第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计计算机中处理的数据包括数字、文字、声音、图形、图像等各种形式。数据类型是按数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。2.1 2.1 数据类型数据类型数据类型数据类型为了更好地对数据进行存储和处理,语言中的数据类型可分为:基本数据类型,基本数据类型,构造数据类型,指针类型,空类型四大类构造数据类型,指针类型,空类型四大类9/18/20244第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计整型(整型(int)数据类型数据类型基本类型基本类型整型整型单精度型(单精度型(float)字符型(字符型(char)长整型(长整型(long)短整型(短整型(short)实型实型双精度型双精度型(double)枚举类型(枚举类型(enum)共用体类型(共用体类型(union)构造类型构造类型结构体类型(结构体类型(struct)数组类型数组类型空类型(空类型(void)指针类型(指针类型(*)2.1 2.1 数据类型数据类型数据类型数据类型9/18/20245第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计基本整型基本整型 intint短整型短整型 shortshort或或short intshort int长整型长整型 longlong或或long intlong int无符号基本整型无符号基本整型 unsigned intunsigned int无符号短整型无符号短整型 unsigned shortunsigned short或或unsigned unsigned short intshort int无符号长整型无符号长整型 unsigned longunsigned long或或unsigned unsigned long intlong int 2.1.1 2.1.1 整型整型整型整型注意:c语言没有规定各种整数类型的表示范围,只是规定了long类型的表示范围不小于int,但也允许它们表示范围相同。 9/18/20246第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1.2 2.1.2 实型实型实型实型实型数据又称浮点型数据。floatfloat,单精度浮点数类型,简称浮点类型;,单精度浮点数类型,简称浮点类型;double,double,双精度浮点数类型,简称双精度类型;双精度浮点数类型,简称双精度类型;long doublelong double,长双精度类型,长双精度类型。 所有整数类型和实数类型统称为算术类型算术类型。9/18/20247第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计字符类型的数据即通常的字符。字符类型的数据在内存中存储的是它的ASCIIASCII码码值,一个字符通常占用一个字节的内存空间。2.1.32.1.3字符型字符型字符型字符型9/18/20248第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计ASCII码字符的取值范围是0127,既可以用char类型表示,也可以用unsigned char类型表示;在128255范围内的扩展ASCII码字符只能用unsigned char类型表示。C语言规定字符类型与整型基本一致,分为有符号和无符号两种类型。2.1.32.1.3字符型字符型字符型字符型9/18/20249第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计注意:C语言类型的长度完全由编译器决定,char 通常被定义成 8 位宽;int 通常被定义成16 位或32 位宽(或更高),它取决于平台 C语言规定:long = int = short = char . (这里的=指类型的宽度大于等于)。2.1.32.1.3字符型字符型字符型字符型9/18/202410第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 数据类型历史和特点2.3 运算符和表达式第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.4 数据类型转换2.5 数据的输入输出2.6 内部函数2.2 2.2 变量和常量变量和常量9/18/202411第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。与数据类型结合起来分类,分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先定义后使用。2.2 2.2 变量和常量变量和常量变量和常量变量和常量9/18/202412第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量在内存中开辟不同的存储单元,以便存放相应类型的值;不同类型的变量存放数据的方法也不相同。系统还根据变量的类型检查该变量所进行的运算是否合法,例如只有整型变量和整数才能参与求余(%)运算。2.2.1 2.2.1 变量变量变量变量9/18/202413第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.1 2.2.1 变量变量变量变量1.1.变量的定义和赋值变量的定义和赋值C语言要求程序中使用的每个变量都必须先定义,然后才能使用。定义变量需要用变量定义语句进行,其形式为:类型 变量名=初值,变量名=初值,;9/18/202414第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.1 2.2.1 变量变量变量变量2.变量中数据的存储C语言中无符号整数无符号整数的存储相对简单,存储单元的每个二进制位存放的0或1均表示数。有符号整数则用补码表示 实型数据实型数据是按指数形式存储的 。用一个字节(8位二进制信息)存储字符类型数据字符类型数据 。注意:可以把字符型数据看成是整型数据。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。 9/18/202415第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.2 2.2.2 常量常量常量常量常量可分为直接常量和符号常量,其中直接常量包括:整型常量、实型常量、字符型常量、字符串常量。9/18/202416第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.2 2.2.2 常量常量常量常量1.1.整型常量整型常量整型常量有三种表示方法:(1) 十进制整数:如154、565、-6523。(2) 八进制整数:以0开头的数是八进制数。(3) 十六进制整数:以0x开头的数是十六进制数。在上述方法表示的整数后面附一个字母l或L作后缀,即可表示该数据的类型是长整型的。注意:长整型数据和普通整型数据的区别。 9/18/202417第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.2 2.2.2 常量常量常量常量2.2.实型常量实型常量在C语言中,把带小数的数称为实数或浮点数。实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。实型常量有两种表示方法:(1)小数形式:由数字和小数点组成,如3.1415926、 -0.12、.4、3.等都是实数。(2) 指数形式:如1.23e5或12.3E4都代表1.23x105。注意:字母字母e e(或(或E E)之前必须有数字,且)之前必须有数字,且e e后面指数必须后面指数必须为整数为整数,如e3、2.1e3.2、e等都不是合法的指数形式。 9/18/202418第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.2 2.2.2 常量常量常量常量3.3.字符常量字符常量字符型常量是由一对单引号括起来的单个字符构成,在语言中,字符常量有以下特点:(1) 字符常量只能用单引号括起来,不能用双引号或其它括号。(2) 字符常量只能是单个字符,不能是字符串。(3) 字符可以是字符集中任意字符。一个字符型常量的值是该字符集中对应的ASCII编码值。显然5和5 是不同的。9/18/202419第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.2.2 2.2.2 常量常量常量常量表2-3 转义字符表字符字符形式形式功功 能能n换行,将光标从当前位置移到下一行开头t横向跳格,光标跳到下一个水平制表位b退格r回车,将光标从当前位置移到本行开头f换页,将光标从当前位置移到下一页开头反斜杠字符“”单引号字符“”双引号字符“”ddd1到3位8进制数所代表的字符xhh1到2位16进制数所代表的字符9/18/202420第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计4.4.字符串常量字符串常量C语言中没有专门的字符串类型的变量,但有字符串常量。字符串常量由一对双引号括起来的字符序列组成,如“abc”、“a”等都是字符串常量。双引号仅起定界符的作用。字符串常量与字符常量的区别区别:(1) 字符常量由单引号括起来,字符串常量由双引号括起来。(2) 字符常量占一个字节的内存空间。字符串常量在内存中存储时由系统自动在存储的所有字符尾部添加串结束标记0,所以,字符串常量占的内存字节数等于字符串中字符所占的字节数加1。2.2.2 2.2.2 常量常量常量常量9/18/202421第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计5.5.符号常量符号常量符号常量就是使用符号代表常量。C语言中允许用标识符定义一个常量,这种常量定义在C语言中被称之为“宏定义”,其一般形式为:#define #define 标识符标识符 常量常量其中#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上,符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。2.2.2 2.2.2 常量常量常量常量9/18/202422第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 数据类型历史和特点2.2 变量和常量第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.4 数据类型转换2.5 数据的输入输出2.6 内部函数2.3 2.3 运算符和表达式运算符和表达式9/18/202423第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符1. 1. 基本的算术运算符基本的算术运算符C语言中基本的算术运算符共有5种:+ (加), - (减), * (乘), / (除),% (取模,或称求余运算符)C语言规定:(1) % %运算符仅用于整型变量或整型常量的运算运算符仅用于整型变量或整型常量的运算,a%b的结果为a除以b的余数,余数的符号与被除数相同,如:7%3的结果为1;7%-3的结果为1;-7%3的结果为-1。(2) +、-、*、/ 运算符的两个操作数既可以是整数,也可以是实数。当两个操作数均是整数时,结果仍是整数;若参加运算的两个操作数中有一个是实数,则结果结果为为doubledouble型型,因为所有实数都按double型进行运算。(3) 当对两个整型的数据相除时结果为整数当对两个整型的数据相除时结果为整数。9/18/202424第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符2.2.自增、自减运算符自增、自减运算符 自增运算符+和自减运算符-是C语言中两个较为独特的单目运算符,具有右结合性。它们既可以放在操作数前,也可以放在操作数后,并且操作对象只能是变量,不能是常量或表达式。如5+,+(a+b)等都是错误的。自增自减运算符的作用是将操作对象的值增加1或减去1。如:i+,i- /* 表示在使用i值之后将i的值加(减)1 */+i,-i /* 表示在使用i值之前将i的值加(减)1 */9/18/202425第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符3.3.赋值运算符赋值运算符C语言中,赋值被认为是一种运算,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其形式是: 赋值运算符为“=”,它的作用是将赋值运算符右边表达式或常量的值赋给其左边的变量。赋值表达式的值就是被赋值赋值表达式的值就是被赋值的变量的值的变量的值。例如:a=6这个赋值表达式的值是6(变量a的值也是6)。赋值表达式的值也可以再赋给其它变量,如:a=(b=3+5),括号内的b=3+5是一个赋值表达式,其值为8,所以a的值为8,整个表达式的值也为8。9/18/202426第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符4.4.复合赋值运算符复合赋值运算符C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。例如:a+=5;等价于a=a+5;a*=b+5;等价于 a=a*(b+5);凡是双目运算符,都可以和赋值运算符一起组合成复合的赋值运算符。在C语言中,可以使用的复合赋值运算符有:+=,-=,*=,/=,%=,=,&=,=,|=9/18/202427第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符5.5.关系运算符关系运算符关系运算实际上就是比较运算。比较两个量的运算符就称为关系运算符。 在C语言中为我们提供了6种关系运算符: 小于 大于= 大于或等于= = 等于!= 不等于 关系运算符都是双目运算符,要求两个操作数是同一种数据类型,其结果为逻辑值结果为逻辑值。即关系成立时,其值为真,按C语言的习惯,用非0值(一般用1)表示;关系不成立时,其值为假,用0表示。9/18/202428第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计6.6.逻辑运算符逻辑运算符语言中为我们提供了三种逻辑运算符,分别是:& 与运算| 或运算! 非运算其中,与运算符&和或运算符|均为双目运算符,非运算符!为单目运算符单目运算符。例如:a&b 当a,b都为真时,结果为真a|b 当a,b都为假时,结果为假!a 当a为真时,结果为假;当a为假时,结果为真2.3.1 2.3.1 运算符运算符运算符运算符9/18/202429第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符7.7.位运算位运算位运算符是以单独的二进制位为操作对象的运算。也就是说,其操作数是二进制数其操作数是二进制数。C语言中提供的位运算符有:按位与(&)、按位或(|)、按位异或( )、按位取反()、左移(),9/18/202430第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符8.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。 9/18/202431第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符9.9.逗号运算符逗号运算符用逗号运算符可以将两个表达式连接起来,所形成的就是逗号表达式,其一般形式为:表达式1,表达式2逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式表达式1 1,表达式,表达式2 2,表达式,表达式3 3,表达式,表达式n n表达式表达式n n的值为整个表达式的值。的值为整个表达式的值。9/18/202432第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.1 2.3.1 运算符运算符运算符运算符10.10.条件运算符条件运算符条件运算符是三目运算符,要求有3个操作对象,并且三个操作对象都是表达式。条件表达式的其一般形式为:表达式表达式1? 1? 表达式表达式2 2:表达式:表达式3 3 条件运算的求值规则为:计算表达式1的值,若表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。注意:(1)条件表达式中,表达式1通常为关系或逻辑表达式,表达式2、3的类型可以是数值表达式、赋值表达式、函数表达式或条件表达式。(2)条件表达式的结果类型:表达式2和表达式3中的较高者 。9/18/202433第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.2 2.3.2 表达式表达式表达式表达式表达式由运算符和操作数构成。操作数可以是常量和变量。表达式的类型表达式的类型就是表达式计算结果的类型。混合于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。C语言的编译程序将所有操作数变换为与最大类型操作数同类型。9/18/202434第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.3.2 2.3.2 表达式表达式表达式表达式C语言规定了运算符的优先级和结合性优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。若一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。C规定了各种运算符的结合方向。算术运算符算术运算符的结合方向为“自左至右”,又成为左结合性,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性。关系运算符关系运算符的优先级低于算术运算符,关系运算符中 、= 、 、b)?a:b可以去掉括号,写为max=ab?a:b,执行时意义是相同的。条件运算符的结合方向是自右至左。2.3.2 2.3.2 表达式表达式表达式表达式9/18/202436第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计赋值运算符和复合赋值运算符的优先级相同,且都具有右结合性。它们的优先级除了比逗号运算符的优先级高以外,比其它运算符的优先级都低。逗号运算符是所有运算符中级别最低的。例如:逗号表达式:x=2,4*5运算时,先算第一个赋值表达式x=2,再算算术表达式4*5,最后算整个逗号表达式的值。逗号表达式的值为算术表达式的值20。2.3.2 2.3.2 表达式表达式表达式表达式9/18/202437第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 数据类型历史和特点2.2 变量和常量2.3 运算符和表达式第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.5 数据的输入输出2.6 内部函数2.4 2.4 数据类型转换数据类型转换9/18/202438第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计C语言允许不同数据类型相互转换。类型转换有三种方式:自动类型转换、赋值类型转换和强制类型转换。9/18/202439第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.4.1 2.4.1 类型自动转换类型自动转换类型自动转换类型自动转换 高 double float long unsigned 低 int char,short 9/18/202440第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.4.2 2.4.2 赋值类型转换赋值类型转换赋值类型转换赋值类型转换赋值运算时,如果赋值运算符两侧的类型(指基本类型)不一致,系统自动将表达式的值转换成变量的类型存到变量的存储单元,转换的结果可能出现以下情况:(1) 当整型数据赋给浮点型变量时,数值上不发生任何变化,但有效位增加。如:float f;f=16; /* 内存中变量f的值为16.000000 */(2) 当单、双精度浮点型数据赋给整型变量时,浮点数的小数部分将被舍弃。如:int a;a=8.38; /* 内存中变量a的值为8 */9/18/202441第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.4.2 2.4.2 赋值类型转换赋值类型转换赋值类型转换赋值类型转换(3) 将字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为2个字节,因此将字符数据(8位)放到整型变量低8位中。有两种情况: 将unsigned charunsigned char型型数据赋给unsigned int或int型变量时,高8位补0。 将charchar型型数据赋给unsigned int或int型变量时,若字符值最高位为0,则高8位补0;若字符值最高位为1,则高8位全补1。实际上,长度短的整型数据赋给长度长的变量时,都有类似的处理方法。如unsigned int型数据赋给unsigned long或long型变量时,处理方法类似情况,即将高16位补0;int型数据赋给unsigned long或long型变量时,处理方法类似情况,对高16位分情况处理。9/18/202442第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.4.2 2.4.2 赋值类型转换赋值类型转换赋值类型转换赋值类型转换(4) 当长度长的整型数据赋给长度短的变量时,将进行截断赋值。如将一个long型数据赋给一个int或unsigned int型变量时,只将long型数据的低16位原封不动送到变量中。(5) 当整型数据赋给长度相同的变量时,将进行原样赋值。9/18/202443第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.4.3 2.4.3 强制类型转换强制类型转换强制类型转换强制类型转换可以利用强制类型转换运算符将一个表达式强制转换成所需类型。强制类型转换的一般形式为:( (类型名类型名)()(表达式表达式) )【注意】(1) 表达式应该用括号括起来。例如:(int)(a+b); /* 表示将表达式a+b结果的类型强制 转换成int型 */(int)a+b; /* 表示将变量a的类型强制转换成int型后,再进行运算 */(2) 经强制类型转换后,得到的是一个所需类型的中间变量,原来变量的类型并没有发生任何变化原来变量的类型并没有发生任何变化。9/18/202444第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 数据类型历史和特点2.2 变量和常量2.3 运算符和表达式第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.4 数据类型转换2.6 内部函数2.5 2.5 数据的输入输出数据的输入输出9/18/202445第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计C语言的输入和输出功能由标准输入输出库函数标准输入输出库函数来实现 。stdio.hstdio.h是标准的输入输出函数库头文件,包括putchar(输出字符),getchar(输入字符),printf(格式输出),scanf(格式输入),puts(输出字符串),gets(输入字符串)等函数。考虑到printf、scanf使用频繁,系统允许在使用这两个函数时可省略#include命令。而使用其他函数必须使用预编译命令“#include”,将有关的“头文件”包含到用户源文件中,#include命令一般放在程序的开头。9/18/202446第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintfprintf函数的功能是向系统指定的设备输出若干个任意类型的数据。1.printf1.printf函数调用形式函数调用形式printf函数是一个标准库函数,其调用的一般形式:printf(格式控制字符串,输出列表);(1) 格式控制字符串是用双引号括起来的字符串,它包括两个信息: 格式说明部分格式说明部分。由“%”开头和格式字符结尾,如%d,%c,%f等。它的作用是将要输出的数据转化成指定的格式输出,格式说明都是由“%”字符开始的。 一般字符(非格式字符)一般字符(非格式字符)。即按原样输出的字符,在显示时起提示作用。它由普通字符和转义字符构成。如:printf(na=%dn,a); /* 双引号内换行符、字符c=都是原样输出字符*/9/18/202447第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf(2) 输出列表是需要输出的一些数据,如变量、函数、表达式。输出列表的个数与格式说明符的个数一般应保持一致。如:9/18/202448第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf2.2.格式说明格式说明格式说明符由“%”开头,以一个英文字母结束,它表明输出数据的类型;其间还可以有一些格式控制字符,用以说明数据输出的长度、位数、对齐方式等。 %-+0#输出数据最小宽度m.精度n数据长度类型其中: :表示可选项。格式控制字符-、+、0、#的具体含义如表2-5所示。9/18/202449第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf表2-5 printf函数常用附加格式符字符字符形式形式字字 符符 含含 义义 表示输出时输出数值的符号(或)且数值右对齐,左边补空格,缺省时表示若输出正值,则前面是空格,若是负数,则在数值前面输出负号() 表示输出时,数值左对齐,右边补空格0表示输出时,在数值的前面多余的空格用0来代替# 对格式字符O(八进制)数字前加0,对格式字符x或X(十六进制)数字前加0x或0X9/18/202450第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf 输出数据最小宽度输出数据最小宽度mm:m是十进制整数,它表示用十进制输出的最少位数,当需要输出的数据长度超过该数时,该选项不起作用,数据按实际位数进行输出,当需要输出的数据长度小于该数时,则在该数的左边补空格或0。.精度精度nn:是“.”加上十进制整数n。其含义是:如果输出的是数值,则该数表示小数位数,若实际位数大于所定义的精度,则截去超过部分;如果输出的是字串,则表示输出字符的个数。 数据长度数据长度 :是字符,它有两种形式:h、l。h表示按短整型量输出,l表示按长整型量输出。类型类型:是格式说明符中必须要有的,它表示输出列表里要输出的数据类型。表2-6给出了常用的类型格式符及含义。9/18/202451第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf表2-6 printf函数常用类型格式符表格式字符形式格式字符形式格式字符含义格式字符含义 d(d(或或i)i)表示以十进制形式输出一个带符号的整数(默认正数不输出符号) o o表示以八进制形式输出一个无符号的整数(默认不输出前导符0) x(x(或或X)X)表示以十六进制形式输出一个无符号的整数,用x则输出十六进制的af时以小写形式输出,用X则凡以大写形式输出,(默认不输出前导符0x或0X) u u表示以十进制形式输出一个无符号的整数 f f表示以小数形式输出带符号的实数(包括单、双精度),默认输出6位小数 e(e(或或E)E)表示以指数形式输出,默认小数点前1位非0整数,5位小数。 g(g(或或G)G)表示选择%f或%e格式输出实数(选择占宽度较小的一种格式,不输出无意义的0) c c表示输出一个单字符 s s表示输出一个字符串 % %表示输入百分号本身9/18/202452第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf在使用printf函数时,要注意以下几个问题:(1) 在格式控制字符串中可包“转义字符”,如n、t、r、b、377等。(2) 控制输出类型的格式符除X(表示输出的十六进制数用大写字母输出)、E(表示输出的指数e用大写字母E输出)、G(表示若选用指数形式输出,则用大写字母E输出)外,其余必须是小写字母,如%d不能写成%D。(3) 若想输出字符“%”%”,则在格式字符串中用连续两个%表示。如:printf(%f%,1.0/4);则输出:0.250000%9/18/202453第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计(4)输出是从右向左计算输出项后,按格式说明的顺序对应输出。一般格式说明和输出项的个数和类型应相同,如不匹配系统并不报错,系统将按以下操作。a、格式说明的个数少于输出项的个数,多余的输出项将不输出;格式说明的个数多于输出项的个数,多余的格式说明将输出随机的值。b、整型数据按%f 输出,出现运行错误;实型数据按%d 输出,运行错结果为0; 2.5.1 2.5.1 格式化输出函数格式化输出函数格式化输出函数格式化输出函数printfprintf9/18/202454第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanfscanf函数的功能是从键盘上将数据按用户指定的格式输入并赋给指定的变量。1.scanf1.scanf函数调用形式函数调用形式scanf函数是一个标准库函数,其调用的一般形式:scanf(格式控制字符串,地址列表);其中格式控制字符串的定义与使用方法和printf函数大致相同,但不能显示非格式字符串,即不能显示提示字符串。地址列表是要赋值的各变量地址。地址是由地址运算符“&”后跟变量名组成,如&x表示变量x的地址。& &是取地址运算符是取地址运算符,其作用是求变量的地址。9/18/202455第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf2.2.格式说明符格式说明符与printf函数中的格式说明符相似,以%开始,后面跟一个格式符,中间可以有若干个附加字符,格式字符串的一般形式为:%输入数据宽度m长度 类型其中: :表示可选项:表示输入的数值不赋给相应的变量,即跳过该数据不读。 输入数据宽度输入数据宽度mm:m是十进制正整数,表示按m的宽度输入数据。 长度长度 :长度格式符为l和h,l表示输入长整型数据或双精度实型数据;h表示输入短整型数据。9/18/202456第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf类型类型:是格式说明符中必须要有的,其格式符的意义与printf函数基本相同表表2-7 2-7 scanfscanf函数常用类型格式符表函数常用类型格式符表格式字符形式格式字符形式格式字符含义格式字符含义 d,id,i表示以十进制形式输入一个整数表示以十进制形式输入一个整数 o o表示以八进制形式输入一个整数表示以八进制形式输入一个整数 x(Xx(X) )表示以十六进制形式输入一个整数表示以十六进制形式输入一个整数 u u表示以十进制形式输入一个无符号的整数表示以十进制形式输入一个无符号的整数 f f或或e(Ee(E) )表示输入一个实数,可以是小数形式或指数表示输入一个实数,可以是小数形式或指数形式形式 g(Gg(G) )与与f f或或e e的作用相同的作用相同 c c表示输入一个字符表示输入一个字符 s s表示输入一个字符串表示输入一个字符串9/18/202457第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf说明:(1)对unsigned型变量所需的数据,可以用%u,%d,%o,或%x格式输入;(2)可以指定输入数据所占列数,系统自动按它截取所需数据。(3)如果在一个%后有一个*附加说明符,表示跳过它指定的列数。(4)输入数据时不能规定数据的精度。例如scanf(%8.2f ,&a);是不合法的。9/18/202458第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf在使用scanf函数时,要注意以下几个问题:(1)scanf函数中的“格式控制字符串”后面应该是变量的地地址址,而不应是变量名,这是C语言与其他高级语言不同的地方。例如不能将语句scanf(“%d,%d”,& &a,& &b); 写成scanf(“%d,%d”,a,b);,这是初学者容易出错的地方。(2) 在“格式控制字符串格式控制字符串”中除了格式说明符外,还有其他其他字符字符,则在输入数据时在对应位置上应输入与这些字符相同的字符。例如scanf (a=%d, ,b=%d,&a,&b);则输入时应输入:a=12, ,b=-2其他任何输入形式都不正确。9/18/202459第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计(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 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf9/18/202460第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计(4) 在用“%c”格式输入字符时,所有输入的字符(包括空格字符和“转义字符”)都作为有效字符。例如:scanf(%c%c%c,&a,&b,&c);若输入为: abc 则把字符a赋给变量a,把字符空格赋给变量b,把字符b赋给变量c。(5) 当输出的类型格式符与数据的类型不一致时,虽然编译没有提示出错,但结果有可能不正确。2.5.2 2.5.2 格式化输入函数格式化输入函数格式化输入函数格式化输入函数scanfscanf9/18/202461第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.3 2.5.3 字符数据的输入与输出字符数据的输入与输出字符数据的输入与输出字符数据的输入与输出1.1.字符输入函数字符输入函数getchargetchar字符输入函数getchar()的功能是从标准设备(键盘)上读入一个字符。其一般调用形式:getchargetchar();();该函数没有参数,但一对圆括号不能省略。getchar()只能从键盘上接收一个字符,其常用形式:ch= getchar()与scanf(“%c”,&ch)等价。在使用这个函数时,程序的头部一定要加上文件包含命令:#include 9/18/202462第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.3 2.5.3 字符数据的输入与输出字符数据的输入与输出字符数据的输入与输出字符数据的输入与输出2.2.字符输出函数字符输出函数putcharputchar函数putchar()的功能是向标准输出设备(显示器)输出一个字符。其一般调用形式:putchar(cputchar(c););其中c是参数,它可以是整型或字符型变量,也可以是整型或字符型常量或表达式。当是整型量整型量时,输出以该数值作为ASCIIASCII码所对应的字码所对应的字符符;当是字符型量时,直接输出字符。其功能和printf(“%c”,c)等价。9/18/202463第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.4 2.5.4 字符串的输入与输出字符串的输入与输出字符串的输入与输出字符串的输入与输出1.1.字符串输入函数字符串输入函数getsgetsgets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。调用格式为:gets(sgets(s););其中s为字符串变量(字符串数组名或字符串指针)。gets(sgets(s) )函数与函数与scanf(%sscanf(%s, &s), &s)相似, 但不完全相同, 使用scanf(%s, &s) 函数输入字符串时存在一个问题, 就是如果输入了空格空格会认为输入字符串结束, 空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车回车为止。9/18/202464第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.5.4 2.5.4 字符串的输入与输出字符串的输入与输出字符串的输入与输出字符串的输入与输出2.2.字符串输出函数字符串输出函数putsputsputs()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。puts()puts()函数函数的作用与语句printf(“%snprintf(“%sn”, s)”, s)相同。但puts()函数只能输出字符串, 不能输出数值或进行不能输出数值或进行格式变换格式变换。另外,可以将字符串直接写入puts()函数中。例如:puts(Hello, Turbo C2.0);9/18/202465第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.1 数据类型历史和特点2.2 变量和常量2.3 运算符和表达式第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.4 数据类型转换2.5 数据的输入输出2.6 2.6 内部函数内部函数9/18/202466第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.6 2.6 内部函数内部函数内部函数内部函数C语言提供的函数以库文件的形式存放在系统中。用户在使用函数库时无需定义和说明,只需在程序前包含该函数原型的头文件,就可以在程序中直接使用。使用库函数应清楚四个方面的内容:函数的功能及所能完成的操作,参数的数目和顺序,以及每个参数的意义及类型,返回值的意义及类型,需要使用的包含文件。9/18/202467第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.6 2.6 内部函数内部函数内部函数内部函数常见的有九大类库函数: I/O 函数、字符串、内存和字符函数、数学函数、时间、日期和与系统有关的函数、动态存储分配、目录管理、过程控制、字符屏幕和图形功能、其它函数。 9/18/202468第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.6 2.6 内部函数内部函数内部函数内部函数1、用include命令(#开头,后面没有;) 如:#include “stdio.h” /或#include #include “math.h”2、调用形式:函数名(参数表) 如:y=sqrt(x); ch=getchar(); printf(“jhfjdgn”);9/18/202469第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计2.6 2.6 内部函数内部函数内部函数内部函数函数名函数名函数原型函数原型功能功能函数说明函数说明absabsintint abs(intabs(int num) num)计算整数计算整数num num 的绝对值的绝对值acosacosdouble double acos(doubleacos(double x);x);计算计算coscos11( (x x) )的值的值x x 在在111 1 范范围内围内asinasindouble double asin(doubleasin(double x);x);计算计算sinsin11( (x x) )的值的值x x在在111 1 范围范围内内coscosdouble double cos(doublecos(double x);x);计算计算coscos ( (x x) )的的值值x x 的单位为弧度的单位为弧度expexpdouble double exp(doubleexp(double x);x);求求e ex x 的值的值fabsfabsdouble double fabs(doublefabs(double x);x);求求x x 的绝对值的绝对值floorfloordouble double floor(doublefloor(double x); x); 求不大于求不大于x x 的的最大整数最大整数其值为双精度整其值为双精度整数数powpowdouble double pow(doublepow(double x x , y);, y);计算计算x xy y 的值的值9/18/202470第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式 C C语言程序设计语言程序设计语言程序设计语言程序设计rand rand intint rand() rand()产生一个伪随机数产生一个伪随机数返回值为返回值为 1 132 76732 767randomrandomintint random(intrandom(int n) n)产生产生0n0n之间的随机之间的随机数数sinsinsin(doublesin(double x); x);计算计算sin sin x x 的值的值x x 的单位为的单位为弧度弧度sqrtsqrtsqrt(doublesqrt(double x); x);计算计算 x x 的平方根的平方根x x 应大于等应大于等于于0 0exitexitvoid void exit(intexit(int status); status);终止程序运行终止程序运行systemsystemintint system system(char *char *cmdcmd)发出一个发出一个DOSDOS命令命令clockclockclock_tclock_t clock(voidclock(void) )确定所用的处理器确定所用的处理器时间时间timetimetime_ttime_t time(time_ttime(time_t * *tptp) )获取系统时间获取系统时间9/18/202471第第2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号