资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2.1,数据在计算机中的存储,以二进制形式存储(要求熟悉最简单的十进制数与二进制数的对应关系),2.1.2,位和字节,内存以字节为单元组成,每个字节有一个地址,一个字节一般由,8,个二进制位组成,每个二进制位的值是,0,或,1,不同类型数据的存储方式,1.,整数的存储方式,例:整数,10,存储 用一个字节来存储,2.,实数的存储方式,实数在计算机内存中按照标准化指数形式存储,3.,字符的存储方式,计算机会将字符的代码存储到相应的单元中,例:大写字母,A,在,ASCII,中的代码是,65,,,65,的二进制形式是,1000001,0,0,0,0,1,0,1,0,符号位,0,1,0,0,0,0,0,1,2.2,整型数据的运算与分析,例,2.1,鸡兔同笼 在一个笼子里同时养着一些鸡和兔,你想了解有多少只鸡和多少只兔,主人对你说:我只告诉你鸡和兔的总头数是,16,和总脚数是,40,,你能不能自己计算有多少只鸡和多少只兔?,编写程序:,#include,void main(),int f,h,x,y;,h=16;,f=40;,y=(f-2*h)/2;,x=h-y;,printf(“%d%dn”,x,y);,2.2.2,整形常量与整形变量,(1),在程序运行过程中,值不能被改变的量称为,常量,。,常量可分为不同的类型,如,0,,,1,为整型常量;,0.5,,,1.5,为实型常量;,A,,,#,为字符型常量;“,Abc”,为字符串常量,这些常量都是直接常量。,2.2,整型数据的运算与分析,(2),所谓,变量,,就是在程序运行过程中值可以发生变化的量,它的作用是用来存放常量的。,变量定义的一般形式为:,类型说明符 变量名1,变量名2,变量名3,;,如,:,int a,b,c;,float A,B,C;,2.2,整型数据的运算与分析,(3),变量名的取名规则,1,)只能由字母、数字和下划线三种字符组成;,2,)第一个字符必须为字母或下划线。,3,)大小写字母代表不同的字符,通常变量名用小写字母表示。,4,)变量名尽量简单易记、见名之意。,5,)在同一程序的同一函数中,不同的变量不能取相同的变量名,以免混淆。,2.2,整型数据的运算与分析,(,4,)变量必须“先定义,后使用”,1,)根据定义时的类型,编译系统为变量分配相 应的存储单元。,例:,int,型,若为,Turbo C,编译系统,则为每个整形变量分配,2,个字节,若为,Visual C+,,则分配,4,个字节。,2,)凡未被事先定义的,系统不把它认作变量名,保证程序中变量名使用的正确性。,3,)指定了每一变量属于一个类型,便于在编译时检查在程序中要求对该变量进行的运算是否正确。,2.2,整型数据的运算与分析,(,5,)整型常量,C,语言中整型常数有,3,种不同的表示形式:,(,1,)十进制,例如,25,,,789,,,888,。,(,2,)八进制,为了与十进制数有所区别,在八进制整数前加一个标识符“,0”,,例如,0123,,,0777,,,-0145,。,(,3,)十六进制,为了和其他进制数有所区别,在十六进制整数前面加一个标识符“,0X”,,例如,0X123,,,0X658,。,2.2,整型数据的运算与分析,(,6,)整型变量,数据在内存中是以二进制形式存放的。,如果声明了一个整型变量,k:,int k;/*,声明为整型变量*,/,k=12;/*,给变量赋以整数值,12*/,2.2,整型数据的运算与分析,每个整型变量在内存中占2个字节也就是16位,十进制整数12的二进制形式为1100,在内存中以下图形式存放:,2.2,整型数据的运算与分析,2.3,实型数据的运算与分析,例,2.2,分期付款的计算,张先生为购房,向银行贷款,贷款额为,D,元,每月准备还,P,元,月利率为,R,,求需要多少个月可以还清。,已知计算公式为,M,是还清贷款所需月数。今假设,D=324500,元,,P=3245,元,,R=0.8%,。编程求还贷月数,M,和总共还多少钱?,编写程序:,#include,#include,void main(),int d,p;,float r,m;,d=324500;,p=3245;,r=0.008;,m=(log10(p)-log10(p-d*r)/log10(1+r);,printf(“month=%fn”,m);,printf(“total=%fn”,m*p);,2.3,实型数据的运算与分析,实型常量(浮点数),C,语言中的实型常量如同其他高级语言中的实数,是由整数、小数和指数,3,部分组成,它的表示方法有两种:,(,1,)十进制小数形式:由数字和小数点组成。例如,4.87,,,-89.556,,,123.,,,123.0,,,0.0,。,(,2,)指数形式:用科学记数法来表示。例如,24.13e4,-5.45E9,56.3e-4,都是合法的实型数的表示方法。,56.3e-4=56.310,-4,注意:字母,e,(,E,)之前必须有数字,且,e,后面的指数必须为整数。,实型变量,1.,分类:单精度实型变量(,float,型),双精度实型变量(,double,型),长双精度实型变量(,long double,型),一般占,4,个字节的单精度数据的有效位数为,7,位,双精度数据的有效位数为,1516,位。,2.3,实型数据的运算与分析,2.,实型数据的舍入误差,例,2.3,#include,void main(),float p;,P=3.141592612;,Printf(“a=%fn”,p);,运行结果为:,a=3.141593,注意:在用计算机进行计算时,必须建立工程观点。,2.3,实型数据的运算与分析,3.,把实数按双精度数处理,C,编译系统一般都把程序中的实数常量处理成双精度类型,分配,8,个字节,以提高精度。,对例,2.3,进行改进。,注意:在程序中,对实型变量最好都定义成,double,型。,2.3,实型数据的运算与分析,例,2.4,逐个输出英文字母,C,H,I,N,A,。然后按反序输出,即,A,N,I,H,C,。,2.4,字符型数据的运算,编写程序:,#include,void main(),char a=C,b=H,c=I,e=A;,printf(“%c%c%c%cn”,a,b,c,e);,printf(“%c%c%c%cn”,e,c,b,a);,字符常量(单个字符),(,1,)用一对单引号括起来的一个字符,称为字符常量,例如,a,、,A,、,?,都是字符常量。,(,2,),C,语言还允许用一种特殊形式的字符常量,就是一个以“,”,开头的字符序列,这种反斜杠字符常量又称,转义字符,。,常见的转义字符有:,n,t,b,r,f,0,ddd,xhh,(,3,)字符常量在内存中只占一个字节,存储内容为该字符在,ASCII,码表中对应的数值。,2.4,字符型数据的运算,字符变量,字符型变量用来存放字符常量,只,能放一个字符,不可以放一个字符串,。,假设有如下声明:,char c=A;,它表明声明了一个字符型变量,c,,并把字符常量,A,赋给了,c,,因为,A,的,ASC,码值是,97,,所以相当于变量,c,现在的值就是,97,。,2.4,字符型数据的运算,字符数据与整形数据在一定条件下可以互换。,例,2.5,将一个整数赋给一个字符变量,将字符变量按整数输出。,例,2.6,将小写字母转换为大写字母。,2.4,字符型数据的运算,字符串常量(超过一个字符),(1)由一对双引号括起来的字符序列称为字符串常量。例如,“,a,”,“,How are you,”,“,5678,”,都是字符串常量。,(2)双引号是作为字符串常量的定界符使用,并不表示字符串常量本身。,(3),字符串中的字符按照从左到右的顺序,依次存储在一段连续的空间里,其中每一个字符占用一个字节,其内容为该字符在ASCII码表中对应的数值。,注意:C语言的字符串在实际存储时,将自动在字符串的尾部加了一个结束标志0(其ASCII码值为0)。,分析:a和“a”相同吗?为什么?,2.4,字符型数据的运算,例,2.7,已知圆的半径为,r,,求圆周长,c,,圆面积,s,,圆球体积,v,。,编程及其程序改进。,2.5,符号常量,符号常量的性质和使用方法,(,1,),#define,不是,C,语句,该行的末尾没有分号,它是一个“预编译命令”。,(,2,)习惯上,符号常量名用大写,变量名用小写,以示区别。,(,3,)使用符号常量的好处:,含义清楚,在需要改变一个常量时能做到“一改全改”。,2.5符号常量,几乎每一个程序都需要进行运算,运算包括算术运算、关系运算、逻辑运算和赋值运算。,运算是对数据进行加工的过程,而运算符是记述各种不同运算的符号。参加运算的数据称为运算量。,运算符与运算对象的组合构成了表达式,,C,语言的运算符非常丰富,能构成多种表达式,它把许多基本操作都作为运算符处理。使得,C,语言表达式处理问题的范围广、功能强,给各种运算带来了方便。,2.6,算术运算符和算术表达式,算术运算符,基本的算术运算符(双目运算符),运算符 名称 实例 运算功能,+,加法,a+b,求,a,与,b,的和,-,减法,a-b,求,a,与,b,的差,*乘法,a*b,求,a,与,b,的积,/,除法,a/b,求,a,除以,b,的商,%,模(求余),a%b,求,a,除以,b,的余数,优先级:,先乘除后加减,同一级别的一般情况下按照自左至右的顺序进行。,注意:,两个整数相除的结果为整数;,%,两侧均为整数。,算术运算符,自增、自减运算符(单目运算符),运算符 名称 实例 运算功能,+,加,1 +a,或,a+a=a+1,-,减,1 -a,或,a-a=a-1,-,求负,-a a=-a,自增(自减)运算符常用于循环语句中,使循环变量自动加,1,;也用于指针变量,使指针指向下一个地址。,算术表达式,表达式是指运算符与运算对象的组合,所以,算术表达式,就是由,算术运算符,与,常量、变量、函数,等相连接的,并具有一定数学含义的式子。,例如,,a-b*2+3.2+B,就是一个合法的算术表达式。,算术表达式,1.,各类数值型数据间的混合运算,整型、实型、字符型数据可以进行混合运算,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算,转换的规则如图所示:,算术表达式,强制类型转换运算符,利用强制类型转换运算符可以将一个表达式转换成所需要的类型。,一般形式为:,(类型名)(表达式),例如:,(int)(a+b),/*,将,a+b,的值转换成整型*,/,2.7 C运算符和C表达式,C,运算符分类:,算术运算符:,+-*/%,关系运算符:,=|&,赋值运算符:,=,条件运算符:?:,逗号运算符:,,指针运算符:*,&,求字节运算符:,sizeof,强制类型运算符:(类型),分量运算符:,.-,下标运算符:,其他 如函数调用运算符,2.7 C运算符和C表达式,C,表达式分类:,算术表达式:如,2+6.7*3.5+sin,(,0.5,),关系表达式:如,x0,,,y0&y0,赋值表达式:如,a=5.6,逗号表达式:如,a=3,,,y=4,,,z=8,
展开阅读全文