C语言循环结构.pptx

上传人:莉*** 文档编号:87416216 上传时间:2023-04-16 格式:PPTX 页数:87 大小:380.76KB
返回 下载 相关 举报
C语言循环结构.pptx_第1页
第1页 / 共87页
C语言循环结构.pptx_第2页
第2页 / 共87页
点击查看更多>>
资源描述

《C语言循环结构.pptx》由会员分享,可在线阅读,更多相关《C语言循环结构.pptx(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言的重复语句用于设置循环。循环是重复执行其他语句的一种语句,循环中重复执行的语句就是循环体C语句中,每个循环都有一个控制表达式。每次执行循环体时都要对控制表达式进行计算。如果表达式为真,也就是不为零,那么继续执行循环。1重复语句第1页/共87页C提供三种循环语句:while语句:用于判定控制表达式在循环体执行之前的循环。do语句:用于判定控制表达式在循环体执行之后的循环。for语句:对于自增或自减计数变量的循环十分方便。2重复语句第2页/共87页使用while语句是最简单、最基本的设置循环方法。While语句格式如下:while(表表达达式式)语语句句表达式即为控制表达式;语句则是循环体。

2、3while语句第3页/共87页while语句示例:while(in)/*控控制制表表达达式式*/i=i*2;/*循循环环体体*/执行while语句时,首先计算控制表达式的值。如果值不为零(真),那么执行循环体,接着再次判定表达式。这个过程持续进行直到最终控制表达式的值变为零。4while语句第4页/共87页while语句示例:计算大于或等于数n的最小的2次幂:i=1;while(in)i=i*2;设n为10时,下面跟踪显示了while语句执行情况:i=1;i现在值为1.in成立吗?是,继续。i=i*2;i现在为2.in成立吗?是,继续。i=i*2;i现在为4。in成立吗?是,继续。i=i*2

3、;i现在为8。in成立吗?是,继续。i=i*2;i现在为16。i0)printf(Tminus%dandcountingn,i);i-;即使没有严格要求的时候,一些程序员始终使用大括号括住循环体:while(i0)printf(Tminus%dandcountingn,i);i-;整整个个过过程程持持续续到到显显示示信信息息为为“T minus 1 and counting”。7while语句第7页/共87页关于while语句的一些讨论:在while循环终止时,控制表达式的值为假。因此,当通过表达式i0控制循环终止时,i必须是小于或等于0的。可能根本不执行while循环体。因为控制表达式是在循

4、环体执行之前进行判定。while语句常常可以有多重写法。更加简明的递减计数循环如下:while(i0)printf(Tminus%dandcountingn,i-);8while语句第8页/共87页如果控制表达式的值始终是非零值的话,while语句将无法终止。C语句程序员有时故意用非零常量作为控制表达式来构造无限循环:while(1)除非循环体含有跳出循环控制的语句(break,goto,return)或调用了导致程序终止的函数,否则上述这种形式的while语句将永远执行下去。9无限循环第9页/共87页程序用一个while语句显示平方值表格。用户指定平方值表格的行数:Thisprogrampr

5、intsatableofsquares.Enternumberofentriesintable:511243941652510程序:显示平方值的表格第10页/共87页/*Printsatableofsquaresusingawhilestatement*/#includeintmain(void)inti,n;printf(Thisprogramprintsatableofsquares.n);printf(Enternumberofentriesintable:);scanf(%d,&n);i=1;while(i=n)printf(%10d%10dn,i,i*i);i+;return0;11

6、第11页/共87页程序对用户输入的整数数列求和:Thisprogramsumsaseriesofintegers.Enterintegers(0toterminate):8237150Thesumis:107程序需要使用循环,循环采用scanf函数读取用户输入数,然后再把这个数加到运算的总和中。12程序:数列求和第12页/共87页/*Sumsaseriesofnumbers*/#includeintmain(void)intn,sum=0;printf(Thisprogramsumsaseriesofintegers.n);printf(Enterintegers(0toterminate):

7、);scanf(%d,&n);while(n!=0)sum+=n;scanf(%d,&n);printf(Thesumis:%dn,sum);return0;13第13页/共87页例例6.3 6.3 求求1 1到到100100的和的和学生学生练习练习运行结果:运行结果:50505050第14页/共87页例例6.2 6.2 求求1 1到到100100的和的和#include#include void main()void main()int i int i,sum=0;sum=0;i=1;i=1;while(i=100)while(i0);do语句和while语句没有本质的区别。唯一的不同在于d

