工信版(中职)编程语言基础——C语言模块3教学课件.ppt

上传人:春哥&#****71; 文档编号:90587028 上传时间:2023-05-16 格式:PPT 页数:54 大小:1.29MB
返回 下载 相关 举报
工信版(中职)编程语言基础——C语言模块3教学课件.ppt_第1页
第1页 / 共54页
工信版(中职)编程语言基础——C语言模块3教学课件.ppt_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《工信版(中职)编程语言基础——C语言模块3教学课件.ppt》由会员分享,可在线阅读,更多相关《工信版(中职)编程语言基础——C语言模块3教学课件.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、YCF(中职)编程语言基础C语言模块3教学课件模块模块3控制语句控制语句任务任务1 语句概述语句概述任务任务2 if语句语句任务任务3 条件运算符和条件表达式条件运算符和条件表达式任务任务4 switch语句语句任务任务5 循环语句循环语句任务任务6 break语句与语句与continue语句语句任务任务1语句概述语句概述语句是语句是C语言源程序的重要组成部分。语言源程序的重要组成部分。C语言的语句可以分为语言的语句可以分为5大类。大类。1)表达式语句表达式语句赋值语句。赋值语句。自加减运算符构成的表达式语句。自加减运算符构成的表达式语句。逗号表达式语句。逗号表达式语句。2)空语句空语句仅包含

2、一个分号仅包含一个分号”;”,它表示什么也不做。,它表示什么也不做。下一页返回任务任务1语句概述语句概述3)复合语句复合语句由由”和和”把一些变量说明和语句组合在一起,称之为复把一些变量说明和语句组合在一起,称之为复合语句合语句(Block),又称为语句块,例如,又称为语句块,例如:上一页返回下一页任务任务1语句概述语句概述4)函数调用语句函数调用语句它是由一个函数调用加上一个分号组成的一个语句,如它是由一个函数调用加上一个分号组成的一个语句,如:5)控制语句控制语句上一页返回任务任务2 if语句语句使用使用if语句构成的选择结构在语句构成的选择结构在C语言中应用最为广泛,是语言中应用最为广泛

3、,是C程程序中的重要结构单元。根据实现功能和实现形式的差异,序中的重要结构单元。根据实现功能和实现形式的差异,if语句包括以下语句包括以下3种形式。种形式。if结构结构:根据一定条件选择执行一条根据一定条件选择执行一条(或一组或一组)语句。语句。if-else结构结构:根据一定条件从两条根据一定条件从两条(或两组或两组)语句中选择执行语句中选择执行一条一条(或一组或一组)语句。语句。if-else if-else结构结构:根据一定条件从多条根据一定条件从多条(或多组或多组)语句中语句中选择执行一条选择执行一条(或一组或一组)语句。语句。上一页返回下一页任务任务2 if语句语句3.2.1 单分支

4、形式一单分支形式一其语句形式为其语句形式为:if(表达式表达式)语句语句其中其中“表达式表达式”一般为逻辑表达式或关系表达式,可以是任一般为逻辑表达式或关系表达式,可以是任意的数据类型意的数据类型(整型、实型、字符型、指针型整型、实型、字符型、指针型)。举例说明。举例说明。系统对表达式的值进行判断,若为系统对表达式的值进行判断,若为0,按,按“假假”处理,若为非处理,若为非0,按,按“真真”处理,并执行指定的语句。其流程图如处理,并执行指定的语句。其流程图如图图3-1(a)所示。所示。上一页返回下一页任务任务2 if语句语句上一页返回下一页任务任务2 if语句语句3.2.2 单分支形式二单分支

5、形式二其语句形式为其语句形式为:if(表达式表达式)语句语句1 else语句语句2其中表达式同上,流程图如其中表达式同上,流程图如图图3-1(b)所示。举例说明。所示。举例说明。上一页返回下一页任务任务2 if语句语句修改修改【例例3-1】,在程序中补充以下内容,在程序中补充以下内容:若输入成绩在若输入成绩在80分分以下则输出字符串以下则输出字符串上一页返回下一页任务任务2 if语句语句3.2.3 多分支形式多分支形式前两种形式的前两种形式的if语句,一般都用于两个分支的情况。当有多语句,一般都用于两个分支的情况。当有多个分支选择时,可采用多分支形式,其一般形式为个分支选择时,可采用多分支形式

