ImageVerifierCode 换一换
格式:DOC , 页数:47 ,大小:293.50KB ,
资源ID:11528585      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-11528585.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计.doc)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计.doc

1、C语言程序设计第1章 基本概念41.1 C语言的产生及发展史41.2 C语言特点6C语言及其程序的基本形式6第2章 数据类型、运算符与表达式72.1 基本数据类型72.2 常量与变量82.3 运算符102.4 表达式112.5 逗号运算符与逗号表达式12第三章 顺序结构143.2 数据输出143.2.1 printf函数的使用143.3 数据输入173.4 复合语句193.4.1 复合语句193.4.2 空语句203.5 程序举例20第4章 选择结构214.1 关系运算与逻辑运算214.1.1 关系运算214.1.2 逻辑运算214.2 if语句224.3 条件表达式254.4 switch选

2、择结构与break语句26第五章 循环结构285.1 while 循环285.2 do while 循环295.3 for语句和for语句构成的循环305.4 循环的嵌套325.5 break 与 continue 在循环中的应用33第六章 字符型数据356.1 字符型常量356.1.1 字符型常量356.1.2 转义字符数据的写法356.1.4 可对字符量进行运算366.2 字符型变量366.3 字符的输入与输出366.3.1 用printf与scanf作输出与读取366.3.2 用putchar 与 getchar作字符的输出与读取37第七章 函数397.1 库函数397.2 自定义函数3

3、97.2.1 函数的书写方法407.2.2 函数的返回值407.3 函数的调用417.4 函数的说明427.5 调用函数与被调用函数之间的数据传递45第八章 地址与指针488.1 变量的地址与指针488.2 指针变量的定义498.3 指针变量赋值498.4 对指针变量操作498.5 移动指针508.6 函数之间的地址传递518.7 返回地址的函数叫做指针函数51第九章 数组529.1 一维数的定义与引用529.2 一维数组的访问529.3 数组的赋值529.5 一维数组与地址539.5 二维数组的定义和二维数组元素的引用579.5.1 二维数组的定义579.5.2 二维数组的访问589.5.3

4、 二维数组在定义可以赋值589.5.4 可以通过赋值,确定行数589.6 二维数组与指针599.6.1、二维数组实际上是由一维数组构成:599.6.2 二维数组名也是二维数组的首地址599.7 二维数组与函数60第十章 字符串6410.1 用一维数组存放字符串6410.1.1 通过赋初值给一个字符数组赋成字符串6510.1.2在程序执行过程中给一维字符数组赋值6610.2 使指针指向一个字符串6610.2.1 可通过赋初值,指一个指针指向字符串6610.2.2 通过赋值运算使指针指向一个字符串6610.3 字符串的输入与输出6610.3.1 输入输出字符串的必要条件6610.3.2 用格式说明

5、符%s进行整串的输入与输出6610.3.3 用gets和puts函数对字符串进行输入与输出6610.4 字符串数组6710.5 用于字符串处理的函数67第十一章 递归函数70第十二章 C语言中变量的作用域与变量的存储类型7012.1 局部变量7012.2全局变量7112.3 局部静态变量71第十三章 编译预处理和动态存储分配7213.1宏替换7213.2 动态存储分配7313.2.1 malloc 函数与 free 函数73第十四章 结构体与共用体7414.1 用typedef说明一个类型7414.2 结构体类型7414.2.1 结构体类型声明的格式:7514.2.2 结构体型的数组、变量、指

6、针的定义7514.2.3 结构体变量、数组的赋值7614.2.4 引用结构体变量中的数据7714.2.5 对结构体成员赋值7714.2.6 结构体函数之间数据传递7814.3 链表81第1章 基本概念本章主要内容 明确C语言的产生及发展史 了解C语言特点 掌握C语言的表述环境 明确C语言及其程序的基本形式1.1 C语言的产生及发展史C语言属于ALGOL语言族系, 产生于1972年. 是编程者设计的一种结构化程序设计语言. 它首先是为了编写PDP-11型计算机上的UNIX操作系统而产生出来, 但后来发展成为一种独立的程序设计语言, 并广泛地应用在大型, 小型,微型计算机上.1967年英国剑桥大学

