2022年C语言基础知识大全.docx

上传人:Che****ry 文档编号:27203089 上传时间:2022-07-23 格式:DOCX 页数:73 大小:488.18KB
返回 下载 相关 举报
2022年C语言基础知识大全.docx_第1页
第1页 / 共73页
2022年C语言基础知识大全.docx_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《2022年C语言基础知识大全.docx》由会员分享,可在线阅读,更多相关《2022年C语言基础知识大全.docx(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1. 语言变量声明和变量赋值1)基本数据类型在 C 语言中,仅有 4 种基本数据类型整型、 浮点型、指针和聚合类型 (如数组和结构等),全部其他的类型都是从这4 种基本类型的某种组合派生而来;整型 :整型家族包括字符、 短整型、整型和长整型,它们都分为有符号 (signed)和无符号( unsigned)两种版本;规定整数值相互之间大小的规章很简洁:长整 型至少应当和整型一样长,而整型至少应当和短整型一样长;浮点类型 :诸如 3.14159 和 2.3 1023这样的数值无法依据整数储备; 第一个 数为非整数

2、, 而其次个数远远超出了运算机整数所表达范畴,这样的数就可以用浮点数的形式储备;浮点数家族包括float、double 和 long double 类型;通常,这些类型分别供应单精度、双精度以及在某种扩展精度的机器上供应扩展精度;ANSI 标准仅仅规定 long double 至少和 double 一样长,而 double 至少和 float 一 样长;标准同时规定了一个最小范畴: 全部浮点类型至少能够容纳从 10-37到 1037 之间的任何值;指针 :变量的值储备于运算机内存中,每个变量都占据一个特定的位置;每个内存的位置都由地址唯独确定并应用,标识一样,指针学问地址的另一个名字;2)变量

3、声明形式就像一条街上的房子由他们的门牌号码只知道基本的数据类型是远远不够的,你仍应当知道怎样声明变量; 变量的基本形式是:说明符(一个或多个)声明表达式列表对于简洁的类型, 声明表达式列表就是被声明的标识符的基本类型;对于相对比较复杂的类型, 声明表达式列表的每个条目实际上是一个表达式,显示被声明的名字的可能用途;例如: int a, double b;该语句就是一条声明语句,其中a,b 就是变量名,该语句指明白变量a,b 是int 数据类型;全部变量在使用前都必需写在执行语句之前,也就是变量声明要与执行语句相分别,否就就是显现编译错误;3)变量命名C 语言中任何的变量名都是合法的标示符;下划

4、线组成的但不以数字开头的一系列字符;虽然所谓标识符就是由字母、 数字和 C 语言对标示符的长度没有限制,但是依据 ANSI 标准, C 编译器必需要识别前 31 个字符; C 语言是对大 小写敏锐的, 即 C 语言认为大写字母和小写字母的含义是不同的,因此 a1和 A1 是不同的标识符;到目前为止, 没有一种命名规章可以让全部的程序员赞同,程序设计教科书 一般都不指定命名规章; 常用的命名规章有匈牙利命名法和驼峰命名法等,在实 际操作中, 我们会实行相对简洁便利的命名规章,即“ 类型首字母”+“ _” +“ 变 量用途英文缩写” ,其中英文缩写首字母为大写, 例如 int i_Num ,cha

5、r c_Name5;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -4)变量赋值在一个变量声明中, 你可以给一个标量变量指定一个初始值,方法是在变量名后面跟一个等号(赋值号) ,后面就是你想要给变量的值;例如:int i_Num=10; char c_Name=” student ” ;上述语句声明 i_Num 为一个整数变量,其初始值为 个字符数组,其初始值为“student”;10,声明 c_Name 为

