第5章 循环结构程序设计(第6,7,8次课).ppt

上传人:hyn****60 文档编号:70985984 上传时间:2023-01-31 格式:PPT 页数:79 大小:989KB
返回 下载 相关 举报
第5章 循环结构程序设计(第6,7,8次课).ppt_第1页
第1页 / 共79页
第5章 循环结构程序设计(第6,7,8次课).ppt_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《第5章 循环结构程序设计(第6,7,8次课).ppt》由会员分享,可在线阅读,更多相关《第5章 循环结构程序设计(第6,7,8次课).ppt(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第5 5章章循环结构程序设计循环结构程序设计5.1 为什么需要循环控制为什么需要循环控制5.2 用用while语句实现循环语句实现循环5.3 用用dowhile语句实现循环语句实现循环5.4 用用for语句实现循环语句实现循环5.5 循环的嵌套循环的嵌套5.6 几种循环的比较几种循环的比较5.7 break语句和语句和continue语句语句5.8 程序举例程序举例【例例】求求1+2+3+4+5。最直观的方法:最直观的方法:步骤步骤1:先求:先求1+2,得到结果,得到结果3。步骤步骤2:将步骤:将步骤1得到的和得到的和3加上加上3,得到结果,得到结果6。步骤步骤3:将:将6再加上再加上4,得

2、,得10。步骤步骤4:将:将10再加上再加上5,得,得15。简单算法举例简单算法举例这样的算法虽然正确,但太繁,数目太大时也不现实,无这样的算法虽然正确,但太繁,数目太大时也不现实,无法用程序实现。法用程序实现。5.1 概概 述述【观察观察】求求1+2+3+4+5。被加数被加数加数加数初始值:初始值:1以后:以后:上一次的和上一次的和初始值:初始值:有规律地递增,即有规律地递增,即+12以后:以后:规规律律:pip=p+i;i+;【例例】求求1+2+3+4+5S1:使使 p=1S2:使使 i=2S3:使使 p+i,和和仍然放在在变量仍然放在在变量p中,中,即:即:p=p+iS4:使使 i 的值

3、的值+1,即,即i=i+1或或i+S5:判断判断i5,若成立,返回重新执行步骤若成立,返回重新执行步骤S3以及其以及其后的后的S4和和S5(循环操作);(循环操作);若不成立,算法结束。此时的若不成立,算法结束。此时的p值为值为 值。值。改进的方法:改进的方法:5.2 用用while语句实现循环语句实现循环一般形式:一般形式:while(表达式表达式)循环体语句循环体语句组组;执行流程:执行流程:表达式表达式循环体语句组循环体语句组假假(0)(0)真真(非非0)0)#include int main()int i,s;i=1;s=0;while(i=5)s=s+i;i+;printf(resu

4、lt=%d,s);return 0;【例例】用用while结构实现结构实现 求求1+2+3+4+5/*循环变量初始化值循环变量初始化值*/*循环条件循环条件*/*循环体语句组循环体语句组*/#include int main()int i,p;i=2;p=1;while(i=5)p=p*i;i=i+1;printf(result=%d,p);return 0;【练习练习】仿照上例写出求仿照上例写出求125的值的值例例5.1 用用while循环求循环求1100的和的和练习一下练习一下例例5.1 用用while循环求循环求1100的和的和#include int main()int i,sum;p

5、rintf(sum=%d,i=%dn,sum,i);return 0;程序运行结果:程序运行结果:sum=,i=sum=0;i=;while()sum+=i;i+;1i=100sum=5050,i=101思考思考:(1)循环次数?)循环次数?(2)若)若i=0,会不会影响会不会影响最后的运行结果?最后的运行结果?100次次不会不会求阶乘求阶乘 n!求求1n的累加和的累加和求求p=1234n(n10)即:即:s=1+2+3+4+n初始值:初始值:p=1;i=1;s=s+i;i+;p=p*i;i+;初始值:初始值:s=0;i=1;思考思考即:即:s=1+3+5+n求求1n的奇数累加和的奇数累加和s

