C语言第二章数据的存储与运算课件.ppt

上传人(卖家):晟晟文业 文档编号:4741789 上传时间:2023-01-06 格式:PPT 页数:50 大小:651.50KB
下载 相关 举报
C语言第二章数据的存储与运算课件.ppt_第1页
第1页 / 共50页
C语言第二章数据的存储与运算课件.ppt_第2页
第2页 / 共50页
C语言第二章数据的存储与运算课件.ppt_第3页
第3页 / 共50页
C语言第二章数据的存储与运算课件.ppt_第4页
第4页 / 共50页
C语言第二章数据的存储与运算课件.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、1、什么是程序?、人怎么和计算机沟通?为什么要和计算机沟通?、简单的C语言程序由哪些部分构成?、什么是C语言的函数?、C程序的编译和运行过程?、C语言常用的注释方式有哪些?课程回顾高职学院高职学院 计算机专业计算机专业程序设计基础程序设计基础第二章第二章数据的存储与运算3目标q熟悉C语言中常用的数据类型q理解变量和常量的含义,了解符号常量q掌握各种基本数据类型相关内容:变量的声明和初始化,存储特点,其他特点q使用算术运算符q理解类型转换4数据在计算机中的存储q 计算机程序处理的是什么?q 计算机处理的数据有哪些?q(数值,字符,图片,音频,视频)q 数据在计算机中怎么存储的?q (以二进制形式

2、存储)q 关于几个数据存储的概念位,字节和地址q 位(bit),又称比特,存储信息的最小单位。值为0或1q 字节(byte),又称拜特,存储器容量大,直接用bit来表示和管理不方便,1byte=8bit,byte是最常用的存储单位,常用来表示一个存储单元。后来又出现了kb,mb,gb,tb等(以1024/1000倍增)。q 地址,存储器包含许多存储单元,使用的时候通过地址进行查找,这里的地址是指存储单元在存储器里的编号数据5基本数据类型数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jac

3、kie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型6数据的表现方式常量和变量q常量是指在程序运行过程中,其值不能被改变的量q例如16,18.789都属于常量,不会改变q变量是指在程序运行过程中其值可以改变的量7变量程序内存编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。存储 aa*5%将值存储为bab100.5将值存储为Result9.58变量引入的意义q为什么要引入变量?q程序中很多数据是在程序运行

4、过程中通过运算获得的q通用功能函数的需要。如求两个数中最大者maxq很多数据在程序运行过程中不断变化q变量相当于一个宾馆,为程序中使用的数据提供临时的存储单元(房间),需要用的时候就进行赋值(check in),不用的时候就释放空间(check out)9声明和使用变量q 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的。变量必须先定义后使用。q 声明变量:Datatype variablename;q 定义时初始化变量:Datatype variablename=value;q 定义后初始化变量:q variablename=val