6、一在 C 语言中,全局变量和静态变量,假如没有赋初值,就默认初始值 int,float,char 分别为 0,0.0,0 ,除了全局变量和静态变量以外,其他变量假如没有赋初值,就默认初始值为内存中的垃圾内容,对于垃圾内容不能有任何假设;留意: 定义指针后,默认初始值不是 0,而是随机的一个值,故定义指针后,一定要初始化;在实际操作中, 变量的赋值都是以赋值语句的形式显现,赋值语句是由赋值表达式再加上分号构成的表达式语句;其一般形式为:变量 =表达式;在赋值语句的使用中需要留意以下几点:a 由于在赋值符“=” 右边的表达式也可以又是一个赋值表达式;下述形式 :变量 =(变量 =表达式);该语句是

7、成立的,从而形成了嵌套的情形;其绽开后的一般形式为:变量 =变量 = =表达式;例如: a=b=c=d=e=5;依据赋值运算符的右结合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b; b 留意在变量声明中给变量赋初值和赋值语句的区分 给变量赋初值是变量说明的一部分, 赋初值后的变量与其后的其他同类变量 之间仍必需用逗号隔开,而赋值语句就必需用分号隔开;例如: int a=5,b,c; c 在变量声明中,不答应连续给多个变量赋初值;如下述说明就是错误的:int a=b=c=5; 正确写法为: int a=5,b=5,c=5; 但是,赋值语句答应连续赋值;d留意赋值表达式和赋值语句的

8、区分;而赋赋值表达式是一种表达式, 它可以显现在任何答应表达式显现的地方,值语句就不能;下述语句是合法的:Ifx=y+70 z=x; 语句功能为如表达式 x=y+5 大于 0 就 z=x;但是,下述语句是错误的:Ifx=y+7;0 z=x; 由于 x=y+7;是语句,不能显现在表达式中;实例:#include “stdafx.h”void main细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -int i_T

9、mp,i_Type=8;float f_Tmp;double d_Tmp;char c_Tmp;d_Tmp=d_Tmp=f_Tmp=12;f_Tmp=i_Type;i_Tmp=i_Type+3;printfa=%d,b=%d,c=%.3f,d=%.6lf,i_Tmp,i_Type,f_Tmp,d_Tmp; 参考书目:1. 美Kebbeth A.reek.C 与指针 29-402. H.M.Deitel P.J.Deitel 等how to program Second Edition19-232. 算术运算符及使用方式C 语言供应了最基本的算术运算符,如下表:运算符 含义 举例 结果+ 加法运

10、算符 a+b a 和 b 的和- 减法运算符 a-b a 和 b 的差* 乘法运算符 a*b a 和 b 的乘积/ 除法运算符 a/b a 除 b 的商% 求余运算符 a%b a 除 b 的余数+ 自加运算符 a+,+a a 自加 1- 自减运算符 a-,-a a 自减 11、+、-、*、/都适用于浮点类型和整数类型,当两个操作数都为整数时进行整数运算,其余情形就进行 double 型运算;当 /除法运算符的两个操作数为整数时,结果为整数,舍去小数部分,例如 两个整型操作数的运算,结果为余数5/3 的结果为 1;%求余运算符只接受2、+、-:作用是使变量自加 1 或自减 1,例如 i+、+i,

11、都是使 i 的值加 1,但其执行的步骤是不同的;例如:int i=3,j;j=i+ ;/ i 的值为 4 ,j 的值为 3 int i=3,j;j=+i ;/i 的值为 4,j 的值为 4可见当变量在左侧时, 先进行赋值运算再进行自加 先进行自加 1 操作再进行赋值运算;1 操作,当变量在右侧时,3、在赋值运算符之前加上算术运算符既构成复合运算符,例如:a+=b,等价于 a=a+b;-=、*= 、/=也是如此;3. 位运算符及使用方式(、|、& 、)位运算符是用来对二进制位进行操作,如下表:细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共

