C语言第二章数据的存储与运算.ppt_第1页
C语言第二章数据的存储与运算.ppt_第2页
C语言第二章数据的存储与运算.ppt_第3页
C语言第二章数据的存储与运算.ppt_第4页
C语言第二章数据的存储与运算.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1,、什么是程序? 、人怎么和计算机沟通?为什么要和计算机沟通? 、简单的C语言程序由哪些部分构成? 、什么是C语言的函数? 、C程序的编译和运行过程? 、C语言常用的注释方式有哪些?,课程回顾,第二章,数据的存储与运算,3,目标,熟悉C语言中常用的数据类型 理解变量和常量的含义,了解符号常量 掌握各种基本数据类型相关内容:变量的声明和初始化,存储特点,其他特点 使用算术运算符 理解类型转换,4,数据在计算机中的存储,计算机程序处理的是什么? 计算机处理的数据有哪些? (数值,字符,图片,音频,视频) 数据在计算机中怎么存储的? (以二进制形式存储) 关于几个数据存储的概念位,字节和地址 位(bit),又称比特,存储信息的最小单位。值为0或1 字节(byte),又称拜特,存储器容量大,直接用bit来表示和管理不方便,1byte=8bit,byte是最常用的存储单位,常用来表示一个存储单元。后来又出现了kb,mb,gb,tb等(以1024/1000倍增)。 地址,存储器包含许多存储单元,使用的时候通过地址进行查找,这里的地址是指存储单元在存储器里的编号,数据,5,基本数据类型,数据属于不同类别,Africa,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,6,数据的表现方式 常量和变量,常量是指在程序运行过程中,其值不能被改变的量 例如16,18.789都属于常量,不会改变 变量是指在程序运行过程中其值可以改变的量,7,变量,程序,编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。,存储 a,a * 5%,将值存储为b,ab,10,0.5,将值存储为Result,9.5,8,变量引入的意义,为什么要引入变量? 程序中很多数据是在程序运行过程中通过运算获得的 通用功能函数的需要。如求两个数中最大者max 很多数据在程序运行过程中不断变化 变量相当于一个宾馆,为程序中使用的数据提供临时的存储单元(房间),需要用的时候就进行赋值(check in),不用的时候就释放空间(check out),9,声明和使用变量,变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的。变量必须先定义后使用。 声明变量: Datatype variablename; 定义时初始化变量: Datatype variablename = value; 定义后初始化变量: variablename = value;,类型名:系统提供的标准数据类型的名称或者自定义的数据类型的名称(如整型在计算机里用(int),变量名:代表计算机内存中一个变量地址(隐含);通过变量名可以找到相应的存储单元,进行按名存取。,变量值:变量名代表的存储单元中存储的数据,例如:声明一个整型变量a,并为其赋值为5 int a = 5;,10,变量命名,在 C 语言中,变量命名需要遵循一定的规则,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量 变量名的长度不是无限的。不同的编译系统有自己的规定 变量名尽可能简单易记,见名之意;即选有含意的英文单词 (或其缩写)作变量名。,11,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,currency$,discount%,zip code,变量命名,12,整型数据 - 分类,整型常量即整常数。,13,整型数据 - 存储,Int型:根据编译器不同占用的存储单元数量有所不同,VC用4个字节表示一个int型整数 例如整数10,存储在计算机中就是00001010 负数怎么存储?最高位是符号位,1表示负,0为正;采用补码方式存储。原码取反加1 4个字节中未使用的高位怎么办?用0补齐 Short int:一般占2个字节 Long int: 一般占4个字节,在vc环境下long int 和int 通用,有些早期的编译器里int占2个字节,long int 占4个字节。,14,整型数据 - 使用,整型变量声明: int page_number; long int population; unsigned int age; 可按如下方式初始化: page_number0; int max_marks = 100;,在同一语句中可以声明多个类型相同的变量: int page_number, copies, paper_width;,15,整型数据 - 实例,整型数据运算程序的举例和分析 例2.1 鸡兔同笼,鸡和兔的头总数是16,脚总数是40,计算鸡和兔各有多少只?,X+y = h 2x+4y = f,Y=(f-2h)2 X = h y,#include Void main() int h,f,x,y; /声明整型变量 h=16; f=40; / 对整型变量进行赋值 y=(f-2*h)/2; /使用变量计算,结果赋给y x=h-y; /将h-y的结果赋给x printf(“%d, %dn”, x, y); /输出变量 ,16,整型数据 - 实例,用计算机解题,必须由人们事先分析题目要求,找出解决问题的思路和具体步骤,然后指定计算机一步步去做。计算机完全是根据人们事先规定的指令进行工作的。程序是告诉计算机要做什么,先做什么,后做什么。 计算机不是万能的,不存在把方程式输入给计算机,计算机就会自动解出方程,得出结果的事情。,17,实型数据 - 分类,实型数据在计算机语言中常称为浮点数。 1)浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,18,实型数据 - 存储,实数:采用指数形式存储,通常占4个字节,计算机将实数分为前后两部分存储,前面是数值(前3个字节),后面是指数(后1个字节)。 例如123.456表示为0.123456103,则在计算机中存储为 Float型在vc下占4个字节 Double型在vc下占8个字节 Long double在vc下占8个字节 各种数据类型所占长度与编译器有关,可以使用sizeof(long double)查看,19,实型数据 - 使用 单精度浮点型,float 在 C 语言中用于存储单精度浮点数,float,32 位,10-38 1038 7位有效数字,声明: float selling_price; 初始化: float selling_price = 11.3; selling_price = 65.90;,20,实型数据 - 使用 双精度浮点型,213.5671435568967,64位,10-30810308 16 位有效数字,声明: double pressure_level; 初始化: pressure_level = 213.5671435568967; double dvalue = 35.4;,21,浮点型数据的舍入误差:由于浮点型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。在有效位以外的数字将被舍去。由此可能会产生一些误差 例2.4 浮点型数据的舍入误差 #include void main() float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn”,b); ,实型数据 - 实例,说明:一个浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数,运行结果: 123456.789e5,22,浮点型数据 - 常量,实型常量的表示形式,两种表 示形式,十进制小数 指数,0.123 3e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数,例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为“规范化的指数形式”。,23,浮点型数据 - 常量,实型常量的类型 C编译系统将实型常量作为双精度来处理。 例如:f = 2.45678 * 4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。 如果把一个实型常量赋给一个单精度变量f系统给出警告,警告不影响连接和运行最后结果但只取其结果前7位赋给浮点型变量f。 如是在数的后面加字母f或F(如1.65f, 654.87F),编译系统就会把它们按单精度处理。,24,在线保险单 年龄:_ 保险总额:_ 性别:_,字符型数据,23,98340, M ,数值型,字符型,int/float,char,25,字符型数据 - 存储,字符:计算机并不是将字符本身存放到存储单元中(只能放二进制代码),而是将字符的代码存储到存储单元中,即存储的是字符的ASCII码; 每个英文字母采用一个字节存储 未使用的高位用0补足 例如A的ASCII码是65,计算机存储就是01000001; ASCII码不用死记,转换工作由编译系统自动完成,用户程序里输入的依然是正常使用的字符A 整数65和字符A在计算机里的表示是一样的,那怎么区分呢?两者有没有关系呢?,26,字符数据与整形数据,字符数据和整型数据的区别和联系 占用的存储空间大小不同 字符变量存储采用整数表示的ASCII 字符型数据既可采用字符形式输出(%c),也可采用整数形式输出(%d) 可以通过整数为一个字符型数据赋值 可以对字符型数据当做整型数据进行算数运算 程序设计中不能使用字符变量代替整型变量使用,27,字符型数据 - 存储, 5 p $,有效的字符型值,“2“,2,正确,2 + 2 = 4,X,28,字符数据在内存中的存储形式及其使用方法 一个字符型数据存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASCII代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。,注意: 一个字符数据既可以以字符形式输,也可以以整数形式输出以字符形式输出时,系统先将存储单元中的I码转换成相应字符, 然后输出。 以整数形式输出时,直接将码作为整数输出。也可以对字符数据进行算术运算, 此时相当于对它们的码进行算术运算。,字符型数据 - 存储,29,字符型变量用来存放字符常量,注意只能放一个字符。 字符变量的定义形式如下:char c1,c2; 在本函数中可以用下面语句对c1,c2赋值: c1a;c2 b ; 一个字符变量在内存中占一个字节。,字符型数据 - 使用,30,例2.5 向字符变量赋予整数。 #include void main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); ,说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句: c1;c2; 因为a和b的ASCII码为97和98,运行结果: 97 98,字符型数据 - 实例,31,例2.6 大小写字母的转换 (注意分析方法) #include void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“c c,c1,c2); ,说明:程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。语言允许字符数据与整数直接进行算术运算。,运行结果: ,字符型数据 - 实例,32,字符型数据 - 字符常量,字符常量 (1)用单引号包含的一个字符是字符型常量 (2)只能包含一个字符,例,a,A, 1 abc、“a”,33,有些以“”开头的特殊字符称为转义字符,转义字符,34,字符串常量 C语言除了允许使用字符常量外,还允许使用字符串常量 字符串常量是一对双撇号括起来的字符序列. 合法的字符串常量: “How do you do.”, “CHINA”, “a” , “$123.45” 可以输出一个字符串,如 printf(“How do you do.”);,字符型数据 - 字符串常量,35,是字符常量, “a”是字符串常量,二者不同。 如:假设被指定为字符变量 :char c,c= a; “a” ;c “CHINA”;,结论:不能把一个字符串常量赋给一个字符变量。,字符型数据 - 字符串常量,36,规定:在每一个字符串常量的结尾加一个 “字符 串结束标志”,以便系统据此判断字符串是否结束。 规定以字符作为字符串结束标志。,如:如果有一个字符串常量” ,实际上在内存中是:,它占内存单元不是个字符,而是个字符,最后一个字符为。但在输出时不输出。,字符型数据 - 字符串常量,37,符号常量,例2.7 一直园的半径为r,求周长c,面积s,体积v #include Void main() double r=3.67,c,s,v; c = 2*3.1415926*r; s=3.1415926*r*r; v=4/3*3.1415926*r*r*r; ,4.0/3.0; pow(r,3),#include ,#define PI 3.1415926,c = 2*PI*r;,s = PI*pow(r,2);,38,符号常量相关说明,使用符号常量的好处 含义清楚,容易读写; 改变的时候能够做到“一改全改”; 降低程序中输入错误的几率 符号常量的使用方法 先对程序做“预编译”。即将程序中所有的符号常量用真正的常量进行替换(也会用include的库文件内容代替include语句)。 进行正式编译。 符号常量不占存储单元,只是一个符号 符号常量不是变量,只是符号,不能被赋值,39,1. 语言的运算符有以下几类: 算术运算符 (+ - * / %) 关系运算符 (!) 逻辑运算符 (!|) 位运算符 ( |) 赋值运算符 (及其扩展赋值运算符) 条件运算符 (?:) 逗号运算符 (,),算术运算符和算术表达式,40,(8)指针运算符 (*和) (9)求字节数运算符() (10)强制类型转换运算符( (类型) ) (11)分量运算符(-) (12)下标运算符( ) (13)其他 (如函数调用运算符(),算术运算符和算术表达式,41,2. C语言的表达式有以下几类: (1)算术表达式:如2+6.7*3.5+sin(0.5) (2)关系表达式:如x0,y0 & y0 (表示x0与y0同时成立,&是逻辑运算符,代表“与”) (4)赋值表达式:如a=5.6,算术运算符和算术表达式,42,1. 基本的算术运算符: (加法运算符,或正值运算符。如:、) (减法运算符,或负值运算符。如:、) * (乘法运算符。如:*) (除法运算符。两个整数相除的结果为整数两个整数相除的结果为整数,如:结果为) (模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。,算术运算符和算术表达式,43,2. 算术表达式和运算符的优先级与结合性 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。运算对象包括常量、变量、函数等。 例如: *.5a 是一个合法的表达式,算术运算符和算术表达式,44,语言规定了运算符的优先级和结合性。 在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。 规定了各种运算符的结合方向(结合性) 算术运算符的结合方向为“自左至右”,即先左后右 。,算术运算符和算术表达式,45,4. 自增、自减运算符 作用是使变量的值增或减 如: ,(在使用之前,先使的值加(减) ,(在使用之后,使的值加(减),算术运算符和算术表达式,46,i+与+i的区别: 是先执行后,再使用的值; 是先使

温馨提示

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

评论

0/150

提交评论