5、ue;类型名:系统提供的标准数据类型的名称或者自定义的数据类型的名称(如整型在计算机里用(int)变量名:代表计算机内存中一个变量地址(隐含);通过变量名可以找到相应的存储单元,进行按名存取。变量值:变量名代表的存储单元中存储的数据例如:声明一个整型变量a,并为其赋值为5 int a=5;10变量命名在 C 语言中,变量命名需要遵循一定的规则q 变量的命名规则:q变量名可以由字母、数字和 _(下划线)组合而成q变量名不能包含除 _ 以外的任何特殊字符,如:%、#、逗号、空格等q变量名必须以字母或 _(下划线)开头q变量名不能包含空白字符(换行符、空格和制表符称为空白字符)qC 语言中的某些词(

6、例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名qC 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量q变量名的长度不是无限的。不同的编译系统有自己的规定q变量名尽可能简单易记,见名之意;即选有含意的英文单词 (或其缩写)作变量名。11有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip code变量命名12整型数据 -分类名称全称类型说明符缩写类型说明符整型intint无符号整型unsigned intunsigned短整型sho

7、rt intshort无符号短整型unsigned short intunsigned short长整型long intlong无符号长整型unsigned long intunsigned long整型常量即整常数。整型常量即整常数。13整型数据 -存储q Int型:根据编译器不同占用的存储单元数量有所不同,VC用4个字节表示一个int型整数q 例如整数10,存储在计算机中就是00001010q 负数怎么存储?最高位是符号位,1表示负,0为正;采用补码方式存储。原码取反加1q 4个字节中未使用的高位怎么办?用0补齐q Short int:一般占2个字节q Long int:一般占4个字节,在

8、vc环境下long int 和int 通用,有些早期的编译器里int占2个字节,long int 占4个字节。14整型数据 -使用q整型变量声明:int page_number;long int population;unsigned int age;q可按如下方式初始化:page_number0;int max_marks=100;在同一语句中可以声明多个类型相同的变量:int page_number,copies,paper_width;15整型数据 -实例q整型数据运算程序的举例和分析q例2.1 鸡兔同笼,鸡和兔的头总数是16,脚总数是40,计算鸡和兔各有多少只?X+y=h2x+4y=f

9、Y=(f-2h)2X=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整型数据 -实例q用计算机解题,必须由人们事先分析题目要求,找出解决问题的思路和具体步骤,然后指定计算机一步步去做。计算机完全是根据人们事先规定的指令进行工作的。程序是告诉计算机要做什么,先做什么,后做什么。q计算机不是万能的,不存在把方程式输入给计算机,计算机就会自动解出方程,得出结果的事情。17实型数

10、据 -分类实型数据在计算机语言中常称为浮点数。实型数据在计算机语言中常称为浮点数。1)浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。18实型数据 -存储q实数:采用指数形式存储,通常占4个字节,计算机将实数分为前后两部分存储,前面是数值(前3个字节),后面是指数(后1个字节)。q例如123.456表示为0.123456103,则在计算机中存储为qFloat型在vc下占4个字节qDouble型在vc下占8个字节qLong double在vc下占8个字节q各种数据类型所占长度与编译器有关,可以使用sizeof(long double)

11、查看+.123456+319实型数据 -使用单精度浮点型 float 在 C 语言中用于存储单精度浮点数float32 位 7位有效数字q声明:float selling_price;q初始化:float selling_price=11.3;selling_price=65.90;20实型数据 -使用双精度浮点型内存内存floatdouble213.5671435568967 64位位 16 位有效数字q声明:qdouble pressure_level;q初始化:qpressure_level=213.5671435568967;qdouble dvalue=35.4;21 浮点型数据的舍

12、入误差:由于浮点型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。在有效位以外的数字将被舍去。由此可能会产生一些误差例2.4 浮点型数据的舍入误差#include#include void main()void main()float a,b;float a,b;a=123456.789e5;a=123456.789e5;b=a+20;b=a+20;printf(“%fn”,b);printf(“%fn”,b);实型数据 -实例一个浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢

13、失”小的数运行结果:运行结果:123456.789e5123456.789e522浮点型数据 -常量实型常量的表示形式实型常量的表示形式两种表两种表示形式示形式十进制小数十进制小数指数指数0.1230.1233e-33e-3注意注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数23浮点型数据 -常量 实型常量的类型实型常量的类型 C编译系统将实型常量作为双精度来处理。例如例如:f=2.45678*4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。如果把一个实型常量赋给一个单精度变量f系统给出警告,警告不影响连接和运行最后

14、结果但只取其结果前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f,654.87F),编译系统就会把它们按单精度处理。24年龄:_保险总额:_性别:_字符型数据2398340 M int/floatchar25字符型数据 -存储q字符:计算机并不是将字符本身存放到存储单元中(只能放二进制代码),而是将字符的代码存储到存储单元中,即存储的是字符的ASCII码;q每个英文字母采用一个字节存储q未使用的高位用0补足q例如A的ASCII码是65,计算机存储就是01000001;qASCII码不用死记,转换工作由编译系统自动完成,用户程序里输入的依然是正常使用的字符Aq整数65和字符A在计