6、,其一般形式为:if-else if-else结构的流程图如结构的流程图如图图3-2所示。所示。上一页返回下一页任务任务2 if语句语句上一页返回下一页任务任务2 if语句语句3.2.4 if语句应注意的事项语句应注意的事项(1)在三种形式的在三种形式的if语句中,在语句中,在if关键字之后均为表达式。该表关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至也可以是一个变量。注意区分关系运算如赋值表达式等,甚至也可以是一个变量。注意区分关系运算符符”=”和赋值运算符和赋值运算符”=”。(2

7、)在在if语句中,条件判断表达式必须用括号括起来。语句中,条件判断表达式必须用括号括起来。(3)在在if语句的三种形式中,所有的语句应为单个语句,如果语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组要想在满足条件时执行一组(多个多个)语句,则必须把这一组语句语句,则必须把这一组语句用用括起来组成一个复合语句。但要注意的是在括起来组成一个复合语句。但要注意的是在之后不能再之后不能再加分号。加分号。(4)在单分支在单分支if语句中,如果在满足条件时执行的是复合语句,语句中,如果在满足条件时执行的是复合语句,但是没有用但是没有用括起来,尽管编译不出错,但存在逻辑错误。举括起来,

8、尽管编译不出错,但存在逻辑错误。举例说明。例说明。上一页返回下一页任务任务2 if语句语句上一页返回下一页任务任务2 if语句语句(5)在在if和和else之间如果只有一条语句,则可不用之间如果只有一条语句,则可不用括起来,括起来,但多于一条语句则必须用但多于一条语句则必须用括起来,否则会产生编译错。举括起来,否则会产生编译错。举例说明。例说明。上一页返回任务任务3条件运算符和条件表达式条件运算符和条件表达式如果在条件语句中,只执行单个的赋值语句时,常可使用条如果在条件语句中,只执行单个的赋值语句时,常可使用条件表达式来实现,不但使程序简洁,也提高了运行效率。件表达式来实现,不但使程序简洁,也

9、提高了运行效率。条件运算符为条件运算符为?和和:,它是一个三目运算符,即有三个参与运,它是一个三目运算符,即有三个参与运算的量。算的量。由条件运算符组成条件表达式的一般形式为由条件运算符组成条件表达式的一般形式为:其求值规则为其求值规则为:如果表达式如果表达式1的值为真,则以表达式的值为真,则以表达式2的值作的值作为条件表达式的值,否则以表达式为条件表达式的值,否则以表达式3的值作为整个条件表达式的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。的值。条件表达式通常用于赋值语句之中。上一页返回下一页任务任务3条件运算符和条件表达式条件运算符和条件表达式条件语句条件语句:可用条件表达式

10、写为可用条件表达式写为使用条件表达式时,还应注意以下几点使用条件表达式时,还应注意以下几点:条件运算符的优先级低于关系运算符和算术运算符,但高条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。于赋值符。条件运算符条件运算符?和和:是一对运算符,不能分开单独使用。是一对运算符,不能分开单独使用。条件运算符的结合方向是自右至左。条件运算符的结合方向是自右至左。上一页返回下一页任务任务3条件运算符和条件表达式条件运算符和条件表达式条件表达式通常用于双分支结构并且给一个变量赋值的情条件表达式通常用于双分支结构并且给一个变量赋值的情况。况。条件表达式应用。条件表达式应用。上一页返回任务任务4

11、switch语句语句C语言还提供了另一种用于多分支选择的语言还提供了另一种用于多分支选择的switch语句,其一语句,其一般形式为般形式为:返回下一页任务任务4 switch语句语句其执行过程为其执行过程为:当当switch后面后面“表达式表达式”的值与的值与case后的后的“常量表达式常量表达式”的值相等时,就执行其后的语的值相等时,就执行其后的语 句,如果该语句后没有句,如果该语句后没有break语句,不再进行判断,继续执行后面所有语句,不再进行判断,继续执行后面所有case后的语句后的语句;如果该语句后有如果该语句后有break语句,则执行完语句,则执行完break语句跳出整个语句跳出整

