- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
第3章 数据类型、运算符与表达式
3.4 实型数据
实型数据的舍入误差L3-4 理论上b=12345678920,但 main( ) 是实际上输出 { b=12345678848.000000原 float a,b; 因是一个单精度实型只能 a=123456.789e5; 保证7位有效数字; b=a+20; 因此要避免一个很大的数 printf("a=%f,b=%f\n",a,b); 和一个很小的数直接加减, 否则就会“丢失”小的数! }
36
第3章 数据类型、运算符与表达式
3.8 算数运算符和算术表达式
算数运算符 + ——加法运算 - ——减法运算、负号运算 * ——乘法运算 / ——除法运算(注意,如果除号左右两边都 是整数,则为整除) % ——求余运算(必须是整数 ) 如:3/2=1,3%2=1,-5/3=-1,-3%2=-1, 运算结果“向零取整”
3.5 字符型数据
一个字符串可以包含0个字符,表示为“ ”,
称为空串。字符串在机内存储时,系统在
其末尾添加了一个‘\0‟字符;
‘\0‟是字符串结束标志,以便确定字符串
的实际长度,即字符串的存储长度要比实
际长度大1。所以,空串的存储长度为1而
不是0。
28
第3章 数据类型、运算符与表达式
练习
以下选项中合法的字符常量是( ) A)“B” B) „\010‟ B C) 68 D) D
33
第3章 数据类型、运算符与表达式
3.7 各类数值型数据间的混合运算(P54)
例:int i; float f; double d; long e;
10 + „a‟
int
int
+
i *
f
–
d
/
e
char
int float double double long double double double
3.5 字符型数据
字符变量 用于存放字符常量(只能放一个字符) 占一个字节(8bit)
char c1,c2; c1 = „a‟; c2 = „b‟;
24
第3章 数据类型、运算符与表达式
3.5 字符型数据
字符数据的存储形式及使用方法 在内存中,字符以ASCII码存储
c1=„a‟ 97
c2=„b‟ 98
15
第3章 数据类型、运算符与表达式
3.4 实型数据
实型变量的 Bit 类型 数 float double 32 64 有效数字 数值范围 6~7 15~16 -3.410-38~3.41038 -1.710-308~1.710308
long double 128
18~19
-1.210-4932~1.2104932
29
第3章 数据类型、运算符与表达式
练习
在C语言中(以16位PC机为例),5种基 本数据类型的存储空间长度的排列 顺序为( ) A A) char<int<long int<=float<double B) char=int<long int<=float<double C) char<int<long int=float=double D) char=int=long int<=float<double
30
第3章 数据类型、运算符与表达式
3.6 变量赋初值
作为变量必须要赋值(赋初值)
赋值方法:
1、先定义,后赋值。 int a;
a=5;
2、定义同时赋值。
int a=5;
未赋初值的变量是不定值,是分配给该 变量的内存中的数据。
31
第3章 数据类型、运算符与表达式
3.6 变量赋初值
在定义变量的同时赋予初值,如: int a=3; float b=3.56; char c=„a‟; int a,b,c=5; /*只给部分变量赋初值*/ int a=3,b=3,c=3;/*不能写成int a=b=c=3;*/ int a,b,c; /*定义*/ a=b=c=3; /*赋值*/
20
第3章 数据类型、运算符与表达式
3.5 字符型数据
字符常量 用单引号括起来的一个字符,‘a‟,‘A‟ 转义字符 以“\”开头的字符序列(P48表3.3)L3-5 \ddd 1-3位八进制数所代表的字符 A 例如:\101 代表字符? \xhh 1-2位十六进制数所代表的字符 例如:\x7a 代表字符? z
字符型数据与整型数据通用(0~255) int i; char c; i = „a‟; c = 97; L3-6 L3-7
25
第3章 数据类型、运算符与表达式
练习
若有说明语句:char c='\72';则 变量c( ) A)包含1个字符 A B) 包含2个字符 C) 包含3个字符 D) 说明不合法,c的值不确定
第3章 数据类型、运算符与表达式
第3章 数据类型、运算符与表达式
3.1 C的数据类型 3.2 常量与变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算数运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式
13
第3章 数据类型、运算符与表达式
练习
若有如下程序片断: unsigned x; 65535 int y=-1; x=y; 则程序运行后x的值是多少?
14
第3章 数据类型、运算符与表达式
3.4 实型数据
实数又称为浮点数
实型常量的表示 小数形式:0.123、123.、.123、0.0 必须有小数点 指数形式:123e3、123E3,其中E(e) 前至少有一位非零数,E(e)后为整数 实型变量在内存中占4个字节(32bit)
21
第3章 数据类型、运算符与表达式
3.5 字符型数据
• 转义字符\000是代表ASCII码为0的控制 字符,即“空操作”,表示空字符 NULL;
• 字符‘0‟的ASCII码值是48,空字符\000 不是字符‘0‟ ; • 空字符\000不等于空格字符,空格字符 的ASCII码值为32而不是0。
22
7
第3章 数据类型、运算符与表达式
3.3 整型数据
整型常量的表示 十进制、八进制(以数字0)、十六进制0x 整型变量 在内存中占2个字节(16Bit) 数值是以补码表示的 正数的补码与原码相同 负数的补码是原码的绝对值按位取反再加1 有符号数的最高位为符号位,0为正数,1 为负数
8
第3章 数据类型、运算符与表达式
1
第3章 数据类型、运算符与表达式
3.1 C的数据类型
数据类型决定了:
数据占内存字节数
数据取值范围
其上可进行的操作 在C程序中对用到的所有数据都必 须指定数据类型。
2
第3章 数据类型、运算符与表达式
3.1 C的数据类型 (P37)
整型 数值类型 基本类型 C 数 据 类 型 实 型 字符类型char 枚举类型enum
26
第3章 数据类型、运算符与表达式
3.5 字符型数据
字符串常量( P52 ) 是用一对双引号括起来的字符序列 如:“CHINA”、“a” char c; c = „a‟; c = “a”;
例 ‘a‟ a “a” a \0
是一个字符常量
是存储长度为2的字符串
27
第3章 数据类型、运算符与表达式
17
第3章 数据类型、运算符与表达式
3.4 实型数据
实型常量默认为双精度型来处理 一个实型常量赋值给实型变量时,根据 变量的类型截取实型常量中相应的有效 位数字。 例:float f; f = 2.45678*4523.65 如:1.65f 单精度型常量
计算结果为双 精度double型
18
第3章 数据类型、运算符与表达式
练习
下面四个选项中,均是合法的浮点 数的选项是( )。 A)+1e+1 5e-9.4 3e2 B B) -.60 12e-4 -8e5 C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-1
ቤተ መጻሕፍቲ ባይዱ19
第3章 数据类型、运算符与表达式
练习
下列变量定义中合法的是( ) A)short _a = 1 - .1e-1; B) double b = 1 + 5e2.5; A C) long do = 0xfdaL; D) float 2_and = 1 - e-3;
32
第3章 数据类型、运算符与表达式
3.7 各类数值型数据间的混合运算(P54)
在进行运算时,不同类型的数据要先转 换成同一类型,然后进行运算。 运算转换规则:不同类型数据运算时先 自动转换成同一类型,由精度低向精度 高的方向转换。P54 图3.10横向箭头表示 必定的转换,纵向的箭头表示运算对象 类型不同时转换。 上述的类型转换是由系统自动进行的, 也称为隐式转换。
量。(L3-1)
含义清楚 一改全改
4
第3章 数据类型、运算符与表达式
3.2 常量与变量
二、变量 其值可以改变的量称为变量 变量及其标识符的命名规则( P39 ) 只能由字母、数字、下划线组成,且 第一个字符必须为字母或下划线 Turbo C允许变量名有32个字符 区分大小写,经常用小写字母 不可以用C语言的32个关键字
[signed] short [int]
unsigned short [int]
16
16
-32768~32767
0~65535
long [int]
unsigned long [int]
32
32
-231~(231-1)
0~(232-1)
10
第3章 数据类型、运算符与表达式
3.3 整型数据
整型变量的定义与使用 L3-2 整型数据的溢出 L3-3 a: 0111 1111 1111 1111 b: 1000 0000 0000 0000
短整型short 整型int 长整型long
单精度型float 双精度型double
构造类型 指针类型 空类型void
数组 结构体struct 共用体union
3
第3章 数据类型、运算符与表达式
3.2 常量与变量
一、常量和符号常量 常量:程序运行时其值不能改变的量(即常数) 数值常量:12、0、-3、5.5 字符常量:‘A‟、‘b‟、‘1‟ 符号常量:用一个标识符(符号)代表一个常
第3章 数据类型、运算符与表达式
练习
下面四个选项中,均是不合法的转 义字符的选项是( ) A)‘\””‟ „\\‟ „\xf‟ B B) „\1011‟ „\‟ „\059‟ C) „\12‟ „\0x4g‟ „\}‟ D) „\abc‟ „\101‟ „xlf‟
23
第3章 数据类型、运算符与表达式
3.3 整型数据
例如:求-10的补码的方法: 取-10的绝对值10 10的原码 0000 0000 0000 1010 取反 1111 1111 1111 0101 再加1 1111 1111 1111 0110 得-10的补码
9
第3章 数据类型、运算符与表达式
3.3 整型数据 (P41)
整型变量的类型 [signed] int unsigned [int] Bit长(位) 取值范围 16 16 -32768~32767 0~65535
32767 -32768
11
第3章 数据类型、运算符与表达式
3.3 整型数据
整型常量的类型(P44)
(1,2,3)根据所在范围默认为int或 long型 (4)12345u或12345U
(5)123l或123L
12
第3章 数据类型、运算符与表达式
练习
下面四个选项中,均是合法整型常 量的选项是( ) A)120 -0xabc 012 A B) -0xcd 01a 50 C) 1896 017 0668 D) -045 0xag 0xe
34
第3章 数据类型、运算符与表达式
练习
表达式‘a‟+4*50000/8.0值的数据 类型为( ) A)int C B) float C) double D) 不确定
35
第3章 数据类型、运算符与表达式
练习
设有说明: char w; int x; D float y; long z; 则表达式w*x+z-y值的数据类型为() A) float B) char C) int D) double
5
第3章 数据类型、运算符与表达式
3.2 常量与变量
使用变量的原则( P39 )
所有的变量必须:先定义(申明), 后使用 凡未被事先定义的,不作为变量名
每个变量被指定为一个确定的类型
6
第3章 数据类型、运算符与表达式
练习
以下有4组用户标识符,其中都合 法的一组是( ) A)For -sub Case C B) 4d DO Size C) f2_G3 IF _abc D) WORD void define