8、o语句的循环体至少会被执行一次。17do语句第17页/共87页最好对所有的do语句都使用大括号包括循环体,因为没有大括号的do语句很容易被误认为是while语句:doprintf(Tminus%dandcountingn,i-);while(i0);粗心的读者可能会把单词while误认为是while语句的开始。18do语句while(i=100)while(i=100)第18页/共87页例例6.3 6.3 求求1 1到到100100的和的和运行结果:运行结果:50505050第19页/共87页例例6.3 6.3 求求1 1到到100100的和的和#include#include void ma

9、in()void main()int i int i,sum=0;sum=0;i=1;i=1;do do sum=sum+i;sum=sum+i;i+;i+;while(i=100);while(i=100);printf(%dn printf(%dn,sum)sum);运行结果:运行结果:50505050第20页/共87页程序计算用户输入的整数的位数:Enteranonnegativeinteger:60Thenumberhas2digit(s).方法是将将用户输入的整数反复除以10,直到结果变为0,除的次数就是用户输入整数的位数。do语句比while语句更适合,因为每个整数,即便是0都至少

10、有一位数字。21程序:计算整数的位数第21页/共87页/*Calculatesthenumberofdigitsinaninteger*/#includeintmain(void)intdigits=0,n;printf(Enteranonnegativeinteger:);scanf(%d,&n);don/=10;digits+;while(n0);printf(Thenumberhas%ddigit(s).n,digits);return0;22第22页/共87页for语句适合应用在使用“计数”变量的循环中,然而它也灵活用于许多其他类型的循环中。for语句的一般格式如下:for(表达式1;

11、表达式2;表达式3)语句表达式1、表达式2和表达式3全都是表达式。示例:for(i=10;i0;i-)printf(Tminus%dandcountingn,i);23for语句第23页/共87页for语句的执行流程for(表达式1;表达式2;表达式3)语句;24for语句第24页/共87页for语句和while语句关系紧密。除了极少数情况,for循环总可以等价替换为while循环:表表达达式式1;while(表表达达式式2)语语句句表表达达式式3;表达式1是在循环开始执行前,只执行一次的初始化步骤。25for语句第25页/共87页表达式2控制用于控制循环的终止(循环持续执行,只要表达式2的值

12、非零)。表达式3是在每次循环的最后被执行的一个操作。按照这种模式,上面的for循环可以改写为如下的while循环:i=10;while(i0)printf(Tminus%dandcountingn,i);i-;26for语句第26页/共87页研究等价的while语句有助于更好地理解for语句。例如,假设把先前for循环示例中的i-替换为-i:for(i=10;i0;-i)printf(Tminus%dandcountingn,i);等价的while循环显示上述的替换对循环没有任何影响:i=10;while(i0)printf(Tminus%dandcountingn,i);-i;27for语句

13、第27页/共87页由于for语句中的第一和第三表达式都是以语句的方式执行的,所以它们的值互不相关它们有用仅仅是因为有副作用。所以,这两个表达式常常是赋值表达式或自增/自减表达式。28for语句第28页/共87页for语句对于“向上加”(变量自增)或“向下减”(变量自减)的循环来说是最好的选择。对于向上加或向下减共有n次的情况,for语句经常会采用下列形式中的一种。从从0向上加到向上加到n1:for(i=0;in;i+)从从1向上加到向上加到n:for(i=1;i=0;i-)从从n向下减到向下减到1:for(i=n;i0;i-)29for语句惯用法第29页/共87页常见语句错误:在控制表达式中用