15、算机里的表示是一样的,那怎么区分呢?两者有没有关系呢?26字符数据与整形数据q字符数据和整型数据的区别和联系q占用的存储空间大小不同q字符变量存储采用整数表示的ASCIIq字符型数据既可采用字符形式输出(%c),也可采用整数形式输出(%d)q可以通过整数为一个字符型数据赋值q可以对字符型数据当做整型数据进行算数运算q程序设计中不能使用字符变量代替整型变量使用27字符型数据 -存储 5 p$2 2 2+2=4 值符号值符号值符号0空字符44,9132空格45-9233!46.933447/9435#48 570 9 95-36$58:9637%59;97 122a z38&6012541)63?

16、12642*64127DEL(Delete键)43+65 90A Z 28字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法q 一个字符型数据存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASCII代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。注意:一个字符数据既可以以字符形式输,也可以以整数形式输出以字符形式输出时,系统先将存储单元中的I码转换成相应字符,然后输出。以整数形式输出时,直接将码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的码进行算术运算。字符型数据 -存储29q字符型变量用来存放字符常量

17、,注意只能放一个字符。q字符变量的定义形式如下:char c1,c2;q在本函数中可以用下面语句对c1,c2赋值:c1a;c2 b;q一个字符变量在内存中占一个字节。字符型数据 -使用30例2.5 向字符变量赋予整数。#include#include void main()void main()char c1,c2;char c1,c2;c1=97;c1=97;c2=98;c2=98;printf(“%c%cn”,c1,c2);printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);printf(“%d%dn”,c1,c2);在第4和第5行中,将整数97和98分

18、别赋给c1和c2,它的作用相当于以下两个赋值语句:c1;c2;因为a和b的ASCII码为97和98q 运行结果:运行结果:97 9897 98字符型数据 -实例31例2.6 大小写字母的转换 (注意分析方法)#include#include void main()void main()char c1,c2 char c1,c2;c1=a;c1=a;c2=b;c2=b;c1=c1-32;c1=c1-32;c2=c2-32;c2=c2-32;printf(“printf(“c c cc,c1,c2c1,c2););程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字

