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

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加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 ); }
3 数据类型、运算符和表达式

三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
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.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式
C语言程序设计--第3章基本数据类型和表达式

2.实型变量
实型变量分为单精度(float型)和双精度(double型)。 如: float x,y; double z; / *定义x , y为单精度实数* / / *定义z为双精度实数* /
一个float型数据在内存中占4个字节(32位),提供7位有效数字 一个double型数据占8个字节(64位),双精度提供15 ~ 16位有 效数字 值得注意的是,实型常量是double型,当把一个实型常量赋给一 个float型变量时,系统会截取相应的有效位数。
§3.1 基本语法单位
任何一种语言都会根据自身的特点规定 它自己特定的一套基本符号。例如,英语的 基本符号是26个英文字母和一些标点符号。 C语言作为一种程序设计语言,也有它的基 本符号,程序就是由这些基本符号组成的。
§3.1.1 基本符号
程序中要对各种变量和各种函数起名,这些变量名、 函数名都是由语言的基本符号组成的。C的基本符号包 括: (1)数字10个(0~9); (2)英文字母大小写各26个(A~Z, a~z); (3)特殊符号,主要用来表示运算符,它通常是 由1~2个特殊符号组成。包括:
digits是一位或多位十进制数字(从0~9)。 1.575e9表示1.575×109
注意:
◆所有的实型常量均视为双精度类型。实型常量
的整数部分为0时可以省略,如下形式是允许的: .57,.0075e2,-.125,-.175E-2; 须为整数: 如e3,2.1e3.5,. e3,e等都是不合法的指数 形式。
不同的,而且取值范围与机器硬件有关,在 使用时请参阅有关手册。
◆需要指出的是:C语言没有提供布尔(逻辑)
类型,在逻辑运算中,它是以非零表示真 (TRUE),以数值0表示假(FALSE)。
C语言第3章(谭浩强)

17
void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9
3、变量要先定义后使用
可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。
void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9
3、变量要先定义后使用
可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。
c语言第3章 数据类型及表达式

•除 当除号两边都是整型量时,叫做整除 整除, 当除号两边都是整型量时,叫做整除,运算结果只保 留整数部分。 留整数部分。 当除号任何一边有实型量时,运算结果是实数。 当除号任何一边有实型量时,运算结果是实数。 #include <stdio.h> main() main() { float div; div=1/2; printf( %f %f\ ,div); printf(“%f\n”,div); }
–规则: 规则: 规则
–见名知意 见名知意 –不宜混淆 不宜混淆
请指出下列标识符的正误: 请指出下列标识符的正误: main、count、!count、new、5abc、if、do、L_5、who、a123、 main、count、!count、new、5abc、if、do、L_5、who、a123、 _A、_123、c#、 _A、_123、c#、r-3、printf
h e l l o , w o r l d \0 • 注意: 注意: 字符常量和字符串常量是两个不同的概念 字符常量和字符串常量是两个不同的概念
char ch; ch=‘A ; ch= A’; char ch; ch=“A ;// ;//错误 ch= A”;//错误
A
\0
\0
3.7 字符型数据
3.7.3 字符型变量
3.3 常量
常量 • 定义:程序运行时值不能改变的量,即常数。 定义:程序运行时值不能改变的量,即常数。 • 分类: 分类: 符号常量: 符号常量:用标识符表示具体值 • 定义格式: 定义格式: • 一般用大写字母 直接常量: 直接常量:直接写出具体值 • 整型常量 • 实型常量 • 字符常量 • 字符串常量 常量值 #define 标识符 常量值
C语言第3章(数据类型和表达式)2