12、40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -运算符 含义 右移 取反| 按位或& 按为与 按为异或:移位运算符,例如左移运算符:int i=3;i=i、 =、 大于= 大于或等于 小于3为关系表达式,大于号为关系运算符,当表达式成立时, “ a3” 的值为“ 真” ,当“a3” 不成立时, 第 4 页,共 40 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - -

13、 - - - -“ a3” 的值为“ 假” ;其中应当留意的是关系表达式的返回值为整型值,真时返回值为 1,表达式为假时返回值为 0;而不是布尔型; 表达式为5. 规律运算符及使用方式(& 、|、!)运算符 含义 举例 结果& 规律与 a&b a,b 都为真就结果为真,否就为假| 规律或 a|b a,b 至少有一个为真就结果为真,否就为假!规律非 .a 当 a 为真就结果为假,当 a 为假就结果为真其中应当留意规律或,例如 a|b,当 a 为真时, C 语言中直接跳过对 b 的判断,其返回值为“ 真”;当一个表达式包括几种运算符时,就以运算符的优先级对表达式进行运算,表达式的优先级如下:优先级

14、运算符类型说明1初等运算符、 、-、.2单目运算符!、+、-、*指针运算符) 、& 取地址运算符 3算术运算符先乘除后加减4关系运算符、=、 =、=、! = 5规律运算符& 、|6条件运算符三目运算符,例如?:7赋值运算符=8逗号运算符,6. 指针的概念与使用1 指针的定义指针就是变量的地址, 是一个常量; 定义指针的目的就是为了通过指针拜访内存单元; 在 C 语言中,答应用一个变量来存放指针, 这种变量称为指针变量;指针变量定义的一般形式为:2储备类型 数据类型* 指针变量名指针变量运算符1、取地址运算符: & 该运算符表示的是对 & 后面的变量进行取地址运算;例: int a;就 &a 表

15、示取变量 a 的地址,该表达式的值为变量 a 的首地址;2、指针运算符: *该运算符也称为“ 取内容运算符”,后面接一个指针变量;表示的是拜访该指针变量所指向的变量,即拜访指针所指向的储备空间中的数据;例:int a=7; int *p; p=&a;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -就 *p 表示指针变量p 指向变量a,即 *p 就是 a,所以 *p=7 ;一个指针变量 p 在程序中通常有如下表

16、示形式:p: 指针变量,它的内容是地址量;*p:指针所指向的变量,是指针所指向的内存空间中的数据;&p:指针变量所占储备空间的地址;【例 1】分析程序的运行结果 源程序如下:#include void Locate int i_a; int *pst_a; printfn 请输入 i_a 的值 :; scanf%d,&i_a; pst_a =&i_a; printfi_a 的值为: %dn,i_a; printfpst_a 的值为: %xn, pst_a; printf&i_a 的值为: %xn,&i_a; printf*pst_a 的值为: %dn,* pst_a; printf&pst_a

17、 的值为: %xn,& pst_a; printfn; 运行结果:请输入 i_a 的值 :3i_a 的值为: 3 pst_a 的值为: 12fe8c &i_a 的值为: 12fe8c *pst_a 的值为: 3 &pst_a 的值为: 12fe80 以上实例中, 12fe8c 是 pst_a的值,也就是 i_a 的地址; 12fe80 是 pst_a的地 址;两者有区分,不能混为一谈;3 地址与指针的概念指针可以有效地表示复杂的数据结构;动态安排内存;便利的使用字符串;有效而便利地使用数组;能直接处理内存地址;假如在程序中定义了一个变量, 在编译时就给这个变量安排内存单元;系统 依据程序中定义

18、的变量的类型,安排肯定长度的空间;例如,一般微机使用的 C系统为整形变量安排两个字节, 为实型变量安排4 个字节;内存区的每一个字节有一个编号,这就是“ 地址”,它相当于旅社中的房间号;在地址所标志的内存 单元中存放数据,这相当于旅社中各个房间中居住旅客一样;在程序中一般通过变量名对内存单元进行存取操作,这称作“ 直接拜访”,仍可以采纳 另一种“ 间接拜访” 方式,将变量的地址存放在另一个变量中;所 谓“ 指向” 就是通过地址来表达的,由于通过地址能找到所需的变量单元,我们可以说,地址“ 指向” 该变量单元,因此在C 语言中,将地址形象化的称为“ 指细心整理归纳 精选学习资料 - - - -