19、母比它相应的大写字母的ASCII码大32。语言允许字符数据与整数直接进行算术运算。q 运行结果:运行结果:字符型数据 -实例32字符型数据 -字符常量字符常量字符常量(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符a,A,a,A,11abcabc、“a”a”33 有些以有些以“”开头的特殊字符称为转义字符开头的特殊字符称为转义字符 含 义 ASCII代码 换行,将当前位置移到下一行开头 10 水平制表(跳到下一个Tab位置)9 退格,将当前位置移到前一列 8 回车,将当前位置移到本行开头 13 换页,将当前位置移到下页开头 12 a 发出铃声 7 代表一个反斜杠字符“”92 代表

20、一个单撇号字符 39 代表一个双撇号字符34 到位八进制数所代表的字符 到位十六进制数所代表的字符 转义字符34字符串常量字符串常量qC语言除了允许使用字符常量外,还允许使用字符串常量q字符串常量是一对双撇号括起来的字符序列.q合法的字符串常量:“How do you do.”,“CHINA”,“a”,“$123.45”q可以输出一个字符串,如printf(“How do you do.”);字符型数据 -字符串常量35 是字符常量,“a”是字符串常量,二者不同。如:如:假设被指定为字符变量:char c c=a;“a”;c“CHINA”;结论:结论:不能把一个字符串常量赋给一个字符变量。字符

21、型数据 -字符串常量36q规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。规定以字符作为字符串结束标志。如:如:如果有一个字符串常量”,实际上在内存中是:CHINA0 它占内存单元不是个字符,而是个字符,最后一个字符为。但在输出时不输出。67 72 378 65 0字符型数据 -字符串常量37符号常量q 例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

22、;pow(r,3)#include#define PI 3.1415926c=2*PI*r;s=PI*pow(r,2);38符号常量相关说明q使用符号常量的好处q含义清楚,容易读写;q改变的时候能够做到“一改全改”;q降低程序中输入错误的几率q符号常量的使用方法q先对程序做“预编译”。即将程序中所有的符号常量用真正的常量进行替换(也会用include的库文件内容代替include语句)。q进行正式编译。q符号常量不占存储单元,只是一个符号q符号常量不是变量,只是符号,不能被赋值391.1.语言的运算符有以下几类:语言的运算符有以下几类:算术运算符(+-*/%)关系运算符(!)逻辑运算符(!|)

23、位运算符 (|)赋值运算符(及其扩展赋值运算符)条件运算符(?:)逗号运算符 (,)算术运算符和算术表达式40(8)指针运算符(*和)(9)求字节数运算符()(10)强制类型转换运算符((类型))(11)分量运算符(-)(12)下标运算符()(13)其他(如函数调用运算符()算术运算符和算术表达式412.C语言的表达式有以下几类:语言的表达式有以下几类:(1)算术表达式:如2+6.7*3.5+sin(0.5)(2)关系表达式:如x0,y0&y0(表示x0与y0同时成立,&是逻辑运算符,代表“与”)(4)赋值表达式:如a=5.6算术运算符和算术表达式421.1.基本的算术运算符基本的算术运算符:

24、(加法运算符,或正值运算符。如:、)(减法运算符,或负值运算符。如:、)*(乘法运算符。如:*)(除法运算符。两个整数相除的结果为整数两个整数相除的结果为整数,如:结果为)(模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。算术运算符和算术表达式432.2.算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式算术表达式。运算对象包括常量、变量、函数等。例如例如:*.5a 是一个合法的表达式算术运算符和算术表达式44q语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优

25、先级别高低次序执行,例如先乘除后加减。q规定了各种运算符的结合方向(结合性)算术运算符的结合方向为“自左至右”,即先左后右。算术运算符和算术表达式45 4.4.自增、自减运算符自增、自减运算符 作用是使变量的值增或减如如:q,(在使用之前,先使的值加(减)q,(在使用之后,使的值加(减)算术运算符和算术表达式46i+i+与与+i+i的区别:的区别:是先执行后,再使用的值;是先使用的值后,再执行。例如:例如:;i的值先变成4,再赋给,j的值为 ;先将 i的值3赋给,的值为,然后变为算术运算符和算术表达式47注意:注意:(1)自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,(

26、2)和的结合方向是“自右至左”。(3)自增(减)运算符常用于循环语句中使循环变 量自动加。也用于指针变量,使指针指向下一个地址。(4)使用和时,为避免二义性,最好采取大家都能理解的写法,可以加一些“不必要”的括号,如(i+)+j。算术运算符和算术表达式48混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.说明:这种类型转换是由系统自动进行的。转换规则为字节少的数据转换为字节多的数据各类数值型数据间的混合运算 49类型转换q自动类型转换q原则:把表示范围小的类型的值转换到表示范围大

27、的类型的值q short int long float doubleq强制类型转换q语法:(类型名)变量或数值 q例如:int a=5,b=3;float qu=float(a)/b;q在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化50例2.8 强制类型转换。#include#include void main()void main()float x;float x;int i;int i;x=3.6;x=3.6;i=(int)x;i=(int)x;printf(x=%f,i=%dn,x,i);printf(x=%f,i=%dn,x,i);有两种类型转换,一种是在运算时不必用户指定,系统自动进行的类型转换,如3+6.5。第二种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。q 运行结果:运行结果:x3.600000,i=3强制类型转换

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言第二章数据的存储与运算课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|