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

下载本文档

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

文档简介

2.1 常量与变量 2.2 C语言的数据类型 2.3 运算符和表达式 第2章 数据的存储与运算 2.1 常量与变量 数据在算法或者程序中以变量和常量两种形式出现 。 v变量 一个变量对应内存中的一个数据存储单元,变量 的值就保存在相对应的内存单元中。由于在程序运 行的过程中,这些内存单元中保存的值常常会变化 ,变量这一名称由此而得。 v常量 (1)普通常量 普通常量是指在算法或者程序中直接出现的具体值 。如表达式x=a+12中的12就是一个普通常量。 (2)符号常量 例: 符号常量的使用。 #define PI 3.14 #include main ( ) int r,h,s,v; r=10;h=15; s=2*PI*r*h+2*PI*r*r; v=PI*r*r*h; printf(“s=%d,v=%d“,s,v); v标识符 对变量、符号常量、函数、数组、类型等数据 对象有效命名的字符序列称为标识符。简单地说, 标识符就是一个名字。 C语言对标志符有如下规定: (1)标识符只能由字母、数字和下划线三种字符组成 ,且第一个字符必须为字母或下划线。 下面列出的是合法的标识符,也是合法的变量名 average, _total, student_name, lotus_1_2_3, tan48 下面是不合法的标识符和变量名: m.d.John, (3) 长整型 定义短整型变量x的语句:long int x;或者long x; 2. 整型数据在内存中是以二进制补码的形式存放 (1)正整数以及0的补码是该数的二进制形式。 10的补码就是它的二进制形式:0000000000001010 。 (2)负整数的补码是其绝对值的二进制形式各位 取反然后加1得到。 -10的补码,先将其绝对值10转换为二进制形式: 0000000000001010, 然后各位取反:1111111111110101, 接下来再加1得到:1111111111110110。 3. 三种整数类型在默认情况下都可以保存正整数和 负整数。 为了充分利用整型变量能表示的整数范围,可以将 整型变量定义为“无符号”类型。 在以上三种类型的定义语句前面加上修饰符unsigned 就可以指定是无符号整型变量 。 如果加上修饰符signed,则指定是有符号整型变量 。 但是一般都省略signed ,因为在既不指定为signed, 也不指定为unsigned的情况下,系统默认为有符号 (signed)。 有符号(signed)整型变量与无符号(unsigned)整型变 量可表示的整数范围是不同的。比如以下两条语句 : “int a;” 以及“unsigned int b;”定义了两个整型变量a 和b,两者可以表示的最大整数如下图所示。 归纳起来,可以定义以下6种整型变量。即: 有符号基本整型 signed int 无符号基本整型 unsigned int 有符号短整型 signed short int 无符号短整型 unsigned short int 有符号长整型 signed long int 无符号长整型 unsigned long int 值得一提的是在Visual C+的编译环境下,整型变 量大多定义为4个字节的基本整型(int),表示的 数值范围是从231到231 1,正负约21亿,处理 一般的问题完全够用。 2.2.2 实型数据 v实型常量的表示方法 实数又称浮点数。实数有两种表示形式: (1)十进制小数形式。它由数字和小数点组成(注意 必须有小数点)。0.123、123.0、0.0都是十进制小 数形式。 (2)指数形式。如123e3或123E3都代表123103。但 注意字母e(或E)之前必须有数字,且e(或E)后面 的指数必须为整数,如e3、2.1e3.5、e等都不是合 法的指数形式。 v规范化的指数形式 一个实数可以有多种指数表示形式。 例如123.456可以表示为 123.456e0 、12.3456e1、 1.23456e2、 0.123456e3等。 把其中的1.23456e2称为“规范化的指数形式”, 即在 字母e(或e)之前的小数部分中,小数点左边应有一位 (且只能有一位)非零的数字。 一个实数在用指数形式输出时,是按规范化的指数形 式输出的。例如指定将实数5689.65按指数形式输出, 必然输出5.68965e+003, 而不会是0.568965e+004或 56.8965e+002。 v实型变量 1. 实型变量的分类 C语言的实型变量分为以下三类: (1)单精度(float型) 定义单精度实型变量x的语句: float x; (2)双精度(double型) 定义双精度实型变量x的语句: double x; (3)长双精度型(long double) 定义长双精度实型变量x的语句: long double x; 2. 实型数据在内存中的存放形式 系统把一个实型数据先转换成二进制形式,然后转换成规范 化的指数形式,分别存放符号位、指数部分和尾数部分。 3. 实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,因此能 提供的有效数字总是有限的,在有效位以外的数字 将被舍去。由此可能会产生一些误差。 单精度的实型数据表示的数值范围为10-38至1038, 有效数字是7位。 双精度的实型数据表示的数值范围为10-308至10308, 有效数字是15到16位。 3.2.3 字符型数据 v字符常量 由单撇号括起来的字符,如A、a、?、$等 。A与a是两个不同的字符常量。还有一类字符 常量是控制字符,它们是由“”开头,不能在屏幕 上显示,常用于输入输出函数中进行格式控制。 计算机系统使用的所有字符见附录A的ASCII码表 。 v字符变量 所有的编译系统都规定字符变量在内存中是以一 个字节来保存,字符数据在内存中是以其ASCII 码的二进制形式保存。比如字符a其ASCII码为 97,(97)2=01100001,所以a在内存中的保存形 式为“01100001”。 字符变量的定义形式如下: char a; 3.3 运算符和表达式 3.8.1 C运算符简介 C语言的运算符范围很宽,把除了控制语 句和输入输出以外的几乎所有的基本操作都 作为运算符处理,例如将赋值符“=”作为 赋值运算符,方括号作为下标运算符等。c 的运算符有以下几类: 1算术运算符 (+ - * / %) 2关系运算符 (=!=) 3逻辑运算符 (! printf(“%d“,+i); 输出“4”。 若改为 printf(“%d“,i+); 则输出“3”。 v复合的赋值运算符 在赋值符“=”之前加上其他运算符,可以构成复合 的运算符。如果在“=”前加一个“+”运算符就成了复 合运算符“+=”。例如,可以有: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3 语言规定了10种复合运算符: +=,-=,*=,/=,%=,=,&=,=,|= 后5种是有关位运算的,将在以后介绍。 v赋值表达式 由赋值运算符将一个变量和一个表达式连接 起来的式子称为“赋值表达式”。它的一般形式为 : 变量=表达式 对赋值表达式求解的过程是:将赋值运算符 右侧的“表达式”的值赋给左侧的变量。赋值表达 式的值就是被赋值的变量的值。例如,“a=5”这 个赋值表达式的值为5(变量a的值也是5)。 赋值运算符左侧变量的值称为“左值”,右侧的表 达式的值称为“右值”。 上述一般形式的赋值表达式中的“表达式”, 又可以是一个赋值表达式。 如a=(b=5) 括弧内的“b=5”是一个赋值表达式,它的值 等于5。“a=(b=5)”相当于“b=5”和“a=b”两个赋值 表达式, 因此a的值等于5,整个赋值表达式的值 也等于5。赋值运算符按照“自右而左”的结合顺序 ,因此,“b=5”外面的括弧可以不要,即 “a=(b=5)”和“a=b=5”等价,都是先求“b=5”的值( 得5),然后再赋给a。 下面是赋值表达式的例子: a=b=c=5 (赋值表达式值为5, a、 b、 c值均为5) a=5+(c=6) (表达式值为11,a值为11,c值为6) a=(b=4)+(c=6) (表达式值为10,a值为10,b等 于4,c等于6) a=(b=10)/(c=2) (表达式值为5,a等于5,b等于 10,c等于2) 赋值表达式也可以包含复合的赋值运算符。 如:a+

温馨提示

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

评论

0/150

提交评论