19、- - - - - - - - - - - 第 6 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -针” ;意思是通过它能找到以它为地址的内存单元;一个变量的地址成为该变量 的“ 指针” ;假如有一个变量特地用来存放另一个变量的地址,就称它为“ 指针 变量” ;4 变量的指针和指向变量的指针变量变量的指针就是变量的地址; 存放变量地址的变量是指针变量,用来指向另 一个变量; 为了表示指针变量和它指向的变量之间的关系,用“ * ” 符号表示“ 指 向” ;定义指针变量的一般形式为:5基类型*指针变量名;数

20、组与指针一个变量有地址, 一个数组包含如干元素, 每个数组元素都在内存中占有存 储单元,它们都有相应的地址;指针变量也可以指向数组元素;6 空间操作函数 malloc 、freeC 语言供应了两个函数, malloc 与 free,分别用于执行动态内存安排与释放;这些函数保护一个可用内存池;当一个程序另外需要一些内存时,它就调用 malloc 函数从内存池中提取一块合适的内存,并返回一个指向这块内存的指针;这块内存此时并没有以任何方式进行初始化,使用时需手动初始化;这两个函数的原型如下所示,它们都在头文件 void *mallloc (size_t size); Void *free(viod

21、* pointer );stdio.h 中声明;malloc 的参数就是需要安排的内存字节数; 假如内存池中的可用内存可以满 足这个需要, malloc 就返回一个指向被安排的内存块起始位置的指针,假如系统 无法向 malloc 供应更多的内存, malloc 就会返回一个 NULL 指针;free 的参数必需要么是NULL ,要么是一个从前从malloc 或其他空间申请函数返回的值;malloc 的一般用法 基类型 *= (基类型) *Malloc (数量 *sizeof(基类型);7 动态数组动态数组是指在声明时没有确定数组大小的数组,即忽视方括号中的下标;当使用时可用 malloc 语句

22、重新指出数组的大小;使用动态数组的优点是可以根 据用户需要, 有效利用储备空间; 动态数组的内存空间是从堆上安排的;是通过 执行代码而为其安排空间; 当程序执行到这些语句时, 才为其安排空间; 程序员 自己释放内存;遵循原就:申请的时候从外层往里层,逐层申请;释放的时候从里层往外层,逐层释放;细心整理归纳 精选学习资料 【例 2】:一维数组的动态开创与释放: 第 7 页,共 40 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -【例 3】:二维数组的动态开创

23、:7. 数组数组是构造类型, 是一组具有相同类型数据的有序集合;每个数据成为数组的元素,用一个统一的数组名和下标来唯独地确定数组中的元素;一维数组的声明方式为: 常量表达式 类型标识符是任一种基本数据类型或构造数据类型;数组名由用户自定义,表示储备空间的地址;常量表达式表示数组元素的个数,也是数组的长度;例: int a6; 表示一个整型、数组名为(2)一维数组的引用形式:下标法: 数组名 下标a、长度为 6 的一维数组;例如: ai; 或 pi ;a 为数组名, p 为指向数组的指针变量;注:C 语言中不能依次引用整个数组,只能逐个引用数组中的各个元素;下标就是被拜访的数组元素在所定义的数组

24、中的相对位置;下标为 0 表示的是数组细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -元素在数组的第一个位置上, 下标等于 1 表示的是数组元素在数组的其次个位置 上,依次类推;例如:int a10; a0=100;/正确 a10=100;/不正确,下标越界 例如:下标法:int main int a10; forint i=0;i10;i+ ai=2*i; forint i=0;i10;i+printf r

25、eturn 0;“ %dt ” ,ai; 指针法: * (a+i)或 *p+i ;a 是数组名, p 为指向数组的指针变量;例如:指针法:int mainint *p=a;int i; fori=0;i10;i+ ai=2*i; fori=0;i10;i+ printf “ %dt” ,* (p+i); return 0; 二维数组的声明方式为: 常量表达式 1 常量表达式 2 :二维数组与一维数组的区分在于多出 常量表达式 2;常量表达式 1 是第 一维,常称为行;常量表达式 2是其次维,也就是列;例:int a35; 表示一个 3 行 5 列的二维数组;数组元素的个数为:3*5=15 个;

26、二维数组的引用形式:下标法:数组名 下标 下标 注:二维数组在引用时和一维数组一样,只能逐个引用数组中的各个元 素;例如:sz_A56 下标可以是整数表达式,如sz_A8-5,2*3-1形式;sz_A8-52*3 -1;不要写成 sz_A2,3 、细心整理归纳 精选学习资料 留意:严格区分定义数组时用的sz_A56 和引用元素时用的sz_A56 第 9 页,共 40 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -的区分;前者 sz_A56 用来定义数组的维

27、数,后者 标,代表的是数组中的某一个元素;【例 2】分析程序的运行结果 源程序如下:#include void main int sz_Array6;/ 一维数组 int sz_DlArray35;/ 二维数组 int i_a; int i_dla; int i_dlb; /一维数组 for i_a=0;i_a6;i_a+ sz_Arrayi_a=i_a*2+2; printfn 输出一维数组元素为:n; fori_a=0;i_a6;i_a+ printf%dt,sz_Arrayi_a; /二维数组 fori_dla=0;i_dla3;i_dla+ fori_dlb=0;i_dlb5;i_dl

28、b+ sz_DlArrayi_dlai_dlb=i_dla+i_dlb; printfn 输出二维数组元素为:n; fori_dla=0;i_dla3;i_dla+ fori_dlb;i_dlb5;i_dlb+ printf%d ,sz_DlArrayi_dlai_dlb; printfn; 运行结果为:输出一维数组元素为:2 4 6 8 10 12输出二维数组元素为:0 1 2 3 4sz_A56 的 5 和 6 是下细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 40 页 - - - - - - - - - 名师归纳总结 精品学习资

29、料 - - - - - - - - - - - - - - -1 2 3 4 5 2 3 4 5 63 4 5 6 74 5 6 7 8指针法:可以通过行指针来引用二维数组元素;定义行指针变量:int *p3, 指针 p 是指向一个由3 个元素所组成的整型数组指针;例如:void main int a34=1,2,3,4,5,6,7,8,9,10,11,12 int *p4=a; forint i=0;i3;i+ forint j=0;i4;j+ printf“ %dt ” ,pij; printf“ n ” ; 参考书目:1.C+语言程序设计教程与试验其次版 温秀梅丁学钧李建华主编2.C/C

30、+程序设计教程张世民主编8. 字符数组1 字符数组的定义与赋值字符数组是一串字符的集合,其数组元素为字符型;字符数组的赋值形式:char 数组名 常量表达式 = “ 字符串” ;或 char 数组名 常量表达式 = “ 字符串” ;d, y, ;例: char sz_A5=s, t , u, 定义数组 sz_A,包含 5 个元素,其在内存中的存放情形为:sz_A0sz_A1 sz_A2 sz_A3 sz_A4;sz_A4 =ystudy就各元素赋值如下:; sz_A2= ; sz_A3= sz_A0= ; sz_A1= 假如花括号中的字符个数大于数组长度,编译系统就会报错, 假如花括号中的字符

31、个数小于数组长度,其余元素就由系统自动定义为空字符,即0 ;0 作为字符串的终止标志,因此在定义数组长度时,应在字符串原有的长度上加 1,为字符串终止标志预留空间;例: char sz_A6=s, t , u, d, y, ;定义数组 sz_A,包含 6 个元素,其在内存中的存放情形为:细心整理归纳 精选学习资料 sz_A0sz_A1 sz_A2 sz_A3 sz_A4 sz_A5 第 11 页,共 40 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -st

32、udy0就各元素赋值如下:sz_A0= ; sz_A1= ;t sz_A2= usz_A3= ; sz_A4= ;sz_A5= 0 【例 3】分析程序的运行结果 源程序如下:#include void main char sz_A10=work hard; int i; fori=0;i9;i+ printf%c,sz_Ai; 运行结果:work hard 以上实例中, 逐个显示字符数组的各个元素, 但需留意的是在定义字符数组的下标时,至少比后面的字符串长度大 长度;2 字符串操作函数:1;其中,字符串长度应包括其中空格的a字符串复制函数 strcpy1 中去;格式: strcpy(字符数组

33、1,字符数组 2)功能:是将字符数组2 中字符串复制到字符数组注:字符数组 1 的长度必需大于字符数组2,从而能够容纳复制的字符数组2 的字符串;字符数组 1 必需写成数组名形式, 字符数组 2 既可以是字符数组名,也可以是字符串;字符数组之间不能相互赋值;例如:char sz_str110,sz_str26=work hard;Strcpysz_str1,sz_str2;printf%sn,sz_str1;运行结果:work hardb 字符串连接函数 strcat strcat字符数组 1,字符数组 2 功能: 将字符数组 1 和字符数组 2 中的字符串连接起来 ,字符数组 2 中的字 符

