大学计算机基础第2章教学)_第1页
大学计算机基础第2章教学)_第2页
大学计算机基础第2章教学)_第3页
大学计算机基础第2章教学)_第4页
大学计算机基础第2章教学)_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、第第 2 2 章章 数据类型与基本操作数据类型与基本操作 2.1 数据在计算机中的表示方法 2.2 常量和变量 2.3 基本数据类型 2.4 运算符与表达式 2.5 数据的输入和输出22.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法第2章数据类型与基本操作2.1.1 2.1.1 数值的定点表示与浮点表示数值的定点表示与浮点表示1.定点整数 定点整数小数点的位置默认为在最低的二进制位的后面,注意小数点并不占一个二进制位,二进制位的最高位是符号位,表示数的符号,最高位为零表示正数,最高位为1表示负数。 S0(符号位) S1S2S3Sn(数值部分)定点整数在计算机内部的表示形式如下:

2、32.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法2.1.1 2.1.1 数值的定点表示与浮点表示数值的定点表示与浮点表示2.定点小数 定点小数的表示方法与定点整数类似,最高位仍然表示符号位,不同之处在于小数点的位置默认为在符号位的后面,即二进制位最高位的后面,它也不占二进制位,所以在一个定点小数中,最高位后面所有的二进制位表示的是一个纯小数。 S0(符号位) S1S2S3Sn(数值部分)定点小数在计算机内部的表示形式如下:第2章数据类型与基本操作42.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法2.1.1 2.1.1 数值的定点表示与浮点表示数值的定点表示与浮

3、点表示3.浮点数 通常所说的浮点数就是指小数点位置不固定的数,在计算机内部用浮点数形式表示数值的时候,首先要进行规格化,然后用三个字节存放尾数(数值)部分,用一个字节存放阶码(指数)部分,比如实数123.456的浮点数表示形式如下所示: 0.1 2 3 4 5 6 + 3 定点小数在计算机内部的表示形式如下:+第2章数据类型与基本操作52.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法 2.1.2 2.1.2 字符的表示和存储方式字符的表示和存储方式 字符在计算机内部,也要用二进制来表示,这就需要对字符进行编码,经过编码后的二进制数才能够被计算机处理。字符编码的方法有很多,最普遍

4、使用的是美国标准信息交换码(American Standard Code for Information Interchange),简称ASC码。 每个ASC以1个字节存储,0127代表不同的常用符号,标准的ASC码使用7个二进制位对字符进行编码,标准的ASC码字符集共有128个字符,其中有96个可打印字符,包括常用的字母、数字、标点符号等,另外还有32个控制字符,对应的标准为ISO 646标准。第2章数据类型与基本操作62.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法 2.1.2 2.1.2 字符的表示和存储方式字符的表示和存储方式 对于我国所使用的汉字,在利用计算机进行汉字

5、处理时,同样也必须对汉字进行编码。汉字的编码主要有国标区位码、机内码和机外码,根据我国的国家标准GB2312-80方案中规定用两个字节的十六位二进制数表示一个汉字。比如小写a的ASC码为97,大写字母的ASC码比其相应的小写字母小32,大写A的ASC码为65。 在C语言中,字符数据可以用数值的形式输出,输出的内容是字符对应的ASC码,反之一个整数也可以用字符形式输出,输出的内容是该ASC所对应的字符。字符数据还可以进行算术运算。第2章数据类型与基本操作72.1 2.1 数据在计算机中的表示方法数据在计算机中的表示方法 2.1.2 2.1.2 字符的表示和存储方式字符的表示和存储方式/*-字符的

6、表示形式示例-*/#include main () /*主函数*/ char ch ; /*声明一个字符变量ch*/ ch = a ; /*给变量ch赋值*/ printf (“%dn”, ch) ; /*输出字符的ASC码*/ printf (“%dn”, ch-32) ; 程序运行结果如下:9765第2章数据类型与基本操作82.2.1 直接常量与符号常量 常量常量是指在程序运行中是指在程序运行中,其数值不能被改变的量。其数值不能被改变的量。 常量常量又可分为直接常量和符号常量。又可分为直接常量和符号常量。2.2 2.2 常量与变量常量与变量第2章数据类型与基本操作9 120 、 -100、

