第2章 数据的存储与运算

合集下载

第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

第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语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出

C语言教程课件第二章 数据类型、运算符和表达式

C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算

第2章 数据存储基础

第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

C语言学习第二章数据类型

C语言学习第二章数据类型
基本整型:表示范围为0~0177777。 ③十六进制数:
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。

第2章 存储系统(第08讲)

第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章 数据类型

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语言第02章 数据类型、运算符与表达式

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。

2019年二章数据类型运算符及表达式.ppt

2019年二章数据类型运算符及表达式.ppt

若已有定义:int x; 则
从键盘输入数据给x应使用的语句为:
scanf(”%d”,&x);

若x的值为100,要求输出x=100的语句为:
printf(”x=%d”, x);

例题(sy4.c):输问入题一2个:小输数,将其保留小数位 数后两位(进行四舍入五的入数)据,怎并输出结果。 例如:输入123.674样,存则放输? 出123.67
不能包含小数点。
例如:12 -36 等等
八进制:以0开头,由0到7的数字组成,
例如:014 -042 等等
十六进制:以0x或者0X开头,
由0到9及a到f或者A到F的数字组成,
例如:0xb -0x22 等等
二、整型变量
1、整型变量的存放形式 整型数据在内存中以二进制的补码形式存放。
2、整型变量的分类
c=a*b
注意:强制类型转换运算符优先级高于算术运算符 优先级
练习:设 x=2.5, a=7,y=4.7
计算下列表达式的值
x+a%3*((xi+nty))(% x+xy/)4%(int)x/4 错正误确的表达式
=2.5+7%3*(int)(2.5+4.7)%(int)2.5/4 =2.5+1*(int)(7.2)%2/4 =2.5+1*7%2/4 =2.5+1/4 =2.5+00.25 =22..755
问题2:输 入的数据怎
样存放?
答:暂存于变量中。
实型变量如 何说明?
答:float 变量名称表
}
例如:float a,b;
二、实型变量
1、存放形式: 按指数形式存放。 一般的实型数据占用4个字节。即32位。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有效数字 6~7 位 15~16位 18~19位
2.4 字符型数据的运算
2.4.1 字符数据运算的简单例子
例题 2.4
逐个输入英文字母C,H,I,N,A。然后按反序 输出,即A,N,I,H,C。
解题思路
可以把5个字母分别放在5个变量中,第1次 按正序输出这5个字母,第2次按反序输出这5 个字母。C语言提供字符型变量,用来存放字 符数据。
}
”,不属于致命性错误,可以将r和m改定
义为double型
(3)可以在定义变量时同时赋初值
int d=32450,p=3250,double r=0.008
ห้องสมุดไป่ตู้
(4)运行结果:month=201.983404, total=655436.127930
C 数据类型
基本类型
整型 数值类型
浮点型 字符类型char
ASCII码表
高三位
b6b5b4 ASCII码表(7位)
000 001 010 011 100 101 110 111
低四位 0000 NUL DLE SP
0
@
P

p
b3b2b1 0001
SOH DC1
!
1
A
Q
a
q
b0
0010 STX DC2