7、的Matin Richards对CPL语言做了简化,推出了BCPL语言。1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言,并用B语言写了第一个UNIX操作系统,在PDP-7上实现。1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。C语言的设计者Dennis M. Ritchie1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90以上用C改写,即UNIX第5版,由此确立了C语言的地位。Ritchie和Thompson在开发UNIXC语言的设计者D.

8、M.Ritchie和Unix的设计者Ken Thompson接受美国国家技术勋章C语言是一种中级语言, 它介于高级语言(BASIC,FORTRAN .)和低级语言(汇编语言)之间. 它即具有高级语言功能(直接的人-机对话和数学计算),又具有低级语言功能(移位,位处理), 从而使其功能大大地增强, 成为一种先进的程序设计语言.1.2 C语言特点 语言简炼 使用的关键字仅为27个, 而BASIC语言为150多个. 利用符号代替语句,表达简洁. 许多工作由大量的库函数完成, 并且库函数可以自定义, 所以C语言的关键字及其功能是无限的. 功能强 它集高级语言的特点和低级语言的特点于一身, 即能完成高语

9、言的功能 又能完成低级语言的功能, 是一种强功能的语言. 由它编写的软件有: UNIX, dBASE III, C编译. 模块化结构 C语言支持各种库函数和用户定义的函数(模块)相互调用构成程序, 完 成功能. 并且, 不允许嵌套定义, 因此, 具有很强的模块化结构. 移植性好 利用C语言编的程序不加改动或稍加改动, 就可以由一个环境移植到另一个环境上. 因为, 不同计算机上的C语言编译代码的80%左右相同. C语言及其程序的基本形式这里介绍几个简单的C语言程序,从中明确C语言及其程序的基本形式。例 1.1main ( ) printf (“This is a C program.n); 本程

10、序的作用是输出以下一行信息,主要说明C语言程序的基本组成部分,C语言程序的具体形式。例.main ( ) /* 求两数之和*/ int a,b,sum; /* 这是定义变量*/ a=123; b=456;/* 为变量赋初值*/ sum=a+b; /* 将两个变量的值相加后赋给另一个变量*/ printf (“sum is %dn”, sum);/* 输出相加后的结果*/本程序的作用是说明一个较为全面的C语言程序,以及注释的使用。第2章 数据类型、运算符与表达式本章主要内容 理解数据类型引入的目的、意义和具体类型 明确常量与变量 掌握C语言的运算符和表达式表2.1 基本数据类型大千世界存在着各种

11、各样、各种类型的数,人们利用不同类型的数去描述不同的事物。然而,哪些“类型”的数据可以在C语言中使用?C语言中允许使用的“类型”又是什么呢? 3.1.1 数据类型:某一类数据(值)的特征形式(表示意义、取值范围、符号取向). 基本形:整数(int)、浮点(float)、字符(char)、无值(void)。构造(组合、集合)型:数组、结构(struct)联合(union)、枚举(enum)。指针类型空类型1. 1.整数和整数类型整数在C语言中称为“整型常量”,因为它即表示了值,又表示了一定的意义。类型字节数取值范围signed int2-32768 - 32767Unsigned int20 -

