第03章 数据的表现形式及其运算(第03讲) -1
第三章数据类型、运算符与表达式

第三章数据类型、运算符与表达式第三章数据类型、运算符与表达式程序=算法+数据结构+程序设计方法+语言工具和环境3.1 C的数据类型3.2 常量与变量常量-------程序运行过程中不能被改变的量。
3.2.1常量的分类1)整型常量(如12、0、-3为整型常量)2)实型常量(4.6、-1.23为实型常量)3)字符常量(’a’、’d’字符常量)4)符号常量(具有含义清楚、见名知意、修改方便、一改全改的优点)。
3.2.2每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。
变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
例:sum,_total, month, Student_name,lotus_1_2_3,BASIC, li_lingM.D.John, ¥123,3D64,a>b整形数据1.整型常量整型常量即整常数。
整常数有三种表示形式:1)十进制;2)八进制;以0头的数是八进制数。
3)十六进制以0x开头的数是16进制数。
2.整形变量整型数据在内存中的存放形式(二进制)根据占用内存字节数的不同,整型变量又分为4类:1)基本整型(类型关键字为int)。
2)短整型(类型关键字为short [int])。
3)长整型(类型关键字为long [int])。
4)无符号整型。
整型变量的分类注意:括号表示其中的内容是可选的。
整型变量的定义变量说明的一般形式为:类型说明符变量名标识符,变量名标识符,...;int a,b,c; (a,b,c为整型变量)long x,y; (x,y为长整型变量)unsigned int p,q; (p,q为无符号整型变量)例3.2 整型变量的定义与使用#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);}例3.3 整型数据的溢出说明:数值是以补码表示的。
C语言第3章数据类型、运算符与表达式ppt课件

数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,
第3章数据类型与表达式

//结果i=2;
•赋值语句可以连续进行。 例:a=b=c=0,根据右结合性,该表达式等价于: a=(b=(c=0))
36
2、复合赋值运算
•算术运算符“+ — * / %”和赋值运算符“=”结 合起来,形成复合赋值运算符。
+= :加赋值运算符; 如a+=3,等价于 a=a+3 -= :减赋值运算符; 如a-= b+ 3,等价于 a=a- (b+3) *=、/=、%= 与此类似
20
2)字符变量:char,占1个字节空间,只能存放 一个字符。 例如:char c1,c2; c2=‟a‟; 定义了字符型变量c1,c2,把’a‟存放到c2中 •存储特点: 在字符变量中实际上存储的是字符的ASCII码, 其存储形式与整数的存储形式相同。 字符数据与整型数据可相互赋值,直接运算。 例如: char c; c=97;相当于c=„a‟;
26
“%”是求余运算。a%b计算a除以b后的余数,也 是a模b的值。它要求两个运算对象必须是整型,其 结果也是整型量。 例:5%2结果为1 2%5结果为2 10%3.0 语法错误
27
2.算术表达式
• 用算术运算符和括号将运算对象(操作 数)连接起来的、符合C语法规则的式子。 如:1+3.5*2-10 (x+y)*3-6+‟a‟ • 表达式的值
long [int]
unsigned [int]
unsigned short[int]
4
4 2 4
unsigned long[int]
说明:数据类型所占字节数编译系统的不同而不同,上表以 Visual C++6.0为例 12
整型变量举例:
数据类型及运算

内存中存储形式
负数的补码 =反码+1 =原码取反+1
内存中存储形式 10
A B
整型数据在内存中的存储形式
----以有符号 2 字节整型为例 32767(215-1)的 16位编码 原码:01111111 11111111 反码:01111111 11111111 补码:01111111 11111111 内存中存储形式 -32767(1-215)的 16位编码 原码:11111111 11111111 反码:10000000 00000000 补码:10000000 00000001 内存中存储形式
A B
空类型void 3
3.2~3.3(1) 常量与简单变量–以数值型为例
• 常量: 在程序运行中,其值不变的量,如: 23.7, - 67 等。 • 变量: 在程序运行过程中,其值可以改变的量, 在内存中占据一定的存储单元。
变量a 150 50
A B
4
一、两类常量
常数常量和符号常量 常数常量 如-10, 3.14 符号常量: 用标识符表示的常量。符号常量用 预处理(宏定义)命令定义在函数之外。 定义形式: A B
计算机二级C语言课件第3章最简单的C程序设计1-改