14、(反之亦然)。“向上加”使用或或=运算符。在控制表达式中使用=代替,或=。编写的控制表达式用i=n代替i0;-i)printf(Tminus%dandcountingn,i);如果省略第三个表达式,那么循环体需确保第二个表达式的值最终会变为假:for(i=10;i0;)printf(Tminus%dandcountingn,i-);31在for语句中省略表达式第31页/共87页当第一和第三表达式都省略时,for循环与while循环没有任何区别:for(;i0;)printf(Tminus%dandcountingn,i-);等价于while(i0)printf(Tminus%dandcount

15、ingn,i-);while语句的形式更清楚,因此更可取。32在for语句中省略表达式第32页/共87页如果省略第二个表达式,那么它默认为真,因此for语句不会终止(除非以某种其他形式停止)。例如:某些程序员用下列的for语句建立无限循环:for(;)33在for语句中省略表达式第33页/共87页C99中,for语句的第一个表达式能被替换为一个声明(定义)。这个特性允许程序员在for循环中定义变量:for(inti=0;in;i+)这样,变量i不需要在for循环前定义。34C99中的for语句第34页/共87页在for语句中定义的变量不能在循环体外访问,即在循环外不可见):for(inti=0

16、;in;i+)printf(%d,i);/*legal;iisvisibleinsideloop*/printf(%d,i);/*WRONG*/35C99中的for语句第35页/共87页让for语句定义自己的循环控制变量通常是个好的做法,方便且让程序易于理解。当然,如果程序需要在循环结束后访问这样的变量,那么就需要采用for语句常规的方式。for语句可以定义多个相同类型的变量:for(inti=0,j=0;in;i+)36C99中的for语句第36页/共87页有时,for语句可能需要多个初始表达式,或在每次循环时一次对几个变量进行自增(减)操作。可以在for语句的第一和第三表达式中使用逗号表达

17、式实现这些想法。逗号表达式具有如下形式:表达式1,表达式2这里表达式1和表达式2可以是任意两个表达式。37逗号运算符第37页/共87页逗号表达式的计算分两步实现:第一,计算表达式1并丢弃计算结果。第二,计算表达式2并将计算结果作为整个逗号表达式的结果。计算表达式1始终是有意义的。当计算逗号表达式+i,i+j,i先自增,然后计算i+j假设,变量i和j的值分别为1和5,那么上面逗号表达式的值为7,而i的值将自增为2。38逗号运算符第38页/共87页逗号运算符是左结合性的,所以编译器把下列表达式:i=1,j=2,k=i+j解释为:(i=1),(j=2),(k=(i+j)即左边的操作先于右边的执行,这

18、样表达式i=1,j=2,和k=i+j将从左到右执行。39逗号运算符第39页/共87页逗号运算符允许将两个或多个表达式黏贴成一个表达式。在后面章节中我们会看到某些定义将从逗号运算符中受益。for语句是唯一除上述之外还可以发现逗号运算符的地方。例如:for(sum=0,i=1;i=N;i+)sum+=i;利用附加的逗号运算符,for语句可以初始化两个及以上的变量。40逗号运算符第40页/共87页程序(Section6.1)可以通过将while循环转化为for循环的方式进行改进:41程序:显示平方值表格(改进版)第41页/共87页/*Printsatableofsquaresusingaforsta

19、tement*/#includeintmain(void)inti,n;printf(Thisprogramprintsatableofsquares.n);printf(Enternumberofentriesintable:);scanf(%d,&n);for(i=1;i=n;i+)printf(%10d%10dn,i,i*i);return0;42第42页/共87页C语言对控制循环行为的三个表达式没有加任何限制。虽然这些表达式通常对同一个变量进行初始化、判定和更新,但是不要求它们之间以任何方式进行相互关联。程序等价于,但是包含一个for语句,它初始化一个变量(square),判定另一个变

20、量(i),并对第三个变量(odd)进行自增操作。for语句这种极大的灵活性有时是十分有用的,但是原始的程序无疑更加清晰。43程序:显示平方值表格(改进版)第43页/共87页/*Printsatableofsquaresusinganoddmethod*/#includeintmain(void)inti,n,odd,square;printf(Thisprogramprintsatableofsquares.n);printf(Enternumberofentriesintable:);scanf(%d,&n);i=1;odd=3;for(square=1;i=n;odd+=2)printf(

21、%10d%10dn,i,square);+i;square+=odd;return0;44第44页/共87页通常循环的退出点是在while或for循环体之前,或do循环体之后。使用break语句可以在循环体中间设置退出点,甚至设置多个退出点。45退出循环第45页/共87页break语句能够把程序控制从switch语句中转移出来,而且还可以用于跳出while、do或for循环。可以编写一个循环用于测试一个数是否是素数,只要发现一个约数就用break语句终止循环:for(d=2;dn;d+)if(n%d=0)break;46break语句第46页/共87页在循环终止后,可以用if语句来确定是提前终