2
B
R
b
r
0011 ETX DC3
#
3
C
S
c
s
0100 EOT DC4
说明:标准化指数形式:其数值部分是一个小数,小数点 前的数字是零,小数点后的第一位数字不是零。一个实数可 以有多种指数表示形式,但只有一种属于标准化指数形式
2.1 数据在计算机中是怎样存储的
3. 字符的存储方式
• 字符包括字母(如A,a,X,x)、专用字符(如$, @,%,#)等。 • 计算机并不是将该字符本身存放到存储单元中 (存储单元只能存储二进制信息),而是将字符的 代码存储到相应的存储单元中。 • 附录A是字符与代码的对照表,这是国际通用 的ASCII代码。
m=(log10(p)-log10(p-d*r))/l(og210)(1C+编r);译/*系通统过把公所式有求实m的(f值lo*a/t)型常量(如
printf("month=%f\n",m); printf("total=%f\n",m*p);
/*/*计输算出并m0据 能.输的来 会0出值0处 丧8总)*理 失和/的, 一还l在 些款og数把 精10它 度*函/ 们 ,数赋 在的给编值译f都l时o作a出t为型现双变“精量警度时告数可
2.4 字符型数据的运算
编写程序
#include <stdio.h> void main() { char a='C',b='H',c='I',d='N',e='A'; /* a,b,c,d,e定义为字符变量 */ printf("%c%c%c%c%c\n",a,b,c,d,e); /* 顺序输出CHINA */ printf("%c%c%c%c%c\n",e,d,c,b,a); /* 反序输出CHINA */ }
printf("c=%f\ns=%f\nv=%f\n",c,s,v);
}
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.6 算术运算符和算术表达式
2.6.1 算术运算符
(1)基本的算术运算符:
• + (加法运算符,或正值运算符。如:3+5、+3) • - (减法运算符,或负值运算符。如:5-2、-3) • * (乘法运算符。如:3*5) • / (除法运算符。如:5/3) • % (模运算符,或称求余运算符,%两侧均应为整型
解题思路 设:x--鸡数量 y--兔数量,
h--总头数 f--总脚数
有方程式: x+y=h (1)
2x+4y=f (2)
求x和y的公式:(2)式-2x (1)式: 2y = f – 2h
f 2h
y=
2
2.2 整型数据的运算与分析
编写程序
#include <stdio.h> void main() { int h,f,x,y; /* 定义整型变量h,f,x,y */
个“二进制位”,是存储信息的最小单位。它的值
是“1”或“0”。
字节:又称“拜特”(byte)。一般将8个“二进制
位”组织成一组,称为“字节”。
地址:计算机的存储器包含许多存储单元,操作
系统把所有存储单元以字节为单位编号 。
2.1 数据在计算机中是怎样存储的
2.1.3 不同类型数据的存储方式
1. 整数的存储方式
1110
SO
RS
.
>
N
^
n
~
1111
SI
US
/
?
O
_
o
DEL
2.2 整型数据的运算与分析
2.2.1 整型数据运算程序举例和分析
例题 2.1
鸡兔同笼: 在一个笼子里同时养着一些鸡和兔子
,你想了解有多少只鸡和多少只兔,主人对你说: 我只告诉你鸡和兔的总头数是16,总脚数是40, 你能不能自己计算有多少只鸡和多少只兔?
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%d\n",x,y); /* 输出鸡的个数和兔的个数 */ }
例2.6 大小写字母的转换
运行结果:A B
#include <stdio.h>
void main()
{ char c1,c2;
c1=’a’;
• 说明:程序的作用是将两
c2=’b’;
个小写字母a和b转换成大
c1=c1-32;
写字母A和B。从ASCI
c2=c2-32;
I代码表中可以看到每一
printf(“%c %c″,个c1小,c写2)字;母比它相应的大
$
4
D
T
d
t
0101 ENQ NAK
%
5
E
U
e
u
0110 ACK SYN
&
6
F
V
f
v
0111 BEL ETB

7
G
W
g
w
1000
BS CAN
(
8
H
X
h
x
1001
HT
EM
)
9
I
Y
i
y
1010
LF SUB
*
:
J
Z
j
z
1011
VT ESC
+
;
K
[
k
{
1100
FF
FS
,
<
L
\
l
|
1101
CR
GS
-
=
M
]
m
}
2.3 实型数据的运算与分析
2.3.3 实型变量
实型变量的分类
浮点型变量分为单精度(float型)、双精度( double型)和长双精度型(long double)三类形 式。
类型 float Double long double
位数 32 64 128
数的范围 10-37 ~ 1038 10-307~10308 10-4931~104932
第二章
主要内容
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。它的含义是:
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.5 符号常量
编写程序
#define pi 3.14159
#include <stdio.h>
void main()
{double r=3.67,c,s,v;
c=2*pi*r;
s=pi*r*r;
v=4/3*pi*r*r*r;
十进制整数先转换为二进制形式。例如:整数10以二进制
形式表示是1010,直接把它存放在存储单元中。 2. 实数的存储形式
实数采用指数形式存储,例如:123.456可以写成标准化指
数形式0.123456 10,3 它包括前后两个部分,前面部分
是数值部分,后面部分是指数部分。
0.123456
103
数值部分 指数部分
编写程序
#include <stdio.h> 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=%f\ns=%f\nv=%f\n",c,s,v); }
相关文档
最新文档