欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第3章数据类型、运算符与表达式-ff.ppt

    • 资源ID:2254715       资源大小:1.70MB        全文页数:33页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章数据类型、运算符与表达式-ff.ppt

    重点: 理解常量变量含义 理解整型、实型、字符型数据的表示和存储 理解表达式的含义和组成方式,第三章 数据类型、运算符与表达式,3.1 C的数据类型,C的数据类型,数据类型,基本类型,构造类型,指针类型(),空类型(void),字符型(char),数值类型,枚举类型(enum),数组类型( ),结构体类型(struct),共用体类型(union),整型(short,int,long,unsigbed),实型,单精度型(float),双精度型(double),用户标识符,表示变量名、函数名、数组名、文件名和类型名的有效字符序列,C语言的标识符分三类:,3.2 常量与变量,一、标识符,保留关键字 均用小写字母表示,如: char int auto break 等。 保留关键字不能作用户标识符使用。,保留关键字,1,预定义标识符 供C的库函数名或预编译处理中的专用命名使用。 如:NULL=0等,预定义标识符,2,用户标识符 C程序中用户用于表示变量名,函数名,数组名,文件名,类型名的有效字符序列。,3,用户标识符的命名规则,用户标识符的命名规则 由英文字母 , 数字 , 下画线 组成 ,且必 须是由字母或下画线开头。 大 、小写英文字母的含义不同。 个数随机器系统不同而不同。一般取前 面 8 个字符( Turbo C 可取 32 个字符) 如: stud_name ,stud_number stud_nam, stud_num 应尽量 “ 简洁明了,见名知意 ” 。,符号常量举例,符号常量使用错例,二、常量和符号常量,3.2 常量与变量,2. 符号常量:习惯上用大写字母表示。,注意: 符号常量在其作用域内不能改变, 也不能再被赋值,1. 一般常量,重点,一般常量: 整型常量 : 1, 4, 3, 0 实型常量: 1.23 , 0.345 字符常量: a , d 字符串常量: “CHINA” “www.edu.cn”,符号常量使用错例 #define PRICE 30 main ( ) int num , total ; num = 10 ; total = num * PRICE ; printf ( “ total = %d ” , total ) ; PRICE = 40 ; /* 此句有误 */ total = num * PRICE ; printf ( “ total = %d ” , total ) ; ,例 3.1 输入半径,计算圆的周长和面积及圆球体积。 #define PI 3.14159 main( ) float radius; float circum, area, bulk ; printf(“Please input radius:n”); scanf(“%f”, ,三、 变量 在程序运行过程中其值可以被改变的量称为变量, 习惯上变量名用小写字母表示。 C 语言中,变量必须“ 先定义,后使用 ”。 定义格式: 存储类型 数据类型 变量名 如: auto int a; 或 int a; 定义作用: 保证变量的正确引用。 根据变量的数据类型而分配内存空间。 根据变量的类型确定变量参与的运算是否合法。,例题答案,变量存储示意,举例,3.2 常量与变量,重点,变量存储示意 如: int a = 3 ; 表示变量 a 为整型,为其分配两个字节的存储单元,并按整数方式存储数据。,变量定义举例 以下各标识符组中,合法的用户标识为: (1) A) Pad! B) getc C) void D) a* (2) A) bb B) CCp? C) hiy D) _isw (3) A)_0123 B)_del C) if D) keep%,例题答案 B (2) C , D (3) A , B,重点,二、 整型变量,2. 定义: 一般格式: 存储类型 数据类型 变量名,1. 分类 基本型 int 短整型 short int 或 short 长整型 long int 或 long,例如,说明,一、整型常量,整型常量 十进制整型常量。 如: 123 , 0 , 45 八进制整型常量,用 0 开头。 如:0121 十六进制整型常量,用0x 开头。 如:0x12 整型常量又可以表示成短整型常 量和长整型常量。 如: 123L 或 123l ; 345S 或 345s,一,说明 可以加修饰符: unsigned 或 signed 87ANSI C 中并没有 规定各类型数据的长度、精度和数值范围。各类数据所占内存字节数随系统不同而不同,一般以一个机器字存放一个 int 型数据。,整型变量定义 int x ; int a , b ; unsigned short c , d ; long max , min ;,举例,3.3 整型数据,3. 整数数据的存储方式 有关原码、反码、补码的规定: 原码:只将最高位作符号位,其余各位代表数 值本身的绝对值 ( 以二进制表示 ) 。,00000000,00001010,10 的原码:,10000000,00001010, 10 的原码:,3.3 整型数据,如: int a; a = 10;,反码:一个数如其值为正,则它的反码与原码相同; 反之则符号位为 1 ,其余各位是对原码取反。 如:, 10的补码 :,11111111,11110110,补码: 正数的原码、反码、补码相同。 负数的补码最高位为 1,其余各位为原码的 相应位取反,然后对整个数加 1 。,00000000,00001010,10 的原码,00000000,00001010,10 的反码,10000000,00001010, 10 的原码,11111111,11110101, 10 的反码,怎么办?,为什么?,32767+1=?,将一个负数的补码转换为十进制数: a : 先对其各位取反 b : 再将其转换成十进制数 c : 加上负号,再减 1 如:,00000000,00001001, 10的补码为:,11111111,11110110,9,加负号再减 1 得 10,32767+1=? main( ) int a, b ; a = 32767; b = a +1; printf(“%d”,b); 运行结果: -32768 Why?,why,理解运算结果 32767+1=-32768 ?,?,32767+1=? main( ) long a, b ; a = 32767; b = a +1; printf(“%ld”,b); 运行结果: 32768 OK!,!,以整数 13 为例: int 型 符号位 short 型 long 型 unsigned int 型 unsigned short 型 unsigned long 型,0 0000000,00001101,00001101,0 0000000,00000000,0 0000000,00001101,00000000,00001101,00000000,00001101,00000000,00001101,00000000,00000000,00000000, 对于有符号整型数据,其存储单元的最高位 代表符号位,( 0 为正 ;1 为负) 对于无符号型整型数据,存储单元的所有位均 用作存放数本身。,例 3.2 ( p43 ) main ( ) int a , b , c , d ; unsigned int u ; a = 12 ; b = 24 ; u = 10 ; c = a + u ; d = b + u ; printf(“a+u=%d,b+u=%dn”,c,d ); ,结果为: a+u=22, b+u = 14,4. 整型数据的溢出 int 型变量的最大允许值是 32767,超出则会溢出。 如: main ( ) int a , b ; a = 32767 ; b = a + 1 ; printf ( “ %d %d ” , a , b ) ; ,01111111,11111111,10000000,00000000,a,b,32767, 32768,结果为: 32767 , 32768,5. 整型常量的类型 整型常量其值: 在32768 32767范围内,则视为 int 型, 可赋值给 int 型 或 long 型变量,如超出上述 范围,在231( 231 1 ) , 则视为 long 型。 一个非负值的整常量,可以赋给 unsigned 型 变量,但应考虑数值范围。 如: 50000 unsigned int 变量。 70000 unsigned int 变量 ,则溢出。 unsigned int 的范围 : 0 65535 ( 0 216 1),4. 关于实型常量的说明,3. 实型数据的舍入误差 123456.789e5+20=?,舍入误差举例,2. 实型数据的存储方式,1. 实型变量分类,二 、实型变量 单精度型( float ) 双精度型( double ) 长双精度型( long double ) , 单精度提供 7 位,双精度提供1516位有效数字。,一 、实型常量,3.4 实型数据,实型常量 1. 十进制数形式: 数字 + 小数点 ( 必须有小数点 ) 如: 0.123 ; .123 ; 123.0 等。 2. 指数形式: 尾数+e或(E)+指数部分 如: 26.49e +12 26.49E+12 26.49E12 注: 字母 e 之前必须要有数字, 指数 必须为整数。 如: e3 ; 2.1e3.5 ; e3 等都不合法。,注意,实型数据存储方式 实型数据按浮点数形式存储,将一个实型数据分成小数部分和指数部分,分别存放。 用二进制数来存放小数部分,用 2 的幂次来表示指数部分。 如: 3.14159 32位中,一般用 24 位表示小数( 包括符号), 8位表示指数部分。,2,实型常量的说明 有些系统将其作为双精度来处理 (64位)。以保证精度,但降低了运算速度。 如:f = 2.4567 * 4523.65 取前 7 位赋给 f。可在数的后面加字母 f 或 F来使系统按单精度 (32位)来处理。 实型常量赋给一个 float 型或 double 型变 量时,应考虑有效位数会不同。,4,实型变量分类 单精度型( float ) 占 32 位 双精度型( double ), 占 64 位 长双精度型( long double ),占128 位 单精度实数提供 7 位有效数字,双精度 实数提供1516位有效数字,数值范围 随机器系统而异。 如: float x , y ; double m , n ;,1,舍入误差举例 存放实型数据的内存单元总是有限 的,提供的有效位数也有限。 main ( ) float a , b ; a =123456.789e5; b = a + 20 ; printf ( “%f, %f ”, a , b ) ; a,b均为 12345678848.000000,3,3.5 字符型数据 一 、字符常量 C 语言中,字符常量代表 ASCI I 码字符集里的一个字符,用单引号括起来的 一个字符来表示。 如: a , X 字符常量也可用一类特殊形式( 转义字符)表示,用反斜杠开头 ( ) , 代表特定的ASCII码字符。 如: n代表一个换行符。,转义字符:,例3.3 转义字符的使用 main( ) printf(“abctderftgn”); printf(“htibbjk ”); ,a,b,c,d,e,f,g,h,i,j,k,例 3.4 可向字符变量赋以整数。,源程序,三 、字符变量在内存中的存储形式及使用方法 char c1 , c2 ; c1 = a ; c2 = b ;,97,98,01100001,01100010,c1,c2,二 、字符变量,字符变量用关键字 char 来说明。 如: char c1 , c2 ; char min ; 一个字符变量只能存放一个字符,在内存中一般占一个字节,结论,结论 字符型数据与整型数据在一定范围内可以通用。 二者可以相互赋值,一个字符数据可以按字符形式输出也可以按整数形式输出。,重点,可向字符变量赋以整数 main ( ) int i ; char c ; i = a ; c = 97 ; printf(“%c,%dn ”, c, c ) ; printf(“%c,%dn”, i, i ) ; 输出: a,97 a,97,实例,有些系统 (如 Turbo C )将允许使用有符号字符型变量,把字符处理成带符号的整数,字符型变量的取值范围为( 128 127 )。 main ( ) signed char c = 376 ; printf ( “ %d ” , c) ; ,1 1111110,0 0000001,3位 8 进制数表示的字符。,可去掉,按位取反,加负号,再减 1, 2,输出为: 2,C 语言对字符串常量的长度不加限制,C 编译系统总是自动在字符串结尾加一个转义字符0, 作为字符串常量的结束标志。 如: “ Hellow ” 在内存中占 7 个字节。,注意:字符常量与字符串常量的区别。如:a和“a” 在C语言中是两种完全不同类型的数据。,四 、字符串常量 如: “CHINA” ; “ How do you do ? ”,3.6 变量赋初值 C 语言中规定变量应先定义后使用。 允许在定义变量时对变量进行初始化 。 int a = 3 ; /* 指定a为整型变量,初值为3 * / float f = 3.56 ; char c = a ; int a , b , c = 4 ; 多个同类型的变量定义时赋相同的初 值,方式为: int a = 3 , b = 3 , c = 3 ; 而 int a = b = c = 3 ; ( 错误的 ) C语言中变量的初始化不是在编译时完成的( 除静态 存储型变量和外部变量),是在程序运行时完成的。,正例,错例,变量初始化错误形式 main ( ) int a = b = c = 3 ; /* 上句有误 */ printf(“%d%d%d”, a, b, c ); ,注意,多个变量正确的初始化 main ( ) int a=3, b=3, c=3; printf(“%d%d%d”, a, b, c); a = b = c = 8 ; printf(“%d%d%d”, a, b, c); ,重点,例如,3.7 各类数值型数据间的混合运算 C 语言中各类型数据间可以进行混合运算,但不同类型的数据应先转换成同一类型,然后进行运算。 规则如下:,10 + a + i * f d / e,10 + a + i * f d / e运算 结果类型=? 已知:int i; float f; double d; long e; (1) a 97 (10+97) (2) i , f double型 i*f (3) 107 double型再加 (4) e double d/e 将10+a+i*f 的结果与d/e的 商相减结果为double型。,实例,举例,注意,例如,优先级和结合性,3.8 算术运算符和算术表达式 一 、C 运算符简介 共有13类,除了控制语句和输入输出外,几乎所有的基本操作都可以用运算符来处理。 掌握运算符的关键在于“优先级和结合性 ” 。 二 、算术运算符和算术表达式,2. 算术表达式: a b /c 1.5 + a,4. 强制类型转换: 格式: ( 类型名 ) ( 表达式 ),3. 算术运算符和算术表达式的,1. 基本算术运算符: , , , / , %,优先级和结合性 C语言中不同的运算符有不 同的优先级,按先高后低的原则进行。对同优先级的运算符采用结合性原则。 结合性: “从左至右” “从右至左” 算术运算符结合性:“从左至右 ”。 例如: abc a(b c) ab+c (ab)+c,重点,说明,基本算术运算符 % 为求余运算(模运算),操 作量均为整型数据 例如: 5%3值为2, -5%-3值为-2。 两整数相除其结果为整数, 一般采用“向零取整”。 例如: 5/3值为1,5/3值可能是 1 或2 ,“向零取整”则为-1。,说明,强制类型转换 例如: (double ) a 将 a 转换成 double 类型 (int) (x + y) 将 x + y 的值转换成整型,例如,注意 在强制类型转换时,得到的是一个所需类型的中间变量, 原来的变量的类型并未发生变化。,注意,强制类型转换 举例 main ( ) float x ; int i ; x = 3.6 ; i = ( int ) x ; printf(“x=%f,i=%d”, x, i); 结果: x = 3.600000 ,i = 3 即 x 的类型仍为float 型。,重点,C 语言中数据类型的转换有两种: 1系统自动进行, 2强制类型转换。 如: float x;则x%3 不合法,但可以用:( int ) x % 3,x+a%3*(int)(x+y)%2/4 (设x=2.5,a=7,y=4.7),解:x+a%3*(int)(x+y)%2/4 x+a%3*(int)(7.2)%2/4,x+a%3*7%2/4,x+7%3*7%2/4,x+1*7%2/4,x+1/4,2.5+0 2.5,“( )”运算符优先级最高。,%,*,/运算符优先级相同,遵循从左至右的结合顺序。,5. 自增、自减运算符 作用: 使变量的值增 1(或)减 1,用 + 或 表示。 +i, i (前置运算 ) 先增(减) i 的值,再引用i 值。 i+, i (后置运算 ) 先引用i 值,再增(减) i 的值。,说明: 自增、自减运算只能用于变量,不能用于常量 或表达式。 具有双重性,构成的表达式有一个运算值, 并使操作数变量增 1 或减 1 。 + 和 运算符的优先级高于算术运算符, 结合性按 “从右至左” 自增、自减运算主要用与循环语句和指针变量。,例如,典 型 问 题,1. 错误形式: 5+ (a+b) + + (i)+ 2. 结合性 i+ (i+) 不等价于 (i)+,重点,自增、自减运算符 main( ) int i, j ; i = 3; j = +i ; /* i=i+1, j=i */ printf(“%d,%d”,i, j); i = 3; j = i+; /* j=i, i=i+1 */ printf(“%d,%d”,i, j); i = 3, j = 3; printf(“%d”, i+); printf(“%d”, +j); 运行结果:?,重点,6. 关于表达式中使用自增、自减运算符的问题 ANSI C 中并未规定表达式中各子表达式的求解顺序,由编译系统自行安排。如:a = f1( ) + f2( ) 表达式中包含有 “ + ”和 “ ”运算, 如: int i = 3 , x ; x = ( i+ ) + ( i+ ) + ( i+ ) ; 系统按自左向右求解括弧内的运算,3+4+5 即x=12,但是:有些系统如 ( Turbo C , MS C ) 则是把3作为表达式中所有 i 的值,即3+3+3,x = 9 而 i =6 。 又如: x = ( +i ) + ( +i ) + ( +i ) 结果: x=18 , i=6 x = ( +i ) + ( i+ ) + ( +i ) 结果: x=15, i=6, 表达式中有多个运算符时 如: i + +j ( i+ ) + j 因为编译时按从左 至右原则尽可能多地将若干个字符组成一个运算符。 函数调用时,函数实参中有 + 或 运算符。 如: int i = 3 ; printf ( “ %d , %d n ” , i , i+ ) ; 结果:3 , 3 或是 4 , 3 。 又如:int i = 3 ; printf ( “ %d n ” , ( i+ ) + ( i+ ) + ( i+ ) ) ;,则: 5 + 4 + 3 = 12 i 的值为 6,而 printf ( “ %dn ”, ( +i ) + ( +i ) + ( +i ) ) ; 则: 6 + 5 + 4 = 15 i 的值为 6 多数按 从右至左 , 如 Turbo C 。,6. unsigned intint 或 unsigned longlong, 则连同原有的符号位也作为数值位一起赋值。,3. int char:将字符型数据放入整型变量低 8 位,根据字符量符号扩展高8位补0或1。,4. long int signed int:高16位补符号位。,5. int, long int unsignde int :高位补 0。,2. float,doubleint:值不变,按浮点数存储。,二、进行类型转换 1. int 变量float , double型:舍去小数部分。,3.9 赋值运算符和赋值表达式,一、赋值符号 “ = ”,赋值运算符 将一个数据或一个表达式的值赋给一个变量。 如: int x , y = 2 ; x = y ; x = y + 2 ; 赋值表达式的值:即为左侧变量的值。 典型错误:a+b=2; X 为什么 ?,例1,float , double 型 赋给 int 型 舍去实数小数部分。 如: int i ; i = 3.56; 则: i 的值是 3。 main( ) int a, b=12.5; a = b + 2.5; printf(“%d,%d”, a, b); 输出结果:14,12 Why?,1,例2,int 型赋给 float, double型 数值不变但按浮点形式存储到变量中 如: float f ; f = 23 ; 将 23 转换成 23.00000再存入变量 f 中。 main( ) float f1, f2 = 12; f1 = f2 / 5; printf(“%f ”, f1); 输出结果:2.400000,2,例3,char 型赋给 int 型 将字符型数据(8位)放入整型变量的低 8 位,而高 8 位分两种情况: 作无符号量处理时: 高8位补零。 作带符号量处理时: 若字符量的最高位为“0”, 则 int 型变量的高8位全补“0”。 若字符量的最高位为“1”, 则 int 型变量的高8位全补“1”。 例如: int i = 376 ;,3,例4,带符号的int 型赋给 long int 型 int 型数据为正,则long int 型变 量的高16位全补 0,反之全补1。 将long int 型赋给int 型: 将long int 型数据的低16位原样送入int 型变量。 如: int a ; long int b = 65536 ; a = b ; 则 a 为 0,4,例5,unsignde int型 赋给 int 和 long int 只须将高位补 “0” 。但 应注意数值范围。 例如: unsigned int a=65535; int b ; b = a ; 则 b 为 1,5,例6,将非unsigned 型数据赋给长度相同的 unsigned 型变量则连同原有的符号位也作为数值位一起赋值。 main ( ) unsigned a ; int b = 1; a = b ; printf ( “ % u ”, a ) ; 结果为: 65535 Why? 注意:若b为正值,且在 0 32767 之间,赋值后不变。,6,6. unsigned intint 或 unsigned longlong, 则连同原有的符号位也作为数值位一起赋值。,3. int char:将字符型数据放入整型变量低 8 位,根据字符量符号扩展高8位补0或1。,4. long int signed int:高16位补符号位。,5. int, long int unsignde int :高位补 0。,2. float,doubleint:值不变,按浮点数存储。,二、进行类型转换 1. int 变量float , double型:舍去小数部分。,2.9 赋值运算符和赋值表达式,一、赋值符号 “ = ”,赋值运算符 将一个数据或一个表达式的值赋给一个变量。 如: int x , y = 2 ; x = y ; x = y + 2 ; 赋值表达式的值:即为左侧变量的值。 典型错误:a+b=2; X 为什么 ?,例1,float , double 型 赋给 int 型 舍去实数小数部分。 如: int i ; i = 3.56; 则: i 的值是 3。 main( ) int a, b=12.5; a = b + 2.5; printf(“%d,%d”, a, b); 输出结果:14,12 Why?,1,例2,int 型赋给 float, double型 数值不变但按浮点形式存储到变量中 如: float f ; f = 23 ; 将 23 转换成 23.00000再存入变量 f 中。 main( ) float f1, f2 = 12; f1 = f2 / 5; printf(“%f ”, f1); 输出结果:2.400000,2,例3,char 型赋给 int 型 将字符型数据(8位)放入整型变量的低 8 位,而高 8 位分两种情况: 作无符号量处理时: 高8位补零。 作带符号量处理时: 若字符量的最高位为“0”, 则 int 型变量的高8位全补“0”。 若字符量的最高位为“1”, 则 int 型变量的高8位全补“1”。 例如: int i = 376 ;,3,例4,带符号的int 型赋给 long int 型 int 型数据为正,则long int 型变量的高16位全补 0,反之全补1。 将long int 型赋给int 型: 将long int 型数据的低16位原样送入int 型变量。 如: int a ; long int b = 65536 ; a = b ; 则 a 为 0,4,例5,unsignde int型 赋给 int 和 long int 只须将高位补 “0” 。但应注意数值范围。 例如: unsigned int a=65535; int b ; b = a ; 则 b 为 1,5,例6,将signed 型数据赋给长度相同的 unsigned 型变量则连同原有的符号位也作为数值位一起赋值。 main ( ) unsigned int a ; int b = 1; a = b ; printf(“%u”, a ) ; 结果为: 65535 Why? 注意:若b为正值,且在 0 32767 之间,赋值后不变。,6,3.9 赋值运算符和赋值表达式,3.9 赋值运算符和赋值表达式,四、 赋值表达式 用赋值运算符将一个变量和一个表达式连接起来的式子。 格式: 注意: 赋值运算符的结合性为 “ 从右至左 ” 如: a = ( b = 5) a = b = 5 c = (a = 20) /( b = 3) 例: int a = 12 ; a + = a = a a ; (1) a = a a a = a a a 132 (2) a + = 132 a = a + ( 132 ) 264,3.10 逗号运算符和逗号表达式 一般形式: 表达式 1 , 表达式 2 扩展形式: 表达式 1, 表达式 2 , , 表达式 n 逗号表达式的值:与表达式 n 的值相同。 注意: 1. 正确区分各表达式 2. 并非所有逗号都是逗号运算符,例如,逗号表达式的值 1: a=35, a4 2: a=35, a4,a+5 3: (a=35, a4),a+5,示例,例如,正确区分各表达式 1: x = (a=3, 63) x的值为18 2: x = a = 3, 6 3 x的值为3 表达式的值为18,示例,运算符或是分隔符? main( ) int a , b , c ; a = 3 ; b = 4 ; c = 5 ; printf(“%d,%d,%d”, a, b, c); printf(“%d,%d,%d”,(a, b, c),b , c ); ,例如,示例,作业: p66 3.6 , 3.9 , 3.10 , 3.12,

    注意事项

    本文(第3章数据类型、运算符与表达式-ff.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开