22、止(即n不是素数)还是正常终止(n是素数):if(dn)printf(%disdivisibleby%dn,n,d);elseprintf(%disprimen,n);47break语句第47页/共87页break语句特别适合退出点在循环体中间,而不是循环体之前或之后的循环。例如,用于读入用户输入并且在遇到特殊输入值时终止的循环:for(;)printf(Enteranumber(enter0tostop):);scanf(%d,&n);if(n=0)break;printf(%dcubedis%dn,n,n*n*n);48break语句第48页/共87页break语句把程序控制从最内层封闭的

23、while、do、for或switch语句中转移出来。当这些语句出现嵌套时,break语句只能跳出一层嵌套:while()switch()break;break语语句句从从switch语语句句中中转转移移出出程程序序控控制制,但但没没有有从从while循循环环中中转转移移出出来来。49break语句第49页/共87页continue语句与break语句类似:break语句把程序控制转出循环体。continue语句把程序控制转移到循环体结束之前的一点。break语句使程序控制跳出循环,continue语句把程序控制留在循环体内。break语句和continue语句的另一个区别:break语句可以

24、在用于switch语句和循环中,而continue语句则只能用在循环中。50continue语句第50页/共87页使使用用continue语语句句的的循循环环示示例例:n=0;sum=0;while(n10)scanf(%d,&i);if(i=0)continue;sum+=i;n+;/*continuejumpstohere*/51continue语句第51页/共87页不用continue语句的相同循环示例:n=0;sum=0;while(n10)scanf(%d,&i);if(i!=0)sum+=i;n+;52continue语句第52页/共87页例学生例学生读读程程#include#in

25、clude void main()void main()int n;int n;for(n=100;n=200;n+)for(n=100;n=200;n+)if(n%3=0)if(n%3=0)continue;continue;printf(%d printf(%d ,n);n);说明:说明:说明:说明:当n能被3整除时,执行continue语句,结束本次循环(即跳过printf函数语句),只有n不能被3整除时才执行printf函数。第53页/共87页例把例把100100200200之之间间的不能被的不能被3 3整除的数整除的数输输出。出。#include#include void main(

26、)void main()int n;int n;for(n=100;n=200;n+)for(n=100;n=200;n+)if(n%3=0)if(n%3=0)continue;continue;printf(%d printf(%d ,n);n);说明:说明:说明:说明:当n能被3整除时,执行continue语句,结束本次循环(即跳过printf函数语句),只有n不能被3整除时才执行printf函数。第54页/共87页goto语语句句能能跳跳转转到到函函数数中中任任何何有有标标号号的的语语句句处处。标号是放置在语句开始处的标识符:标识符:语句一条语句可以有多个标号。goto语语句句格格式式如

27、如下下:goto标识符;执行语语句句 gotoL,把程序控制转移到标号L后的语句上,转移目标语句必须与goto语句在同一个函数中。55goto语句第55页/共87页如果C语言没有break语句,goto语句可以用于退出循环:for(d=2;dn;d+)if(n%d=0)gotodone;done:if(dn)printf(%disdivisibleby%dn,n,d);elseprintf(%disprimen,n);56goto语句第56页/共87页goto语语句句在在日日常常的的C语语言言编编程程中中很很少少用用到到。break、continue和return等语句本质上都是受限制的got

28、o语语句句,它它们们和和exit函函数数一一起起足足够够应应付付其其他他编编程程语语言言中中大大多多数数goto语语句句的的情情况况。尽管如此,goto语句偶尔还是很有用的。57goto语句第57页/共87页考虑从包含switch语句的循环中退出的问题。break语句不会产生期望的效果:它可以跳出switch语句,但是无法跳出循环。goto语语句句可可以以解解决决这这个个问问题题:while()switch()gotoloop_done;/*breakwontworkhere*/loop_done:goto语语句句在在需需要要从从嵌嵌套套的的多多层层循循环环中中转转出出时时还还是是很很有有用用