12、个switch结构,后面的结构,后面的case 都不执行。都不执行。如表达式的值与所有如表达式的值与所有case后的常量表达式值均不相同时,则后的常量表达式值均不相同时,则执行执行default后的语句。后的语句。上一页返回下一页任务任务4 switch语句语句上一页返回下一页任务任务4 switch语句语句上一页返回下一页任务任务4 switch语句语句在使用在使用switch语句时还应注意以下几点语句时还应注意以下几点:在在case后的各常量表达式的值不能相同,一般为整型或字后的各常量表达式的值不能相同,一般为整型或字符型,如果表达式的值为浮点型,则想办法转换为整型或字符型,如果表达式的值

13、为浮点型,则想办法转换为整型或字符型。否则会出现错误。符型。否则会出现错误。在在case后,允许有多个语句,可以不用后,允许有多个语句,可以不用括起来。括起来。各各case和和default子句的先后顺序可以变动,而不会影响子句的先后顺序可以变动,而不会影响程序执行结果。程序执行结果。多个多个case子句可以共用同一语句子句可以共用同一语句(组组)。default子句可以省略不用。子句可以省略不用。switch语句可以嵌套。语句可以嵌套。上一页返回任务任务5循环语句循环语句3.5.1 while循环循环while语句可以实现语句可以实现“当型当型”循环结构,即当条件满足,就循环结构,即当条件满

14、足,就反复执行循环体。反复执行循环体。1.格式格式上一页返回下一页任务任务5循环语句循环语句2.流程流程首先计算表达式首先计算表达式(循环条件循环条件),若为真,若为真(非非0),执行其后的语,执行其后的语句句1(循环体循环体),然后流程返回,然后流程返回while重新计算表达式。只要重新计算表达式。只要表达式值为真就反复执行循环体,直到表达式值为假表达式值为真就反复执行循环体,直到表达式值为假(0),流程跳到循环体的后面继续执行语句流程跳到循环体的后面继续执行语句2while语句的执行流程如语句的执行流程如图图3-3所示。所示。3.说明说明(1)循环体如果包含一个以上的语句,应该用大括号括起

15、来,循环体如果包含一个以上的语句,应该用大括号括起来,以复合语句形式出现。如果不加大括号,则以复合语句形式出现。如果不加大括号,则while语句的范语句的范围只到围只到while后面的第一个分号处。后面的第一个分号处。上一页返回下一页任务任务5循环语句循环语句(2)在循环体中应有使循环趋向于结束的语句,如果无此语在循环体中应有使循环趋向于结束的语句,如果无此语句,循环结构中的条件始终得不到改变,或者虽在改变,但句,循环结构中的条件始终得不到改变,或者虽在改变,但始终不可能从一个状态跳到另一个状态,那么这种循环称为始终不可能从一个状态跳到另一个状态,那么这种循环称为无限循环或死循环。一个合理的循

16、环结构,最终应会使循环无限循环或死循环。一个合理的循环结构,最终应会使循环条件由一个状态转变为另一个状态,使循环正常终止。条件由一个状态转变为另一个状态,使循环正常终止。上一页返回下一页任务任务5循环语句循环语句4.举例举例【例例3-5】在屏幕上连续输出在屏幕上连续输出5个个”$”字符。字符。上一页返回下一页任务任务5循环语句循环语句3.5.2 do-while循环循环do-while循环与循环与while循环类似,只是先执行循环体,后循环类似,只是先执行循环体,后判断条件是否成立判断条件是否成立(循环体至少要执行一次循环体至少要执行一次)1.格式格式上一页返回下一页任务任务5循环语句循环语句