6、=s+i;i=i+2;s=0;i=1;初始值:初始值:思考思考即:即:s=2+4+6+n求求1n的偶数累加和的偶数累加和s=s+i;i=i+2;s=0;i=2;初始值:初始值:思考思考求求1n的阶乘的和的阶乘的和即:即:s=1!+2!+n!(1)做法)做法1:s=1!+2!+n!=1!+1!*2+2!*3+(n-1)!*n初始值:初始值:s=0;i=1;每一项每一项=上一项上一项*i (i=2n)#include void main()int i=1,s=0,p=1;while(i=5)/求求1!+2!+3!+4!+5!printf(sum=%d,i=%dn,sum,i);p=p*i;s=s+

7、p;i+;思考思考求求1n的阶乘的和的阶乘的和即:即:s=1!+2!+n!(1)做法)做法2:双重循环双重循环s=1!+2!+n!=1!+1!*2+2!*3+(n-1)!*n初始值:初始值:s=0;i=1;每一项每一项=上一项上一项*i (i=2n)#include void main()int i=1,s=0,p,j;while(i=5)/求求1!+2!+3!+4!+5!j=1;p=1;while(j=i)/求求i!p=p*j;j+;s=s+p;printf(sum=%d,i=%dn,sum,i);j=1;p=1;while(j=i)p=p*j;j+;#include void main()

8、int i=1,s=0,p,j;while(i=5)/求求1!+2!+3!+4!+5!j=1;p=1;while(j=i)/求求i!p=p*j;j+;s=s+p;i+;printf(sum=%d,i=%dn,sum,i);5.3 用用dowhile语句实现循环语句实现循环一般形式:一般形式:do 循环体语句循环体语句组组;while(表达式表达式);执行流程:执行流程:循环体语句组循环体语句组;表达式表达式假假(0)(0)真真(非非0)0)有分号有分号例例5.2 用用dowhile循环求循环求1100的和的和#include void main()int i,sum;i=1;sum=0;do

9、sum=sum+i;i+;while(i=100)printf(sum=%d,i=%d,sum,i);程序运行结果:程序运行结果:sum=,i=;sum=5050,i=101例例 用用dowhile循环求循环求15的乘积的乘积练习一下练习一下【例例】用用dowhile结构实现结构实现 求求12345/*循环变量初始化值循环变量初始化值*/#include void main()int i,p;i=2;p=1;while(i=5)p=p*i;i=i+1;printf(result=%d,p);/while结构结构/*循环条件循环条件*/*循环体语句组循环体语句组*/#include void m

10、ain()int i,p;i=2;p=1;do p=p*i;i=i+1;while(i=5)printf(result=%d,p);/dowhile结构结构;while和和dowhile比较比较#include void main()int i,sum=0;i=1;do sum+=i;i+;while(i=100);printf(%d,sum);#include void main()int i,sum=0;i=1;while(i=100)sum+=i;i+;printf(%d,sum);#include void main()int i,sum=0;scanf(%d,&i);do sum+=

11、i;i+;while(i=10);printf(%d,sum);#include void main()int i,sum=0;scanf(%d,&i);while(i=10)sum+=i;i+;printf(%d,sum);继续继续比较比较转下页两个程序先后两次分别输入两个程序先后两次分别输入1和和11,查看结果。,查看结果。第一次运行:1再运行一次:11sum=55sum=11第一次运行:1再运行一次:11sum=55sum=0While结构结构运行情况:运行情况:dowhile结构结构运行情况:运行情况:上一页结论:结论:while 和和dowhile结构何时相同?结构何时相同?何时不同

12、?何时不同?P119 循环结构的三个基本要素循环结构的三个基本要素F循环变量初始化,循环变量初始化,如:如:i=1;s=0;F循环条件,循环条件,如:如:i=100F循环趋向结束语句,循环趋向结束语句,如:如:i+;一般形式:一般形式:5.4 用用for语句实现循环语句实现循环for(expr1;expr2;expr3)循环体语句循环体语句组组;/end of for假假(0)(0)expr2expr2循环体语句组循环体语句组;真真(非非0)0)expr1expr1expr3expr3expr1:在循环体在循环体外外外外先执行先执行(作用作用:循环变量赋初值循环变量赋初值,只执行只执行1次次)

