C语言数据类型和玉那算规则课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言数据类型和玉那算规则课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据类型 规则 课件
- 资源描述:
-
1、C语言程序设计教程语言程序设计教程复习n基本概念n什么是算法,如何设计算法?n算法的两要素:n基本功能操作n控制结构n常用算法n枚举法、迭代法、递推法、递归法n算法的特点n有穷性、确定性、有效性、I/On算法的表示n流程图nC语言的发展历程nC语言的特点nC程序的结构规则n函数的基本单元、main函数等n标准库函数nC语言的关键字(32个)nC语言的上机执行过程第三章 数据类型与运算规则n本章要点:n数据与数据类型n基本数据类型及其表示n算术运算与赋值运算n关系运算与逻辑运算n位运算n其它运算n混合运算及数据类型转换3.1 数据与数据类型 n数据数据是程序加工、处理的对象,也是加工的结果。具有
2、同样性质的数据具有同样性质的数据可被分成一些集合,程序能对它们进行同样的操作、或采用同样的编码等,这样的集合的集合称为数据类型数据类型。n所有的程序语言都是用数据类型来描述程序中的数据结构、数据表示范围、数据在内存中的数据结构、数据表示范围、数据在内存中的存储分配存储分配等。n数据类型是计算机科学的核心概念之一数据类型是计算机科学的核心概念之一。l 常数常数l 变量变量l 运算符运算符l 表达式表达式l 函数函数xaxfsin536.3)(表达式表达式常数常数变量变量函数函数运算符运算符算例n 常数3、5和3.6的存放空间是否相同?n 变量a如何表示?如何存放?n 计算机如何知道3.6和a之间
3、的关系?n 和 如何输入?如何存放?n 计算机如何识别“=”?运算结果放在哪里?数据的描述数据的描述数据的操作数据的操作53xsin数据是程序处理的对象C语言的数据类型3.2 C语言基本数据类型及其表示 n3.2.1 常量与变量n常量:n在程序运行过程中,其值不能改变的数据称为常量。n常量可以分为直接常量和符号常量,直接常量包括整型常量、实型常量、字符常量和字符串常量,如12,4.6,a,“CHINA”等。n符号常量是指用一个指定的标识符代表某个常量,在程序中需要使用该常量时就可以直接引用标识符。nC语言中用宏定义命令对符号常量进行定义,其定义形式为:#define 标识符 常量n#defin
4、e PAI 3.1415926n常量并不占内存,在程序运行时直接调入寄存器中。n变量 n在程序运行过程中,其值可以改变的数据称为变量。n变量通过变量名标识,变量名和内存中的存储单元变量名和内存中的存储单元相对应相对应。编写程序时通过变量名来存、取存储单元。nC语言是一种强制定义型语言,变量必须先定义,后使用,定义时必须提供变量的名字和类型。n变量可以分为数值变量、字符变量和指针变量。其中数值变量包括整型变量和实型变量。变量变量memorya82562561212n变量名由字母 A、B、Z、a、b、z,数字 0、1、9 和下划线 _ 组成。n变量名的第一个字符必须是英文字母或下横线。n不能用系统
5、中的关键字作为变量名n变量名中的字母是区分大小写的。nsum、stu_name、_age、Lts_1_2、a2n32c、x.y、start+9、c2.0 nNAME name 表示两个不同的标识符。n养成良好的命名习惯变量名的规定变量必须先定义后使用变量必须先定义后使用如如:int:int a,b;a,b;a=10;b=a a=10;b=a*12;12;c=a+b;c=a+b;15 1000K变量的变量的3个属性:个属性:变量地址变量地址 变量内容变量内容 变量名变量名3.2.2 整型数据 n整型常量整型常量整型数据包括整型数据包括整型常量整型常量和和整型变量,整型变量,整型数据整型数据以二进
6、制补码形式存储以二进制补码形式存储 n数据在计算机内存中是以二进制数形式存放的。n实际上,在计算机当中数据是以补码的形式存储的。正数的补码是它本身,负数的补码是其绝对值取反加1。例如-10n原码 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0n绝对值 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0n 取反 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1n 加1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0-10共六种共六种基本整型基本整型短整型短整型长整型长整型无符号整型无符号整型无符号短整型无符号短整型无符号长整型无符号长整型
7、intintshort intshort int long intlong intunsigned intunsigned intunsigned short unsigned short unsigned longunsigned longl占存储空间占存储空间占内存字节数占内存字节数2 22 24 42 22 24 4整型变量 unsigned int x,y;变量有值吗?变量有值吗?整型变量的定义整型变量的分类 数据类型占用字节 二进制位取值范围int216-3276832767(-215215-1)short216-3276832767long432-21474836482147483
8、647signed216-3276832767signed short216-3276832767signed long432-21474836482147483647unsigned216065535unsigned short216065535unsigned long43204294967295(0232-1)最大的负数?最大的负数?-2 21515 的补码的补码最大的正数?最大的正数?3.2.3 实型数据 nC语言中实数和实型变量可分为三种类型:n单精度型(float,4字节)n双精度型(double型,8字节)n长双精度型(long double,16字节)。n单精度实型数据的有效数
9、字是7位,双精度实型数据的有效数字是16位,长双精度实型数据的有效数字是19位。名称 存储字节 表示范围 说明方法 有效位单精度(尾加F)4 -1038-1038 float a;7双精度(尾不加)8 -10308-10308 double a;16长双精度(尾加L)16-104932-104932 long double a;192.2.实型变量实型变量0 11111110 111111111111111111111111-2-23 127-1=1272127 1038与课本与课本46页对比!页对比!n数的范围n数的取值范围是指数的绝对值n有效位n数据在计算机中存储和输出时能够精确表示的数字
10、位数实型常量的表示方法 1.1.小数形式小数形式(至少有一个小数点和一个数字)(至少有一个小数点和一个数字)0.120.12,.12.12,12.012.0,12.12.2.2.指数形式指数形式(e e前有数字前有数字,e,e后有整数后有整数)1.3451.345 1010-2 -2 1.3451.345 e e-2-2 尾数尾数指数指数 1.2e3,12e-2,1.2e3,12e-2,e2 1.2e 3e1.2 e2 1.2e 3e1.2超出表示范围的数机器如何处理?main()main()float a,b;float a,b;a=0.123e40;a=0.123e40;b=0.123e-
11、40;b=0.123e-40;c=12345.6789;c=12345.6789;printf(a printf(a=%e,b=%en,a,b);=%e,b=%en,a,b);printf(%fn,1.234);printf(%fn,1.234);printf(%fn,c printf(%fn,c););printf(%fn,1111111111.2222222222fprintf(%fn,1111111111.2222222222f +1111111111.2222222222f);+1111111111.2222222222f);printf printf(%fn,1.123456789)
12、;(%fn,1.123456789);getch getch();();2020位位 上溢上溢 下溢为下溢为0 06位小数位小数16位有效数位有效数7位有效数位有效数6位小数位小数3.2.4 字符型数据 n将一个字符常量放到一个字符变量中,实际上并不是将该字符本身放到相应变量的内存单元中,而是将该字符的相应的将该字符的相应的ASCII码放码放到相应的存储单元中到相应的存储单元中。n字符型数据包括字符型常量和字符型变量字符型数据包括字符型常量和字符型变量。n字符型常量又被称为字符常数。C语言中字符型常量是用单引号括起来的一个字符,如a,A。由于C语言对字母的大小写是敏大小写是敏感的感的,因此a和
13、A是不同的字符型常量。字符型常量 n在此有两点需要注意:n字符型常量使用单引号作为标识。n字符型常量只能包含一个字符。a,A,1a,A,1abcabc、“a”a”l定义形式定义形式 charl占存储空间占存储空间 一个变量一个变量一个字符变量只一个字符变量只能包含一个字符能包含一个字符Main()Main()char c ;char c ;c=c;c=c;printfprintf(“%c”,c);(“%c”,c);运行结果:运行结果:c c题目中有几个题目中有几个c c,哪些是等价的?哪些是等价的?字符型变量aa的的ASCIIASCII值值为为9797 内存中存储形式内存中存储形式0 1 1
14、0 0 0 0 1a、A、1字符串常量字符串常量n n个字符组成的字符串常量个字符组成的字符串常量,在在内存中占空间为内存中占空间为 n+1 n+1 个字节个字节c ch hi in na a00字符串结束标记字符串结束标记“空空”字符字符“a”a”串串长长 1 1“This is C string”“This is C string”串长串长1616 “”“”(空格)空格)串长串长1 1 “”“”(不含空格)不含空格)串长串长0 0C C 中没有专用中没有专用的字符串变量的字符串变量n对于不可显示字符,C语言提供的另一种字符型常量是转义字符常量。转义字符常量是以“”开头的字符常量,它通知编译
15、器需要用特殊的方式处理“”后的字符,将“”后的字符转换成另外的意义。nn 换行 t 水平跳格nb 退格 r 回车nf 走纸换页 反斜杠n 单引号字符 ”双引号字符nddd ddd表示1到3位八进制数字nxhh hh表示1到2位十六进制数字n例:n60是十进制数48,代表ASCII码字符0n105是十进制数69,代表ASCII码字符En015是十进制数13,代表ASCII码字符回车nx1f是十进制数31,代表ASCII码字符nx61是十进制数97,代表ASCII码字符amain()char a,b,c;int d;a=5;b=60;c=A;d=1089;printf(a=%c b=%c c=%d
16、 d=%cn,a,b,c,d);printf(“a=%d b=%dn,a,b);getch();按整数输出按整数输出C C按字符输出按字符输出D D 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1d d65650 0 1 1 0 0 0 0b=60b=60在计算机中的存储在计算机中的存储按字符和按字符和整数输出整数输出a a*字符串字符串 “w11”w11”占几个字节占几个字节?转义字符转义字符字符串结束标记字符串结束标记 w 11 w 11 *字符串字符串 “w 110good”w 110good”占几个字节占几个字节?指针型数据及其表示 nC语言定义了一种新的数据类型指针类
17、型,它是一个变量在内存中所对应的存储单元的地址。用来存放指针的变量称为指针变量。n高级语言中的变量具有三个属性n变量名n变量的值n变量的地址访问内存的两种方式:访问内存的两种方式:n直接访问:按地址直接存取直接访问:按地址直接存取&a an间接访问:通过指针间接访问:通过指针p p间接存取间接存取100010061002102310a bc3.551000p对于对于intint a=10,c=5;a=10,c=5;float b=3.5;float b=3.5;内存分配内存分配a的地址的地址存储变量存储变量2字节字节a的内容的内容指针指针a的地址的地址a a是整型变量,存放内容是整型变量,存放
18、内容p p是指针变量,存放地址是指针变量,存放地址n*指针运算符n&取地址运算符。n例如:nint a;nint*p;n则&a为变量a的地址,*p为指针变量p所指向的存储单元所存储的内容。例:例:intint a=10,a=10,*p,x;p,x;float b=3.5,float b=3.5,*p1;p1;char c,char c,*p2=&cp2=&c;p=&a;p1=&b;p=&a;p1=&b;x=x=*p;p;*p=ap=a定义:定义:类型说明符类型说明符 *指针变量名指针变量名指针运算指针运算*p p*p p定义指针变量定义指针变量指针初始化指针初始化指针赋值指针赋值指针变量的定义
19、与赋值类型说明符用来指定该指针变量指向的变量的类型,而并非指针的类型。C语言允许指针指向任何类型的对象,包括别的指针。*-指针运算符指针运算符&-&-取地址运算符取地址运算符同级,右结合同级,右结合n指针变量的赋值指针变量的赋值intint a=3,a=3,*p,p,*p1,p1,*p2,p2,*p3,p4;p3,p4;p=&a;/p=&a;/*取取a a地址运算地址运算*/p1=p;/p1=p;/*直接赋值直接赋值*/p2=MULL;/p2=MULL;/*赋空值,不指向任何变量赋空值,不指向任何变量*/P3=0;P3=0;p4=0;p4=0;n指针变量的操作指针变量的操作 intint a=
20、3,a=3,*p,p,*p1,k;p1,k;p=&a;p=&a;/*a a地址地址P P*/k=k=*P;P;/*3 3k k*/*p=20;p=20;/*20 20a a*/*&a=30;&a=30;/*先取先取a a的地址,再按地址赋值的地址,再按地址赋值3030a a*/p1=&p1=&*p;p;/*因为因为&*p=&ap=&a,操作结果使操作结果使p1p1指向指向a a*/问题问题1:int*i;float*p1;指针变量指针变量i中只能中只能指向指向整型变量?整型变量?指针变量指针变量p1中只能中只能指向指向实型变量?实型变量?问题问题2 2:指针变量能指向常数吗?:指针变量能指向常
21、数吗?指针的应用在第十章介绍指针的应用在第十章介绍变量初始化 nC语言允许变量初始化具有两种形式:一一种是先声明后赋值,种是先声明后赋值,另一种是在定义变另一种是在定义变量的同时对该变量进行初始化量的同时对该变量进行初始化。nint a=3;nint a,b,c=5;n初始化不是在编译时进行初始化不是在编译时进行(外部变量和静外部变量和静态变量除外态变量除外),而是在程序运行时完成的。,而是在程序运行时完成的。3.3 算术运算和赋值运算 n运算符是用于描述对数据进行运算的特殊符号。nC语言的运算符按其在表达式中与运算对象的关系可以分为:n单目运算符n双目运算符n三目运算符。运算分量运算分量对数
22、据进行对数据进行运算的符号运算的符号被加工被加工的数据的数据表达式表达式运算符运算符 X=5 +b *cC语言中的运算符和表达式表达式的运算结果称为表达式的表达式的运算结果称为表达式的值值l学习运算符应掌握的要点学习运算符应掌握的要点l 运算符的种类与功能运算符的种类与功能l 运算符与运算分量的关系运算符与运算分量的关系个数个数类型类型A+B(ab)?a:b目目不同类型的变量不同类型的变量,所占存储所占存储空间、数的表示范围、有空间、数的表示范围、有效位和允许的操作不同效位和允许的操作不同单目运算单目运算双目运算双目运算三目运算三目运算n按照运算符在表达式中所起的作用,运算符可以分为:n1 算
23、术运算符n2 自增自减运算符n3 赋值运算符与复合赋值运算符n4 关系运算符n5 逻辑运算符n6 位运算符n7 条件运算符n8 逗号运算符 优先级与结合性nC语言中的运算符具有一般数学运算符的特性,即具有优先级和结合性:n优先级是指同一个表达式中不同优先级的运算符进行计算时的先后次序。n结合性是针对同一优先级的多个运算符而言的,它是指同一个表达式中相同优先级的多个运算符应遵循的运算顺序。l优先级优先级:运算符的执行顺序运算符的执行顺序 l结合性结合性:相同优先级的多个运算符的运算顺序相同优先级的多个运算符的运算顺序l运算结果的类型运算结果的类型X=5+8a100X=a+b*ca+b-c572a
展开阅读全文