17、2.流程流程do-while语句执行流程如语句执行流程如图图3-4所示,当执行到所示,当执行到do-while语句时,先执行一次循环体语句。然后判断条件。如果条件为语句时,先执行一次循环体语句。然后判断条件。如果条件为真,则转回循环体执行,直到表达式的值为假时,退出循环,真,则转回循环体执行,直到表达式的值为假时,退出循环,执行执行do-while的下一条语句。其特点是的下一条语句。其特点是:先执行循环体,再判先执行循环体,再判断循环条件是否成立。断循环条件是否成立。3.说明说明一般情况下,对同一个问题既可以用一般情况下,对同一个问题既可以用while语句处理,也可以语句处理,也可以用,用,d

18、o-while语句处理。语句处理。do-while语句结构可以和语句结构可以和while结构相互转换。只要结构相互转换。只要while后面的表达式的第一次的值为后面的表达式的第一次的值为“真真”时,两种循环得到的结果就相同时,两种循环得到的结果就相同;否则只有否则只有while后面的表达后面的表达式的第一次的值为式的第一次的值为“假假”时,两种循环得到的结果才不相同时,两种循环得到的结果才不相同(指二者具有相同的循环体的情况指二者具有相同的循环体的情况)。上一页返回下一页任务任务5循环语句循环语句4.举例举例下面使用,下面使用,do-while循环来实现前面的示例的功能。循环来实现前面的示例的

19、功能。上一页返回下一页任务任务5循环语句循环语句3.5.3 for循环循环for语句格式紧凑、清晰、使用灵活,不仅可以用于循环次数语句格式紧凑、清晰、使用灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替环结束条件的情况,它完全可以代替while语句,是最常用语句,是最常用的一种循环语句。的一种循环语句。1.格式格式for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句;上一页返回下一页任务任务5循环语句循环语句2.流程流程求解表达式求解表达式1,只执行一次。求解表达式,只

20、执行一次。求解表达式2,若为真,若为真(非非0),执行循环体语句,然后求解表达式执行循环体语句,然后求解表达式3,完成一次循环。再次求,完成一次循环。再次求解表达式解表达式2,只要为真,就执行循环体,直到表达式,只要为真,就执行循环体,直到表达式2为假为假(0),流程转到循环体后面继续执行。,流程转到循环体后面继续执行。for语句执行流程如语句执行流程如图图3-5所示。所示。上一页返回下一页任务任务5循环语句循环语句3.说明说明(1)表达式表达式1和表达式可以是逗号表达式,但圆括号内的分号和表达式可以是逗号表达式,但圆括号内的分号只有两个,且必须有两个,分隔开三个表达式。只有两个,且必须有两个

21、,分隔开三个表达式。(2)表达式表达式2可以是各种类型表达式,只要其值非可以是各种类型表达式,只要其值非0,就执行,就执行循环体。循环体。(3)圆括号内的圆括号内的3个表达式均可以省略,也可写到程序的其他个表达式均可以省略,也可写到程序的其他位置。位置。(4)一般情况下,表达式一般情况下,表达式1为循环变量赋初值,表达式为循环变量赋初值,表达式2设置设置循环条件,表达式循环条件,表达式3是循环变量增值语句。是循环变量增值语句。上一页返回下一页任务任务5循环语句循环语句4.举例举例上一页返回下一页任务任务5循环语句循环语句3.5.4 三种循环的比较三种循环的比较C语言提供的三种循环语句可以用来处

22、理同一问题,一般情况语言提供的三种循环语句可以用来处理同一问题,一般情况下可以互换。但其功能和灵活程度不同,下可以互换。但其功能和灵活程度不同,for语句功能最强,语句功能最强,最方便灵活,使用最多,任何循环都可以用语句来实现最方便灵活,使用最多,任何循环都可以用语句来实现;其次其次是是while;do-while用的最少。用的最少。while和和do-while的循环变量初始化是在循环语句之前完的循环变量初始化是在循环语句之前完成,而成,而for语句循环变量的初始化是在语句循环变量的初始化是在for中的表达式中的表达式1中实中实现。现。上一页返回下一页任务任务5循环语句循环语句for循环中的