13、expr2:作为循环条件表达式作为循环条件表达式expr3:作为整个循环过程的最后作为整个循环过程的最后一条语句自动运行。一条语句自动运行。(作用作用:修改循环变量的值修改循环变量的值)执行流程:执行流程:for(expr1;expr2;expr3)循环体语句循环体语句组组;图图图图6-66-6while()循环体语句;循环体语句;for(expr1;expr2;expr3)循环体语句;循环体语句;do 循环体语句;循环体语句;while();expr1;expr2expr3;expr1;expr2expr3;#include void main()int i,sum=0;i=1;while(

14、i=100)sum+=i;i+;printf(%d,sum);已知用已知用while结构结构求求“1100的和的和”请改为请改为for结构实现结构实现to student#include void main()int i,s=0;printf(%dn,s);#include void main()int i,s=0;i=1;while(i=100)s+=i;i+;printf(%dn,s);对比用对比用while结构和结构和for结构结构求求“1100的和的和”for(;)i=1 i=100 i+s+=i;#include void main()int i,s=0;printf(%dn,s);

15、#include void main()int i,s=0;i=1;while(i=100)s+=i;i+;printf(%dn,s);对比用对比用while结构和结构和for结构结构求求“1100的和的和”for(;)i=1 i=100i+s+=i;练习:练习:for循环求表达式的值循环求表达式的值f=1+1/3+1/5+1/9to student练习:练习:for循环求表达式的值循环求表达式的值f=1+1/3+1/5+1/9#include void main()/for循环循环 int i;float f=0;for(;);printf(%fn,f);i=1 i=9 i=i+2f=f+1

16、.0/i关于关于for循环的说明:循环的说明:P121(1)expr1可以省略,但是其后的分号不能省略。如:可以省略,但是其后的分号不能省略。如:for(i=1;i=100;i+)sum+=i;i=1;for(;i=100;i+)sum+=i;等价于等价于关于关于for循环的说明:循环的说明:(2)若若expr2省略,会导致省略,会导致死循环死循环。如:。如:for(i=1;i+)sum+=i;等价于等价于i=1;while(1)sum+=i;i+;所以,从功能上讲:所以,从功能上讲:expr2不能省略不能省略(3)expr3可以省略,但是其前的分号不能省略。如:可以省略,但是其前的分号不能省

17、略。如:for(i=1;i=100;)sum+=i;i+;关于关于for循环的说明:循环的说明:for(i=1;i=100;i+)sum+=i;等价于等价于(4)可以同时省略可以同时省略expr1和和expr3。如:求。如:求1100的和的和i=1;for(;i=100;)sum+=i;i+;关于关于for循环的说明:循环的说明:for(i=1;i=100;i+)sum+=i;等价于等价于(4)可以同时省略可以同时省略expr1,expr2和和expr3。如:。如:while(1)printf(“%dn”,i);关于关于for循环的说明:循环的说明:for(;)printf(“%dn”,i);

18、等价于等价于(5)expr1,expr2,expr3也可以包含其他功能的表达式。也可以包含其他功能的表达式。关于关于for循环的说明:循环的说明:/求求1100的和的和i=1;for(s=0;i=100;i+)s=s+i;/求求1100的和的和for(s=0,i=1;i=100;s=s+i,i+);(6)expr1和和 expr3可以是一个简单的表达式,也可以是可以是一个简单的表达式,也可以是逗号表达式。逗号表达式。(7)C99允许在允许在for语句的语句的expr1中定义中定义变量并赋初值变量并赋初值。关于关于for循环的说明:循环的说明:/求求1100的和的和s=0;for(int i=1

19、;i=100;i+)s=s+i;expr2一般是一般是循环条件表达式循环条件表达式,也可以包含其他功能的表达式。,也可以包含其他功能的表达式。#include void main()char ch;printf(输入一串字符,回车键结束:输入一串字符,回车键结束:);ch=getchar();for(;ch!=n;)printf(%cn,ch);ch=getchar();在获取值的同时进行判断在获取值的同时进行判断for(;(ch=getchar()!=n;)printf(%cn,ch);while的的循环条件中也可以包含其他表达式循环条件中也可以包含其他表达式#include void ma

