C语言程序设计第4章.ppt

上传人:max****ui 文档编号:6333851 上传时间:2020-02-23 格式:PPT 页数:79 大小:846.31KB
返回 下载 相关 举报
C语言程序设计第4章.ppt_第1页
第1页 / 共79页
C语言程序设计第4章.ppt_第2页
第2页 / 共79页
C语言程序设计第4章.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
第四章控制结构 2 本章要点 关系运算符和逻辑运算符if语句和switch语句while语句 dowhile语句和for语句break语句和continue语句 3 本章学习目标 了解结构化程序设计的基本思想掌握C语言的基本控制结构和基本控制语句的使用方法熟练掌握使用基本控制语句进行结构化程序设计的方法掌握break语句和continue语句的使用方法掌握一些常用的算法 4 4 1关系运算符和关系表达式 4 1 1关系运算符用于判断两个数据之间的某个关系是否成立 C语言提供了六种关系运算符 大于 大于等于 等于 不等于关系运算的结果是逻辑值 成立 真 或不成立 假 5 3运算结果为真 3 5运算结果为假 5 使用关系运算符需要注意 1 注意书写格式 判断两个数据是否相等 一定要和赋值运算符 区分开 2 关系运算符均是二元运算符 一个关系运算符的两个操作数类型要相同 如果类型不一致 系统将自动进行类型转换 A 65运算结果为真 0 0运算结果为假 6 3 注意运算符优先级和结合性 的优先级相同 6级 和 的优先级相同 7级 关系运算符的结合方向均为自左向右结合 7 4 1 2关系表达式 利用关系运算符将表达式连接起来的式子 关系运算的结果为逻辑值 由于C语言中没有逻辑类型 因此当运算结果为真时 用整数1表示 当运算结果为假时 用整数0表示 关系表达式的值也是一个逻辑值 即1或0 8 假设变量已如下定义 inta 3 b 2 c 1 d 5 f a b表达式值为1a b c等价于 a b c 表达式的值为1b cb等价于d a b d的值为1f a b c d等价于f a b c d f的值为0注意 这里任意改变a b c的值 会影响整个表达式的值吗 为什么 4 1 2关系表达式 9 4 2逻辑运算符和逻辑表达式 4 2 1逻辑运算符逻辑与运算 并且 用于表达两个条件必须同时满足的语义 语法格式为 表达式1 表达式2只有表达式1和表达式2都为真 结果才为真 否则 结果为假 10 4 2 1逻辑运算符 逻辑或运算 或者 用于表达两个条件只要有一个满足即可的语义 语法格式为 表达式1 表达式2只有表达式1和表达式2都为假 结果才为假 否则 结果为真 11 4 2 1逻辑运算符 逻辑非运算 否定 用于表达条件不满足的语义 语法格式为 表达式1如果表达式1为真 结果为假 如果表达式1为假 结果为真 12 4 2 1逻辑运算符 优先级与结合性优先级 是右结合 与运算和或运算是左结合 13 4 2 2逻辑表达式 用逻辑运算符将逻辑量或关系表达式连接起来的式子 逻辑表达式的值是逻辑值 即 真 或 假 分别用整数1或0表示 任何表达式 包括变量 常量以及由运算符连接的表达式 都可以参与逻辑运算 即任何一个表达式都可以作为一个逻辑值来使用 规则是 如果该表达式的值为0 则作为逻辑假参与逻辑运算 如果该表达式的值为非0 则作为逻辑真参与逻辑运算 14 inta 4 b 5 a表达式值为0a b表达式值为1a b表达式值为1 a b表达式值为14 0 2等价于 4 0 2 表达式值为1 c d 表达式值为1 x等价于x 0 当x值为0时 表达式 x值为1 表达式x 0值也为1 当x值不为0时 表达式 x和表达式x 0的值均为0 4 2 2逻辑表达式 假设变量已如下定义 15 4 2 2逻辑表达式 短路特性运算符 和 有一个很重要的短路特性 即这两个运算符首先计算左操作数的值 然后才计算右操作数的值 如果表达式的值可以通过左操作数的值直接得到 则不再计算右操作数的值 16 a b首先计算a的值 如果a为假 则可以直接得出表达式的值为0 不再计算b的值 如果a为真 则必须计算b的值 才能得到表达式的值 a b首先计算a的值 如果a为真 则可以直接得出表达式的值为1 不再计算b的值 如果a为假 则必须计算b的值 才能得到表达式的值 4 2 2逻辑表达式 17 4 2 2逻辑表达式 例 设n1 n2 n3 n4 x y的值分别为1 2 3 4 1 1 则求解表达式 x n1 n2 y n3 n4 后 x和y的值是 例 设a 3 b 4 x 0 y 0 求值 1 ay2 a b x y3 a a b4 ak m a b n c d k为0 m为0 n为2 结果 0 结果 1 结果 0 结果 0 x的值变为0 而y的值不变 仍等于1 18 4 3 1if语句语法格式 if 表达式 语句表达式可以是关系表达式 逻辑表达式 算术表达式 常量等任意形式的表达式 只要表达式的值不为零 即作为逻辑真处理 执行过程 4 3选择结构 19 4 3 1if语句 程序4 1 includevoidmain intx y printf Pleaseinputthevalueofx scanf d 20 4 3 1if语句 注意 小括号后面是单独一条语句 而不是多条语句 如果当表达式为真时 需要执行多条语句应该使用复合语句 复合语句的格式为 若干条语句 如 i sum i 其中的每条语句均以分号结束 而复合语句本身没有分号 21 4 3 2else子句 if 表达式 语句1else语句2如果括号内的表达式为真 则执行括号后面的语句1 如果表达式值为假 则执行else后面的语句2 语句1和语句2只能有一个被执行 22 4 3 2else子句 例4 2 输入两个整数 将较大者输出 程序4 2 includevoidmain inta b max printf Pleaseinputthedataaandb scanf d d 23 4 3 3if语句嵌套 如果需要根据多个不同的条件 分别去执行不同操作 就要用嵌套的if语句来实现 在if语句内部和else子句内部可以包含任何类型的语句 通过在if语句和else子句内部嵌套其它if语句可以形成if语句的嵌套 24 两级if语句嵌套的一般格式 执行过程如果表达式1成立 并且表达式2成立 则执行语句1 然后执行语句5 如果表达式1成立 并且表达式2不成立 则执行语句2 然后执行语句5 如果表达式1不成立 并且表达式3成立 则执行语句3 然后执行语句5 如果表达式1不成立 并且表达式3不成立 则执行语句4 然后执行语句5 if 表达式1 if 表达式2 语句1 else语句2 elseif 表达式3 语句3 else语句4 语句5 25 4 3 3if语句嵌套 例4 3 编写程序 要求从键盘输入一个字符 判断其类型 将字符分为四种类型 小写字母 大写字母 数字或者其他字符 程序4 3 includevoidmain charch printf Pleaseinputaletter scanf c 26 4 3 3if语句嵌套 例4 4 从键盘输入一个小于10000的整数 判断其是几位数 程序4 4 includevoidmain intnum gw sw bw qw printf Pleaseinputanumber scanf d 27 在程序4 3和程序4 4中 我们都是在else子句内部嵌套if语句 这种嵌套形式通常称为级联式if语句 许多程序员在书写级联式if语句时 通常不采用缩进的格式 例如程序4 4可以修改为下面的程序 程序4 5 includevoidmain intnum gw sw bw qw printf Pleaseinputanumber scanf d 28 4 3 4使用if语句应注意的问题 1 在 表达式 后面或else关键字后面加分号通常会导致出现语义错误 单独使用一个分号表示一个空语句 voidmain intx x 1 if x 1 这里多加了个分号 printf x等于1 n elseprintf x不等于1 n 当尝试对该程序进行编译时 C语言编译器会报告 illegalelsewithoutmatchingif 的语法错误 29 4 3 4使用if语句应注意的问题 voidmain intx x 1 if x 1 printf x等于1 n else 这里多加了个分号 printf x不等于1 n 该程序运行后的输出结果为 x等于1x不等于1 不是我们所期望得到的输出结果 30 4 3 4使用if语句应注意的问题 2 如果if语句内部或else子句内部需要放置多条语句 必须将这多条语句构成一个复合语句 这样才能符合if语句的语法格式 例4 5 输入三个整数 将其降序排序后输出 程序4 6 includevoidmain inta b c t printf inputthedata scanf d d d 31 4 3 4使用if语句应注意的问题 3 在嵌套的if语句中 确保else子句和对应的if语句正确匹配非常关键 else子句不能单独使用 每个else子句必须属于前面出现的某个if语句 考虑下面的程序片段 if a b if b c printf a b c elseprintf a b 上面的else子句应该属于哪一个if语句呢 32 4 3 4使用if语句应注意的问题 匹配原则从最内层开始 else子句总是和离它最近的 还未和其它else匹配的if语句进行匹配 因此在上述程序片段中 else子句实际上是和第二个if语句匹配的 写成下面的形式可以更直观的表达出它们的匹配关系 if a b if b c printf a b c elseprintf a b 33 4 3 4使用if语句应注意的问题 根据上述规则 上面的程序片段便出现了严重的逻辑矛盾 从语义上分析 希望else子句和第一个if语句匹配 为了实现这一点 可以用一对大括号将第二个if语句括起来 if a b if b c printf a b c elseprintf a b 避免if与else配对错位的最佳办法是加大括号 同时 为了便于阅读 使用适当的缩进 只有大括号能保证if和else不错位配对 缩进仅便于阅读 34 4 3 5条件运算符和条件表达式 根据条件在两个备选值中选择一个一般形式为 表达式 表达式 表达式 条件运算符是唯一的一个三元运算符 使用条件表达式可以代替一些简单的if语句 35 4 3 5条件运算符和条件表达式 条件表达式的求值过程首先计算表达式1的值 如果表达式 的值为真 则计算表达式 的值 并将该值作为整个条件表达式的值 表达式3不计算 如果表达式 的值为假 则计算表达式 的值 并将该值作为整个条件表达式的值 表达式2不计算 36 4 3 5条件运算符和条件表达式 条件运算符的优先级高于赋值运算符和逗号运算符 低于所有其它运算符 其结合方向为自右向左 例 计算下列表达式inta 1 b 2 c 3 d 4 m 5 n 6 k k a b m c b n b d k ac m c b n b d k a b d b c m c b n b d k a b d bb n b d k 0m 5n 0 k 4m 5n 6 k 0m 5n 0 k 1m 1n 6 例 输入一个字符 判别它是否大写字母 如果是 将其转换为小写 否则不转换 然后输出最后得到的字符 includevoidmain charch scanf c printf c ch 4 3 5条件运算符和条件表达式 38 4 3 6switch语句 基本形式的if语句可以根据一个判断条件形成两个处理分支 为了描述更多的分支 我们可以使用嵌套形式的if语句 C语言还提供了另外一个可以描述多个处理分支的语句 switch语句 switch语句可以根据一个表达式的值决定选择哪一个分支 39 4 3 6switch语句 switch语句的语法格式switch 表达式 caseE1 语句序列1 caseE2 语句序列2 caseEn 语句序列n default 语句序列 40 4 3 6switch语句 switch关键字后面是用括号括起来的表达式 称为控制表达式 该表达式必须为整型或字符型 不能是实型或字符串 case关键字后面的表达式E1 E2 En必须是常量表达式 常量表达式中只能包含常量不能使用变量 这些常量表达式类型应为整型或字符型 且它们的值必须互不相同 caseE1 caseE2 caseEn default 被称为分支标号 分支标号以冒号结束 各case及default子句的先后次序 不影响程序执行结果 在每个分支标号后面可以包含一组语句 不需要使用大括号将每组语句括起来 每组语句中的最后一条语句通常是break语句 语法格式中用中括号括起来的部分是可选的 41 switch语句的执行过程 首先计算控制表达式的值 然后将该值与常量表达式E1 E2 En的值依次进行比较 如果控制表达式的值等于E1的值 则执行语句序列1 如果控制表达式的值等于E2的值 则执行语句序列2 以此类推 如果控制表达式的值不等于E1至En中的任何一个值 则执行default分支后的语句序列 如果省略了default分支 则不执行任何语句 42 例4 6 输入1至7中的一个数值 然后打印出该数值对应的日期 switch语句的执行过程 程序4 7 includevoidmain intday printf pleaseinputadigit scanf d 43 4 3 6break语句 在switch语句中 每个分支标号后的一组语句中的最后一条语句通常是break语句 从程序4 7可以看出 break语句的作用是使程序跳出switch语句 继续执行switch语句后面的其它语句 如果程序4 7中去掉了break语句 我们将得到不合理的执行结果 程序4 7 includevoidmain intday printf pleaseinputadigit scanf d 假设输入3 程序会输出 WednesdayThursdayFridaySaturdaySundaydataerror 44 4 3 6switch语句 产生这种的结果的原因在于switch语句是一种 基于比较的转移 当控制表达式的值与某个常量表达式的值相等时 程序便转移到相应的分支标号处 开始执行分支标号后的语句 这里 分支标号仅起到标识目标语句位置的作用 不能实现对多个处理分支的分割 当执行完一个处理分支内的语句后 如果没有break语句 程序将直接进入下一个处理分支 然后继续执行下一个分支内的语句 45 4 3 6switch语句 有时我们可以利用这个特点 使得多个处理分支可以共享一组语句 例4 7 输入1至7中的一个数值 然后打印出该数值对应工作日或休息日 程序4 8 includevoidmain intday printf pleaseinputadigit scanf d 例4 8 输入学生的百分制成绩 输出该学生的成绩等级 大于等于90分为 A 80分至89分为 B 70分至79分为 C 60分至69分为 D 60分以下为 E 第一种解决方法 用if语句实现 第二种解决方法 使用switch语句实现 需要改进 46 4 3 7应用实例 程序4 9 includevoidmain intscore printf inputthescore scanf d 程序4 10 includevoidmain intscore intd printf inputthescore scanf d 若有定义 floatw inta b 并且w a b已经被正确赋值 则下面哪个switch语句是合法的 switch w case1 0 printf n case2 0 printf n B switch a case1printf n case2printf n C switch b case1 printf n default printf n case1 2 printf n case2 printf n D switch a b case1 printf n case2 printf n default printf n 错 少冒号 错 常量表达式为1或2 对 对 4 3 7应用实例 include stdio h main intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break printf a d b d n a b 写出下列程序的执行结果 break 执行结果 a 2 b 1 执行结果 a 1 b 0 4 3 7应用实例 49 4 4循环结构 循环结构是结构化程序设计中的三种基本结构之一 也是程序设计的基础 循环结构的特点是 在给定条件成立时 反复执行一组语句 直到条件不成立为止 给定的条件称为循环条件 反复执行的一组语句称为循环体 C语言提供了三种循环语句 while语句 dowhile语句和for语句 语法格式 while 表达式 语句其中小括号中的表达式用于描述循环条件 小括号后面的语句为循环体 表达式两边的小括号是必需的 当循环体内需要包含一条以上的语句时 应用大括号括起来 构成复合语句 50 4 4 1while语句 51 while语句执行过程 1 计算表达式的值 如果其值不为0 即为真值 转向 2 否则转向 3 2 执行循环体后转向 1 3 循环过程停止 程序转移到while语句后面的语句 4 4 1while语句 循环体中应有使循环趋向于结束的语句 52 例4 9 求整数1 100的累加和 程序4 11 includevoidmain inti sum 0 i 1 while i 100 sum i i printf sum d n sum 4 4 1while语句 53 例4 10 输入一行字符 分别统计出其中英文字母 空格 数字和其它字符的个数 while语句的循环体可能一次也不执行 因为while语句是先判断循环条件 再决定是否执行循环体 当读取的第一个字符是换行符时 将不会执行循环体 4 4 1while语句 程序4 12 includevoidmain charc intletter 0 space 0 digit 0 other 0 printf Inputastring n while c getchar n if c a dowhile语句是先执行循环体 之后再判断循环条件是否成立 语法格式do语句while 表达式 括号后面的分号是必需的 dowhile语句执行过程 1 执行循环体 2 计算表达式的值 如果表达式的值为真 则转向 1 否则转向 3 3 循环过程终止 程序转移到dowhile语句后面的语句 54 4 4 2dowhile语句 55 例4 11 求整数1 100的累加和 使用dowhile语句实现 程序4 13 includevoidmain inti 1 sum 0 定义并初始化变量 do sum i 累加 i while i 100 循环条件 i 100 printf sum d n sum 4 4 2dowhile语句 例4 12 输入一个整数 判断其是几位数 从程序4 14可以看出 dowhile语句的循环体至少执行一次 因为dowhile语句是先执行循环体 再判断循环条件 56 程序4 14 includevoidmain intm a intn 0 printf 请输入一个正整数 scanf d 4 4 2dowhile语句 57 我们将程序4 14中的dowhile语句直接改为while语句 看一下会产生什么结果 4 4 2dowhile语句 includevoidmain intm a intn 0 printf 请输入一个正整数 scanf d 输入整数0 程序输出 0是0位数 产生这种结果的原因在于 while语句先判断循环条件 当a 0时 循环条件不成立 循环体一次也不执行 为了避免这个问题 需要对特殊情况做一下处理 程序4 15 includevoidmain intm a intn 0 printf 请输入一个正整数 scanf d 58 4 4 2dowhile语句 执行过程 1 计算表达式1的值 2 计算表达式2的值 如果值为真 则转向 3 否则终止循环 转移到for语句后面的语句 3 执行循环体 然后计算表达式3的值 然后转向 2 59 4 4 3for语句 语法格式 for 表达式1 表达式2 表达式3 语句表达式1和2后面的分号是必需的 表达式3后面没有分号 下面是一个for语句的例子 for i 1 i 10 i printf nowiis d n i 可以从中看出3个表达式的作用 表达式1用于初始化 而且仅执行一次 通常使用赋值表达式指定循环变量的初始值 表达式2描述循环条件 用于控制循环的结束 通常使用关系表达式或逻辑表达式 也可以是数值表达式或字符表达式 每次执行循环体前都要对表达式2进行判断 表达式3在每次循环体执行后被执行 用于修改循环变量的值 使循环趋向结束 通常使用赋值表达式或自增 自减表达式 60 4 4 3for语句 61 例4 13 求整数1 100的累加和 使用for语句实现 程序4 16 includevoidmain inti sum 0 for i 1 i 100 i sum sum i printf sum d n sum 4 4 3for语句 62 对比程序4 11和程序4 16 可以发现for循环可以用等价的while循环来代替 实际上 除了一些特殊情况外 两种循环总是可以互相替换的 将for循环转换为while循环的一般方法是 表达式1 while 表达式2 语句 表达式3 4 4 3for语句 63 例4 14 求Fibonacci数列的前40项 每行输出4项 Fibonacci数列的定义为 4 4 3for语句 程序4 17 includevoidmain longt1 t2 t3 inti t1 t2 1 printf 10ld 10ld t1 t2 for i 3 i 40 i t3 t1 t2 printf 10ld t3 if i 4 0 printf n t1 t2 t2 t3 关于for语句的说明 C语言允许省略任意或全部表达式 1 关于表达式1 通常是给循环变量赋初值 也可以是与循环变量无关的其它表达式 甚至表达式1可以省略 如果省略表达式1 那么需要在for语句之前完成变量的初始化 注意 此时表达式1后面的分号必须保留 例 sum 0 for i 1 i 100 i sum i 或 i 1 for sum 0 i 100 i sum i 或 for i 1 sum 0 i 100 i sum i 或 i 1 sum 0 for i 100 i sum i 64 4 4 3for语句 2 关于表达式3 通常用来改变循环变量的值 也可以是与循环变量的无关的其它表达式 甚至可将循环体中的语句放在表达式3的位置上 表达式3也可以省略 如果省略 那么需要在循环体中包含使循环条件变为假的操作 65 4 4 3for语句 例 i 0 for sum 0 i 100 sum i i 或 for sum 0 i 1 i 100 sum i i 或 sum 0 for i 1 i 100 sum i i 66 3 如果同时省略表达式1和表达式3 只有表达式2 即只给出循环条件 此时的for语句和while语句完全相同 i 1 for i 100 sum sum i i 4 4 3for语句 67 4 关于表达式2作为循环的判断条件 如果省略表达式2 那么表达式2默认为真值 此时循环条件始终成立 循环将出现死循环 应该通过其它方式使for语句终止 如使用break语句 参考4 4 4节 出现死循环时 用Ctrl C结束程序 4 4 3for语句 i 1 sum 0 for sum i i if i 100 break 例 sum 0 for i 1 i sum i 或 sum 0 i 1 for sum i 此为死循环 68 通过在for语句的表达式1或表达式3中使用逗号表达式 可以同时对多个变量进行初始化或同时使多个变量自增 自减 程序4 18 includevoidmain inti sum for sum 0 i 1 i 100 i sum sum i printf sum d n sum 4 4 3for语句 break语句可以使程序控制从switch语句中转移出来 break语句还可以用在while dowhile for语句中 使程序控制从循环中转移出来 从而使循环立即终止 例4 15 判断正整数m是否为素数 69 4 4 4使用break语句 程序4 19 includevoidmain intm i printf Inputm scanf d 70 4 4 5使用continue语句 continue语句可以出现在while dowhile for语句的循环体中 用于控制循环的执行过程 continue语句跳过循环体内的若干语句 提前结束一次循环体的执行 但不会终止循环 continue语句只能用于循环 例4 16 找出所有小于100 能被3整除且个位数是6的整数 程序4 20 includevoidmain inti j for i 0 i 9 i j i 10 6 if j 3 0 continue printf d n j break语句和continue语句 71 break语句和continue语句的区别while 表达式1 while 表达式1 if 表达式2 break if 表达式2 continue break语句跳出循环 continue语句结束本次循环体 终止整个循环的执行进入下一次循环 72 4 4 6循环语句嵌套 在while dowhile for语句的循环体内可以包含任何类型的语句 当一个循环语句的循环体内又包含了另一个循环语句时 便形成了循环语句的嵌套 例4 17 按照下图样式 打印乘法表 程序4 21 includevoidmain inti j for i 1 i 9 i for j 1 j i j printf d d 3d i j i j printf n 73 例4 18 将1元钱兑换成1分 2分 5分的硬币 若每种面值的硬币都不得少于一枚 问有几种不同的兑换方法 程序4 22 includevoidmain inti j n 0 for i 1 i0 n printf 合理的兑换方法有 d种 n n 4 4 7应用实例 74 4 4 7应用实例 例4 19 在三位整数中 有一些这样的数 他们的个位数的三次方加上十位数的三次方再加上百位数的三次方等于该数本身 我们称这样的数为水仙花数 例如 153 13 53 33 现在要求编写程序 找出所有的水仙花数 程序4 23 includevoidmain inti a b c printf 100 999之间的水仙花数有 n for i 100 i 1000 i a i 100 取出百位上的数字 b i 10 10 取出十位上的数字 c i 10 取出个位上的数字 if a a a b b b c c c i printf d n i 75 例4 20 求100 200之间的全部素数 程序4 24 includevoidmain intm i n 0 for m 101 m m printf 4d m n n 1 4 4 7应用实例 76 例4 21 求s m mm mmm mm m 其中m是一个1到9之间的数字 最后一项由n个m构成 其中m n均由键盘输入 例如m 3 n 5 则s 3 33 333 3333 33333 程序4 25 includevoidmain ints 0 t n m i printf Inputthevalueofnandm scanf d d 4 4 7应用实例 77 例4 22 编写程序 输出钻石花图案 程序4 26 includevoidmain inti j k for i 0 i 3 i for j 1 j 3 i j putchar for k 1 k 2 i 1 k putchar putchar n for i 0 i 2 i for j 1 j i 1 j putchar for k 1 k 5 2 i k putchar putchar n 4 4 7应用实例 78 结构化程序设计 构成程序的三种基本结构顺序结构选择结构循环结构已经证明 任何程序均可只用这三种结构综合描述只用这三种结构编制的程序 叫结构化程序 程序必须符合结构化规则 结构化程序设计的核心思想 采用顺序 选择和循环三种基本结构作为程序设计的基本单元 只有一个入口 只有一个出口 无死语句 即不存在永远都执行不到的语句 无死循环 即不存在永远都执行不完的循环 采用 自顶向下 逐步求精 和模块化的方法进行结构化程序设计 79
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!