12、 65535signed shot int2-32768 - 32767Unsigned shot int20 - 65535long int4-2147483648 - 2147483647Unsigned long int40 - 4294967295注:方括弧内的部分是可以省略的。例如:signed shot int 与shot等价,尤其是 signed 是完全多余的,一般都不写signed。2. 浮点类型(float)类型字节数有效数字取值范围float46 7-3.4X10(-38) - 3.4X10(38)double815 16-1.7X10(-308) - 1.7X10(308

13、)long double1618 - 19-1.2X10(-4932) - 1.2X10(4932)3. 字符类型(char)类型字节数意义char1表示一个字符2.2 常量与变量 在3.1节学习了几种数据的类型,可以用它们表示客观世界中的数值。那么,如果要表示客观世界中的“事物”(事和物)怎么办?C语言中使用“量”来表达客观事物,其中,自身数值不变的量用“常量”表示,自身数值变化的量用“变量”表示。因此,为了全面地表达客观事物,在C语言中则必须使用(定义)常量和变量(表示事和物)。同时,给出它们的类型(表示数值)。3.2.1 常量:程序执行中其值不变的量。 类型:一般(短整)常量、长整常量、

14、浮点常量、字符常量、字符串常量。符号常量定义式: #define 符号常量名;例: #define PI 3.14 意义:3.2.2 变量:程序在执行过程中其值变化的量。 类型:一般(短整)变量、长整变量、浮点变量、字符变量、字符串变量。定义式: 数据类型 变量名; 例: int k; 意义:定义整型变量k。3.2.3 变量赋初值在C语言中常需要对变量预先设置初值,可以使用数的三种表示形式:十进制数、八进制数、十六进制数和数据类型为变量赋初值。例3.1#define PRICE 30main ()int num,total;num=10;total=num*PRICE;printf (“tot