7、 0; 0120、 072; 0 xFFFF、 0 x1e、0X28AF,0XED4 ; 120L, 200L ; 长整型常量长整型常量 3.14、 -3.1、 5.12E-6 ; a 、#、n、101 ; 099、12f、 0 xg 、48EA ; 019.5 、1e-08; 实型常量只能用十进制形式表示实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; changsha 、+?ab ; 、p 、ab ;1、直接常量:直接常量:是在程序中直接引用的数据。是在程序中直接引用的数据。请判断这些常量正确与否:请判断这些常量正确与否:第2章数据类型与基本操作102、符

8、号常量符号常量 是是用标用标识符来表示一个数据;识符来表示一个数据;在程序不能给它赋值。在程序不能给它赋值。 定义形式定义形式: #define 标识符标识符 常量数据常量数据 例如例如: #define PI 3.14159 在程序预处理时,凡是出现标识符在程序预处理时,凡是出现标识符PI的地方都将用的地方都将用数据数据3.14159来替换。来替换。 如如: 2*2.3*PI 就就等价于等价于 2*2.3*3.14159。第2章数据类型与基本操作11 标识符(标识符(Identifiers) 用户自定义的符号叫标识符 如变量名、函数名、宏和类型名标识符由字母、数字和下划线组成,大小写敏感不可

9、以是数字开头标识符要直观,能表达它的功能下划线和大小写通常用来增强可读性 variablename variable_name, VARIABLE_NAME VariableName, variableName关键字(keyword)不可作为标识符 int, float, for, while, if等某些功能的变量采用习惯命名 如:for语句所采用的循环变量习惯用i, j, k 第2章数据类型与基本操作122.2.2 变量 变量是指以标识符为名字,其值可以改变的量。变量是指以标识符为名字,其值可以改变的量。 变量代表计算机内存中的某一存储空间,该存储空间变量代表计算机内存中的某一存储空间,该

10、存储空间 中存放中存放的数据就是变量的值。的数据就是变量的值。 在同一程序块中,变量不能被重复定义。在同一程序块中,变量不能被重复定义。 使用变量时必须使用变量时必须“先定义,后使用先定义,后使用”。 第2章数据类型与基本操作131、定义形式:定义形式:类型类型标识符标识符: 变量名变量名1 ,变量名变量名2,变量名变量名3.; 例如例如:int a,b,c ; float x,y; char c1,c2; 或或 int c1,c2; 自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:int,int,float,charfloat,char;不可省;不可省2、变量初始化变量初始化