二. 学习运算符应注意的问题
优先级
1. C语言规定了各种运算的优先级。 2. 优先级的规定符合思维习惯。 如:先乘除后加减。 3. 利用()提高程序的可读性。
结合规则
1. 运算符和运算对象的结合方向。 2. 左结合和右结合 10+2-9 ; ++-i
与运算量关系
要求运算量个数(单目/双目)和类型
(2) 强制类型转换运算:
形式: (数据类型)表达式 当需要做一些特殊的运算,必须使用强制类型转换 运算。
例1:int k=3; float x; 执行: x=1/k; 问x的值?
如何让x得到0.3333333的值? 例2:int a=3,b=4; float x=10.4,y=3.5; 表达式:(float)(a+b)/2+(int)x%(int)y的结果? [注意] (1)转换是暂时的,定义是永久的; (2)它是一个运算符, 单目运算, 优先级为2;
(2) 任何字符都可以用下面的形式表示:
\字符的ASCII值
三位八进制的表示:\ddd ; (d: 0~7); 两位十六进的表示: \xdd ; (d:0~ 9;A~ F ) 例1:字符常量 ‘A‟,还可以用: ‘\101‟ 和 ‘\x41‟ 来表示; 例2:字符常量‘0‟,可以用: ‘\x30‟,‘\060‟或‘\60‟表示 例3:字符常量‘\n‟, 还可以用: ’\012‟或‘\12‟ 和 ‘\x0A‟来表示;
单目运算符 双目运算符 三目运算符
三. 表达式
用运算符将运算对象按C的语法规则连接起 来的式子叫表达式。
例: 5 * b/c-1.5+„a‟ ;
(x+y)*(a+b)/(a-b); 12%5+sqrt(31);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序 设 计
C
6
§3.1 C语言的基本元素和数据类型
字符型 char 程序=算法+数据结构 基本类型 整型 int 单精度 float 实型(浮点型) 算法处理的对象是数据 双精度 double 数据结构是数据的组织形式 数组型 array 数据类型是指数据的内在表现形式 数据类型 结构体型 (含位段)struct (代码,存储,运算)。 构造类型 共用体型 union 枚举型 enum 自定义型 typedef 指针类型 (pointer) 空类型 void
内容提要:
C语言的基本元素和数据类型 常量与变量
各种数据类型的常量和变量
变量赋初值 各种类型的数据间的混合运算 几种基本运算符及其表达式
3
程 序 设 计
C
§3.1 C语言的基本元素和数据类型
一、符号集(字符集) C语言经常使用的基本符号共有以下五种: (1)大写字母:A~Z (2)小写字母:a~z (3)阿拉伯数字:0~9 (4)下划线:_ (5)标点符号和运算符
程 序 设 计
C
19
§3.4 实型数据
三、实型数据的舍入误差
虽然实型数据的表示形式有两种但在内存中均是以指 数形式存放 数 阶 若数据超过有效位,则被 小数 指数 符 符 舍去,故可能产生误差。 例3-4 #include <stdio.h> Void main( ) { float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%f\n”, a,b); } a=12345678848.000000, b=12345678848.000000
C语言程序设计
C Programming Language
程 序 设 计
C
主 讲: 刘怀亮 E-mail:liuhuil@ 经济管理学院信息管理系
1
第三章 数据类型、运算符 与表达式
(第3讲)
主讲:刘怀亮 E-mail: 经济管理学院信息管理系
2
数据类型、运算符与表达式
程 序 设 计
C
20
§3.5 字符型数据
一、字符常量
1、用单引号扩起来的一个字符 代表一个字 符 如:‘a‟、‘A‟、‘b‟、‘*’、‘$’ 输出格式控制 2、转义字符:特殊的字符常量,它们都以‘\‟开头。 \n 换行符 \0 空值 输出字符 \t 横向跳格 \v 纵向跳格 \b 退格 \a 报警 \r 回车 \f 走纸换页 \\ 输出反斜杠 \‟ 输出单引号 \ddd 1~3位八进制数表示的字符(ASCII码) 如:‘\101‟代表字符‘A‟ \xhh 1~2位十六进制数表示的字符(ASCII码) 如:‘\x41‟代表字符‘A‟
11
程 序 设 计
C
§3.3 整型数据
正数原码补码相同
二、整型变量 负数补码是绝对值取反加1 1、整型变量在内存中的存放形式
数据在内存中以二进制的补码表示: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 +10
符号位
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 -10
程 序 设 计
C
2、整型变量的分类 根据数值的范围将变量定义为三类:
基本整型(int)2 短整型(short int)2 长整型(long int)4
为充分利用变量的表达范围,又可将变量定义为:
有符号数(signed) (可省略) 无符号数(unsigned)
12
§3.3 整型数据
二、整型变量
2、整型变量的分类
C
P45表3.2给出了各整型数据的取值范围。
14
§3.3 整型数据
二、整型变量
整数在存储单元的存储情况:以13为例 0 0 0 0 0 0 0 0 0 0 00 1 1 0 1 符
号 位
int型
0 0 0 0 0 0 0 0 0 0 00 1 1 0 1
short型
程 序 设 计
0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 long型 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 unsigned int型
程 序 设 计
C
4
§3.1 C语言的基本元素和数据类型
二、标识符
程 序 设 计
用来标记常量、变量、函数及文件名的字符序列。 标识符的构成规则: 如:student_name, student_number • 以字母(大小写皆可)或下划线开头 应变为: stu_name、stu_num • 随后可跟若干个(包括0个字母、数字、下划线) • 标识符的长度各个系统不同,最好不要超过8个字符 如:x y3 _imax ELSE X A_to_B(合法) 注意 7x int #No bad one re-input(不合法) 1、区分大小写。如sum、Sum是两个不同的标识符!
程 序 设 计
C
§3.4 实型数据
一、实型常量 实数又称浮点数。有两种表示形式
1、十进制数形式 如:0.345、.345、345.0、0.0、0.、.0 2、指数形式 如:3.45e3、3.45E3 表示3.45×103
程 序 设 计
C
注意:e前后必须有数字,e后必须为整型数。 如: 表示双精度型 如:.3e3 3e3 3.e3 3e 3.5 e3 e0.3 3.5f表示单精度型
3、类型:缺省为double; 后缀为f或F,为float型;后缀为l或L,为long double型
18
§3.4 实型数据
二、实型变量(取值范围和值的精度与机器有关)
单精度(float型):占4个字节,7位有效数字 (3.4e-38 ~ 3.4e+38) 双精度(double型):占8个字节,15~16位有效数字 (1.7e-3.8 ~ 1.7e+3.8) long double型:占10个字节, 15~16位有效数字 (3.4e-4932 ~ 1.1e+4932) 如:float x, y; double a, b, c;
程 序 设 计
(2)无符号型(存放无符号的整数) 无符号整型:以unsigned int或unsigned说明,占 用2字节。 如: unsigned ui,sum 无符号短整型:以unsigned short说明,占用2字节。 如: unsigned short us,sum 无符号长整型:以unsigned long说明,占用4字节。 如: unsigned long ul,sum
(1)有符号型 基本型:以int说明,占用2字节。如:int i,sum 短整型:以shot int或short说明,占用2字节。 如:short s,sum 长整型:以long int或long说明,占用4字节。 如:long l,sum
程 序 设 计
C
13
§3.3 整型数据
二、整型变量
2、整型变量的分类
程 序 设 计
C
a+u= 22 b+u= -12 }
unsigned u; a=12; b= -24; u=10; c=a+u; d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d);
16
§3.3 整型数据
三、整型常量的类型
• 值在-32 768~+32 768范围内,认为是int型; • 值在-2 147 483 648~+ 2 147 483 648范围内,认 为是long int型; • 八进制、十六进制常量的类型根据数值的大小可以 是整型、无符号整型(0~65535)、长整型或无符号长 整型; • 整数后有后缀u或U,认为是unsigned型。 • 整数后有后缀l或L,认为是long int型(在严格要求类 型匹配的场合有用,如函数参数调用)。 -123 123u -123l 123ul -0123 0123u -0123l 0123ul -0x123 0x123u -0x123l 0x123ul 17
8
C
§3.2常量和变量
程 序 设 计
# define PRICE 30 #include <stdio.h> 二、变量 void main ( ) 1、变量:其值可改变的量 { int num,total; 用标识符(变量名)表示 num=10; 在内存中占一定存储单元 total=num*PRICE; 表示 值 变量—— 变量名—— 存储单元 printf(“total=%d\n”,total); } 定义方法:
C
注意
类型符 标识符
如:int I,j,imax;
1、合法标识符且见名知其意; 2、先定义后使用;不定义不使用; 3、习惯上,符号常量用大写, 变量名用小写,方便区别。
char c1,c2,s; float x,root1,root2; double y1,y2;
9
§3.3 整型数据
一、整型常量 1、十进制常数 如:123、-789、0 2、八进制常数 由0~7数字组成,首字符用0标识。 如:0123 即 (123)8 3、十六进制常数 由0~9,a~f(A~F)组成,最高位用0x标识。 如:0x123 即 (123)16 注意:二、八、十、十六进制之间转化一定掌握。 如:30→( ? ) 8→( ? ) 16
C
2、最好见名知意!
5
§3.1 C语言的基本元素和数据类型
三、关键字 也称保留字,在C语言中有特定的含义,专门 用作语言特定的成分的一类标识符。 保留 ANSI 32个 (详见P378 附录C) 注意 auto, break, case, char, const, continue, default, do, 12个编译预处理命令 所有的关键字都有其固定的含义,不能用作其他。 double,else, enum, extern, float, for, goto, if, int, long, define,return, elif, else, endif, error, if,static, ifdef, ifndef, register, short, signed, sizeof, struct, 所有的关键字都必须小写。 include, line, progma, undef switch, typedef, union, unsigned, void, volatile, while 如:else和ELSE代表不同的含义。 程 ()、 < >、‚ ‛、(空格) else 是关键字; ELSE是用户自定义的标识符。