常州信息学院C语言课程组 (2)_第1页
常州信息学院C语言课程组 (2)_第2页
常州信息学院C语言课程组 (2)_第3页
常州信息学院C语言课程组 (2)_第4页
常州信息学院C语言课程组 (2)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 根基信息类型本章关键任务:1、领会C语言富厚的信息类型;常量、变量的概念.2、把握变量定义原那么和符号常量定义方式.3、把握常用根基信息类型(整型、实型、字符型)信息的常量示意、机内存储、变量分类以及把握精确挑选信息类型.4、领会数值型信息混合运算及类型变形规律. 一、C的信息类型数据类型基本类型构造类型指针类型空类型整型(长短;有无符号)字符型(有无符号)实型(浮点型)枚举类型数组类型结构体类型共同体类型单精度型双精度型C语言有丰富的数据类型一、C的信息类型1、讲明(1)信息有类型.(2)差别的信息类型有差别的取值范畴.似有符号整数取值范畴-3276832767,浮点数-3.4e-3

2、83.4e38. (3)差别的信息类型有差别的操纵.似整型数能够取余操纵,实型信息却不可;整型、实型信息能够有加法,字符数组不可. (4)差别的信息类型纵然有一样的操纵有时含义也差别,似指针信息自增1与整数自增1含义是差别的.一、C的信息类型(5)C语言的信息类型能够组织复杂的信息结构.似使用结构体数组能够组织线性表.使用指针类型、结构体类型能够组织线性链表(栈、队列)、树、图. (6)C语言中的信息有变量与常量,它们分不属于上述这些类型. 二、常量与变量1、常量(1)定义在程序的运行环节中,其值不能改变的量称为常量. 二、常量与变量(2)常量类型似:12、0、-3为整型常量4.6、-1.23

3、为实型常量a、d字符常量.常量能够从字面形式即可推断-字面常量或直截了当常量.二、常量与变量(3)符号常量#define PI 3.1416使用符号常量的益处:含义清楚、见名知意.修改方便、一改全改.例2-1:符号常量应用#define PI 3.14void main() float area; area=10*10*PI; printf(area=%fn,area);结论:area=314.000000二、常量与变量2、变量(1)定义在程序的运行环节中,其值能够改变的量称为变量. 二、常量与变量(2)变量名(用标识符示意)、变量在内存中占据的存储单元、变量值三者关系.变量名在程序运行环节中

4、不大概改变,变量的值能够改变.变量名遵守标识符准那么. 二、常量与变量(2) C语言中变量:“先定义,后使用”.C要求对全部用到的变量做强拟定义.只有申明过的变量才能够在程序中使用,这使得变量名的拼写错误简单发觉.申明的变量属于确定的类型,编译系统可方便地查抄变量所履行运算的合法性.在编译时依照变量类型能够为变量确定存储空间,“先定义后使用”使程序功效高.三、整型信息1、整型常数的示意方式1)十进制.123,-456,0.2)八进制.以0开头,背面跟几位的数字(0-7).0123=(123)8=(83)10;-011=(-11)8=(-9)10. 3)十六进制.以0 x开头,背面跟几位的数字(

5、0-9,A-F).0 x123=291,-0 x12=-18. 三、整型信息2、整型变量(1)整型信息在内存中的存放形式 信息在内存中以二进制形式存放,事实上以补码形式存放.三、整型信息例似:定义一个整型变量i=10.其内存模型似下:三、整型信息(2)整型变量的分类1)依照表达范畴能够分为:根基整型 (int)、短整型(short int)、长整型(long int).用long型能够获得大范畴的整数,但同时会落低运算速度. 2)依照是否有符号能够分为:有符号(signed,默认),无符号(unsigned)-意图:张大示意范畴,有些情况只需要用正整数. 三、整型信息6种整型变量:l 有符号根

6、基整型 :signedintl 有符号短整型 :signedshortintl 有符号长整型 :signedlongintl 无符号根基整型 :unsigned intl 无符号短整型 :unsigned short intl 无符号长整型 :unsigned long int三、整型信息例似:保留整数13的各种整型信息类型. 三、整型信息三、整型信息(3)整型变量的定义 标准:信息类型名 变量名表;例似:void main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“%d,%dn”,c,d); 三、整