15、al=%dn”,total);本程序的作用是说明常量的定义、赋值和使用。例3.2main ( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf (“a+u=%d,b+u=%dn”,c,d);本程序的作用是说明整型变量的定义、赋初值、运算和其值的输出。例3.3main ( ) char c1,c2; c1=97; c2=98; printf (“%c %cn”,c1,c2);printf (“%d %dn”,c1,c2);本程序的作用是说明字符型变量的定义、赋初值和输出。例3.4main ( ) int a=3; fl

16、oat f=3.1415926;char c=a; printf (“nnn%d %f %cn”,a,f,c);本程序的作用是说明整型、字符、浮点变量的定义、赋初值和输出。注:标识符:由字母、数字和下线符构成,标志和识别一定意义的字符串。 类型:关键字、特定字、一般标识符(由用户设定)。 作用:代表常量、变量、数据类型、函数名字。关键字:在C语言中,具有严格特定含义的标识符。 见教材 P365 附录B2.3 运算符 在客观事物使用数和量表示完以后,还要对它们进行处理,进行运算,这就要涉及C语言中的运算符。还要表达它们之间的关系,又要用到C语言中的表达式。那么C语言中提供了哪些运算符和表达式让我

17、们使用呢?3.3.1 运算符C语言中的运算符分为以下几类:1. 1.算术运算符 + - * / %2. 2.关系运算符 = = !=3. 3.逻辑运算符 & | !4. 4.位运算符 | &5. 5.赋值运算符 =6. 6.条件运算符 ? :7. 7.逗号运算符 ,8. 8.指针运算符 * &9. 9.求字节数运算符 sizeof10. 10.强制类型转换 (类型)11. 11.分量运算符变 . - 12. 12.下标运算符 13. 13. 其它 函数调用运算符 ( )见教材 P365 附录C3.3.2 算术运算符 自增、自减算术运算符+i; -i; 意义:在使用i之前,先使i的值加1(减1)

18、。i+; i-; 意义:在使用i之后,使i的值加1(减1)。 例: int m,n,s,t,k=10; m=+k; n=k+; s=-k; t=k-; 3.3.3 复合运算符 a+=3; 等价于 a=a+3; x*=y+8; 等价于 x=x*(y+8); x%=3; 等价于 x=x%3; 2.4 表达式表达式:使用运算符将运算(操作)对象连接起来的、符合C语法规则的式子。算术表达式、逻辑表达式、字位表达式、强制类型转换表达式、逗号(顺序)表达式、赋值表达式、条件表达式、指针表达式。例3.5main ( ) int a,b,c; float d,f=3.1415926; a=b=c=9; d=a

19、/f; printf (“nnn%d %d %d %f n”,a,b,c,f);printf (“n%f n”,d);本程序的作用是说明赋值表达式、算术表达式的使用。例3.6main ( ) int m=10;n=3; int s,t; s=m/2; t=n%2; printf (“nnn%d %d n”,s,t);本程序的作用是说明除法运算符和取余运算符的区别。例3.7main ( )int i,j,k,l;i=2,j=3;k=i+;l=-j;printf (“%d %d %d %d”,i,j,k,l);本程序的作用是说明自加、自减运算符的使用。例3.8main ()int num=1,to

20、tal=11;num+=5;total%=num;printf (n %d %dn,num,total);本程序的作用是说明复合运算符的使用。例3.9main ( ) float x; int i; x=3.6; i=(int)x; printf (“n x=%f i=%dn”,x,i);本程序的作用是说明强制类型转换的问题。2.5 逗号运算符与逗号表达式以前我们学过 + - * /(特别) %(特别) = % 要求两边的操作数必须是整数如: 5%3 结果为 2 这个运算符通常用作判断一个数是否能被另一个数整除。这节课我们学习逗号运算符,我们通过逗号表达式来看一下逗号运算符是怎么回事。逗号表达

21、的定义:用逗号连接的表达式,叫逗号表达式格式: 表达式1, 表达式2, 表达式3, 表达式4,表达式n逗号表达式的运算顺序:表达式1 表达式2 表达式3表达式4表达式n逗号表达式结果:最后一个表达式的结果将作为整个表达式的结果。例1、 例1、看如下程序,写出结果#include stdio.hmain()int k;k=(2+3,7,0,88);printf(k=%dn,k); /结果是 88例2、 例2、看如下程序,写出结果#include stdio.hmain()int k;k=2+3,7,88;printf(k=%dn,k); /结果是 5说明:赋值符号的优先级要高于逗号运算符,逗号运

22、算符的优先级在所有的运算符当中是最低的。 例3、看如下程序,写出结果#include stdio.hmain()int k,i=5;k=(i+,i+,i+5); / k=(i=i+1),(i=i+1),(i+5);printf(k=%dn,k); /结果为 12例4、看如下程序,写出结果#include stdio.hmain()int k,i=5;k=i+,i+,i+5; / k=(i=i+1),(i=i+1),(i+5);printf(k=%dn,k);复习以前的知识运算符+ 和 - - 运算的规则是一样的,我们以+为例进行讲解。+运算符只能用于单变量身上,如i+, (a+b)+ 这样写就

23、不对了。用于单变量身上表示单变量本身自增1。自增运算符有两种情况,一种作为前缀,别一种作为后缀。一、当+作为前缀或是后缀时,变量执行的结果都是一样的#include stdio.hmain()int i=5;i+;printf( %d n,i); / 6 #include stdio.hmain()int i=5;+i;printf( %d n,i); / 6 说明:无论是前缀还是后缀,i+(或+i) 都是使i自增1(i=i+1)二、+作为前缀与+作为后缀,表达式的值是不一样的#include stdio.hmain()int k,i=5;k=i+;printf(%d %d n,k,i); /

24、5 6#include stdio.hmain()int k,i=5;k=+i;printf(%d %d n,k,i); / 6 6说明:在上面的两个程序中,K存放的都是自增表达式的值,两个自增表达式的值是不同的。 (1) +i K得到的是i自增后的结果,我们用一句话表示:先运算,后取值。(2) (2)i+K得到的是i自增后前的结果,我们用一句话表示:先取值,后运算。总结一下:i+ 和 +i 主要区别只是表达式的值不同,但是他们功能是一样的,都是使i自增1.第三章 顺序结构在这一章中,我们主要讲printf和scanf的使用,若在程序中使用printf和scanf,则应在程序的第一行用#inc

25、lude 将”stdio.h”文件包含进来。3.2 数据输出3.2.1 printf函数的使用以前我们上讲过一个例子:#include stdio.hmain()double a,b;a=1.2;b=1.2;printf(a=%f,b=%f n,a,b);说明:在上面的printf中,存在一个格式符 %f ,%f是专门用来输出double变量内容,那么上面程序的执行结果:printf的使用方法:printf(“字符串”,输出的变量);说明:1、双引号中的字符除了格式符(是用来输出变量的)之外,其它字符是原样输出。2、我们主要学习哪些格式符呢?double %f(%lf) float %fint

26、 %d long %ld例1、写出程序结果#include stdio.hmain()float x,y;x=33.0; y=66.0;printf(x=%f,y=%f,x,y);例2 写出程序结果#include stdio.hmain()int k;int a=11,b=3;k=a%b;printf(k=%d n,k);例3写出程序结果#include stdio.hmain()long k;long a=9,b=3;k=a%b;printf(k=%ld n,k);3、printf(“字符串”,输出的变量); 该格式中第二部分是可以省略,那么就输出字符串。#include stdio.hm

27、ain()printf(*Hello World*n);4、可以在%d之间加上一个数字,用来指定输出数所占的宽度,如%5d,则数占5个字符的宽度,字符默认向右对齐。例1、#include stdio.hmain()int a=3;int b=50;int c=500;printf(%5dn,a);printf(%5dn,b);printf(%5dn,c);例2、#include stdio.hmain()int a=3; int b=50;int c=500; int d=5000;printf(%5dn,a);printf(%-5dn,b);printf(%dn,c);printf(%3dn

28、,d);若实际宽度 指定的宽度,则%nd数字默认向右对齐若实际宽度 指定的宽度,则正常输出5、对于输出(float 或 double ) 的%f,可以在%和f之间,加上m.n ,%m.nfm:是指定整个数所占宽度 n:指定小数位数如:a=3.145678 若想保留两位小数输出,则 %4.2f#include stdio.hmain()double a=3.145678;printf(a=%4.2f n,a); / 3.15有时出题人比较懒,他容易将%4.2f写成 %.2f,%.2f的意思:小数按两位输出,整数部分要原样输出的。#include stdio.hmain()double a=300

