第2章基本数据类型、运算符与表达式.ppt
《第2章基本数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第2章基本数据类型、运算符与表达式.ppt(46页珍藏版)》请在三一办公上搜索。
1、管理学院信息管理教研室,程序设计基础-C语言程序设计教程(第二版),学习的意义,学习C语言的目的是什么?目的可能是为了:期末考试 等级考试 研究生考试 程序员考试,最终目的是:用C语言编写程序来解决实际问题!,程 序是什么?,程序是解决某种问题的一组指令的有序集合。著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:程序=数据结构+算法,学习的意义,程序是什么?,对数据的描述。在C语言中,体现为数据类型的描述!,对数据处理的描述。是为解决一个问题而采取的方法和步骤,是程序的灵魂!,结论:学好C语言首先就必须十分了解C语言的数据类型、运算符与表达式。,掌握变量和常量的概念;掌握各
2、种类型数据的常量的使用方法;掌握整型、字符型、浮点型变量的定义和引用方法;掌握赋值运算符、算术运算符、逗号运算符等的使用方法;理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性。,学习目标,2.1 C语言的数据类型2.2 常量、变量与标识符2.3 简单数据类型与表示范围 2.4 运算符与表达式2.5 运算符的优先级与结合性,学习目标,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,本章所介绍的数据类型,2.1 C语言数据类型,2.2 常量、变量和标识符1.标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个
3、字母必须是字母或下划线C语言的关键字不能用作变量名 大小写敏感长度:有效长度为32个字符。随系统而异,但至少前8个字符有效命名原则:变量名和函数名中的英文字母一般用小写,以增加可读性 见名知意不宜混淆 如l与I,o与0,在TC2.0及BC3.1中,变量名(标识符)的有效长度为32个字符,缺省值为32,但在VC中其长度可达到255,例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123,M.D.John,3days,#33,char,$123,ab,.字符非法,数字3不
4、可作首字符,#字符非法,char是关键字,字符非法,$不可作首字符,2.2 常量、变量和标识符2.常量定义:程序运行时其值不能改变的量(即常数)常量的分类:直接常量(值常量)整型常量:10、15、-10、-30 实型常量:12.5、30.0、-1.5 字符常量:A、b、c 字符串常量:“sum”、“A”、“123”符号常量 用标识符来代表常量。其定义格式为:,#define 符号常量 常量,#define NUM 20#define PI 3.1415926,#include#define PRICE 30void main()int num,total;num=10;total=num*PR
5、ICE;printf(total=%d,total);,运行结果:total=300,行尾不能有分号 define前面一定要有#符号常量名最好使用大写 符号常量名最好有意义,2.2 常量、变量和标识符3.变量定义:程序运行时其值可以被改变的量 变量的两要素:变量名、变量值变量的定义格式:变量的初始化:定义时赋初始值变量的使用:先定义,后赋值变量定义位置:一般放在函数开头,数据类型 变量名1,变量名2,变量名n;,int x,y,z;float radius,length,area;char ch;,决定分配字节数和数的表示范围,合法标识符,例:int a=2,b,c=4;float data=
6、3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;,例1:int student;stadent=19;/Undefined symbol statent in function main,例2:float a,b,c;c=a%b;/Illegal use of floating point in function main,T:以下哪个不是C语言中定义的关键字()A)int B)sizeof C)flag D)default,1.整型数据,整型常量,十进制整数:由数字09和正负号表示。如:123,-456,0八进制整数:由数字0开头,后跟数字07表示。如:
7、0123,011十六进制整数:由0 x或0X开头,后跟09,af,AF表示。如0 x123,0Xff,定义整数的符号常量#define NUM1 20/十进制数20#define NUM2 020/八进制数(十进制16)#define NUM3 0 x2a/十六进制数(十进制42),思考题:下列整型常量哪些是非法的?012,oX7A,00,078,0 x5Ac,-0 xFFFF,0034,7B。,首字符不能是字母o,八进制数中不能有数字8,十进制数中不能有字母B,2.3 简单数据类型与表示范围,2.整数在内存中的表示,整数的数值在内存中用补码的形式存放。求一个整数补码的方法:(1)一个正数的补
8、码和其原码的形式相同。(2)求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。,2.3 简单数据类型与表示范围,2.整数在内存中的表示,十进制整数,14:对于16位的内存单元:,符号位,十进制数+14两个字节的内存实际存放形式,(+14)补=0000 0000 0000 1110,2.整数在内存中的表示,十进制整数,14:对于32位的内存单元:,十进制数+14四个字节的内存实际存放形式,(+14)补=0000 0000 0000 0000 0000 0000 0000 1110,符号位,记住:数据在内存中的存放位置是高字节放在高地址的存储单元中,低字节放在低地址的存储单元中。,
9、2.整数在内存中的表示,十进制整数,14:对于16位的内存单元:,符号位,十进制数-14两个字节的内存实际存放形式,(+14)补=0000 0000 0000 1110,(-14)补=1111 1111 1111 0010,2.整数在内存中的表示,十进制整数,14:对于32位的内存单元:,十进制数-14四个字节的内存实际存放形式,(+14)补=0000 0000 0000 0000 0000 0000 0000 1110,符号位,(-14)补=1111 1111 1111 1111 1111 1111 1111 0010,2.整数在内存中的表示,十进制整数,65537:对于16位的内存单元:,
10、(+65537)补=01 0000 0000 0000 0001,(-65537)补=10 1111 1111 1111 1111,十进制数-65537两个字节的内存实际存放形式,符号位,真值为:-1,不是-65537!,2.整数在内存中的表示,十进制整数,65537:对于32位的内存单元:,十进制数-65537四个字节的内存实际存放形式,(+65537)补=0000 0000 0000 0001 0000 0000 0000 0001,符号位,表示负,(-65537)补=1111 1111 1111 1110 1111 1111 1111 1111,真值为:-65537!,为什么-65537
11、这个数在16位内存单元中的表示与在32位内存单元中的表示不相同呢?,这主要是因为-65537这个数超出了16位内存单元表示数的范围,所以实际存储的值(-1)与要表示的值(-65537)不同,但-32767并没有超出了32位内存单元表示数的范围,所以实际存储的值就是其本身。因此,在C语言中对数据处理时必须要注意数据的表示范围,以免引起不必要的错误。,3.整型变量,整型变量的定义,int 变量名,变量名2,变量名n;,int必须小写,至少一个空格,必须为合法的标识符,以逗号,分隔,以分号;结尾,定义时可以赋初值,方法:在变量名后面增加“=数值”,例:int a;int x,y,z;int m=2,
12、y=-3;,当程序中定义了一个变量时,计算机会为这个变量分配一个相应大小的内存单元。因此,这个变量是有值的,它的值就是对应内存单元的值。如果定义时没有赋初值,则这个值程序员是无法预知的。,整型变量的分类,修饰符 控制变量是否有符号:signed(有符号)和unsigned(无符号)控制整型变量的值域范围:short(短)和long(长)。,有符号基本型(int)int a=-2;/定义一个有符号整型变量a,并赋初值-2 占一个机器字大小的内存单元。TC或BC3.1下,变量占2个字节(16位)的内存单元;VC6.0下,变量占4个字节(32位)的内存单元。,如果定义变量时,不指定signed,也不
13、指定unsigned,则默认为signed(有符号),符号位,变量a占用的内存单元(2字节),有符号整型变量在内存中的实际存放形式(假设在BC3.1下),无符号基本型(unsigned int或unsigned),unsigned int a=2;/定义一个无符号整型变量a,并赋初值2 或 unsigned a=2;占用的内存单元字节数同int类型。与int a=2;等价。,unsigned int a=-2;/定义一个无符号整型变量a,并赋初值-2 或 unsigned a=-2;,无符号整型变量在内存中的实际存放形式(假设在BC3.1下),数据位,变量a占用的内存单元(2字节),其值为:6
14、5534!,注意:对于有符号数也好还是无符号数也好,其实在计算机内存中表示是不加区分的,都是以其补码形式表示,只是我们怎样看待最高二进制位的问题,如果把最高位当成符号位看待,则为有符号数,如果把最高位当成数据位看待,则变为无符号数。例如:unsigned int a=-2;printf(“%d”,a);-有符号输出,则为-2 printf(“%u”,a);-无符号输出,则为65534,有符号短整型(short int或short),short int a=2;/定义一个有符号短整型变量a,并赋初值2 或 short a=2;占用的内存单元为2个字节,无论是TC、BC,还是VC。,无符号短整型(
15、unsigned short int或unsigned short),unsigned short int a=2;/定义一个无符号短整型变量a,并赋初值2 或 unsigned short a=2;占用的内存单元字节数同short类型。,在TC2.0和BC3.1下,unsigned short类型与unsigned int类型是等价的。,有符号长整型(long int或long),long int a=234567;/定义一个有符号长整型变量a,并赋初值234567 或 long a=234567;占用的内存单元为4个字节,无论是TC、BC,还是VC。,无符号长整型(unsigned lon
16、g int或unsigned long),unsigned long int a=2;/定义一个无符号长整型变量a,并赋初值2 或 unsigned long a=2;占用的内存单元字节数同long类型。,在VC中long与int类型基本相同,均占四个字节的内存单元;但在TC或BC中,long类型与int类型只是所占字节不同外(long占4字节,int占2字节),其它数据处理方法是一样的。,【例】各种整型变量的定义,#include#define SUM 65535void main()int a,b=20;unsigned int c=0 xff;long D;a=SUM;D=301;pri
17、ntf(a=%dn,a);printf(b=%dn,b);printf(c=%dn,c);printf(“D=%dn”,D);,/文件包含,头文件说明,/定义符号常量SUM,值为65535,/定义两个int型变量a和b,b赋初值20,/定义无符号整型变量c,并赋初值0 xff,/定义长整型变量D,/对a赋值为SUM,这时a的值是65535,/对D赋值为301,/以有符号十进制形式(%d)显示a的值,/以有符号十进制形式(“%d”)显示b的值,/以有符号十进制形式(%d)显示c的值,/以有符号十进制形式(%d)显示D的值,变量定义部分,语句执行部分,在BC3.1下运行结果:a=-1 b=20 c
18、=255 D=301,在VC6.0下运行结果:a=65535 b=20 c=255 D=301,对于16位的有符号整型变量a来说,因65535在内存中的形式为1111111111111111,最高位为1表示负,则其所对应的十进制数就为-1。,4.整数常量的分类,根据其值所在范围确定其数据类型。在TC2.0或BC3.1下,如果整型常量的值位于-3276832767之间,C语言认为它是int型常量;如果整型常量的值位于-21474836482147483647之间,C语言认为它是long型常量。整型常量后加字母l或L,认为它是long int 型常量。比如123L、45l、0XAFL。无符号数也可
19、用后缀表示,整型常数的无符号数的后缀为U或u。例如:358u,0 x38Au,235Lu 均为无符号数。前缀、后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。,5.实型数据,实型常量(实数或浮点数),十进制小数形式:由数字09和小数点组成。如:0.0,5.6,-5。指数形式:由十进制数,加阶码标志e或E以及阶码(只能为整数,可以带符号)组成。其一般形式为:aEn,其可表示为a10n 其中:a为十进制数,n为十进制整数,都不可缺少。,合法的实数表示:2.1E5 表示2.1105,3.7E-2 表示3.710-2。,非法的实数表示:345(无小数点)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据类型 运算 表达式
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5637315.html