7、型信息讲明:(1)变量定义时,能够讲明多个一样类型的变量.各个变量用“,”分隔.类型讲明与变量名之间到少有一个空格间隔.(2)末了一个变量名之后必须用“;”末端.(3)变量讲明必须在变量使用之前.(4)能够在定义变量的同时,对变量履行初始化.三、整型信息(4)整型信息的溢出 整型数最大许可值+1,最小许可值-1,会表现啥情况?结论:超出范畴便产生“溢出”,运行时不报错. 例2-2a:整型信息的溢出void main() int a,b; a=32767; b=a+1; printf(na=%d,a+1=%dn,a,b); a=-32768; b=a-1; printf(na=%d,a-1=%d

8、n,a,b); getch();a=32767,a+1=-32768a=-32768,a-1=32767四、实型信息1、实型常量的示意方式(1)十进制小数形式.由数字,小数点组成(必须有小数点).例似:.123、123.、123.0、0.0(2)指数形式.标准:aEn.例似:123e3、123E3根基上实数的合法示意. 四、实型信息讲明:1)字母e或E之前必须有数字,e背面的指数必须为整数.例似:e3、2.1e3.5、.e3、e都不是合法的指数形式.2)范例化的指数形式.在字母e或E之前的小数部分,小数点左边应当有且只能有一位非0数字.用指数形式输出时,是按范例化的指数形式输出的.例似:2.3

9、478e2、3.0999E5、6.46832e12都属于范例化的指数形式.3)实型常量根基上双精度,似果要指定它为单精度,能够加后缀f(实型信息类型参看实型变量部分讲明). 四、实型信息2、实型变量 (1)实型信息在内存中的存放形式 一个实型信息一样在内存中占4个字节(32位).与整数存储方式差别,实型信息是依照指数形式存储的.系统将实型信息分为小数部分和指数部分,分不存放.四、实型信息(2)实型变量的分类 单精度(float)、双精度(double)、长双精度(long double). 类型比特数有效数字数值范畴float326-7-3.4x10+38 3.4x10+38double641

10、5-16-1.7x10+308 1.7x10+308long double12818-19-1.2x10+4932 1.2x10+4932四、实型信息(3)实型信息的舍入误差实型变量是用有限的存储单元存储的,所以提供的有效数字是有限的,在有效位以外的数字将被舍去,由此大概会产生部分误差.例2-3a:实型信息的舍入误差(实型变量只能保证7位有效数字,背面的数字无意义)void main() float a,b; a=123456.789e5; b=a+20; printf(a=%f,b=%fn,a,b); printf(a=%e,b=%en,a,b); a=12345678848.000000,

11、b=12345678848.000000a=1.23457e+10,b=1.23457e+10 四、实型信息结论:因为实数存在舍入误差,使用时要注重: (1)不要试图用一个实数精确示意一个大整数,记住:浮点数是不精确的. (2)实数一样不推断“相等”,而是推断接近或近似. (3)幸免直截了当将一个非常大的实数与一个非常小的实数相加、相减,否那么会“丢失”小的数. (4)依照要求挑选单精度、双精度. 五、字符型信息1、字符常量 (1)定义用单引号()括起来的一个字符.五、字符型信息(2)形式:1)可表现的字符常量直截了当用单引号括起来,似,a、D、?、$等根基上字符常量.2)使用字符的转义示意法

12、示意转义示意标准:ddd或xhh(其中ddd,hh是字符的ASCII码,ddd八进制、hh十六进制).注重:不可写成0 xhh或0ddd(整数). 五、字符型信息(3)预定义常用转义字符 五、字符型信息2、字符变量(1)定义字符型变量是用来存放字符信息,同时只能存放一个字符.全部编译系统都规定以一个字节来存放一个字符,大概讲,一个字符变量在内存中占一个字节. 五、字符型信息3、字符信息在内存中的存储形式字符信息在内存中的存储形式:以字符的ASCII码,以二进制形式存放,占用1个字节. 五、字符型信息讲明:1)字符信息以ASCII码存储的形式与整数的存储形式类似,这使得字符型信息和整型信息之间能