29、.145678;printf(a=%.2f n,a); / 300.15 /%1.2f 是先保证小数位输出,然后整数位原样输出3.3 数据输入如何能过键盘给程序中的变量赋值呢?#include stdio.hmain()double a,b,area;a=1.2;b=1.2;area = a*b;printf(a=%.2f,b=%.2f,area =%.2f n,a,b,area);通过 scanf函数给变量赋值,看一下scanf函数的使用形式:scanf(“字符串”,变量的地址);说明1、给变量赋值也要能过格式符 double %lf float %fint %d long %ld现在我们举

30、一个最常见的例子:#include stdio.hmain()double a,b,area;scanf(%lf%lf,&a,&b);area = a*b;printf(a=%.2f,b=%.2f,area =%.2f n,a,b,area);注意:scanf(%lf%lf,&a,&b); 双引号内的格式符要挨着,不要加一些其它字符,要赋值的变量前加&2、如何给变量赋值#include stdio.hmain()double a,b,c,area;scanf(%lf%lf%lf,&a,&b,&c);area = a*b+c;printf(a=%.2f,b=%.2f,c=%.2f,area =%

31、.2f n,a,b,area);1) 1 2 3 回车2) 1 回车 2 回车 3 回车3) 1 tab 23总之:数据之间可以任意加空格,回车,Tab,最后用回车表示数据输入结束。3、在scanf中,我们可以指定所要读取数的宽度#include stdio.hmain()int a,b,c,area;scanf(%3d%2d%4d,&a,&b,&c);area = a*b+c;printf(a=%3d,b=%3d,c=%3d,area =%3d n,a,b,c,area);说明:若在键盘中输入1234567890时,此时%3d读取了123赋给了a,%2d读取了45赋给了b,%4d读取了678