20、in()char ch;printf(输入一串字符,回车键结束:输入一串字符,回车键结束:);for(;(ch=getchar()!=n;)printf(%cn,ch);在获取值的同时进行判断while(ch=getchar()!=n)while()循环体语句;循环体语句;for(expr1;expr2;expr3)循环体语句;循环体语句;do 循环体语句;循环体语句;while();expr1;expr2expr3;expr1;expr2expr3;三种循环结构三种循环结构三要素:三要素:循环变量初始化;循环变量初始化;循环条件;循环条件;循环变量修改语句;循环变量修改语句;程序填空:程序填

21、空:用用for循环求循环求“1100的和的和”#include void main()int i,sum;for(;i=100;i+)sum+=i;printf(%dn,sum);sum=0i=1,for循环格式的灵活运用循环格式的灵活运用#include void main()int i,sum;for(sum=0,i=1;i=100;)printf(%dn,sum);程序填空:程序填空:用用for循环求循环求“1100的和的和”;屏幕输出结果:屏幕输出结果:sum+=i,i+for循环格式的灵活运用循环格式的灵活运用#include void main()int i,sum;for(sum

22、=0,i=1;i=100;)printf(%dn,sum);i+程序填空:程序填空:用用for循环求循环求“1100的和的和”;sum+=i,屏幕输出结果:屏幕输出结果:for循环格式的灵活运用循环格式的灵活运用5.5 循环的嵌套循环的嵌套定义:定义:一个循环一个循环体内体内又包含另一个又包含另一个完整的完整的循环结构。循环结构。一般形式一般形式:while(条件表达式条件表达式)循环体语句组;循环体语句组;do 循环体语句组;循环体语句组;while(条件表达式条件表达式);外层外层内层内层for(expr1;expr2;expr3)循环体语句组;循环体语句组;while(条件表达式条件表达

23、式)循环体语句组;循环体语句组;执行过程执行过程:执行一次外层循环时:执行一次外层循环时:内层循环要执行到条件内层循环要执行到条件不满足不满足时时(内层循环是多个小循环,外层循环是一个大循环内层循环是多个小循环,外层循环是一个大循环)基本原则:基本原则:1、外层循环的、外层循环的“变量初始化变量初始化”在在外层循环之前外层循环之前;2、内层循环的、内层循环的“变量初始化变量初始化”在外层循环之内(适当位置)在外层循环之内(适当位置)内层循环之前内层循环之前;内层循环可以尽量使用内层循环可以尽量使用for结构结构外层:外层:for循环循环内层:内层:while循环循环用双重循环编程实现:用双重循

24、环编程实现:求求110的阶乘和。的阶乘和。#include void main()int i,j;long s,p;/s存放和值,存放和值,p存放阶乘存放阶乘 /i外层循环变量,外层循环变量,j内层循环变量内层循环变量 for(s=0,i=1;i=10;i+)j=1;p=1;while(j=i)p=p*j;j+;s=s+p;printf(result=%ld,s);to student#include void main()int i,j;long s,p;/s存放和值,存放和值,p存放阶乘存放阶乘 /i外层循环变量,外层循环变量,j内层循环变量内层循环变量 for(s=0,i=1;i=10;

25、i+)for(j=1,p=1;j=i;j+)p=p*j;s=s+p;printf(result=%ld,s);to student练习:练习:输出以下内容输出以下内容用双重循环输出用双重循环输出10行星号,每行行星号,每行20个星号个星号*.*to student#include void main()int i,j;/i 外层循环控制行数;外层循环控制行数;j内层循环控制个数内层循环控制个数 for(;)for(;)printf(*);/外层外层i循环结束循环结束/该语句的位置该语句的位置i=1 i=10 i+j=1 j=20 j+printf(n);外层循环外层循环练习:练习:输出以下内容