23、第一个和第三个表达式可以是逗号表达式,这是循环中的第一个和第三个表达式可以是逗号表达式,这是for语句的一个很有用的特性。它扩充了语句的一个很有用的特性。它扩充了for的作用范围。使的作用范围。使它有可能同时对若干参数它有可能同时对若干参数(如循环变量,重复计算参数等如循环变量,重复计算参数等)进进行初始化和修改等。行初始化和修改等。for和和while循环是先判断循环条件,后执行循环体循环是先判断循环条件,后执行循环体;而,而,do-while循环则是先执行一次循环体,然后才判断循环条循环则是先执行一次循环体,然后才判断循环条件。因此,后者不管在什么情况下,都至少要执行一次循环件。因此,后者

24、不管在什么情况下,都至少要执行一次循环体。体。上一页返回下一页任务任务5循环语句循环语句3.5.5 循环的嵌套循环的嵌套前面分绍了前面分绍了3种类型的循环,它们自己本身可以嵌套,如在种类型的循环,它们自己本身可以嵌套,如在for循环中包含另一个循环中包含另一个for循环。也可以互相嵌套,例如可以循环。也可以互相嵌套,例如可以在在for循环中包含一个循环中包含一个while循环或者循环或者do-while循环等。循环等。下面通过几个例子来分绍循环嵌套的概念和应用。下面通过几个例子来分绍循环嵌套的概念和应用。【例例3-8】求整数求整数3100中的素数。如果中的素数。如果n是一个大于等于是一个大于等

25、于2的整数,并且只有的整数,并且只有1和和n本身是它的因子,没有别的正因子,本身是它的因子,没有别的正因子,则称则称n是一个素数是一个素数(质数质数),即除,即除1和它本身之外不能被其他整和它本身之外不能被其他整数整除。为了检查某数是否是素数,采用的方法是,从数整除。为了检查某数是否是素数,采用的方法是,从i=2起不断增加起不断增加i,直到,直到n-l,逐个相除,只要有一个数能整除,逐个相除,只要有一个数能整除,就说明该数不是素数。就说明该数不是素数。【例例3-8】的流程图如的流程图如图图3-6所示。所示。上一页返回下一页任务任务5循环语句循环语句上一页返回下一页任务任务5循环语句循环语句上一

26、页返回任务任务6 break语句与语句与continue语句语句3.6.1 break语句语句在前面的学习中,我们已在在前面的学习中,我们已在switch语句中使用过语句中使用过break语语句,其作用是使流程跳出句,其作用是使流程跳出switch语句体。其实,语句体。其实,break还还常常使用在循环语句中,其作用是使流程跳出循环体,退出常常使用在循环语句中,其作用是使流程跳出循环体,退出循环。循环。1.使用格式使用格式break语句的使用形式为语句的使用形式为:break;返回下一页任务任务6 break语句与语句与continue语句语句其语义为跳出当前的其语义为跳出当前的switch语

27、句或循环语句。它对语句或循环语句。它对if-else语句不起作用。语句不起作用。break语句有两种用法,第一种用法是终止语句有两种用法,第一种用法是终止switch语句,这在前面已经提到了语句,这在前面已经提到了;第二种用法是,立即强第二种用法是,立即强制性地终止一个循环,下面分绍这种用法。制性地终止一个循环,下面分绍这种用法。当一个循环体内的当一个循环体内的break语句被执行时,循环立即中断,并语句被执行时,循环立即中断,并转向循环体外的下一条语句,例如,有时需要一些特定的条转向循环体外的下一条语句,例如,有时需要一些特定的条件来终止循环,如,件来终止循环,如,do-while循环的条件

28、是循环的条件是1,永远为真,永远为真,是一个无穷循环,若想终止此程序,可以用是一个无穷循环,若想终止此程序,可以用if语句和语句和break配合退出循环。配合退出循环。break语句对于减少循环次数、加快程序执语句对于减少循环次数、加快程序执行起着重要的作用。行起着重要的作用。上一页返回下一页任务任务6 break语句与语句与continue语句语句2.应用实例应用实例上一页返回下一页任务任务6 break语句与语句与continue语句语句3.用法说明用法说明有关有关break语句的说明如下。语句的说明如下。break后面不跟任何表达式或语句,使用简单方便,其形式后面不跟任何表达式或语句,使