29、。58goto语句第58页/共87页例例6.1 6.1 用用if if语语句和句和gotogoto语语句构成循句构成循环环void main()void main()int i int i,sum=0;sum=0;i=1;i=1;loop:if(i=100)loop:if(i=100)sum=sum+i;sum=sum+i;i+;i+;goto loop;goto loop;printf(%dn printf(%dn,sum);sum);说明:说明:说明:说明:这里用的是“当型”循环结构,当满足“i=100”时执行花括弧内的循环体。运行结果:运行结果:50505050第59页/共87页许多简单

30、的交互式程序都是基于菜单的,它们向用户显示可供选择的命令列表。一旦用户选择了某条命令,程序就执行相应的操作,然后提示用户输入下一条命令。这个过程一直会持续到用户选择“退出”或“停止”命令。这类程序的核心显然是循环。for(;)提示用户输入命令;读入命令;执行命令;60程序:账本结算第60页/共87页执行这个命令将需要switch语句(或级联式if语句)for(;)提示用户输入命令;读入命令;switch(command)case命令1:执行操作1;break;case命令2:执行操作2;break;.case命令n:执行操作n;break;default:显示错误信息;break;61程序:账

31、本结算第61页/共87页程序用这种循环来维护账本的余额程序将为用户提供选择菜单:刷新帐户余额,往帐户上存钱,从帐户上取钱,显示当前余额,退出程序。62程序:账本结算第62页/共87页*ACMEcheckbook-balancingprogram*Commands:0=clear,1=credit,2=debit,3=balance,4=exitEntercommand:1Enteramountofcredit:Entercommand:2Enteramountofdebit:Entercommand:1Enteramountofcredit:Entercommand:2Enteramounto

32、fdebit:1400Entercommand:2Enteramountofdebit:68Entercommand:2Enteramountofdebit:50Entercommand:3Entercommand:463程序:账本结算第63页/共87页/*Balancesacheckbook*/#includeintmain(void)intcmd;floatbalance=0.0f,credit,debit;printf(*ACMEcheckbook-balancingprogram*n);printf(Commands:0=clear,1=credit,2=debit,);printf(

33、3=balance,4=exitnn);for(;)printf(Entercommand:);scanf(%d,&cmd);switch(cmd)case0:balance=0.0f;break;64第64页/共87页case1:printf(Enteramountofcredit:);scanf(%f,&credit);balance+=credit;break;case2:printf(Enteramountofdebit:);scanf(%f,&debit);balance-=debit;break;case3:printf(Currentbalance:$%.2fn,balance)

34、;break;case4:return0;default:printf(Commands:0=clear,1=credit,2=debit,);printf(3=balance,4=exitnn);break;65第65页/共87页语句可以为空,即除了末尾的分号外什么符号也没有。下面一行代码包含三条语句:i=0;j=1;空语句主要有一个好处:编写空循环体的循环。66空语句第66页/共87页考虑下面寻找素数的循环:for(d=2;dn;d+)if(n%d=0)break;如果把条件n%d=0移到循环控制表达式中,那么循环体将会为空:for(d=2;d0);/*WRONG*/printf(Tmin

35、us%dandcountingn,i);-i;while圆括号后多余的分号(空语句)造成无限循环。68空语句第68页/共87页例3:i=11;while(-i0);/*WRONG*/printf(Tminus%dandcountingn,i);循循环环体体在在循循环环终终止止后后只只执执行行一一次次;显显示示信信息息如如下下:Tminus0andcounting例4:for(i=10;i0;i-);/*WRONG*/printf(Tminus%dandcountingn,i);同样,循环体只执行一次,并显示相同的信息。69空语句第69页/共87页循环的嵌套一个循环体内又包含另一个完整的循环结构

36、 称为循环的嵌套。内嵌的循环中还可以嵌套 循环,这就是多层循环。三种循环(while循环、do-while循环和for循 环)可以互相嵌套。第70页/共87页循环的嵌套下面几种都是合法的形式:(1)while()(2)do (3)for(;)while()do for(;)while();while();第71页/共87页循环的嵌套(4)while()(5)for(;)(6)do do while()for(;)while()while()第72页/共87页循环嵌套的难点 循环嵌套中,每层循环的进行都有相应的控制机制(比如循环变量)。但是在某一层x中,可能会使用甚至改变另一层使用甚至改变另一层

