C语言第3章数据类型.ppt
合集下载
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,
数据类型、运算符与表达式
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,
数据结构——用C语言描述(第3版)教学课件第3章 栈和队列

if(S->top==-1) /*栈为空*/
return(FALSE);
else
{*x = S->elem[S->top];
return(TRUE);
}
返回主目录}[注意]:在实现GetTop操作时,也可将参数说明SeqStack *S 改为SeqStack S,也就是将传地址改为传值方式。传 值比传地址容易理解,但传地址比传值更节省时间、 空间。
返回主目录
算法:
void BracketMatch(char *str) {Stack S; int i; char ch; InitStack(&S); For(i=0; str[i]!='\0'; i++) {switch(str[i])
{case '(': case '[': case '{':
3.1.3 栈的应用举例
1. 括号匹配问题
思想:在检验算法中设置一个栈,若读入的是左括号, 则直接入栈,等待相匹配的同类右括号;若读入的是 右括号,且与当前栈顶的左括号同类型,则二者匹配, 将栈顶的左括号出栈,否则属于不合法的情况。另外, 如果输入序列已读尽,而栈中仍有等待匹配的左括号, 或者读入了一个右括号,而栈中已无等待匹配的左括 号,均属不合法的情况。当输入序列和栈同时变为空 时,说明所有括号完全匹配。
return(TRUE);
}
返回主目录
【思考题】
如果将可利用的空闲结点空间组织成链栈来管理,则申 请一个新结点(类似C语言中的malloc函数)相当于链 栈的什么操作?归还一个无用结点(类似C语言中的 free函数)相当于链栈的什么操作?试分别写出从链栈 中申请一个新结点和归还一个空闲结点的算法。
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
c语言第03章

活期存款一年后本息和为: p1=p0(1+r1) 一年期定期存款,一年后本息和为: p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
r3 r3 p3 = p0(1 + )(1 + ) 2 2
6
3.1顺序程序设计举例
算法:
输入p0,r1,r2,r3的值 计算p1=p0(1+r1) 计算p2=p43; r 3 )
2 2
输出p1,p2,p3
7
3.1 顺序程序设计举例
#include <stdio.h> 定义变量同时赋予初值 int main ( ) {float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3); return 0; }
\„ \ddd \“ 单引号 例 void main() { printf(“Y\b=\n”);\xhh 3位8进制数代表的字符 aaa }
转义字符:反斜线后面跟一个字符或一个代码值表示
<
双引号 运行结果: 2位16进制数代表的字符 屏幕显示:= 15 打印机输出:¥
C语言程序设计
第3章 最简单的C程序设计
19
C语言程序设计
第3章 最简单的C程序设计
3.2.3不同类型数据间的转换
1.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式
3 数据类型.运算符与表达式

THE C PROGRAMMING LANGUAGE
C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE
C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE
C程序设计配套PPT及课后习题答案C3-数据类型

main() {
运行结果:total=300
int num,total;
num=10;
total=num*PRICE;
printf("total=%d",total);
}
– 符号常量: 用标识符代表常量
» 定义格式: #define 符如号:常#量de常fin量e PRICE 30
» 一般用大写字母
1. 两个部分分别占的位数不同的编译系统有各自规定。 3. 分类(按表示精度的不同)
1. 单精度: float 一般占4字节(32位); 6~7位有效数字 2. 双精度: double 一般占8个字节;15~16位有效数字 3. 长双精度: long double
3.4.3 实型常量的类型
– 默认double型
printf(“Welcome to C!\n”);
• 执行结果:语句最后的\n并没有被打印在屏 幕上。\n 称为“转义字符” 。
• 在碰到反斜杠时,printf把反斜杠和下一个字 符结合起来构成“转义序列”,例如(\n)的 意思是“换行”,它使光标定位到下一行的开 始位置。
整理ppt
13
3.5.2 字符变量
❖根据其值所在范围确定其数据类型。 ❖在整常量后面加一个字母u或U,认为是unsigned类型。此 时,在内存中的最高位即最左边一位不是符号位,而是数据。 ❖在整常量后加字母l或L,认为它是long int 型常量。
整理ppt
9
3.4 实型数据
3.4.1 实型常量的表示
实型常量,又叫实数或浮点数。
(3)长整型: long int 或 long
整理ppt
7
unsigned & signed
第3章基本数据类型与表达式

printf(―How do you do.‖);
不要将字符常量与字符串常量混淆。’a‘是字符常量, 而“a‖是字符串常量,二者是不相同的。例: char c; c=‗a‘; 是正确的 c=―a‖; 不正确 因为不能把一个字符串赋给一个字符变量。
字符常量与字符串的区别: (1)字符常量在内存中占一个字节,而字符串不 是; (2)C规定:在每一个字符串的结尾加一个“字 符串结束标志”,以便系统据此判断字符串是否 结束。C语言以‘\0‟作为字符串结束标志。即是 一个“空操作字符”。 注意:在写字符串时不必加‘\0‟,系统会自动加 上的。因此,字符串“a”,它在内存中实际上是 包含2个字符:‘a‟和‘\0‟。 在C语言中可以用字符型数组来存放字符串。
表2.1 Turbo C所支持的整型数据类型
关键字 int unsigned int 所占位数 16 16 最小取值范围 -32768~32767 0~65535
unsigned short int
signed short int
16
16
0~65535
同 int
long int
unsigned long int
例:向字符变量赋以整数。
main()
{ char c1, c2;
c1=97;
/*c1,c2为字符变量*/
c2=98;
printf(―%c printf(―%d } 输出结果: a 97 b 98 %c\n‖ , c1, c2); /* %c是字符输出的格式*/ %d\n‖, c1, c2);
例:大小写字母的转换
程序运行结果为: a+u=22, b+u=-14
3.4 实型数据
3.4.1 实型常量的表示方法
不要将字符常量与字符串常量混淆。’a‘是字符常量, 而“a‖是字符串常量,二者是不相同的。例: char c; c=‗a‘; 是正确的 c=―a‖; 不正确 因为不能把一个字符串赋给一个字符变量。
字符常量与字符串的区别: (1)字符常量在内存中占一个字节,而字符串不 是; (2)C规定:在每一个字符串的结尾加一个“字 符串结束标志”,以便系统据此判断字符串是否 结束。C语言以‘\0‟作为字符串结束标志。即是 一个“空操作字符”。 注意:在写字符串时不必加‘\0‟,系统会自动加 上的。因此,字符串“a”,它在内存中实际上是 包含2个字符:‘a‟和‘\0‟。 在C语言中可以用字符型数组来存放字符串。
表2.1 Turbo C所支持的整型数据类型
关键字 int unsigned int 所占位数 16 16 最小取值范围 -32768~32767 0~65535
unsigned short int
signed short int
16
16
0~65535
同 int
long int
unsigned long int
例:向字符变量赋以整数。
main()
{ char c1, c2;
c1=97;
/*c1,c2为字符变量*/
c2=98;
printf(―%c printf(―%d } 输出结果: a 97 b 98 %c\n‖ , c1, c2); /* %c是字符输出的格式*/ %d\n‖, c1, c2);
例:大小写字母的转换
程序运行结果为: a+u=22, b+u=-14
3.4 实型数据
3.4.1 实型常量的表示方法
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
字节数
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
字节数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
long e,f;(指定变量e、f为长整型)
C语言程序设计
上海海事大学
2021/2/25
如: int i; /* 定义为整型变量 */
i=10; /* 给i赋以整数10 */
C语言程序设计
上海海事大学
2021/2/25
12
3.3 整型数据
注意:
❖ 十进制数10的二进制形式为1010,Turbo C 2.0和Turbo C++ 3.0 为一个整型变量在内存中分配2个字节的存储单元(不同的编译系统 为整型数据分配的字节数是不相同的,VC++ 6.0则分配4个字 节)。
2021/2/25
6
define PRICE 30
#include 说<明s:t如di再o用.赋h>值语句给PRICE赋值是错的 void maiPnRIC(E=4)0; /* 错误,不能给符号常量赋值 { int num, total;
说明在:本文程件序中中t出o用现t#的daePlfRi=InnCneuE命u都mm令代=行1表*0定3;0义P,可RPRI以ICC和EE代常;表量常一量样3进0,行此运后算凡 printf(″total=%d\n ″,total);
C语言程序设计
上海海事大学
2021/2/25
8
3.2 常量与变量
变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符 组成,且第一个字符必须为字母或下划线。
例:sum,_total, month, Student_name,
lotus_1_2_3,BASIC, li_ling
M.D.John, ¥123,3D64,a>b
进制数-9。
C语言程序设计
上海海事大学
2021/2/25
11
3.3 整型数据
(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数- 10。
3.3.2 整型变量 (1)整型数据在内存中的存放形式
数据在内存中是以二进制形式存放的。
}
符号常量: 用一个标识符代表一个常量。符号常量的值在其作用 域内不能改变,也不能再被赋值。
C语言程序设计
上海海事大学
2021/2/25
7
3.2 常量与变量
3.2.2 变量
❖ 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就 是变量的值,在程序运行期间,这些值是可以改变的。
❖ 变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接 时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实 际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。
❖ 数值是以补码(complement) 表示的。
C语言程序设计
上海海事大学
2021/2/25
13
(2)整型变量的分类
3.3 整型数据
有符号基本整型 (signed)int
有符号短整型 (signed)short (int )
共六种 有符号长整型 (signed) long (int)
无符号基本整型 unsigned int
C语言程序设计
上海海事大学
2021/2/25
10
3.3 整型数据
3.3.1整型常量的表示方法
整型常量即整常数。在C语言中,整常数 可用以下三种形式表示:
(1)十进制整数。 如:123, -456.4。
(2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十
C语言程序设计
上海海事大学
2021/2/25
9
3.2 常量与变量
注意:
❖ 编译系统将大写字母和小写字母认为是两个不同的字符。 ❖ 建议变量名的长度最好不要超过8个字符。 ❖ 在选择变量名和其它标识符时,应注意做到“见名知意”,即选有
含意的英文单词 (或其缩写)作标识符。 ❖ 要求对所有用到的变量作强制定义,也就是“先定义,后使用” 。
无符号短整型 unsigned short (int)
无符号长整型 unsigned long (int)
注意:括号表示其中的内容是可选的。
C语言程序设计
上海海事大学
2021/2/25
14
3.3 整型数据
❖ 整数类型的有关数据:
类型
类型说明符
长度
数的范围
基本型
int
2字节 -32768~32767
第三章
本章要点
数据的描述规则 数据的操作规则
主要内容
3.1 C的数据类型 3.2 常量与变量 3.3 整型数据 3.4 浮点型数据运行 3.5 字符型数据
主要内容
3.6变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式
返回
5
3.2 常量与变量
3.2.1 常量和符号常量
❖ 在程序运行过程中,其值不能被改变的量称为常量 ❖ 常量区分为不同的类型:
整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 ‘a’, ‘ab’,‘1232’
C语言程序设计
上海海事大学
短整型
short
2字节 -215~215-1
长整型
long
4字节 -231~231-1
无符号整型 unsigned
2字节 0~65535
无符号短整型 unsigned short 2字节 0~65535
无符号长整型 unsigned long 4字节 0~(232-1)
C语言程序设计
上海海事大学
2021/2/25
3.1 C的数据类型
C语言提供了以下一些数据类型。
数据类型
基本类型
构造类型 指针类型
整型 int
字符型 char 单精度实型
实型(浮点型)
float
数组类型
双精度实型
double
结构类型 struct
联合类型 union
枚举类型 enum
C语言程序设计
空类型(无值类型) void
上海海事大学
2021/2/25
15
3.3 整型数据
例如:整数13在内存中实际存放的情况:
C语言程序设计
上海海事大学
2021/2/25
16
(3)整型变量的定义:
3.3 整型数据
C规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定 义”。
例如:
int a,b(指定变量a、b为整型)
unsigned short c,d;(指定变量c、d为无符号短整型)