13、够通用(当作整型量).2)能够将整型量赋值给字符变量,也能够将字符量赋值给整型变量. 3)能够对字符信息履行算术运算,相当于对它们的ASCII码履行算术运算. 4)一个字符信息既能够以字符形式输出(ASCII码对应的字符),也能够以整数形式输出(直截了当输出ASCII码).五、字符型信息例2-7a:给字符变量赋以整数(字符型、整型信息通用)void main() * 字符a的各种表达方式 * char c1=a; char c2=x61;* note:x.,. * char c3=141; char c4=97; char c5=0 x61; * note: 0 x.,0. * char c6

14、=0141; printf(nc1=%c,c2=%c,c3=%c,c4=%c,c5=%c,c6=%cn,c1,c2,c3,c4,c5,c6); printf(c1=%d,c2=%d,c3=%d,c4=%d,c5=%d,c6=%dn,c1,c2,c3,c4,c5,c6); getch();c1=a,c2=a,c3=a,c4=a,c5=a,c6=ac1=97,c2=97,c3=97,c4=97,c5=97,c6=97环节:整型数=机内示意(两个字节)=取低8位赋值给字符变量五、字符型信息例2-8a:大小写字母的变形(ASCII码表:小写字母比对应的大写字母的ASCII码大32,本例还能够发现许可字

15、符信息与整数直截了当履行算术运算,运算时字符信息用ASCII码值介入运算)void main() char c1,c2,c3; c1=a; c2=b; c1=c1-32; c2=c2-32; c3=130; printf(n%c %c %cn,c1,c2,c3); printf(%d %d %dn,c1,c2,c3); getch();A B ?65 66 -126五、字符型信息4、字符串常量 (1)定义是一对双引号(“”)括起来的字符序列. 例似:“How dow you do?”,“CHINA”,“a”,“$123.45”. 五、字符型信息(2)辨识字符常量与字符串常量似“a”和a. C语

16、言规定:在每个字符串的末端加一个“字符串结束标记”,以便系统据此推断字符串是否结束.C规定以0(ASCII码为0的字符)做为字符串结束标记.五、字符型信息似:“CHINA”在内存中的存储应当是:(长度=6)五、字符型信息(3)不能将字符串赋给字符变量. (4)C语言没有特意的字符串变量,似果想将一个字符串存放在变量中,能够使用字符数组.即用一个字符数组来存放一个字符串,数组中每一个元素存放一个字符. 六、各数值型信息的混合运算整型(包罗int,short,long)和实型(包罗float,double)信息能够混合运算,另外字符型信息和整型信息能够通用,所以,整型、实型、字符型信息之间能够混合

17、运算.例似:表达式10+a+1.5-8765.1234*b是合法的.在履行运算时,差别类型的信息先变形成同一类型,接着履行统计,变形的方式有两种:自动变形(隐式变形);强制变形. 六、各数值型信息的混合运算1、自动动变形(隐式变形) 自动变形产生在差别类型信息履行混合运算时,由编译系统自动完成. 六、各数值型信息的混合运算变形法那么 : 六、各数值型信息的混合运算1)类型差别,先变形为同一类型,接着履行运算.2)图中纵向的箭头示意当运算对象为差别类型时变形的方向.能够看到箭头由低级不信息类型指向高级不信息类型,即信息老是由低级不向高级不变形.即按信息长度增加的方向履行,保证精度不落低. 六、各数值型信息的混合运算3)图中横向向左的箭头示意必定的变形(不必思考其它运算对象).4)赋值运算,似果赋值号“=”两边的信息类型差别,赋值号右边的类型变形为左边的类型.这种变形是截断型的变形,不大概四舍五入. 六、各数值型信息的混合运算强制变形是通过类型变形运算来实现.一样形式:(类型讲明符)表达式功能:把表达式的结论强制变形为类型讲明符所示意的类型. 六、各数值型信息的混合运算例似:(int)a 将a的结论

温馨提示

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

评论

0/150

提交评论