第2章-数据类型与运算符.pps
《第2章-数据类型与运算符.pps》由会员分享,可在线阅读,更多相关《第2章-数据类型与运算符.pps(68页珍藏版)》请在三一文库上搜索。
1、第2章 数据类型和运算符,C 语言程序设计,2,本章主要内容,本章介绍C语言的基础,包括: 数据类型 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识?,通常程序要对数据进行操作处理: 处理的对象是数据 通过运算符和表达式进行操作,3,例如:,【例2.1】计算圆的面积,半径为 5 cm。 程序如下:,main( ) float r, area ; r=5 ; area=3.14*r*r; printf (“%fn “, area) ; ,运算结果是输出圆的面积:78.500000,程序中用到的数据:r、area、5、3.14 对数据进行的运算:* 、=,4,分析:,计算机操作处理时,
2、要完成以下工作: 在内存中给半径 r 和运算结果 area 开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值? 数据 5 和 3.14 与 r 、area 不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。这样的数计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否有区别?,涉及数据类型 的基本知识,5,2.1 C程序的符号系统,C程序中可以出现的字符包括: 基本字符 标识符,6,2.1.1 基本字符集,大写英文字母:A B C X Y Z 小写英文字母:a b c x y z 数字:0 1 2 9 空白符:空格符、换行符、制表符 特殊字符:+ - * / (
3、 ) _ = ! # % . , ; : “ | & ? $ ,7,2.1.2 标识符,由字母、下划线和数字组成的字符序列,但必须用字母或下划线开头,用于程序中的变量、符号常量、数组、函数、数据类型等操作对象的名字,1系统定义标识符 具有固定名字和特定含义的标识符 分为关键字和预定义标识符 2用户定义标识符 用于对用户使用的变量、数组、函数等操作对象进行命名,8,关键字,数据类型: int、char、float、double、short、long、void、signed、unsigned、enum、struct、union、const、typedef、volatile 存储类别: auto、s
4、tatic、register、extern 语句命令字: break、case、continue、default、do、else、for、goto、if、return、switch、while 运算符: sizeof,9,预定义标识符,系统标准库函数 scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等 编译预备处理命令 include、define等,10,对标识符的规定,用户定义标识符 必须以字母或下划线“_”开头 不能含有除字母、数字和下划线“_”外的其他字符 标识符中大小写字母含义不同 关键字必须用小写字母。不允许使用关键字为变量、数组、函数
5、等操作对象命名 预定义标识符允许用户对它们重新定义,当重新定义后将改变它们原来的含义,11,练习:正确区分标识符,正确区分哪些是合法标识符,哪些是不合法标识符。其中合法标识符中哪些是关键字,哪些是预定义标识符,哪些是用户定义标识符。 Abc define 2x double student m+y a# b-4 _1 While int let x%y name do wtm Ctrl swicth include,12,2.2 C语言的数据类型,C数据类型,本章讨论 基本类型数据,13,2.2.1 整型数据,1整型数据的类型 基本整型数据 int ,分配 4 Byte 短整型数据 short
6、 int,分配 2 Byte 长整型数据 long int,分配 4 Byte 整型数据均以二进制补码形式存储,问题: 为什么要采用补码? 如何表示?,14,计算机中正、负数的表示,例如:109 (1101101)2 要区别:109 和 109 方法是:将符号也数码化 即: 正的符号 用 0 表示 负的符号 用 1 表示, 计算机中的数表示方法是: 符号位二进制数值(以 8bit 为例) 109 110 1101 0110 1101 109 110 1101 1110 1101,15,问题:计算机计算复杂化,例如计算: (-19)+(+22) 1001 0011 + 0001 0110,解决的
7、方法是: 使用反码或补码的表示方法(按前述表示的编码称为原码),即能将减法一律转换为加法。,需要判断符号是否相同: 如果相同,结果符号不变,并进行绝对值相加 如果不同,结果取绝对值大的数的符号,并进行绝对值相减,16,原码、反码和补码,正数:原码、反码、补码相同 符号位为0,数值为对应的二进制数。 109,01101101原 = 01101101反 = 01101101补 负数: 原码符号位为1,数值为绝对值的二进制数。 109 11101101原 反码符号位为1,数值为绝对值的二进制数各位变反。 109 10010010反 补码符号位为1,数值为绝对值的二进制数各位变反加1。109 1001
8、0011补,17,2. 有符号和无符号整型数据,有符号的整型数据 signed int 无符号的整型数据 unsigned int 区别是将最高位看作符号位还是数据位,例如: 1111 1111 1010 1000 作为有符号数使用时,最高为符号位 为负数,值是:- 88(再求一次补) 作为无符号数使用时,最高为数据位 为无符号的数,值是:65448,18,例如:,main( ) int m; m= -3; printf(“m=%dn“,m); printf(“m=%un“,m); ,输出结果: m=-3 m=4294967293,按有符号数输出,按无符号数输出,19,整型数据的类型及规定,方
9、括号表示可选项 (可不出现) short 分配2 Byte,int、long分配4 Byte,20,2.2.2 实型数据,1实型数据的类型 单精度实型数据 float,分配4 Byte 双精度实型数据double,分配 8 Byte 2实型数据的存储,单精度实型,指数部分,小数部分,小数的符号位,指数的符号位,21,实型数据的类型及规定,C标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。 一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。,22,2.2.3 字符型数据,字符型数据char,分配 1 Byte 字符型数据是
10、指字母、数字、各种符号等用ASCII值表示的字符 例如 a 是一个char类型数据,称作字符常量,存储:,0 1 1 0 0 0 0 1,2.1.4 空类型,空类型void 通常与指针或函数结合使用,23,2.3 常量,在运行程序的过程中值保持不变的量 1整型常量 十进制:09 八进制:07,以 0开头 十六进制:09,AF/af,以 0X或 0x开头,例如: 100 -8 0 +123 010 024 0100 073 0x38 0x10 0X10 0XFF 0x0a,24,1. 整型常量,整型常量的类型: 根据值大小默认类型。 整型常量后面加l或L,则认为是long int型 例如:123
11、L、0L、432l、0x100l,注意: 十六进制常量中可以使用大写字母AF,也可以使用小写字母af。 八进制常量中不能出现数字 8 或 9 例如:018、0921非法,25,2. 实型常量,十进制形式 1.0 1. +12.0 -12.0 0.0 指数形式 1e3 1.8e-3 -123E-6 -.1E-3,指数只能是整数,而尾数则可以是整数也可以是小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法 实型常量的类型:默认为double型,后面加F(或f),则强调表示该数是float类型 例如:3.5f、1e2F,26,3. 字符型常量,可视字符常量 单引号括起来的单个可视字符
12、 例如:a、A 、+ 、3、 等 转义字符常量 单引号括起来的 与可视字符组合,例如:,27,4. 字符串常量,用双引号括起的一个字符序列 例如:“ABC“、“123“、“a“、 “nt “ “nGood morning“ 字符串常量的长度 : 所包含的字符个数 字符串常量的存储方式:,所占存储单元数:串长度1 例如:,字符串 结束标记,28,5. 符号常量,以标识符来代表的常量 事先编译预处理命令define定义 编译时先由系统替换为它所代表的常量,再进行编译 例如:,#define LEN 2.5 main( ) float a,b; a= 2*3.14 *LEN; b=3.14*LEN*
13、LEN; printf(“a=%f,b=%fn“,a,b); ,编译前系统进行替换,29,5. 符号常量,main( ) float a,b; a= 2*3.14 *2.5; b=3.14*2.5*2.5; printf(“a=%f, b=%fn“,a,b); ,define是编译预处理命令,必须以“#”开头 编译预处理命令在第7章讨论。,将“LEN”替换为“2.5”,30,2.4 变量,1. 变量的有关概念 在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名。 变量必须“先定义后使用” 系统为变量分配存储单元,存储变量的值。 编写程序时通过变量名来存、取变量值。,例如:
14、 有变量a 它的值是510,31,2. 变量定义,变量定义的一般格式: 数据类型说明符 变量列表; 例如:int i, j; long k, m; float x,y; char ch1,ch2;,必须使用合法的标识符作变量名 不能使用关键字为变量命名,32,3. 变量的初始化:,允许在说明变量的时候对变量赋初值。 例如:int a=5, b=10+2; double x=23.568, y ; char ch1=a, ch2=66, ch3=142; 表示定义变量并对变量存储单元赋值。 错误的初始化: int a=3+b, b=5; float m=n=23.16;,33,2.5 运算符和表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算
链接地址:https://www.31doc.com/p-2259821.html