第2章-数据的存储与运算
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案
2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
第2章 数据存储基础
二进制:
1、数码:0、1
2、基数为2,逢2进1
3、用多项式表示一个二进制数
B=b n-12 n-1+…+b 121+b 02 0+b-12-1 + … +b-m2―m
八进制(后缀O) 1、数码:0、1、2、3、4、5、6、7 2、基数为8,逢8进1 3、用多项式表示一个八进制数 O=a n-18 n-1+…+a 181+a 08 0+a-18-1 + … +a-m8―m
数码:一组用来表示某种数制的符号。 如,十进制的数码是0、1、2、3、4、5、6 、7、8、9;二进制的数码是0、1。 基数:某数制可以使用的数码个数。 如,十进制的基数是10; 二进制的基数是2。 数位:数码在一个数中所处的位置。 权:权是基数的幂,表示数码在不同位置 上的数值。
2.1.2数制间的转换 一、二进制与十进制之间的互相转换 1. 二进制到十进制:利用展开公式 根据公式: B = b n-12 n-1 +b n-22 n-2 +…+b 12 1+b 02 0 +b-12-1 +…+b-m2-m 例如: (1101.01)2=1×23+1×22+0×21+1×20+ 0×2-1+1×2-2 =(13.25)10
2.1.1 进位计数制
按照进位方式计数的数制叫做进位计数制。 进位计数制是利用固定的数字符号和统一的规 则来计数的方法。 进位计数制是一种计数方法,通俗地讲,就是 逢几进一的规则。 习惯上最常用的是十进制计数法。十进制数是 最常用的一种数制, 但它不是唯一的数制。 例如计时用的时、分、秒就是按60进制计数的。 十进制起源于人类双手的十根手指。 由于开关器件的特性,两个稳定的状态,因此, 计算机内部采用二进制数存贮数据。
位权:? 基数为底,数码所在位置的序号为指数的整数次 幂。 (346.8)10=3×102+4×101+6×100+8× 10-1 百位位权:102 十位位权:101 个位位权 :100 十分位位权:10-1 (1011.01)2=1×23+0×22+1×21+1×20+ 0×2-1+1×2-2 千位位权:23 百分位位权:2-2
第2章 存储系统(第08讲)
计算机组成与系统结构
24
2.1.2 存储系统的分层结构
分层结构 局部性原理是存储系统层次结构技术可行性的基础. 一般:CPU频繁访问的信息 CPU不频繁访问的信息 高速存储器中 低速存储器中
计算机组成与系统结构
25
例: 二级存储器系统,第一级容量为1KB,访问时间1S; 第二级容量为1MB,访问时间10S。 CPU先访问第一级,如不在,就由第二级送至第一级.
计算机组成与系统结构
18
2.1 分级存储体系的形成
2.1.2 存储系统的分层结构
1.计算机应用对存储器要求的矛盾:
SC(价), C(价) C S
计算机组成与系统结构
19
2.1.2 存储系统的分层结构
用户要求存储器的容量大,速度快.为解决容量、 速度、价格的矛盾,有效的措施是实现分级存储.
当r=100,要使e>0.9 当r=2, 要使e>0.9 H>0.998 H只需>0.889
注意:相邻两级存储器的速度差异不能太大,在 cache— 主存系统中,取r=5-7为好.
在主存—磁盘层次中, r= 104, 这很不理想,其间有 很大空档,从r不能太大的观点出发,最好应有一种S-CC介于其间的存储器作为中间层次. 29 计算机组成与系统结构
计算机组成与系统结构
22
2.1.2 存储系统的分层结构
2.存储器访问的局部性 它是存储器层次的设计思想,也是实现存储 器层次结构的先决条件。
主存
主存
空间局部性
计算机组成与系统结构
时间局部性
23
2.1.2 存储系统的分层结构
实现存储系统的层次结构的先决条件(基础): 存储器访问的局部性,即:时间局部性和空 间局部性。 时间上的局部性指的是当前正在使用的信息 很可能是后面立刻还要使用的信息。 空间上的局部性是指连续使用到的信息很可 能在存储空间上相邻或者相近。
C语言程序设计 第2章 数据类型
2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言教材 第2章
第2章 C 语言的基本数据类型本章要点了解C 语言的数据类型,掌握基本数据类型的应用及其相互转换规则,理解变量和常量的概念,并掌握其定义及引用方法。
本章的难点是数据在内存中的存储形式。
第一节 C 语言的数据类型由于信息的表现形式多种多样,处理的方法也不相同,所以,我们必须考虑用不同形式的数据来表示不同的信息。
例如:一个班级的人数要用整数来表示;班级学生的平均成绩要用小数表示;学生的姓名、性别要用字符来表示;一个班级学生某一门课程的成绩要用一组不同的数值来表示等。
计算机语言中的数据类型就是为了能够高效处理各种不同的数据而引进的一个概念,是指数据的内在表现形式。
不同的数据类型具有不同的取值范围和不同的操作。
C 语言提供的数据类型如图2-1所示。
在程序中使用的所有数据都必须指定它的数据类型,C 语言的数据类型由基本类型和非基本类型组成。
其中,基本数据类型是其他数据类型的基础。
C 语言中的基本数据类型包括整型、实型(浮点型)、字符型,其中实型又包括单精度和双精度两种类型。
本章主要讨论这4种基本类型。
整型、单精度型、双精度型和字符型数据定义的关键字分别为:int 、float 、double 和char 。
除了这四个关键字外,C 语言中还提供了一些数据类型的修饰符,如:long 、short 、signed 和unsigned 。
它们的作用是与基本类型的定义关键字结合起来使用,以对基本类型进行扩充,使得在程序编写的过程中可以灵活调整数值的范围以及所占用的存储空间。
结合修饰符的应用,基本数据类型可进一步划分,如表2-1所示。
表2-1 各种数据类型及其说明语言的数据类型图)空类型(指针类型)共用体类型()结构体类型(数组类型构造类型)枚举类型()字符型()双精度型()单精度型(实型(浮点型))整型(基本类型C 12void union structenum char double float int -⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧说明:(1)表中方括号内的部分是可以省略不写的。
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
第二章基本数据结构及其运算
用这种方法查找,每次比较都可抛弃子表一半的 元素,查找效率较高 从该例可看出,数据元素在表中的排列顺序对查 找效率有很大的影响
例2、学生情况登记表信息查询 成绩在90分及以上的学生情况登记表
学 号 970156 970157 970158 970159 970160 970161 970162 970163 970164 … 姓 名 性 别 年龄 20 张小明 男 19 李小青 女 19 赵 凯 男 21 李启明 男 18 刘 华 女 19 曾小波 女 18 张 军 男 20 王 伟 男 19 胡 涛 男 … … … 成绩 86 83 70 91 78 90 80 65 95 … 学 号 姓 名 性别 男 女 男 女 年龄 21 19 19 17 成绩 91 90 95 93 970159 李启明 970161 曾小波 970164 胡 970168 梅 涛 玲
数据结构主要研究和讨论三方面问题:
1、数据元素之间的固有逻辑关系,称为数据的逻辑结构 2、数据元素及其关系在计算机中的存储方式,称为数据的 物理结构或存储结构
3、施加在数据结构上的操作,称为数据结构的运算。数据处 理的本质就是对数据结构施加各种运算,常见的运算有:查找、 排序、插入、删除等。
主要目的是提高数据处理的效率:
§2.1.3 数据结构的图形表示
D中的数据元素用中间标有元素值的方框表示, 称为数据结点(结点);R中的关系用一条有向线段 从前件结点指向后件结点。
例:设数据元素的集合为D = {di |1≤ i≤ 7的整数},画 出对应于下列关系所构成的数据结构的图形
①、R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} ②、R2={(di,dj)|i+j=5} ③、R3={(d2,d3)(d3,d1),(d1,d4),(d4,d6),d6,d5),(d5,d7)}
第2章_Java基本数据和运算
5 % 2= 1 5/2=2
分析运行结果
public class OperatorTest { public static void main(String[] args) { int i =7/3; int j =2+7%i; double k = 7.8/i+5; System.out.println("i="+i); System.out.println("j="+j); System.out.println(”k="+k); } }
算术运算符应用
某学生有3门课成绩,编程实现求平均分。
public class Test1 { public static void main(String[ ] args) { String name= "刘星"; //姓名 int javaScore=90; //Java成绩 int webScore=86; // Web成绩 int sqlScore=88; //Sql 成绩 double avgScore; //平均成绩 avgScore= (webScore+javaScore+sqlScore)/3; System.out.println("学生姓名:"+name); System.out.println("平均成绩:"+avgScore); } }
?
常见错误
下面语句正确吗?
int a = 10; int b = 10.2; double c = 10; c = a; int d = c; double不可以自动转化成int
分析运行结果
public class TypeTest1 { public static void main(String[] args) { int a = 5; float x = a; //自动类型转换 double y= 5.8; int b=(int)y; //强制类型转换 System.out.println("a="+a); System.out.println("x="+x); System.out.println("y="+y); System.out.println("b="+b); } }
C语言程序设计第2章 数据类型与运算练习题及解答
第2章数据类型和运算符习题及解答一.选择题。
1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。
语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语言的数据类型。
在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
6.下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。
微机原理第02章1
第2章: 溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位 有符号数运算: 58+124=182 范围外,有溢出
例2:AAH+7CH=(1)26H
无符号数运算: 170+124=294 范围外,有进位 有符号数运算: -86+124=28 范围内,无溢出
常用来存放双字长数据的高16位,或存放外设端口地址
第2章:(2)变址寄存器
16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址
SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index)
在串操作类指令中, SI 、 DI 还有较特殊的 用法 现在不必完全理解,以后会详细展开
第2章:溢出和进位的应用场合
处理器对两个操作数进行运算时,按照无 符号数求得结果,并相应设置进位标志 CF; 同时,根据是否超出有符号数的范围设置 溢出标志OF 应该利用哪个标志,则由程序员来决定。 也就是说,如果将参加运算的操作数认为 是无符号数,就应该关心进位;认为是有 符号数,则要注意是否溢出
第2章:符号标志SF(Sign Flag)
运算结果最高位为1,则SF=1; 否则SF=0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
3AH+7CH=B6H,最高位D7=1:SF=1
84H+7CH=(1)00H,最高位D7=0:SF=0
第2章:奇偶标志PF(Parity Flag)
第2章:辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)有进位或
借位时,AF=1;否则AF=0
这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中, 用户一般不必关心 3AH+7CH=B6H,D3有进位:AF=1
数据结构1-3习题答案
课堂练习
1、在什么情况下用顺序表比链表好? 、在什么情况下用顺序表比链表好 2、画出执行下列各行语句后各指针及链表的 示意图。 示意图。 、 L=(LinkList) malloc (sizeof(LNode));//等价于 等价于L=new LNode; 等价于 P=L; For(i=1;i<=4;i++) { P->next=(LinkList) malloc (sizeof(LNode)); P=P->next; P->data=i*2-1;} P->next=NULL; For(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2); For(i=1;i<=3;i++) Del_LinkList(L,i);
在下面两列中,左侧是算法(关于问题规模) 2.8 在下面两列中,左侧是算法(关于问题规模) 的执行时间,右侧是一些时间复杂度。 的执行时间,右侧是一些时间复杂度。请用连 线的方式表示每个算法的时间复杂度。 线的方式表示每个算法的时间复杂度。 100n3 6n2-12n+1 1024 n+2log2n n(n+1)(n+2)/6 2n+1+100n
判断下述计算过程是否是一个算法: 2.4 判断下述计算过程是否是一个算法: Step1: 开始 Step2: n<=0; Step3: n=n+1; 重复步骤3; Step4: 重复步骤3; 结束; Step5: 结束; 该计算过程不是一个算法, 答:该计算过程不是一个算法,因为其不满足算法的 有穷性。 有穷性。
回顾
第一章知识要点: 第一章知识要点: • 基本概论:数据、数据元素、数据项、数据对象 基本概论:数据、数据元素、数据项、 • 数据结构(D,S) 数据结构(D,S)
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
第二章 C语言的基本数据类型及运算
解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
2020/12/11
原码、反码和补码
11
正数:原码、反码、补码相同
– 符号位为0,数值为对应的二进制数。 +109
[01101101]原 = [01101101]反 = [01101101]补
• 指数只能是整数,而尾数则可以是整数也可以是 小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法
• 实型常量的类型:默认为double型,后面加F (或f),则强调表示该数是float类型 例如:3.5f、1e2F
2020/12/11
3. 字符型常量
22
可视字符常量 – 单引号括起来的单个可视字符 例如:'a'、'A' 、'+' 、'3'、' ' 等
例如: #define LEN 2.5
定义符号常量
main( )
{ float a,b;
a= 2*3.14 *LEN;
使用符号常量
b=3.14*LEN*LEN;
printf("a=%f,b=%f\n",a,b);
}
编译前系统进行替换
2020/12/11
5. 符号常量
25
main( )
{ float a,b;
负数:
– 原码符号位为1,数值为绝对值的二进制
数。
-109 [11101101]原
– 反码符号位为1,数值为绝对值的二进制
数各位变反。 -109 [10010010]反
– 补码符号位为1,数值为绝对值的二进制
C语言第2章 数据类型及运算符
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
C语言复习资料 第二章重点内容
11
2。 对上述已经定义的实型常量指数形式的说明:
(1)在此的digits是一位或多位十进制数字(0—9)组成。 (2)小数点之前是整数部分,之后是小数部分。 (3)小数点在没有小数时可以省略。如:3E+6 (4)指数部分用E或者e开头,幂指数可以为负,当没有符号时,视为正 指数,且其基数都为10。 (5)在不加说明的情况下,实型常量为正值,如果要表示负值,必须在 常量前使用负号。如:-2.5E-5 (6)字母E或e之前必须有数字,且E或e之后指数必须为整数。 如:e3,2.3e9.5,.e3等都是不合法的。
上述各类型整型变量占用的内存字节数随系统而异。在16位操作系 统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型 (2字节)≥short型(2字节)。
2.占用内存字节数与值域
8
显然,不同类型的整型变量,其值域不同。占用内存字 节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-11);无符号整型变量的值域为:0~(2n*8-1)。(同样适合于 各种不同的类型 ) 例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-11),即-32768~32767;一个unsigned型变量的值域为:0~ (22*8-1),即0~65535。 2.4.2 整型常量 1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如0x36。
9
2.分类 (1)基本整型。在16位机中,用2字节存储,其数据范 围与int型变量一样。 (2)长整型(在数值后面加“L(l)”)。对超出基 本整型值域的整型常量,可使用长整型常量表示,其取值 范围可达-231-(231-1)。例如,123l、315L等。 3.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其 值的整型变量。 例如,其值在-215--(215-1)的整型常量,可以赋 给int型变量和long int型变量;其值在-231--(231-1)的整 型常量,就只能赋给long int型变量。 注意:常量无unsigned型。但一个非负整型常量,只要 它的值不超过相应变量的值域(即取值范围),也可以赋 给unsigned型变量。
2.数据的存储
C 语 言 程 序 设 计
数值的表示方法——计算机不论对正数和负数都按 ‚补码‛形式存放到存储单元。
原码:最高位为符号位,其余各位为数值本身的绝对值 反码:
正数:反码与原码相同 负数:符号位为1,其余位对原码取反
补码:
正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1
-10的反码
-10的补码
取反 再加 1
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
短整型short
数据类型总表
基本类型
整 型
整型int
长整型long
单精度型float
双精度型double 字符类型char 数组 实型
C 数 据 类 型
结构体struct 构造类型 共用体union 枚举类型enum 指针类型 无值型
例 (1101001)2=(001,101,001)2=(151)8
例 (246)8=(010,100,110)2=(10100110)2
第 二 章 数 据 描 述
C 语 言 程 序 设 计
二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组 (不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一 位十六进制数
第二章 数据的存储与运算
预备知识 基本数据类型 常量与变量 不同类型数据间的转换 运算符和表达式
C 语 言 程 序 设 计
§2.0 预备知识
计算机中数的表示及进制转换
数码、基与权
数码:表示数的符号 基:数码的个数 权:每一位所具有的值
数制
第 二 章 数 据 描 述
C 语 言 程 序 设 计
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
第2章数据的存储与运算PPT课件
精选PPT课件
12
P19
2.2.1 整型数据运算程序举例和分析
➢解题思路:
设x代表鸡的数量,y代表兔的数量,总头 数为h,总脚数为f
列出下面的方程式:
x+y=h
2x + 4y = f
解方程得到: y f 2h 2
(1) (2)
xhy
精选PPT课件
13
P19
2.2.1 整型数据运算程序举例和分析
二进制数 0 1 10 11
100 101
十进制数 6 7 8 9 10
二进制数 110 111 1000 1001 1010
1 0 1 2 1 3 0 0 2 2 1 2 1 0 2 0
精选PPT课件
5
2.1.2 位、字节和地址 P17
➢位(bit) ,又称“比特” 。每一个二极管元 件称为一个“二进制位”,是存储信息的最 小单位。它的值是“1”或“0”
第2章 数据的存储与运算
2.1 数据在计算机中是怎样存储的
2.2 整型数据的运算与分析
2.3 实型数据的运算与分析
2.4 字符型数据的运算
2.5 符号常量
2.6 算术运算符和算术表达式
2.7 C运算符和C表达式
2.8 提高部分
精选PPT课件
1
P16
2.1 数据在计算机中是怎样存储的
2.1.1 数据在计算机中是以二进制形式存储的 2.1.2 位、字节和地址 2.1.3 不同类型数据的存储方式
P19
2.2.1 整型数据运算程序举例和分析
➢定义变量的一般形式是: 类型名 变量名;
例如:int h,f,x,y; 变量都必须在使用前定义,指定其类型 赋值:h=37; f=88;
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高职学院 计算机专业 程序设计基础》 《程序设计基础》
关键字
C语言的所有命令,系统函数名等,就称为C语言 的关键字。就像你用英语,是用英语单词写文章, 你用C语言写程序,就是用C语言关键字完成你的 程序,通过关键字向计算机发出指令,完成指定 的任务。 由ANSI标准定义的共32个 : auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static
3
高职学院 计算机专业 程序设计基础》 《程序设计基础》
导入
可以带着如下问题来学习本章内容:
程序运行时所需数据要驻留在内存中,内存的结构和 容量是如何表示的? 程序设计中都会用到哪些数据?每种数据通常都具备 哪些特征(取值范围,都支持哪些操作; 如何在内存 中存储; 程序里如何对其进行读取)? 程序中数据是以何种形式保存在内存中呢? 变量与常量
1
高职学院 计算机专业 程序设计基础》 《程序设计基础》来自第二章数据的存储与运算
高职学院 计算机专业 程序设计基础》 《程序设计基础》
导入
读者现在一定很渴望立刻编写程序,使用计算机来辅助我 们解决一些问题,我们先来看下面的例子。 例如,在初等数学时我们可以用【πr2】描述一个圆的面 积,C程序里要想实现这样的计算,也要使用类似的表达 式,具体描述为【π*r*r】。与数学相比,这段描述告诉了 C C语言的编译系统,如何来自动完成相应的运算,获取结 果。前面我们用到的π,2我们称之为是程序设计中需要使 用到数据,由数据和运算符构成的描述我们称之为表达式。 在正式编写程序前我们还需要认识一下C语言都能处理哪 些数据,以及这些数据具有什么样的特性,数据是程序加 工的对象,自然界中存在的实物在程序世界里都通过数据 进行表示,只有充分了解各种类型的数据的特性才能在程 序设计过程中更为准确的使用。
这些问题都是我们在开始编写程序前需要知道的, 也是本章重点讲解的内容。
4
高职学院 计算机专业 程序设计基础》 《程序设计基础》
2.1 计算机的内存与数 据存储
内存(Memory)也被称为内存储器,其作用是用于暂时存放 CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只 要计算机在运行中,CPU就会把需要运算的数据调到内存中进 行运算,当运算完成后CPU再将结果传送出来。 外存是指的磁盘,磁带,光盘,U盘等等这些介质.它们都是通 过磁,光坑,可存储半导体等方式存储数据,这些都是不需要 加电来保持的介质,所以可以永久存储数据,但是他们读数据 时,都需要进行光电转换,或是磁电转换,都需要有个转换的 过程,所以速度相对内存而言比较慢。容量能根据介质的特点 做得比较大,可以永久保存数据。 平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。 就好比在一个图书馆里,存放书籍的书架和书柜相当于电脑的 外存,而我们学习和看书的办公桌就是内存。通常我们把要永 久保存的、大量的数据存储在外存上,而把一些临时的或少量 的数据和程序放在内存上,当然内存的好坏会直接影响电脑的 运行速度。
14
高职学院 计算机专业 程序设计基础》 《程序设计基础》
变量的命名
在 C 语言中,变量命名需要遵循一定的规则 变量的命名规则: 变量名必须以字母或 _(下划线)开头 名称中的其他字符可由字母、数字和 _(下划线)组 合而成,不能包含除 _ 以外的任何特殊字符,如:%、 # 、逗号、空格等,不能包含空白字符(换行符、空 格和制表符) 名称不可以是C语言编译系统中的关键字,具体见表 C 语言区分大小写,因此变量 price 与变量 PRICE 是 两个不同的变量 变量名的长度不是无限的。不同的编译系统有自己的 规定 变量名应该使读者易于明白其中存储的值是什么
10
高职学院 计算机专业 程序设计基础》 《程序设计基础》
变量与常量
变量的使用(读出/写入)次数是不受限制的,程序里变 量的数量也是没有限制的,变量的值不是固定的,可以根 据程序需要随时修改变量的值,且次数不受限制。 程序中使用变量保存的数据是有类型区分的,程序设计语 言中使用的变量具有三个重要属性:名称、类型和值。名 称是对变量进行读取的标记,类型决定了变量代表的存储 空间可以存放何种类型数据,值则是指存放的数据值。 为了理解三个属性间的关系,可以将变量看做一个外面贴 有标签的盒子。变量的名字写在标签上,作为盒子的标志 以区分不同的盒子。变量的值则对应于盒子内装的东西。 盒子标签上的名称从不改变,但盒子里放的东西可以随时 改变。变量类型相当于盒子所能盛放物品的规定,即限定 了只有某一类物品可以存放在这个盒子中。
13
高职学院 计算机专业 程序设计基础》 《程序设计基础》
变量的声明
变量的声明:即声明一个变量,在内存空间开辟一块存储 空间,并命名,具体方法如下: Datatype variablename; 例如:声明一个整型(类型关键字为int)变量,并将其 命名为a,具体的声明语句为: int a; 其中int规定了这块存储空间的性质(存储整型数据,大 小固定),a是变量的名字,程序中可以通过a来访问变量 的值。 可以一次声明多个同一类型的变量,变量名称间通过逗号 分隔,如下语句就一次声明了三个整形变量: int a,b,c;
7
高职学院 计算机专业 程序设计基础》 《程序设计基础》
数据分类的原因
那么,为什么要对数据进行分类呢? 程序设计语言的发明创造过程中,人们首先看到的就是数 据和数据之间的不同, 就像交通工具要分为汽车、飞机、 轮船一样,因为它们有不同的特点,适用于不同的地方。 因而对数据进行归类总结提炼出不同的数据类型,以方便 . 人操纵计算机.。我们可以根据不同的需要,而选择类型。 从程序设计角度看,数据分类主要是两方面考虑:1.确定 大小 2.限制行为。程序运行时数据是放在内存里的,而数 据是有大小的, 计算机需要知道程序员准备“借”它的 内存放多大的数据?安排得多了浪费,少了不够。同时不 同的数据具有不同的行为,如数值型数据可以进行加减乘 除等算术运算,而对于字符型数据则不同。
8
高职学院 计算机专业 程序设计基础》 《程序设计基础》
数据类型的含义
数据类型可以由两个性质定义:值的集合和操作 的集合。 值的集合也称为值域,即该类型的元素的值的集 合。例如整数的值域就是机器硬件所能构造的所 有整数(…-2,-1,0,1,2…)字符型数据的值域则 是键盘上出现的或可以显示在终端屏幕上的所有 符号的集合。 操作集合由操作该数据的值的工具构成。例如, 给出两个整数,可以对他们进行加减乘除等操作, 则加减乘除即为其操作集合中的一员,而对于文 本数据,则无法进行类似操作,但可以进行比较 字母顺序等操作。因此,操作必须与值域的元素 相对应。
11
高职学院 计算机专业 程序设计基础》 《程序设计基础》
变量与常量
程序设计过程中出现的任何明确的数值都称为常量 (constant)。像0,3.1415926,‘a’等均是常量。 本质上,程序里没有常量。因为当每个常量第一次出现时, 编译器会根据其类型自动为其分配合适大小的空间。比如 1287600,当这个数出现时,编译器发现它的范围在int(2^31 ~ 2^31-1)内,所以分配4个字节,类型为int 在计算机内存里,变量和常量都代表了一块存储空间,变 量是一块命名的存储空间,即可以通过变量的名字找到那 块空间,并进行读写。常量则是存储在一块匿名存储空间 里,这段空间临时用来保存一个固定的数值,不可修改。
9
高职学院 计算机专业 程序设计基础》 《程序设计基础》
2.3 数据的表现形式 --变量与常量 变量与常量
内存那么大,如何才能够找到和处理所需的单个数据呢?程序 设计语言中经常会使用变量 变量这样一个概念,变量代表了计算机 变量 里一块特定的内存,它是由一个或多个连续的字节所组成,每 个变量都有一个名称,名称也代表了变量在内存中的存储位置, 对变量的使用都是按名存取,即通过变量名字读取或者修改变 量代表的存储单元中的值。当程序里需要保存数据时就可以先 声明一个变量(在内存中分配一块空间,并命名),然后将对 变量赋值(将需要保存的数据保存到变量所代表的存储空间), 变量代表的存储空间内保存的数据称为变量的值,后面程序中 可以通过变量名对变量的值进行读取。 例如一段程序要统计一篇英文稿子里有多少个单词,可以在内 存中分配一段存储空间,命名为count(声明或定义一个变量), 用于保存当前统计过的单词数量。统计前单词数量为0,即将0 保存到count代表的存储空间中(对变量赋值),每次读取到一 个有效的单词后修改count存储的数值,使其加一,当读取到稿 子结尾时,count变量内存储的值即为单词的总数。
5
高职学院 计算机专业 程序设计基础》 《程序设计基础》
2.1 计算机的内存与数 据存储
计算机的内存容量通常是指随机存储器(RAM)的容量,是内存 条的关键性参数。内存容量以MB作为单位,可以简写为M。内 存的容量一般都是2的整次方倍,比如256M,512M,1G,2G 等。对于一个容量为2G的内存,可以看成是一个具有 (2G=2*1024*1024*1024*1024)个存储单元的集合,每个物理 存储单元大小为一个字节,每个字节包括八位,每位具有两个状 态,分别用0和1表示。对每一个物理存储单元(一个字节)分 配一个号码,通常叫作“编址”。分配一个号码给一个存储单元 的目的是为了便于找到它,完成数据的读写,这就是所谓的“寻 址”。 位(bit),又称比特,存储信息的最小单位。值为0或1 字节(byte),又称拜特,存储器容量大,直接用bit来表示和管 理不方便,1byte=8bit,byte是最常用的存储单位,常用来表 示一个存储单元。后来又出现了kb,mb,gb,tb等(以 1024/1000倍增)。 地址,存储器包含许多存储单元,使用的时候通过地址进行 查找,这里的地址是指存储单元在存储器里的编号 6