




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章第二章本章要点数据的存储及数据类型数据的表示——常量和变量数据的运算及其规则本章要点数据的存储及数据类型2.1数据的存储及数据类型以二进制形式存储计算机存储器的存储单元按字节编址C语言针对不同类型的数据采用不同的存储方式——具体体现在不同的“数据类型”上2.1数据的存储及数据类型以二进制形式存储C语言提供了以下一些数据类型:
数据类型构造类型指针类型空类型(无值类型)void枚举类型enum数组类型结构体类型struct联合体类型union基本类型整型int字符型char实型(浮点型)单精度实型float双精度实型doubleC语言提供了以下一些数据类型:数据整数的存储方式:
以十进制补码形式存储。一般整数占用的空间:TurboC2.0:2个字节的存储单元
TurboC++3.0:2个字节的存储单元VC++6.0:4个字节根据占用空间和数值范围的不同细分为几种类型:
基本整型int无符号的基本整型unsignedint短整型shortint无符号的短整型unsignedshortint长整型longint无符号的长整型unsignedlongint
整数的存储方式:类型声明符字节数取值范围int2-32768~32767即-215~(215-1)short[int]2-32768~32767即-215~(215-1)long[int]4-2147483648~2147483647
即-231~(231-1)unsigned[int]20~65535即0~(216-1)unsignedshort20~65535即0~(216-1)unsignedlong40~4294967295即0~(232-1)以TurboC++3.0为例:类型声明符字节数取值范围int2-32768~32767实数的存储形式:实数采用指数形式存储,即浮点数。将实数转化为标准化指数形式,分别存储尾数部分和指数部分。
类型位数绝对值范围有效数字float4字节10-38~10387Double8字节10-308~1030816longdouble16字节10-4932~10493219实数的存储形式:类型位数单个字符的存储方式:存储字符的编码;目前大多数计算机采用ASCII代码;占用的空间:一个字节的存储空间。例如:
字符’A’
为char类型,在内存中占1字节,存储的是其ASCII码值65。单个字符的存储方式:2.2程序中数据是如何表示的?常量、变量常量:
程序运行过程中,其值不能
被改变的量。常量也相应地区分为不同的类型:#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;
do{ scanf("%d",&x); s=s+x; i=i+1;
}while(i<10);avg=s/10; printf("avg=%d\n",avg);}整型125,-100,0,037,0x38
默认为int,可以用后缀指
明类型:289L,32767L,
39u,39090u,65536Lu实型3.14,-3.7e9,.23e-3默认double类型,9.6f为float型字符型‘a’,‘b’,‘2’字符串“a”,“ab”,“1234”八进制十六进制2.2程序中数据是如何表示的?常量、变量#include#include<stdio.h>voidmain(){inta;a=32767+1;/*int+int*/printf("a=%d",a);}运行时显示??-3276801111111
111111113276700000000
000000011-----------------------------------10000000
00000000-32768小心结果“溢出”!整型数据运算中应该注意的问题:请思考:longa;a=32767+1;a:-32768longa;a=32767L+1;a:3276800000000
00000000
01111111
1111111132767L00000000
00000000
00000000
000000011-----------------------------------------------------00000000
00000000
10000000
0000000032768#include<stdio.h>运行时显示??-32(1)字符本质上是整数,既可以当作字符,也可以当作整数使用;
printf(“%c,%d,%c,%c”,’a’,’a’,’a’-32,97-32);运行时显示??a,97,A,A字符型数据注意的问题:(2)有些特殊字符无法正常表示出来,需要使用转义符“\”进行转义。
换行符(ASCII码值为10)表示为‘\n’,即把字母n转义为换行符。如:inta=10,b=20;
printf(“a=%d\nb=%d\n”,a,b);(1)字符本质上是整数,既可以当作字符,也可以当作整数使用;转义字符表示含义ASCII码\\反斜杠字符“\”92\’单引号字符39\”双引号字符34\n换行,将当前位置移到下一行开头10\t水平制表,横向跳到下一个输出区9\r回车,将当前位置移到本行开头13\f打印换页,将当前位置移到下页开头12\b退格,将当前位置移到前一列8\ddd1到3位八进制数所代表的字符\xhh1到2位十六进制数所代表的字符printf("a=%d\tb=\'%c\'\tTCP\\IP\n",26,'\101');转义字符表示含义ASCII码\\反斜杠字符“\”92\’单引变量:
指在程序的执行过程中其值可以发生变化的量。#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;
do{ scanf("%d",&x); s=s+x; i=i+1;
}while(i<10);avg=s/10; printf("avg=%d\n",avg);}变量的四要素变量名变量类型变量值存储单元变量必须先声明,后使用;可在声明同时初始化。intsum=0,count=0,i,k;floatarea,avg,y;doublepi=3.14159;charanswer=‘Y’,c1,c2;变量命名规则:
字母打头,后跟字母、数字、下划线;
尽量“见名知义”;
不能与C语言保留字相同;
注意区分大小写。变量:
指在程序的执行过程中其值可以发生变化的量。#incl例如:变量a声明为以下不同类型时,执行
a=13;
后内存中实际存放的情况:例如:2.3数据的运算及其规则2.3.1算术运算符(1)基本的算术运算符:+(加法运算符,或正值运算符。如:3+5、+3)-(减法运算符,或负值运算符。如:5-2、-3)*(乘法运算符。如:3*5)/(除法运算符。如:5/3)%模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3)。5/3结果?是1还是1.666667?2.3数据的运算及其规则2.3.1算术运算符5/3(2)运算符的优先级与结合性C语言规定了运算符的优先级在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。C还规定了各种运算符的结合方向(结合性)
基本算术运算符的结合方向为“自左至右”,即先左后右。优先级与结合性(2)运算符的优先级与结合性优先级与结合性(3)
自增、自减运算符作用:使变量的值增1或减1如:++i,--i(在使用i之前,先使i的值加(减)1)i++,i--(在使用i之后,使i的值加(减)1)
注意:
(1)自增运算符(++),自减运算符(--),只能用于变量,不能用于常量或表达式,(2)++和--的结合方向是“自右至左”。(3)i++与++i的区别:
++i是先执行i=i+1后,再使用i的值,如j=++i;i++是先使用i的值后,再执行i=i+1,如j=i++;优先级与结合性(3)自增、自减运算符注意:(3)i++与++i的区别:(1)算术表达式运算对象包括常量、变量、函数等。
例如:a*b/c-1.5+’a’是一个合法的表达式(2)运算规则:一个运算符的两运算量类型要相同。(3)表达式中不同数据类型的转换
自动转换:编译系统自动完成
强制类型转换:(类型名)(表达式)2.3.2算术表达式(1)算术表达式2.3.2算术表达式自动转换:
混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据会自动先转换成同一类型,然后进行运算.说明:这种类型转换是由系统自动进行的。inta=10,result;floatb=2.5;doublec=19.5;longd=3;result=20+’A’+a*b-c/d;printf(“%d\n”,result);请分析表达式计算过程及运行结果?103自动转换:混合运算:整型(包括int,short,lo强制类型转换:强制类型转换运算符的作用是:将一个表达式转换成所需类型
一般形式:(类型名)(表达式)例如:(float)a将a转换成float类型(int)(x+y)将x+y的值转换成整型(float)1/5将1转换成float型,结果为float型强制类型转换:2.3.3C运算符
C的运算符有以下几类:(1)算术运算符(+-*/%++--)(2)关系运算符(><>=<=!===)(3)逻辑运算符(!&&||)(4)位运算符(<<>>~|∧&)(5)赋值运算符(=及其扩展赋值运算符)(6)条件运算符(?:)(7)逗号运算符(,)2.3.3C运算符(8)指针运算符(*和&)(9)求字节数运算符(sizeof)(10)强制类型转换运算符((类型))(11)分量运算符(.->)(12)下标运算符([])(13)其他(如函数调用运算符())(8)指针运算符(*和&)关系运算符:(><>=<=!===)(1)关系表达式的值:真——1,假——0例如:if(a+b>=10)……if(x%2==0)……if(a!=b)……if(c>=‘A’)(2)优先级与结合性:左结合例如:if(a>b==0)……if(a>b>c)……if(‘A’<=c<=‘Z’)优先级与结合性关系运算符:(><>=<=逻辑运算符:(
!&&||)(1)各个逻辑运算符的运算规则(1)逻辑表达式的值:真——1,假——0例如:if(a>b&&b>c)……if(‘A’<=c&&c<=‘Z’)if(x%3==0||x%5==0)……if(!(a>b))……if(!a)……(2)优先级与结合性:左结合例如:if(!a||b)……if(y%4==0&&y%100!=0||y%400==0)…优先级与结合性
数值转换为逻辑量:
非0——真0——假另外还要注意
“短路”问题逻辑运算符:(!&&||)(赋值运算符:(=以及扩展的赋值运算符)(1)计算表达式的值后赋值给变量例如:a=b*2/3;i=i+1;(2)赋值表达式的值:赋值后变量的值例如:printf("%d",a=30);(3)优先级与结合性:右结合例如:a=b=c=0;等价于a=(b=(c=0));(4)右侧表达式类型与变量类型不符时如何转换?原则:以变量类型为准自动变换。优先级与结合性C语言的表达式加上分号成为一条语句。赋值运算符:(=以及扩展的赋值运算符)(1)计算表达式赋值运算符:(=以及扩展的赋值运算符)(5)扩展的复合赋值运算符:+=-=*=/=%=例如:a+=b*2/3;等价于:a=a+(b+2/3);优先级与结合性条件运算符:(?:)例如:printf("%d\n",a>b?a:b);d=a>b?a:b>c?b:c;/*右结合性*/赋值运算符:(=以及扩展的赋值运算符)(5)扩展的复合逗号运算符:(,)例如:a=10,b=a+20,c=90;左结合性;
整个表达式的值取最后一个表达式的值。优先级与结合性逗号运算符:(,)例如:a=10,b=a+20,c=9高优先级运算符功能结合性
高低!-、++、--(类型名)*、&、sizeof逻辑非取负、自增、自减强制类型转换指针、地址、求字节数从右到左*、/、%乘、除、整数求余从左到右+、-加、减从左到右>、>=、<、<=大于、大于等于小于、小于等于从左到右==、!=等于、不等于从左到右&&逻辑与从左到右||逻辑或从左到右?:条件运算符从右到左=、+=、-=、*=、/=、%=赋值、运算并赋值从右到左,逗号运算符从左到右返回高优先级运算符功能结合性
高!逻辑非从右到左*、/、%乘、除作业:
一、二、三、
四(1,2)、五作业:
一、二、三、
四(1,2)、五第二章第二章本章要点数据的存储及数据类型数据的表示——常量和变量数据的运算及其规则本章要点数据的存储及数据类型2.1数据的存储及数据类型以二进制形式存储计算机存储器的存储单元按字节编址C语言针对不同类型的数据采用不同的存储方式——具体体现在不同的“数据类型”上2.1数据的存储及数据类型以二进制形式存储C语言提供了以下一些数据类型:
数据类型构造类型指针类型空类型(无值类型)void枚举类型enum数组类型结构体类型struct联合体类型union基本类型整型int字符型char实型(浮点型)单精度实型float双精度实型doubleC语言提供了以下一些数据类型:数据整数的存储方式:
以十进制补码形式存储。一般整数占用的空间:TurboC2.0:2个字节的存储单元
TurboC++3.0:2个字节的存储单元VC++6.0:4个字节根据占用空间和数值范围的不同细分为几种类型:
基本整型int无符号的基本整型unsignedint短整型shortint无符号的短整型unsignedshortint长整型longint无符号的长整型unsignedlongint
整数的存储方式:类型声明符字节数取值范围int2-32768~32767即-215~(215-1)short[int]2-32768~32767即-215~(215-1)long[int]4-2147483648~2147483647
即-231~(231-1)unsigned[int]20~65535即0~(216-1)unsignedshort20~65535即0~(216-1)unsignedlong40~4294967295即0~(232-1)以TurboC++3.0为例:类型声明符字节数取值范围int2-32768~32767实数的存储形式:实数采用指数形式存储,即浮点数。将实数转化为标准化指数形式,分别存储尾数部分和指数部分。
类型位数绝对值范围有效数字float4字节10-38~10387Double8字节10-308~1030816longdouble16字节10-4932~10493219实数的存储形式:类型位数单个字符的存储方式:存储字符的编码;目前大多数计算机采用ASCII代码;占用的空间:一个字节的存储空间。例如:
字符’A’
为char类型,在内存中占1字节,存储的是其ASCII码值65。单个字符的存储方式:2.2程序中数据是如何表示的?常量、变量常量:
程序运行过程中,其值不能
被改变的量。常量也相应地区分为不同的类型:#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;
do{ scanf("%d",&x); s=s+x; i=i+1;
}while(i<10);avg=s/10; printf("avg=%d\n",avg);}整型125,-100,0,037,0x38
默认为int,可以用后缀指
明类型:289L,32767L,
39u,39090u,65536Lu实型3.14,-3.7e9,.23e-3默认double类型,9.6f为float型字符型‘a’,‘b’,‘2’字符串“a”,“ab”,“1234”八进制十六进制2.2程序中数据是如何表示的?常量、变量#include#include<stdio.h>voidmain(){inta;a=32767+1;/*int+int*/printf("a=%d",a);}运行时显示??-3276801111111
111111113276700000000
000000011-----------------------------------10000000
00000000-32768小心结果“溢出”!整型数据运算中应该注意的问题:请思考:longa;a=32767+1;a:-32768longa;a=32767L+1;a:3276800000000
00000000
01111111
1111111132767L00000000
00000000
00000000
000000011-----------------------------------------------------00000000
00000000
10000000
0000000032768#include<stdio.h>运行时显示??-32(1)字符本质上是整数,既可以当作字符,也可以当作整数使用;
printf(“%c,%d,%c,%c”,’a’,’a’,’a’-32,97-32);运行时显示??a,97,A,A字符型数据注意的问题:(2)有些特殊字符无法正常表示出来,需要使用转义符“\”进行转义。
换行符(ASCII码值为10)表示为‘\n’,即把字母n转义为换行符。如:inta=10,b=20;
printf(“a=%d\nb=%d\n”,a,b);(1)字符本质上是整数,既可以当作字符,也可以当作整数使用;转义字符表示含义ASCII码\\反斜杠字符“\”92\’单引号字符39\”双引号字符34\n换行,将当前位置移到下一行开头10\t水平制表,横向跳到下一个输出区9\r回车,将当前位置移到本行开头13\f打印换页,将当前位置移到下页开头12\b退格,将当前位置移到前一列8\ddd1到3位八进制数所代表的字符\xhh1到2位十六进制数所代表的字符printf("a=%d\tb=\'%c\'\tTCP\\IP\n",26,'\101');转义字符表示含义ASCII码\\反斜杠字符“\”92\’单引变量:
指在程序的执行过程中其值可以发生变化的量。#include<stdio.h>voidmain(){ inti,x,s,avg; i=0; s=0;
do{ scanf("%d",&x); s=s+x; i=i+1;
}while(i<10);avg=s/10; printf("avg=%d\n",avg);}变量的四要素变量名变量类型变量值存储单元变量必须先声明,后使用;可在声明同时初始化。intsum=0,count=0,i,k;floatarea,avg,y;doublepi=3.14159;charanswer=‘Y’,c1,c2;变量命名规则:
字母打头,后跟字母、数字、下划线;
尽量“见名知义”;
不能与C语言保留字相同;
注意区分大小写。变量:
指在程序的执行过程中其值可以发生变化的量。#incl例如:变量a声明为以下不同类型时,执行
a=13;
后内存中实际存放的情况:例如:2.3数据的运算及其规则2.3.1算术运算符(1)基本的算术运算符:+(加法运算符,或正值运算符。如:3+5、+3)-(减法运算符,或负值运算符。如:5-2、-3)*(乘法运算符。如:3*5)/(除法运算符。如:5/3)%模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3)。5/3结果?是1还是1.666667?2.3数据的运算及其规则2.3.1算术运算符5/3(2)运算符的优先级与结合性C语言规定了运算符的优先级在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。C还规定了各种运算符的结合方向(结合性)
基本算术运算符的结合方向为“自左至右”,即先左后右。优先级与结合性(2)运算符的优先级与结合性优先级与结合性(3)
自增、自减运算符作用:使变量的值增1或减1如:++i,--i(在使用i之前,先使i的值加(减)1)i++,i--(在使用i之后,使i的值加(减)1)
注意:
(1)自增运算符(++),自减运算符(--),只能用于变量,不能用于常量或表达式,(2)++和--的结合方向是“自右至左”。(3)i++与++i的区别:
++i是先执行i=i+1后,再使用i的值,如j=++i;i++是先使用i的值后,再执行i=i+1,如j=i++;优先级与结合性(3)自增、自减运算符注意:(3)i++与++i的区别:(1)算术表达式运算对象包括常量、变量、函数等。
例如:a*b/c-1.5+’a’是一个合法的表达式(2)运算规则:一个运算符的两运算量类型要相同。(3)表达式中不同数据类型的转换
自动转换:编译系统自动完成
强制类型转换:(类型名)(表达式)2.3.2算术表达式(1)算术表达式2.3.2算术表达式自动转换:
混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据会自动先转换成同一类型,然后进行运算.说明:这种类型转换是由系统自动进行的。inta=10,result;floatb=2.5;doublec=19.5;longd=3;result=20+’A’+a*b-c/d;printf(“%d\n”,result);请分析表达式计算过程及运行结果?103自动转换:混合运算:整型(包括int,short,lo强制类型转换:强制类型转换运算符的作用是:将一个表达式转换成所需类型
一般形式:(类型名)(表达式)例如:(float)a将a转换成float类型(int)(x+y)将x+y的值转换成整型(float)1/5将1转换成float型,结果为float型强制类型转换:2.3.3C运算符
C的运算符有以下几类:(1)算术运算符(+-*/%++--)(2)关系运算符(><>=<=!===)(3)逻辑运算符(!&&||)(4)位运算符(<<>>~|∧&)(5)赋值运算符(=及其扩展赋值运算符)(6)条件运算符(?:)(7)逗号运算符(,)2.3.3C运算符(8)指针运算符(*和&)(9)求字节数运算符(sizeof)(10)强制类型转换运算符((类型))(11)分量运算符(.->)(12)下标运算符([])(13)其他(如函数调用运算符())(8)指针运算符(*和&)关系运算符:(><>=<=!===)(1)关系表达式的值:真——1,假——0例如:if(a+b>=10)……if(x%2==0)……if(a!=b)……if(c>=‘A’)(2)优先级与结合性:左结合例如:if(a>b==0)……if(a>b>c)……if(‘A’<=c<=‘Z’)优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电气工程与电力电子器件设计考核试卷
- 棉花种植农业生产安全与质量控制考核试卷
- 电气机械技术在制造工程与材料工程中的应用考核试卷
- 纺织品在海洋工程与船舶行业的应用考核试卷
- 租赁经营的市场发展战略考核试卷
- 急诊科常见急救药物之氨甲环酸注射液 2
- 二年级100以内除法练习题
- 福建省厦门市2024届高三数学下学期模拟考试试题含答案
- 二年级下册表内除法、除法口算练习题
- 天津滨海汽车工程职业学院《定性数据分析》2023-2024学年第一学期期末试卷
- 嘉峪关的壮丽长城之旅
- 临床研究数据的合理解读与报告撰写
- 中考英语阅读理解:图表类(附参考答案)
- 农作物病虫害防治服务投标方案(技术标)
- 碱金属元素教案及反思
- 扫地机器人创业项目计划书
- 自愿赠与10万协议书范本
- 学校教学常规检查记录表
- 单位车辆领取免检标志委托书范本
- 投资项目敏感性分析模型模板
- 医疗美容诊所规章制度
评论
0/150
提交评论