26、输出以下内容*to student#include void main()int i,j;/i 外层循环控制行数;外层循环控制行数;j内层循环控制个数内层循环控制个数 for(;)for(;)printf(*);/外层外层i循环结束循环结束/该语句的位置该语句的位置i=1 i=5i+j=1 j=ij+printf(n);外层循环外层循环进入下一个环节的学习进入下一个环节的学习break;continue;5.7 break语句和语句和continue语句语句作用:作用:从循环体内跳出循环体外,从循环体内跳出循环体外,强制性提前结束强制性提前结束循环。循环。break语句语句一般形式:一般形式:

27、break;特点:特点:通常与通常与if语句搭配使用语句搭配使用;只能用于只能用于循环结构循环结构和和switch结构。结构。不能用于其他语句中不能用于其他语句中while(循环条件表达式循环条件表达式)if(表达式表达式x)break;break执行示意执行示意for(表达式表达式1;表达式表达式2;表达式表达式3)if(表达式表达式x)break;作用:作用:提前提前结束本次循环结束本次循环,判断,判断是否成立。是否成立。continue语句语句一般形式:一般形式:continue;特点:特点:通常与通常与if语句搭配使用语句搭配使用;与与break的区别:的区别:不是终止不是终止整个循环

28、整个循环的执行,只是的执行,只是提前结提前结束本次循环束本次循环;while(循环条件表达式循环条件表达式)if(表达式表达式y)continue;continue执行示意执行示意for(表达式表达式1;表达式表达式2;表达式表达式3)if(表达式表达式y)continue;本节内容:本节内容:break语句和语句和continue语句语句双重循环双重循环举例举例(例例5.5 5.6)#includeint main()int i,j,n=0;for(i=1;i=4;i+)for(j=1;j=5;j+,n+)if(n%5=0)printf(n);if(i=3&j=1)break;printf(

29、%dt,i*j);printf(n);return 0;continue;学习与循环有关的算法学习与循环有关的算法掌握循环程序的编写和应用掌握循环程序的编写和应用5.8 循环程序举例循环程序举例例例5.7 求求 的近似值:的近似值:#include#include void main()int s;/s代表每项的符号代表每项的符号 float n,t,pi;/t:每一项的值每一项的值;pi累加累加;n每项分母每项分母 t=1;pi=0;n=1.0;s=1;while(fabs(t)1e-6)pi=pi+t;n=n+2;/求下一项的分母求下一项的分母 s=-s;/求下一项的符号求下一项的符号 t

30、=s/n;/求下一项求下一项pi=pi*4;printf(pi=%10.6fn,pi);/4=1-1/3+1/5-1/7+直到某一项的绝对值小于直到某一项的绝对值小于10-6为止。为止。例例5.8 求求Fibonacci数列的前数列的前40个数。个数。该数列有如该数列有如下特点:第下特点:第1、2两个数为两个数为1、1。从第。从第3个数开个数开始,该数是其前面两个数之和。即:始,该数是其前面两个数之和。即:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n=3)古典数学问题:古典数学问题:有一对兔子,从出生后第有一对兔子,从出生后第3个月起每个月个月起每个月都生一对兔子。小兔子长

31、到第都生一对兔子。小兔子长到第3个月后每个月又生一对兔个月后每个月又生一对兔子。假设所有兔子都不死,问每个月兔子总数为多少对?子。假设所有兔子都不死,问每个月兔子总数为多少对?#include void main()long int f1,f2,f3;/f1和和f2存放数列两项的值存放数列两项的值 int i;/i是循环控制变量是循环控制变量 f1=1;f2=1;printf(%12ld%12ld,f1,f2);for(i=1;i=40;i+)f3=f1+f2;printf(%12ld,f3);f1=f2;f2=f3;另解另解#include void main()long int f1,f2

32、;/f1和和f2存放数列两项的值存放数列两项的值 int i;/i是循环控制变量是循环控制变量 f1=1;f2=1;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);/每行输出每行输出4项项 f1=f1+f2;f2=f2+f1;例例5.10求求100200之间的所有素数。之间的所有素数。#include#include void main()int m,k,i,n=0;/n是计数器是计数器;m和和i分别是外、内层循环控制变量分别是外、内层循环控制变量 for(m=101;m=200;m=m+2)k=sqrt(m);for(i