例3.2
解题思路:确定计算本息和的公式。
从数学知识可知:若存款额为p0,则: 活期存款一年后本息和为:
p1=p0(1+r1) 一年期定期存款,一年后本息和为:
p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
p3 = p0(1+ r3)(1+ r3 ) 22
例3.2
#include <stdio.h> int main ( )
一个字符变量在内存中占一个字节。
字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,, 而是将该字符的相应的ASCII代码放到存 储单元中。例如字符‘a’的ASCII代码为 97,‘b’为98,在内存中变量c1、c2的值如图
(a)所示。实际上是以二进制形式存放的,如 图(b)所示。P48
[signed ] int unsigned int
注意: 取值范围 举例P47
例:
#include<stdio.h>
void main( )
运行结果:
{int a,b,c,d;
a十u=22,b+u=-14
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d ,b+u=%d”,c,d);
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
• 字符常量如的值‘:a’该字‘A符’ 的‘?’ASC‘I\nI’码值‘\101’
• 转转义义字字如符符:反及‘‘斜其A0’’线含——后义——面:6458跟P,4,一0表‘‘个\n3a字’.’——1符——或190一7,个代码值表示
C语言第03章--数据类型和表达式

char int
ch = 'a'; i = 1;
17
变量的属性
例:
int sum=10; 类型
内存存放说明: 内存存放说明: 存放说明 变量名 1001 sum 10 变量值
存储单元的地址
二、 变量
命名规则 在C中变量名 函数名 文件名 数组名 等均称标识符 变量名, 函数名, 文件名, 数组名, 变量名 标识符 (identifier), 可由字母 数字 下划线 字母,数字 下划线组成,且第一个必 字母 数字和下划线 须为字母或下划线 字母或 字母 下划线,前8或32个有效。 注意: 字母大小写敏感; 注意 字母大小写敏感 不可用关键字; 不可用关键字 不可出现空格; 不可出现空格 见名知意; 见名知意 如: a1与A1为不同的变量名 如: int, for, if 等 如: stu 1, a 1等 如: sum, sort 等
e前必须有数 前必须有数 字,e后必须 后必须 有整数
合法:0.123、.123、123.0、123.、0.0 合法: 、 、 、 、 错误: 错误 - 2.0e2.5 e8
(3)字符常量 字符常量 —— 用单引号括起来的一个字符或转义字符 括起来的一个字符或转义字符 一个字符或转义字符. 例: ‘A’, ‘o’ , ‘1’, ‘#’, ‘a’ 等
float
必转
char, short long unsigned int 低
double 高
自动类型转换
34
例:
若:i 为 int , f为float ,d 为 double e 为long
字节数
第三章 数据类型运算符和表达式-文档资料
第三章 数据类型、运算符与表达式
3.2.2 变量
变量是其值在程序执行过程中可以改变的量。 若有定义 int sum; 则执行语句 sum=0; 后, 它的值为0; 可再执行语句 sum=1; 将它的值变为1。 每个变量都有一个名字,它代表某个存储空间及其所存 储的数据。在程序中取变量的值,实际上是通过变量名 找到相应的存储单元,从中读取数据。要想把内存中的 某段存储单元和一个变量名联系起来, 必须首先对变量 进行定义或声明。
第三章 数据类型、运算符与表达式
1. 变量的定义 变量定义的一般形式: 类型说明符 变量名表; 这里,类型说明符(type)必须是C语言的有效数据类型。 变量名表可以是一个或多个标识符名,中间用逗号分隔, 最后以分号结束。 如:int a,b; float f1,f2; char ch; 这样就在内存中开辟了五个相应的存储单元,这五个单 元在空间上不一定是连续的。
第三章 数据类型、运算符与表达式
合法 _total test1_2 PI a1 A1 Int
非法 1_total test1-2 hi!there a1 f(x) int
注意:大小写敏感,不能用关键字作为标识符(附录Ⅱ)。
第三章 数据类型、运算符与表达式
符号常量的使用 宏定义命令#define用来定义一个标识符和一个字符 串,在程序中每次遇到该标识符时就用所定义的字符 串替换它。这个标识符叫做宏名,替换过程叫做宏替 换或宏展开。宏定义命令#define的一般形式是: #define 宏名 字符串 例如想用PI表示数值3.1415926,就可以用宏定义#define 来说明: #define PI 3.1415926 这 样 在 预 编 译 时 , 每 当 在 源 程 序 中 遇 到 PI 就 自 动 用 3.1415926代替,这就是宏展开。
第三章数据及数据运算
货币型
货币型常量以$或¥符号开头,并四舍五入到小数点
后4位 例如:$88.1696,¥15687.4568
2013-7-20
E-mail:caosuz@
15
西北师范大学数学与信息科学学院计算机科学系
数据存储
内存变量
用来存储程序运行的中间结果或用于存储控制程序
执行时的各种参数 使用内存变量无须预先定义数据类型,其数据类型 由所赋值的数据类型决定。若内存变量中存储的数据 类型发生变化,则内存变量的数据类型也随之变化。
17
E-mail:caosuz@
西北师范大学数学与信息科学学院计算机科学系
数据存储
内存变量值的显示
命令格式:? | ?? <表达式表> 功能:计算表达式的值,并将结果显示在屏幕上。
? ??
各表达式之间 用逗号分隔
表示从屏幕下一行开始显示 表示从当前行的当前列开始显示
2013-7-20 E-mail:caosuz@ 10
西北师范大学数学与信息科学学院计算机科学系
数据存储
字段:
是数据表中存储、处理数据的基本元素,一个具体
的字段只能存储一种类型的数据。
记录:
是数据表中一组字段的集合,同一个数据表中的所
有记录都具有相同的字段名,且同名字段在每个记录 中的数据类型、数据长度都是相同的 在VFP中,是以记录为单位组织数据的
描述可计算的数值,由数字0~9,小数点和正负号组成 在数据表中有分为:整形I;数值型N;浮点型F;双精度型D
逻辑型
L;固定占1个字节 描述客观事物逻辑状态的数据,取值只有真(T,t,Y,y)和
假(F,f,N,n)两种
2013-7-20 E-mail:caosuz@ 3
C语言第03章
<尾数>E〔e〕<整型指数>。例如3.0E+5等。
日常表示法 3.14159*100 0.314159*101 0.0314159*102 31.4159*10-1
C语言表示法 3.14159e0 0.314159e+1 0.0314159e+2 31.4159e-1
注意: (1)C语言对英文字母的大小敏感,即同一字母的大 小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,常量用 大写字母增加可读性。
练习题: 1.下面为合法的标识符有: _12s 12s s_12 s@12 define 2.经过下面的操作,sum的值为_____ sum=7, SUM=10 , SUM=7+12, Sum=SUM+23
(2)标识符命名的良好习惯──见名知意: 所谓“见名知意〞是指,通过变量名就知道变量值的含 义。例如,name/xm〔姓名〕、sex/xb〔性别〕、age/nl 〔年龄〕。
4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进展赋初值的操作为变量初始化。 〔1〕变量定义的一般格式
随意值。 0 1 1 0 0 0 0 1 1 0 0 0 00 0 0 i=10; 将10转换为二进制的补码形式存放
0 0 0 0 0 0 0 0 0 0 0 0 1 0 10
思考一下 i=-10,计算机内是如何存储的;
2. 分类:根据占用内存字节数的不同,整型变量又 分为4类:
〔1〕根本整型〔类型关键字为int〕。2字节 〔2〕短整型〔类型关键字为short [int]〕。2字节 〔3〕长整型〔类型关键字为long [int]〕。4字节 〔4〕无符号整型。(最高位不是符号位,而是数值)
c语言 第3章 数据类型及其运算
– unsigned int型常量 123u、 123U
• 整型常量的类型
根据其值所在范围确定其数据类型
在整型常量后加字母l或L,认为它是long int 型常量
例:12与12L
2015/12/23 25
整型常量的表示形式
• 十进制形式 :[±]若干个0~9的数字
如:100,-50, 0
• 八进制形式: [±]以0开头的若干个0~7数字
• 无符号长整型
unsigned long [int] ;
2015/12/23
20
二进制存放与溢出
(1)10= (0000 0000 0000 0001)2补码
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(-1)10= (1111 1111 1111 1111)2补码
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
00000000 00000000 00000001 01010100 5 例 :01736L 为long int 型 2 4
00000000 00000000 00000011 11011110
1
2015/12/23
7
3
6
27
何谓类型溢出(Overflow)?
• C语言提供的任何类型都有取值范围。当向其赋超 过此范围的数值,就会产生数值溢出,得到一个不 正确的结果。 • 例如:short int的范围是-32768~32767 – 如果超出取值范围,给它一个小于-32768或者 大于32767的数会如何呢?
(65535)10=(1111 1111 1111 1111)2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1