29、用简单方便,其形式为为:break;break语句只用在语句只用在switch选择分支结构和循环结构中。选择分支结构和循环结构中。上一页返回下一页任务任务6 break语句与语句与continue语句语句3.6.2 continue语句语句continue语句是循环结构中的特殊语句,也可以用于控制语句是循环结构中的特殊语句,也可以用于控制循环的流程,但是与循环的流程,但是与break语句不同,程序执行到语句不同,程序执行到continue语句后仅仅结束本次循环,并不会结束整个循环。语句后仅仅结束本次循环,并不会结束整个循环。1.使用格式使用格式continue语句的使用形式为语句的使用形式为:

30、continue;其语义为结束本次循环,即跳过循环语句中的尚未执行的语其语义为结束本次循环,即跳过循环语句中的尚未执行的语句,接着进行循环条件的判定。句,接着进行循环条件的判定。continue语句只用在语句只用在for、while、do-while等循环体中,常与等循环体中,常与if语句一起使用,语句一起使用,用来加速循环。用来加速循环。上一页返回下一页任务任务6 break语句与语句与continue语句语句2.基本用法基本用法continue语句的作用是结束本次循环。程序执行到语句的作用是结束本次循环。程序执行到continue语句后的流程如下语句后的流程如下:跳过本次循环体中跳过本次循

31、环体中continue语句后余下尚未执行的语句。语句后余下尚未执行的语句。接着修改循环控制变量。接着修改循环控制变量。进行循环语句表达式的判断,若表达式的值为进行循环语句表达式的判断,若表达式的值为“真真”,则,则继续循环体的执行,若表达式的值为继续循环体的执行,若表达式的值为“假假”,则结束对循环,则结束对循环体的执行。体的执行。注意注意:执行执行continue语句后只结束本次循环并不一定结束整语句后只结束本次循环并不一定结束整个循环体的执行,是否结束对整个循环体的执行要由条件表个循环体的执行,是否结束对整个循环体的执行要由条件表达式的达式的“真真”与与“假假”来决定。来决定。上一页返回下

32、一页任务任务6 break语句与语句与continue语句语句3.应用实例应用实例下面通过一个实例说明下面通过一个实例说明continue语句的用法。语句的用法。例例3-10编写程序求整数编写程序求整数110中所有奇数的和。中所有奇数的和。上一页返回下一页任务任务6 break语句与语句与continue语句语句4.用法说明用法说明在使用在使用continue语句时注意以下向点。语句时注意以下向点。continue语句后面不跟任何表达式或语句,使用简单方便,语句后面不跟任何表达式或语句,使用简单方便,其形式为其形式为:continue;continue语句只能在循环结构中使用,使用范围比语句只

33、能在循环结构中使用,使用范围比break语句还窄。语句还窄。总结总结:通过对前面两个程序的学习和对比,可以得出以下结论通过对前面两个程序的学习和对比,可以得出以下结论:程序执行到程序执行到continue语句后只终止本次循环,程序会继续语句后只终止本次循环,程序会继续进行下进行下1次循环的判断,整个循环并不一定会终止。而程序执次循环的判断,整个循环并不一定会终止。而程序执行到行到break语句后将无条件地结束整个循环,程序转向循环语句后将无条件地结束整个循环,程序转向循环结构后的下结构后的下1条语句。条语句。上一页返回图图3-1 If语句结构流程图语句结构流程图(a)返回图图3-1 If语句结构流程图语句结构流程图(b)返回图图3-2 if-else if-else结构的流程图结构的流程图返回图图3-3 while语句执行流程图语句执行流程图返回图图3-4 do-while语句执行流程图语句执行流程图返回图图3-5 for语句流程图语句流程图返回图图3-6例例【3-8】流程图流程图返回

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

当前位置:首页 > 教育专区 > 高中资料

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

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