33、=2;i=k+1)printf(%d,m);n=n+1;if(n%10=0)printf(n);/换行换行 printf(n);例例5.11 译密码。为使电文保密,往往按一定规律将其转换成译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如,本题按密码,收报人再按约定的规律将其译回原文。例如,本题按以下规律将电文变成密码:以下规律将电文变成密码:(1)将字母)将字母A变成字母变成字母E,a变成变成e,即:变成其后的第,即:变成其后的第4个个字母;字母;(2)W变成变成A,X变成变成B,Y变成变成C,Z变成变成D;(3)w变成变成a,x变成变成b,y变成变成

34、c,z变成变成d;(4)电文中若出现非字母字符则不变。)电文中若出现非字母字符则不变。假设:假设:c=getchar();if(c=a&c=A&c=w&c=W&c=Z)c=c-22;putchar(c);#include void main()char c;while(c=getchar()!=n)/循环输入一串字符,回车符结束循环输入一串字符,回车符结束 if(c=a&c=A&c=w&c=W&c=Z)c=c-22;printf(%c,c);/或或putchar(c);printf(n);#include void main()char c;while(c=getchar()!=n)if(c=

35、a&c=A&cZ&cz)c=c-26;printf(%c,c);printf(n);cZ|cz输入两个正整数输入两个正整数m和和n,求最大公约数和最小公倍数,求最大公约数和最小公倍数求最大公约数主要有两种方法:求最大公约数主要有两种方法:*定义法定义法*辗转相除法(辗转相除法(扩展版扩展版)定义法的基本原理定义法的基本原理最大公约数最大公约数(greatest common divisor GCD):):m和和n的共有因子中最大的一个(如的共有因子中最大的一个(如12和和8的的GCD为为4)(GCD )如:如:12和和5的的GCD为为1,12和和4的的GCD为为4。最小公倍数最小公倍数(lea

36、se common multiple LCM):):m和和n的共有倍数中最小的一个(如的共有倍数中最小的一个(如12和和8的的LCM为为24)(LCM )如:如:12和和5的的LCM为为60,12和和4的的LCM为为12。m和和n中的较小者中的较小者m和和n中的较大者中的较大者1m*n#include /定义法求定义法求GCD和和LCMvoid main()int n,m,x,i;printf(请输入请输入不等的两个正整数不等的两个正整数n,m:);scanf(%d,%d,&n,&m);if(n=1;i-)if(n%i=0&m%i=0)break;printf(%d和和%d的最大公约数为的最大

37、公约数为:%dn,n,m,i);if(nm)x=n;/x为为n和和m的较大数的较大数 else x=m;for(i=x;i=n*m;i+)if(i%n=0&i%m=0)break;printf(%d和和%d的最小公倍数为的最小公倍数为:%dn,n,m,i);#include /练习练习void main()int n,m,x,i;/函数声明函数声明 printf(请输入请输入不等的两个正整数不等的两个正整数n,m:);scanf(%d,%d,&n,&m);x=lcm(n,m);y=gcd(n,m);/函数调用函数调用 printf(%d和和%d的最小公倍数为的最小公倍数为:%dn,n,m,x)

38、;printf(%d和和%d的最大公约数为的最大公约数为:%dn,n,m,y);to student辗转相除法辗转相除法求求“最大公约数最大公约数GCD”的基本思路的基本思路(1)确定)确定n和和m的大小关系,如:的大小关系,如:nm(2)求大数除以小数的余数,如:)求大数除以小数的余数,如:r=n%m2.1若若r=0,则本次,则本次除数除数m即为即为GCD2.2若若r0,则大数等于原来的小数、,则大数等于原来的小数、小数等于原来的余数,继续求余数。即:小数等于原来的余数,继续求余数。即:n=m;m=r;r=n%m;#include void main()int p,r,n,m,temp;printf(请输入不等的两个正整数请输入不等的两个正整数n,m:);scanf(%d,%d,&n,&m);if(mn)temp=m;m=n;n=temp;p=n*m;while(r=m%n)!=0)m=n;n=r;printf(最大公约数为最大公约数为:%dn,n);printf(最小公倍数为最小公倍数为:%dn,p/n);下课下课

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com