第2章 数据的存储与运算

上传人:ldj****22 文档编号:48883347 上传时间:2018-07-21 格式:PPT 页数:34 大小:377KB
返回 下载 相关 举报
第2章 数据的存储与运算_第1页
第1页 / 共34页
第2章 数据的存储与运算_第2页
第2页 / 共34页
第2章 数据的存储与运算_第3页
第3页 / 共34页
第2章 数据的存储与运算_第4页
第4页 / 共34页
第2章 数据的存储与运算_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第2章 数据的存储与运算》由会员分享,可在线阅读,更多相关《第2章 数据的存储与运算(34页珍藏版)》请在金锄头文库上搜索。

1、第二章l 主要内容2.1 数据在计算机中是怎样存储的 2.2 整型数据的运算与分析2.3 实型数据的运算与分析2.4 字符型数据的运算2.5 符号常量2.6 算术运算符和算术表达式 2.7 C运算符和C表达式2.1 数据在计算机中是怎样存储的2.1.1 数据在计算机中是以二进制形式存储的计算机内部的信息都是用二进制来表示的。 二进制数的特点是“逢二进一”。每一位的值只有0和1两 种可能。 例如:十进制数10,用二进制表示是1010。它的含义是:每一个二进位代表不同的幂,最右边一位代表2的0次方,最右边第二位代表2的1次方,以此类推。显然 一个很大的整数可能需要几十个“二进制位”来代表2.1 数

2、据在计算机中是怎样存储的2.1.2 位、字节和地址位:又称“比特”(bit)。每一个二极管元件称为 一个“二进制位”,是存储信息的最小单位。它的 值是“1”或“0”。 字节:又称“拜特”(byte)。一般将8个“二进制 位”组织成一组,称为“字节”。 地址:计算机的存储器包含许多存储单元,操作 系统把所有存储单元以字节为单位编号 。2.1 数据在计算机中是怎样存储的2.1.3 不同类型数据的存储方式1. 整数的存储方式 十进制整数先转换为二进制形式。例如:整数10以二进制 形式表示是1010,直接把它存放在存储单元中。 2. 实数的存储形式 实数采用指数形式存储,例如:123.456可以写成标

