- 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是用户自定义的标识符。