11、 在说明变量的同时给变量一个初始值。在说明变量的同时给变量一个初始值。 例如例如int a=5, b=3; int a=5, b=3; int a=b=c=3; int a=b=c=3; int a,b,c; a=b=c=3; int a,b,c; a=b=c=3; 第2章数据类型与基本操作14变量在内存中占据一定的存储单元变量在内存中占据一定的存储单元(具体长度视数据类型而定具体长度视数据类型而定)。(1)int total; (2) float a=5; total=80; 变量值变量值total 200020022004变量名变量名(符号地址)符号地址)存储单元号存储单元号(物理地址物理

12、地址)20012003200580520062007a第2章数据类型与基本操作15 字符字符型(型(charchar) 整型整型(short,int,long,unsignedshort,int,long,unsigned) 单精度型(单精度型(floatfloat) 实型实型 双精度型(双精度型(doubledouble) 枚举类型(枚举类型(enumenum) 数组类型(数组类型( ) 构造类型构造类型 结构体类型(结构体类型(structstruct) 共用体类型(共用体类型(unionunion) 指针类型(指针类型(* *) 空类型(空类型(voidvoid)基本类型基本类型数据类型

13、数据类型2.3 C2.3 C语言的基本数据类型语言的基本数据类型第2章数据类型与基本操作161 1、整型常量、整型常量: (1) (1) 十进制形式十进制形式: :与数学上的整数表示相同;与数学上的整数表示相同; 例如例如: 12, -100, 0: 12, -100, 0 (2) (2) 八进制形式八进制形式: :在数码前加数字在数码前加数字0 0; 例如例如: 012=1: 012=1* *8 81 1+2+2* *8 80 0=10(=10(十进制)十进制) (3) (3) 十六进制形式十六进制形式: :在数码前加在数码前加0X0X(数字数字0和字母和字母X)。)。 例如例如: 0 x1

14、2=1: 0 x12=1* *16161 1+2+2* *16160 0=18(=18(十进制)十进制) * 八进制的数码范围为八进制的数码范围为07; 018 * 十六进制的十六进制的数码除了数字数码除了数字0 09 9外外, , 还使用英文字母还使用英文字母a f (或或A F)表示表示1015。 如:如:0 x1e 2.3.1 整型数据第2章数据类型与基本操作17 分类:分类: 根据数据所占的二进制位数分为根据数据所占的二进制位数分为: :int、short、long; 同样存储长度的数据又分同样存储长度的数据又分unsigned、signed; 故可组合出六种类型。故可组合出六种类型。

15、 值域值域: 由机器中数据的存储长度决定。由机器中数据的存储长度决定。 如如VisualVisualC+中,有中,有 short(2字节字节)int(4字节字节) long(4字节字节) 关键字关键字 所占位数所占位数 取值范围取值范围 short 16 short 16 -32768-327683276732767 unsigned short 16 unsigned short 16 0 06553565535 int 32 -2147483648 int 32 -214748364821474836472147483647 unsigned 32 unsigned 32 0 042949

16、672954294967295 long 32 -2147483648 long 32 -214748364821474836472147483647 unsigned long 32 unsigned long 32 0 042949672954294967295第2章数据类型与基本操作182、整型变量整型变量的分类整型变量的分类基本型(整型)基本型(整型) int 4字节字节 短整型短整型 short 或或 short int 2字节字节 长整型长整型 long 或或 long int 4字节字节 无符号整型无符号整型: unsigned (int) 4字节字节无符号短整无符号短整型型:u

17、nsigned short 2字节字节 无符号长整型无符号长整型:unsigned long 4字节字节 第2章数据类型与基本操作191 1、实型常量:、实型常量:(1) (1) 十进制小数形式:十进制小数形式:由数字和小数点组成;由数字和小数点组成; 例如例如: 3.4, 4., .3: 3.4, 4., .3。(2) (2) 指数形式:指数形式:“十进制小数十进制小数”+“ e(+“ e(或或E)”+“E)”+“十进制数整十进制数整数数”。 例如例如: 12.5e-6: 12.5e-6 表示表示12.512.51010-6 。 小数点不能单独出现;小数点不能单独出现; 0.0. .0 .0

18、 . . e e或或E E的两边必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数; 如:如: 6E0.2 6E0.2 e5e5 2、分类:分类: 关键字关键字 字节数字节数 取值范围取值范围 精度精度( (位位) ) float 4 3.4 float 4 3.41010-38 3.43.4101038 7 7 double 8 1.7 double 8 1.71010-308 1.71.71010308 1515注意注意2.3.2 实型数据第2章数据类型与基本操作202 、实型变量实型变量的分类实型变量的分类单精度:单精度: float float 4 4字节字节(32(32

19、位位) ) 双精度:双精度: double double 8 8字节字节(64(64位位) ) 实型变量的定义实型变量的定义例例1 1:float x,y; float x,y; double z; double z; 例例2 2:float a;float a; a= a=123456.7123456.79191;注注: : floatfloat型变量只能接受型变量只能接受7 7位位有效数字,最后两有效数字,最后两 位数字不起作用。位数字不起作用。 double double 型变量能接受型变量能接受1616位位有效数字。有效数字。第2章数据类型与基本操作211 1、字符型常量字符型常量:

20、(1) (1) 用单引号括起来的一个字符;如:用单引号括起来的一个字符;如:A、 1、?等等。 (2) (2) 用单引号括起来的由反斜杠用单引号括起来的由反斜杠( ( ) )引导的转义字符。引导的转义字符。 字符形式字符形式 功能功能 n n 换行换行 t t 横向跳格横向跳格 b b 退格退格 r r 回车回车 反斜杠字符反斜杠字符 单引号字符单引号字符 ddd 8ddd 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符 xhh 16xhh 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符2.3.3 字符型数据第2章数据类型与基本操作22例如:字

21、符例如:字符A A的的ASCIIASCII码为:码为: 65D65D(十进制)(十进制)=41H=41H(十六进制)(十六进制)=101Q=101Q(八进制)(八进制) 字符字符A A可以表示为可以表示为AA、x41x41、101101。分类:分类: char char 和和 unsigned charunsigned char;值域:值域: 每个字符型数据在内存中占每个字符型数据在内存中占一一个字节;包括个字节;包括ASCIIASCII字符字符表中的所有字符(可显示字符和非显示字符)。表中的所有字符(可显示字符和非显示字符)。字符串:字符串: 是用一对双引号括起来的字符序列。是用一对双引号括

22、起来的字符序列。 如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijkAbcdeFGHijk”,“How are How are you”you”。 注意注意 a a与与“a”a”的区别。的区别。第2章数据类型与基本操作232、 字符型变量字符型变量定义:定义:用来用来存放一个字符存放一个字符常量的变量常量的变量. .在内存中占在内存中占一字节一字节宽度,以宽度,以ASCIIASCII码码形式存放形式存放。注:注:(1 1)字符字符变量变量字符字符串常量串常量 (2 2)无无专门的专门的字符串变量字符串变量 若保存字符串,必须使用若保存字符串,必须使用字符数组字符数组。 例

23、例: char c1= a,c2; 等效等效 c2 = b; c2=“abcd”; char c1,c2; c1= a ; c2 = b; 第2章数据类型与基本操作24说明:说明:字符型与整型可通用、互相赋值字符型与整型可通用、互相赋值原因:原因:字符以字符以ASCII码存储,其存储方式与整数类似。码存储,其存储方式与整数类似。 从而,从而,C语言允许字符和整数之间进行运算。语言允许字符和整数之间进行运算。main() char c1=97,c2; int i= a ; c2=c1+1; printf(%c,%d,%c,%d n,c1,c1,c2,c2); printf(%c,%dn,i,i)

24、; 97 a c1 i c2 98输出输出: a,97,b,98 a,97第2章数据类型与基本操作25 按操作功能运按操作功能运算符大致可分为算符大致可分为算算术运算符、关系运术运算符、关系运算符、逻辑运算符、算符、逻辑运算符、按位运算符以及其按位运算符以及其它运算符如赋值运它运算符如赋值运算符、算符、条件运算符、条件运算符、逗号运算符等。逗号运算符等。 表达式表达式是由操是由操作数和运算符组成作数和运算符组成的序列。的序列。 2.4 2.4 运算符与表达式运算符与表达式算术运算符算术运算符 + - + - * * / % / %关系运算符关系运算符 = = = = = != !=逻辑运算符逻

25、辑运算符 ! & & 位运算符位运算符 | &| &赋值运算符赋值运算符 = = 条件运算符条件运算符 ?: :逗号运算符逗号运算符 ,指针运算符指针运算符 * * 和和 & &求字节数运算符求字节数运算符 sizeofsizeof强制类型转换运算符强制类型转换运算符分量运算符分量运算符 下标运算符下标运算符 第2章数据类型与基本操作26 2.4.1 算术运算符和算术表达式 1 1、 运算符运算符 +(+(加加) ):3+43+4、 +3+3 -( -(减减) ):3-53-5、 -5-5 * *( (乘乘) ):3 3* *5 5 /( /(除除) ):5/25/2的值为的值为2 2;5.0

26、/25.0/2的值为的值为2.52.5; %(%(取余取余) ):5%35%3的值为的值为2 2; -5%3-5%3的值为的值为-2-2; 5%(-3)5%(-3)的值为的值为2 2; -5%(-3)-5%(-3)的值为的值为-2-2; 12.3%3 12.3%3 若若a a能被能被b b整除,则有:整除,则有:a%b=0 a%b=0 第2章数据类型与基本操作27 2 2、算术表达式算术表达式 用算术运算符和括符将操作数连接起来的式子。用算术运算符和括符将操作数连接起来的式子。 优先级:()优先级:() * *、/ /、% +% +、- - 结合性:从左至右;结合性:从左至右; 表达式的值:表

27、达式的值: 数值型数值型(int(int、longlong、unsignedunsigned、double)double);例如:例如: 已知:已知: float a=2.0;float a=2.0; int b=6,c=3; int b=6,c=3; 求解:求解: a a* *b/c-1.5+a+fabs(-5)=b/c-1.5+a+fabs(-5)=?第2章数据类型与基本操作283 3、自增与自减运算符自增与自减运算符 +i,-i+i,-i:使用之前使:使用之前使i i的值增的值增1 1(或减(或减1 1);); i+,i- i+,i-:使用之后使:使用之后使i i的值增的值增1 1(或减

28、(或减1 1););等价于等价于 i=i+1;i=i+1;j=i;i+; j=i;i+; 所以所以i i的值为的值为4 4,j j的值为的值为3 3。i+;j=i; i+;j=i; 所以所以i i的值为的值为4 4,j j的值为的值为4 4。例如:例如:(1) i+;(1) i+; +i; +i;(2) i=3;(2) i=3; j=i+; j=i+; (3) i=3;(3) i=3; j=+i; j=+i;第2章数据类型与基本操作29 结合性:自右至左。结合性:自右至左。 如:如: i = 2;i = 2; j = -i+; j = -i+; 等价于:等价于:j=-(i+);j=-(i+);

29、 即:即: j=-i;i+; j=-i;i+; “+”与与”- -“是同优先级是同优先级 所以所以i i的值为的值为3 3,j j的值为的值为-2-2。 注意注意 “ “+”+”或或“-”-”自增与自减运算符的使用。自增与自减运算符的使用。 如:设如:设i=3i=3,k=(i+)+(i+)+(i+)k=(i+)+(i+)+(i+),k=k=? 如:设如:设i=3i=3,j=4j=4,k=i+jk=i+j,k=k=?第2章数据类型与基本操作30 1 1、赋值运算符赋值运算符 = = 2 2、赋值表达式:赋值表达式:用赋值运算符将变量和表达式连接起来用赋值运算符将变量和表达式连接起来的式子的式子

30、形式形式: : = 求值规则求值规则: : 将将“=”=”右边表达式的值赋给左边的变右边表达式的值赋给左边的变量。量。 优先级:优先级: ! ! 算术算术 关系关系 &和和| 赋值赋值 结合性:自右至左;结合性:自右至左; 表达式的值:表达式的值:被赋值变量的值被赋值变量的值。例如例如:(1) x=(y=12)/4 (1) x=(y=12)/4 y y值为值为1212,x x值为值为3 3,表达式的值为,表达式的值为3 3 (2) x=y=12/4 (2) x=y=12/4 y y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3 (3) x=(y=12/4) (3) x=

31、(y=12/4) y y值为值为3 3,x x值为值为3 3,表达式的值为,表达式的值为3 3 (4) (x=y)=12/4 (4) (x=y)=12/4 2.4.2 赋值运算符和赋值表达式第2章数据类型与基本操作31 3 3、复合赋值运算符复合赋值运算符 * *= =、/=/=、 %=%=、 +=+=、 -=, =-=, =, &=, &=、 =、 = 注意注意: : 复合运算符是一个运算符复合运算符是一个运算符, ,但功能上但功能上, ,是两个运算符功是两个运算符功能的组合。能的组合。例如例如: : (1) a+=b (1) a+=b 相当于相当于 a=a+ba=a+b a a* *=b

32、=b 相当于相当于 a=aa=a* *b b a a* *=b+c =b+c 相当于相当于 a=aa=a* *(b+c) (b+c) 而不是而不是 a=aa=a* *b+cb+c (2) (2) 设设a=12a=12,计算表达式,计算表达式a+=a-=aa+=a-=a* *1212和和a+=a-=aa+=a-=a* *=12=12 的值的值第2章数据类型与基本操作32 1 1、6 6种关系运算符:种关系运算符: = = != = = != 2 2、关系表达式:关系表达式:用关系运算符将表达式连接起来的式子用关系运算符将表达式连接起来的式子 优先级优先级: ( = )( = ) ( = != )

33、( = != ) 结合性结合性:自左至右;:自左至右; 表达式的值表达式的值: 若为真,则结果为若为真,则结果为1 1; 若为假,则结果为若为假,则结果为0 0。35 35 的值为的值为 0 0;32 32 的值为的值为 0 0;3+(43)3+(43)* *4 4的值为的值为 3 3;3+43+43 & | 结合性:自左至右;结合性:自左至右; 表达式的值:表达式的值: 若为真,则结果为若为真,则结果为1 1; 若为假,则结果为若为假,则结果为0 0。 2.4.4 逻辑运算符和逻辑表达式第2章数据类型与基本操作34 int a=5; float b=3.5; !a (0) !(a b) (1

34、) a & b (1) !a&b (0) !a&!b (0) !(a&b) (0) &:只要有一个为假,结果则为假;只要有一个为假,结果则为假; a b (1) !a|b (1) !a|!b (0) !(a|b) (0) |:只要有一个为真,结果则为真;只要有一个为真,结果则为真; (a 0) (0) (a 0) (1)例如例如第2章数据类型与基本操作35注意:注意: 在逻辑表达式的求解中,并不是所有的逻辑运算符在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。表达式的解时,

35、才执行该运算符。例如:例如: (1)a = 0; b = 1; (1)a = 0; b = 1; c = a+ & ( b = 3 ); c = a+ & ( b = 3 ); 结果结果: a: a为为1,b1,b为为1,c1,c为为0 0。 (2)a = 1; b = 1; c=0;(2)a = 1; b = 1; c=0; d = -a d = -a b- b- (c = b+3 ); (c = b+3 ); 结果结果: a: a为为0,b0,b为为0,c0,c为为0,d0,d为为1 1。第2章数据类型与基本操作36逻辑表达式一般用于控制语句中的条件:逻辑表达式一般用于控制语句中的条件:例

36、如:例如: (1) n(1) n是小于是小于m m的偶数:的偶数: nm&n%2=0nm&n%2=0 (2)year (2)year是闰年是闰年: : (能被(能被4 4整除但不能被整除但不能被100100整除或能被整除或能被400400整除)整除) year %4=0&year%100!=0|year%400=0第2章数据类型与基本操作37 ? ?和和: : , ,它们与三个操作数组组成三元运算。它们与三个操作数组组成三元运算。 形式为形式为: : ? ? :3 求值规则和表达式的值求值规则和表达式的值: : 真真( (非非0),0),求解表达式求解表达式2 2 求解表达式求解表达式1 1

37、条件表达式的值条件表达式的值 假假(0),(0),求解表达式求解表达式3 3例如例如: : int max, int max,a=5;b=3;a=5;b=3; max=ab?a:b max max=ab?a:b max及赋值表达式的值均为及赋值表达式的值均为5;5; ab?a:b+1 a 条件条件 赋值赋值 第2章数据类型与基本操作39 结合性:自右至左;结合性:自右至左; y = x10 ? x/10 : x0 ? x: -xy = x10 ? x/10 : x0 ? x: -x; 等价于等价于: : y = x10 ? x/10 :(x10 ? x/10 :(x0? x: -x); 当当x

38、 x的值为的值为1515时,表达式的结果为:时,表达式的结果为:1 1 当当x x的值为的值为5 5时,表达式的结果为:时,表达式的结果为:-5-5第2章数据类型与基本操作40 ! ! 高高 算术运算符算术运算符 关系运算符关系运算符 &和和| | 赋值运算符赋值运算符 低低 4 - 04 - 01 & 21 & 28 48 3 & 2 | 8 3 & 2 | 8 b ab 截断高截断高a-ba-b位,送低位,送低b b 位;位; 有符号数据有符号数据 有符号变量:符号扩展;有符号变量:符号扩展; 其他情况:高其他情况:高a-ba-b位全补位全补0 0。 符号扩展:符号扩展: 符号位为符号位为

39、0 0,剩余的高位补,剩余的高位补0 0; 符号位为符号位为1 1,剩余的高位补,剩余的高位补1 1。ababfloat f=23; 23.00000 f (7位)位)double f=A; 23.0000000000000 f(15位)位)第2章数据类型与基本操作44 3、强制类型转换 形式:形式: ( (类型名类型名) )表达式表达式 强制类型转换时强制类型转换时, ,得到所需类型的中间变量,原来变得到所需类型的中间变量,原来变 量的类型不会改变。量的类型不会改变。 例如:例如: int a=2,b=5;int a=2,b=5; float x=4.4; float x=4.4; 则有:则

40、有: 表达式表达式 结果结果 b/a 2b/a 2 (float)b/a 2.5 (float)b/a 2.5 (float)(b/a) 2.0 (float)(b/a) 2.0 (int)x%a+x 4.4 (int)x%a+x 4.4 (int)x%(a+x) (int)x%(a+x) 第2章数据类型与基本操作45C C语言不提供输入输出语句,输入输出由系语言不提供输入输出语句,输入输出由系统提供的函数实现,函数的原型在头文件统提供的函数实现,函数的原型在头文件stdio.hstdio.h中定义,使用输入输出函数时,应在中定义,使用输入输出函数时,应在源程序的开头使用如下语句源程序的开头使

41、用如下语句: :#include “stdio.h”#include “stdio.h”或或#include stdio.h#include #include#include是一个预编译命令是一个预编译命令。stdio.hstdio.h包含了标准包含了标准I/OI/O库有关的变量和宏定义,库有关的变量和宏定义,由于放在程序的开头,因此称为由于放在程序的开头,因此称为“头文件头文件”;又由于使用又由于使用#include#include(包含)命令,又称为(包含)命令,又称为“包含文件包含文件”。 2.5 2.5 数据的输入和输出数据的输入和输出第2章数据类型与基本操作462.5.1 格式输出函

42、数printf()1.格式格式: printf(格式控制字符串,输出值参数表格式控制字符串,输出值参数表);2.功能功能: 将输出值参数列表按指定的格式输出,将输出值参数列表按指定的格式输出, 即在屏幕上显示出来即在屏幕上显示出来 例:例:printf (“%d , %f n”, a , b );3.说明说明:(1)格式控制格式控制:双引号双引号括起来的字符串括起来的字符串 包括:包括: 格式说明:格式说明:%+格式字符格式字符 普通字符:普通字符:原样输出原样输出的字符的字符 (2)输出列表:输出列表:需要输出的一些数据需要输出的一些数据, 可以是表达式可以是表达式。 例:例:printf(

43、“a=%d b=%d”,a,b=a);第2章数据类型与基本操作474使用使用printf函数的几点说明:函数的几点说明:除除X、E、G外,其它格式字符必须用外,其它格式字符必须用小写小写字母字母 如如%d %D “格式控制格式控制”字符串内字符串内可可包包含转义字符含转义字符,如,如n t等等格式字符必须前格式字符必须前加加%才成为格式说明,否则就是才成为格式说明,否则就是 原样输出字符原样输出字符 如:如:d f c u o x s e g等等输出输出%号用号用% 第2章数据类型与基本操作481000 0000 0000 0010main() unsigned int a = 65535;

44、int b = -2; printf(a=%d,%o,%x,%un,a,a,a,a); printf(“b=%d,%o,%x,%un,b,b,b,b); b= -2a= -1, 177777, ffff, 65535b= -2, 177776, fffe, 65534a=655351111 1111 1111 11111111 1111 1111 11101000 0000 0000 00011111 1111 1111 11011111 1111 1111 1110第2章数据类型与基本操作495. 格式修饰符:格式修饰符:格式修饰符格式修饰符是可选的,用于确定数据输出的宽度、是可选的,用于确

45、定数据输出的宽度、精度、小数位数、对齐方式等,用于产生更规范整精度、小数位数、对齐方式等,用于产生更规范整齐的输出,当没有修饰符时,以上各项按系统缺省齐的输出,当没有修饰符时,以上各项按系统缺省设定显示。设定显示。如:如:printf(%d,%5d,%05d,%ld,i ,i , i, j);第2章数据类型与基本操作50修饰符格式说明意义修饰符格式说明意义%md 以宽度以宽度m输出整型数,不足输出整型数,不足m时,左补空格时,左补空格,若大于,若大于m,则按实际长度输出,则按实际长度输出%0md 以宽度以宽度m输出整型数,不足输出整型数,不足m时,左补零时,左补零%m.nf 以宽度以宽度m输出

46、实型小数,小数位为输出实型小数,小数位为n位,对位,对齐方式为右对齐齐方式为右对齐%-m.nf 以宽度以宽度m输出实型小数,小数位为输出实型小数,小数位为n位,对位,对齐方式为左对齐齐方式为左对齐%m.ns 以宽度以宽度m输出字符串,输出字符串,n为截取的字符个数为截取的字符个数第2章数据类型与基本操作51main() int i = 123; long j = 123456; printf(%d,%5d,%05d,%2d,i ,i , i, j); 123,123, 00123, 123456输出输出:(表示空格表示空格)第2章数据类型与基本操作52main() float f=122.456001; printf(%f %10f %10.2f %-10.2f %.2fn,f,f,f,f,f); 输出输出: 122.456001 122.456001 122.46 122.46 122.46第2章数据类型与基本操作53 l(字母) 用于长整型数(%ld、%lo、%lx)或double型实数(%lf、%le) h 用于短整型数(%hd、%ho、%hx) 域宽(一个正整数) 指定输入所占列宽,系统根据 宽度值自动截取数据第2章

温馨提示

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

评论

0/150

提交评论