3、准化指 数形式0.123456 ,它包括前后两个部分,前面部 分是数值部分,后面部分是指数部分。0.123456 数值部分 指数部分说明:标准化指数形式:其数值部分是一个小数,小数点 前的数字是零,小数点后的第一位数字不是零。一个实数可 以有多种指数表示形式,但只有一种属于标准化指数形式2.1 数据在计算机中是怎样存储的3. 字符的存储方式 字符包括字母(如A,a,X,x)、专用字符(如 $,%,#)等。 计算机并不是将该字符本身存放到存储单元 中(存储单元只能存储二进制信息),而是将字 符的代码存储到相应的存储单元中。 附录A是字符与代码的对照表,这是国际通用 的ASCII代码。ASCII码

4、表ASCII码表(7位)高三位 b6b5b4低四位 b3b2b1b02.2 整型数据的运算与分析鸡兔同笼: 在一个笼子里同时养着一些鸡和兔子 ,你想了解有多少只鸡和多少只兔,主人对你说: 我只告诉你鸡和兔的总头数是16,总脚数是40,你 能不能自己计算有多少只鸡和多少只兔?设:x-鸡数量 y-兔数量,h-总头数 f-总脚数 有方程式:例题 2.1解题思路x+y=h (1) 2x+4y=f (2) 求x和y的公式: (2)式-2x (1)式: 2y = f 2hy=2.2.1 整型数据运算程序举例和分析整型数据运算程序举例和分析2.2 整型数据的运算与分析#include void main()

5、 int h,f,x,y; /* 定义整型变量h,f,x,y */h=16; /* 对整型变量h赋值,使h的值等于16 */f=40; /* 对整型变量f赋值,使h的值等于40 */ y=(f-2* h)/2; /* 对表达式(f-2* h)/2进行运算,把结果赋给y */x=h-y; /* 对表达式h-y进行运算,把结果赋给x */printf(“%d%dn“,x,y); /* 输出鸡的个数和兔的个数 */ 编写程序说明:说明: 1、运行时显示:124 2、程序改进:printf(“%d,%dn“,x,y); 3、再改进:printf(“cock=%d,rabbit=%dn“,x,y); 2

6、.3 实型数据的运算与分析2.3.1实型数据的运算举例例题 2.2分期付款的计算。张先生为购房,向银行贷款, 贷款额为324500元,每月准备还3245元,月利率 为0.8%,求需要多少个月才能还清。 解题思路m=log10(p)-log10(p-d*r)/log10(1+r); d贷款额,p每月还款数,r月利率,m还 清贷款所需月数。 d=324500元,p=3245元,r=0.8%。2.3 实型数据的运算与分析#include /* 用输入输出函数时必须用“stdio.h”头文件 */ #include /* 用数学函数时必须用“math.h”头文件 */ void main() int

7、d,p; /* 定义d和p为整型变量 */float r,m; /* 定义r和m为实型变量 */d=324500; /* 给整型变量d赋值 */p=3245; /* 给整型变量p赋值 */r=0.008; /* 给实型变量r赋值 */m=(log10(p)-log10(p-d*r)/log10(1+r); /* 通过公式求m的值 */printf(“month=%fn“,m); /* 输出m的值 */printf(“total=%fn“,m*p); /* 计算并输出总的还款数 */ 编写程序说明:说明: (1) #include 是“包含头文件” 的命 令,调用系统提供的库函数,见附录E。 (

8、2)C编译系统把所有实(float)型常量(如 0.008)和 log10函数的值都作为双精度数 据来处理,在把它们赋给float型变量时可 能会丧失一些精度,在编译时出现“警告 ”,不属于致命性错误,可以将r和m改定 义为double型 (3)可以在定义变量时同时赋初值int d=32450,p=3250,double r=0.008 (4)运行结果:month=201.983404, total=655436.127930基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型voidvoid定义类型定义类型typedeftypedef数值类型数值类型字符类型字符类型charchar枚

9、举类型枚举类型enumenum整整 型型浮点型浮点型单精度型单精度型floatfloat双精度型双精度型doubledouble短整型短整型shortshort长整型长整型longlong整型整型intint数组数组结构体结构体structstruct共用体共用体unionunionC 数据类型数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可进行的操作例2.3 实型数据的舍入误差 #include void main() float a,b;a = 123456.789e5;b = a + 20 ;printf(“%fn”,b); 说明:说明:一个实型变量只能保证的有效数字

10、是7位有 效数字,后面的数字是无意义的,并不准确地表 示该数。应当避免将一个很大的数和一个很小的 数直接相加或相减,否则就会“丢失”小的数运行结果: 123456.789e5类型类型 位数位数 数的范围数的范围 有效数字有效数字float float 32 32 10 10-37 -37 101038 38 6 6 7 7 位位DoubleDouble 64 64 10 10-307-307 1010308308 1515 1616位位long double 128 10long double 128 10-4931-4931 10104932 4932 1818 1919位位2.3 实型数据

11、的运算与分析 2.3.3 实型变量实型变量的分类浮点型变量分为单精度(float型)、双精度 (double型)和长双精度型(long double)三类 形式。2.4 字符型数据的运算逐个输入英文字母C,H,I,N,A。然后按反 序输出,即A,N,I,H,C。可以把5个字母分别放在5个变量中,第1 次按正序输出这5个字母,第2次按反序输出 这5个字母。C语言提供字符型变量,用来存 放字符数据。 例题 2.4解题思路2.4.1 字符数据运算的简单例子2.4 字符型数据的运算#include void main() char a=C,b=H,c=I,d=N,e=A; /* a,b,c,d,e定义

12、为字符变量 */printf(“%c%c%c%c%cn“,a,b,c,d,e); /* 顺序输出CHINA */printf(“%c%c%c%c%cn“,e,d,c,b,a); /* 反序输出CHINA */编写程序说明:说明: 1、第3行是定义字符变量a,b,c,d,e。字符要用单撇号括起来。 一个字符变量放一个字母字符。 2、第4,5行输出5个字母。输出字符所用的格式说明为“%c”。 3、运行结果:CHINA ANIHC2.4 字符型数据的运算有些以“”开头的特殊字符称为转义字符n 换行 t 横向跳格 r 回车 反斜杠 ddd ddd表示1到3位八进制数字 xhh hh表示1到2位十六进制

13、数字例2.5 向字符变量赋以整数。 #include void main()char c1,c2;c1=97;c2=98;printf(“%c %cn”,c1,c2);printf(“%d %dn”,c1,c2); 说明:说明:在第和第4行中,将整数97和98分别赋 给c1和c2,它的作用相当于以下两个赋值语句:c1;c2;因为a和b的ASCII码为97和98 运行结果: 97 982.4 字符型数据的运算3.字符数据与整型数据在一定条件下可以通用 一个字符常量存放到一个字符变量中,实际上并 不是把该字符的字型放到内存中去,而是将该字 符的相应的ASCII代码放到存储单元中。这样使字 符型数据

14、和整型数据之间可以通用。注意: 一个字符数 据既可以以 字符形式输 出,也可以 以整数形式 输出。例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。 语言允许字符数据与整 数直接进行算术运算。 运行结果: 2.5 符号常量2.5.1 为什么要用符号常量 例题 2.7已知圆的半径为r,求圆周长c,圆面积s,圆球体积v。解题思路 圆周长 圆面积 圆球体积有了以上公式就可以进行计算了。s= c=2rV=2.5 符号常量#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;printf(“c=%fns=%fnv=%fn“,c,s,v);编写程序说明:说明:运行结果:c=23.059290s=42.313797v=155.2916332.5 符号常量#define pi 3.14159 #include void main()double r=3.6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号