34、串 2 接到字符数组 1 中的字符串后面;注:字符数组 1 的长度必需足够大, 能够同时容纳字符数组 1 中的字符串和 字符数组 2 中的字符串;字符数组名 2 中的字符串连接到字符数组1 的字符串时,删除字符数组1中的字符串后面的标志0,只在新串的最终保留“0” ;例如:char sz_str110=work,sz_str26=hard;strcatsz_str1,sz_str2;printf%sn,sz_str1;运行结果:细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 40 页 - - - - - - - - - 名师归纳总结 精

35、品学习资料 - - - - - - - - - - - - - - -workhard c 字符串比较函数 strcmp strcmp(字符数组 1,字符数组 2)功能:比较字符数组 1 和字符数组 2 中字符串, 通过函数返回值得出比较结 果;如字符数组 1 中的字符串 如字符数组 1 中的字符串 ,函数返回值 如字符数组 1 中的字符串 ,函数返回值 0;如字符数组 1 中的字符串 =如字符数组 1 中的字符串 ,函数返回值 =0;注:比较规章:比较过程中,依据从左到右的次序,逐个比较字符的 ASCII 码值,直到遇到不相同的字符或“0” ,即终止比较;例如:char sz_str110=

36、work,sz_str210=hard; if strcmpsz_str1,sz_str20 printf 大于 n; if strcmpsz_str1,sz_str20 printf 小于 n; if strcmpsz_str1,sz_str2=0 printf 相等 n; 运行结果:大于dsprintfstrlen;计sprintf(s, ” %s%d%c” , ” text ” ,1, char 将输出结果写入数组S 中;其函数返回值为字符串长度,相当于算长度时不运算“0” ,而 sizeof 运算时是加上“0” 的;例如:char sz_str; sprintfsz_str,%s%d%c,work,6,hard; i_Tmp=sprintfsz_str,%s%d%c,work,6,hard; printfsprintf 结果输出: %sn,sz_str; printfsprintf 函数返回值输出:%dn,i_Tmp; e sscanf sscanf(s, ” %d%f%s” ,&a,&b,&c);从一个字符串中读进与指定格式相同的数据;其返回值为读入有效数据的个数;从数组 S 中,以固定格式向 a,b,c输入, sscanf不

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

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

本站为文档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