37、y的控制机制(比如在x层中引用甚至修改y层的循环变量的值),这是造成多层循环难以理解的重要原因。第73页/共87页循环嵌套的难点例:int main()int i,k,s=0;for(i=1;i=10;i+)for(k=1;k=i;k+)s+=k;printf(%d,s);此程序的作用是什么?打印的结果是?第74页/共87页循环嵌套的难点例:int main()int i,k,s=0;for(i=1;i=10;i+)for(k=1;k=i;k+)if(k%2=0)i+;s+=k;printf(%d,s);此程序的作用是什么?打印的结果是?第75页/共87页程序设计:算法 vs 数学建模例:使用

38、循环,在屏幕上打印如下图案:*效果:第76页/共87页程序设计:算法 vs 数学建模分析:1.将图形放入笛卡尔坐标系(即建模)*坐标平移第77页/共87页程序设计:算法 vs 数学建模2.得到数学模型:0123456-1-2-3-4-5-6打印空格打印空格打印空格打印空格打印星号第78页/共87页程序设计:算法 vs 数学建模3.用数学不等式来描述打印星号区域:(1)写出四条边线的方程(也可先不平移坐标,写出原方程后再平移):(x-3)+(y+3)=3,-(x-3)+(y+3)=3,-(x-3)-(y+3)=3,(x-3)-(y+3)=3(2)统一描述为:|x-3|+|y+3|=3(3)故可描

39、述打印星号区域为:|x-3|+|y+3|30123456-1-2-3-4-5-6打印星号yx第79页/共87页程序设计:算法 vs 数学建模由此得到本程序核心算法的描述:if(当前光标处于|x-3|+|y+3|3 的区域中)打印*;else 打印空格;第80页/共87页程序设计:算法 vs 数学建模完整程序如下#include /*程序中要使用求绝对值函数fabs(),需包含此头文件*/int main()int x,y;for(y=0;y=-6;y-)/*此循环用于处理行*/for(x=0;x=6;x+)/*此循环用于处理某行中的各列*/if(fabs(x-3)+fabs(y+3)=3)/*

40、在y行x列中,坐标满足本条件则打印星号,否则打空格*/printf(*);else printf(“”);/*可尝试将此处换成打印减号,结果更直观*/printf(n);/*每处理完一行,需换行*/第81页/共87页程序设计:算法思想描述*例:输入一个英文句子,以句号.结束,计算其中包含多少单词(假设除句号外输入的字符均为英文字母或者空格)。分析:把句子看成是由字母序列和空格序列(单词间可能有多个空格)交替组成的一个字符串。程序处理的方式,是对句子中的所有字符进行逐一扫描(可以想象成有一个扫描头,不断地扫描句子中的每个每个字符),然后在这个过程中判定单词的出现,如出现则把计数变量加1。在编制程

41、序前,先思考如何描述这个扫描的过程?方法:使用状态转移图(或称状态机):第82页/共87页“1”代表当前扫描头“位于字母串中”这一状态;“0”代表当前扫描器“位于空格串中”这一状态。当“扫描到字母”事件或者“扫描到空格”事件发生时,扫描头的状态会被改变,如图箭头所示。程序设计:算法思想描述*01扫描到空格扫描到空格扫描到字母扫描到字母扫描到空格扫描到空格扫描到字母扫描到字母第83页/共87页我们关心的是当处于状态0时,“扫描到字母”事件发生的情况。这个时候意味着什么?之前扫描到的是空格,现在是个字母,即意味着扫描到了一个单词的开头!所以此时,计数变量加1。程序设计:算法思想描述*01扫描到空格

42、扫描到空格扫描到字母扫描到字母扫描到空格扫描到空格扫描到字母扫描到字母第84页/共87页程序实现:除了定义一个变量用于存放输入的字符外,还需定义两个变量:一个用于描述状态,另一个即计数变量,用于存放单词个数。程序设计:算法思想描述*01扫描到空格扫描到空格扫描到字母扫描到字母扫描到空格扫描到空格扫描到字母扫描到字母第85页/共87页程序:#includeintmain(void)intstatus=0,num=0;chark;while(k=getchar()!=.)if(k=)status=0;elseif(status=0)status=1;num+;printf(num=%d.n,num);程序设计:算法思想描述*01扫描到空格扫描到空格扫描到字母扫描到字母扫描到空格扫描到空格扫描到字母扫描到字母第86页/共87页感谢您的观看!第87页/共87页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