数据结构:数组 (Array).ppt
《数据结构:数组 (Array).ppt》由会员分享,可在线阅读,更多相关《数据结构:数组 (Array).ppt(134页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、程序设计-2018秋,1,课程网站http:/ Wirth(Is Nih-klaus Virt, not Nickles Worth),2019/10/23,程序设计-2018秋,4,Niklaus Wirth,1959年获ETH学士学位;1963年获UC Berkely博士学位1963 1967在Stanford任教,后短期在 University of Zurich任教。 1968年成为 ETH教授主要贡献程序设计语言:Euler, Algol-W, Pascal, Modula等结构化程序设计1984年图灵奖获得者/1988年IEEE先驱奖获得者1994年当选美国工程院外籍院士,2019
2、/10/23,程序设计-2018秋,5,姚期智(Andrew Chi Chih Yao),2019/10/23,程序设计-2018秋,6,姚期智(Andrew C. Yao),1967年获得台湾大学物理学士学位1972年获得美国哈佛大学物理博士学位1975年获得美国伊利诺依大学(UIUC)计算机科学博士学位1975年至1986年曾先后在美国麻省理工学院数学系、斯坦福大学计算机系、加利福尼亚大学伯克利分校计算机系任助教授、教授1986年至2004年在普林斯顿大学计算机科学系担任Wiliam and Edna Macaleer工程与应用科学教授;2004起在清华大学任教;2009年提出“中国计算科
3、学2020计划”1998年当选为美国科学院院士;2000年当选为美国科学与艺术学院院士,获图灵奖;2004年当选为中国科学院外籍院士2017年加入中国籍,成为中国科学院院士,2019/10/23,程序设计-2018秋,7,提要,C语言中的数据类型常量与变量整型数据字符型数据实型数据基本数据类型混合运算和类型转换数据运算表达式和表达式语句,2019/10/23,程序设计-2018秋,8,提要,C语言中的数据类型常量与变量(Constant & Variable)整型数据(Integer)字符型数据(Character or Char)实型数据(Real)基本数据类型混合运算和类型转换数据运算(O
4、peration)表达式(Expression)和表达式语句,2019/10/23,程序设计-2018秋,9,C语言中的数据类型,基本类型整型字符型实型(浮点型):单精度型、双精度型指针类型复合类型数组类型结构类型联合类型: union枚举类型: enum自定义类型,2019/10/23,程序设计-2018秋,10,提要,C语言中的数据类型常量与变量整型数据字符型数据实型数据基本数据类型混合运算和类型转换数据运算表达式和表达式语句,2019/10/23,程序设计-2018秋,11,常量与变量,常量(constant):在程序运行过程中,其值不能被改变的量变量:在程序运行过程中,其值可以改变的量
5、构成:变量类型、变量名、变量值,2019/10/23,程序设计-2018秋,12,变量(Variable),C规定在程序中所有用到的变量都必须在程序中定义C中变量对大小写敏感变量的定义一般是在一个函数开头的声明部分也可放在函数中某一段程序内,但其作用域只限于其所在的程序段,2019/10/23,程序设计-2018秋,13,提要,C语言中的数据类型常量与变量整型数据字符型数据实型数据基本数据类型混合运算和类型转换数据运算表达式和表达式语句,2019/10/23,程序设计-2018秋,14,整型数据,整型数据按其数值范围划分成三种基本型、短整型、长整型按其内部表示的最高位的不同理解,可分为两类带符
6、号整型(最高位为符号位)、不带符号整型带符号整型的标记方法基本型:用 int 标记短整型:用 short int 标记,简写为 short长整型:用 long int 标记,简写为 long,2019/10/23,程序设计-2018秋,15,整型数据(续),不带符号整型指存储一个整数的存储单元中的全部二进位都用作存放数据本身,而不存储符号位不带符号整型的标记方法不带符号的基本型:unsigned int不带符号短整型:unsigned short不带符号长整型:unsigned long,2019/10/23,程序设计-2018秋,16,整型数据(续),一般一个机器字(word)存放一个int
7、型整数;long型整数的字节数不小于int型整数的字节数;short型整数的字节数不多于int型整数的字节数如TURBO C,短整型整数和基本型整数是2个字节,16个二进位;长整型整数为4个字节,32个二进位。在VC中,基本型整数和长整型整数都为4个字节,2019/10/23,程序设计-2018秋,17,整型数据(续),在机器内部,负整数是以补码(complement) 表示的采用补码,是为了简化计算负数的补码计算将该数的绝对值的二进制形式,1)按位取反;2)加1,2019/10/23,程序设计-2018秋,18,整型数据(续),整数表示的数值范围用16个二进位(2 bytes)存储一个整数带
8、符号整数的数值范围是:-32768 32767不带符号整数的数值范围是:0 65535若用32个二进位存储一个整数带符号整数的数值范围是2147483648 2147483647不带符号整数的数值范围是0 4294967295,2019/10/23,程序设计-2018秋,19,整型数据(续),signed vs. unsigned,2019/10/23,程序设计-2018秋,20,整型数据(续),=-1,=-32768,2019/10/23,带符号的整数(2 bytes),程序设计-2018秋,21,整型数据(续),不同类型的13,2019/10/23,程序设计-2018秋,22,整型数据(续
9、),整型常量的书写形式有三种十进制整数:如 0,123,-45八进制整数:以数字符0开头,并由数字符07组成的数字符序列。如0123表示八进制整数,其值等于十进制整数:1*82 + 2*81+ 3 = 83十六进制整数 表示十六进制数的数字符有 16 个,它们分别是 09 和 A、B、C、D、E、F,其中六个字母也可以小写。以0x(或0X)开头,并由十六进制数的数字符组成的数字符序列如0x123表示十六进制整数,其值等于十进制整数: 1*162 + 2*161 + 3 = 2910xabc,其值等于10*162 + 11*161 + 12 = 2748,2019/10/23,程序设计-2018
10、秋,23,将任意进制数转换为10进制数,N 代表一个10进制的正整数r 是这个数制的基(Radix)10进制,r=108进制,r=8i 表示这些符号排列的位号Di 是位号为i的位上的一个符号ri 是位号为i的位上的 1 代表的值Di*ri 是第i位的所代表的实际值 表示m+k+1位的值求累加和例如:0x123= 1*162 + 2*161 + 3 = 291,2019/10/23,程序设计-2018秋,24,整型数据(续),十进制与其它进制正整数的转换w进制数据到十进制数据的转换w进制的数据a1a2an转换为十进制数:a1wn-1+ a2wn-2 +an-1w+an十进制数据到w进制数据的转换
11、十进制的数据a1a2am=b1wn-1+ b2wn-2 +bn-1w+bn如何求bi(i=1 n)?,2019/10/23,程序设计-2018秋,25,整型数据(续),二进制数据向八进制、16进制数据转换16进制数据向八进制、二进制数据转换,2019/10/23,程序设计-2018秋,26,二到八或十六进制转换,二进制转到八进制 从小数点向左右三位一分组 (10 011 100 . 01)2 = ( 234 . 2 )8 二进制转十六进制 从小数点向左右四位一分组 (1001 1100 . 01)2 = ( 9C . 4 )16 0100,2019/10/23,程序设计-2018秋,27,十进
12、制转二进制,整数部分除2取余 小数部分乘2取整,5,2,1,0,0.625 * 2,1,0.25 * 2,0,0.5 * 2,1,0.0,除尽为止 1011,低,高,求得位数满足要求为止,2019/10/23,程序设计-2018秋,28,整型数据(续),长整型常数和无符号整型常数表示Long型常数:在整型常数之后接上字母 L(或l),即为long型常数例如:0L、132L等不带符号的整型常数:在整型常数后面接上字母 U(或u),则指明该整数常数是 unsigned 型的。例如1U、122U等为指明不带符号的long型常数,则需在整型常数之后同时加上字母U和L,表明该整型常数是 unsigned
13、 long 型的例如:22UL、35LU 等,2019/10/23,程序设计-2018秋,29,整数的溢出,#include main() int a=32767,b; b=a+1; printf(%d,%d,a,b);运行结果为:32767,-32768,+,-,2019/10/23,前提是:int用2 bytes表示,程序设计-2018秋,30,提要,C语言中的数据类型常量与变量整型数据字符型数据实型数据基本数据类型混合运算和类型转换数据运算表达式和表达式语句,2019/10/23,程序设计-2018秋,31,字符型数据,字符型数据用于表示字符及其代表的值字符型数据的内部表示是字符的 AS
14、CII 代码(二进制形式)字符型数据的类型符用 char 来标记char c1, c2; /* 定义两个字符变量 */字符型数据占一个字节(8位二进位)表示,也可当作一个8位的整型数据,2019/10/23,程序设计-2018秋,32,字符型数据(续),字符a、b的存储,字符输出,2019/10/23,程序设计-2018秋,33,字符型数据(续),字符型常量是单个字符,它的书写方法:普通字符:用单引号括起一个字符,如 a特殊字符:用字符或字符列来标记,如 r 、 n 、t 。这种方法就能表示特殊字符,见后表回车符 r :表示对当前行作重叠输出换行符 n :使以后的输出从下一行首开始制表符 t
15、:使输出位置横向跳至下一个输出区开始列,2019/10/23,程序设计-2018秋,34,特殊字符表标记形式 功 能n 换行符(打印位置移到下一行首)t 制表符,横向跳格到下一个输出区首v 竖向跳格符b 退格r 回车(打印位置移到当前行的首)f 走纸换页 a 产生响铃声 反斜杠字符 单引号符 ” 双引号符 ”ddd ddd为1至3个8进制数字,以该值为ASCII码的字符xhh hh为1至2个16进制数字,以该值为ASCII码的字符,2019/10/23,程序设计-2018秋,35,字符型数据(续),打印机与显示屏输出的组织方法稍有不同打印机:仅当一行字符填满或遇换行符时才输出,即整行一次性输出
16、。当输出空格符或制表符时,作跳格处理,不用空格符填充显示器:逐个字符输出,空格符及制表符经过位置都用空格符输出,2019/10/23,程序设计-2018秋,36,实例,void main() printf( ab ct derftgn); printf(htibbj k);,打印结果:|f|a|b| |c| | | |g|d|e|h| | | | | | |j|i|k|,屏幕输出:|f| | | | | | | |g|d|e|h| | | | | | |j| |k|,注:每个表单元8个字符宽。,2019/10/23,程序设计-2018秋,37,字符型数据(续),字符型常量与字符串常量书写形式的
17、区别字符串常量是一对双引号括起来的字符序列I am a student.“China, a, $1234.00字符型常量a 与字符串常量”a”不同,不允许将字符串常量赋给字符变量字符型数据可与整型数据混合运算由于字符型数据以ASCII代码的二进制形式存储,它与整数的存储形式相类似。因此,在C程序中,字符型数据和整型数据之间可以通用,字符型数据与整型数据可混合运算。一个字符型数据可以用字符格式(%c)输出,显示字符本身;也可以用整数形式输出,显示字符的 ASCII 码值,2019/10/23,程序设计-2018秋,38,字符型数据(续),有些系统(如Turbo c)将字符变量中的最高位作为符号位
18、,也就是将字符处理成带符号的整数,即signed char型。它的取值范围是-128-127如果不想按有符号处理,可以将字符变量定义为unsigned char类型, 这时其取值范围是0-255。signed char 和unsigned char的含义及用法与signed int和unsigned int相仿, 但它只有一个字节,2019/10/23,程序设计-2018秋,39,字符串常量,C规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束C规定以字符0作为字符串结束标志。0是一个ASCII码为0的字符,这是 “空操作字符”,不引起任何控制动作,也不是一个可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数组 array
限制150内