32、9赋给了c,4、用%*d可以是跳过一个数#include stdio.hmain()int a,b,area;scanf(%d%*d%d,&a,&b);area = a+b;printf(a=%3d,b=%3d,area =%3d n,a,b,area); /若输入123 456 789说明:此时第一个%d读取了123,遇空格结束,第二%*d会跳过456,第三个%d读取了789。例1、#include stdio.hmain()int a,b,area;scanf(%3d%*3d%3d,&a,&b);area = a+b;printf(a=%3d,b=%3d,area =%3d n,a,b,a

33、rea); /若输入123 456 789例2、#include stdio.hmain()int a,b,area;scanf(%2d%*3d%2d,&a,&b);area = a+b;printf(a=%3d,b=%3d,area =%3d n,a,b,area);输入1234567890说明:读取了12送给了a,跳过345,读取了67赋给了b.最后注意,同学们在上机的时候总爱出现这样的毛病:#include stdio.hmain()int a,b,area;scanf(%d,%d,%d,&a,&b,&c);area = a+b+c;printf(a=%3d,b=%3d,c=%3d,ar

34、ea =%3d n,a,b,c,area);同学们千万要注意:在scanf的双引号,一定要按着双引号的字符原样输入,这样才是正确的,如上题:123,456,789#include stdio.hmain()int a,b,c,area;scanf(please input a,b,c: %d%d%d,&a,&b,&c);area = a+b+c;printf(a=%3d,b=%3d,c=%3d,area =%3d n,a,b,c,area);此时正确的输入方法是:please input a,b,c:123 12 13.4 复合语句3.4.1 复合语句复合语句的概念:就是用 括起来的0个或多个

35、语句叫复合语句。复合语句在C语言语法上来说,是作为一个整体(也可以说作为一条大的语句)如:#include stdio.hmain()int a,b,c,area;scanf(%d%d%d,&a,&b,&c);area = a+b+c;printf(a=%3d,b=%3d,c=%3d,area =%3d n,a,b,c,area);这个C语言程序从上到下一共3条语句。3.4.2 空语句空语句:就是一个单分号,空语句也是一条合法的语句。#include stdio.hmain()int a,b,c,area;scanf(%d%d%d,&a,&b,&c);area = a+b+c;printf(a

36、=%3d,b=%3d,c=%3d,area =%3d n,a,b,c,area);该程序一共是5条语句,当计算机执行到第四条语句(空语句)时,计算机什么也不干。3.5 程序举例例3.1 从键盘输入两个整数,给x和y赋值,在程序中使x和y的值交换,然后再输出交换后的x和y的值。#include stdio.hmain()int x,y,t;scanf(%d%d,&x,&y);t=x; x=y; y=t;printf(x=%d,y=%d n,x,y);例3.2 输入一个double 数给n,输出该数时,要对小数点的第三位进行四舍五入,后输出n。#include stdio.hmain()doubl

37、e n;scanf(%lf,&n);n=n*100;n=n+0.5;n=(int)n;n=n/100;printf(n=%.2f,n);第4章 选择结构4.1 关系运算与逻辑运算4.1.1 关系运算关系运算主要是由 = 2;printf( 12 de zhi %dn, k); / 0k=1=2;printf( 1=2 de zhi %dn, k); / 0k=1!=2;printf( 1!=2 de zhi %dn, k); /14.1.2 逻辑运算逻辑运算符主要是由 &(并且)、|(或者)、!(非)等运算符组成。现在说一下运算规则: !T 结果为 F!F 结果为 T |T | T T T | F TF | T TF | F F &T & T T T & F FF & T FF & F F例1、(T & T T)#include stdio.hmain()int k;k=32 & 31;printf(%d,k);例2、(F & T F)#include stdio.hmain()int k;k=312 & 31;printf(%d,k);例3、(T | F T)#

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报