版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计知识点第1章C语言概述C程序设计知识点都懂了,一定过!第1章C语言概述1.1. C语言属高级语言,区分字母的大小写,以函数为基本单位采用模块化程序 设计,可直接访问内存,进而对硬件进行操作。1.2. 用C语言编写和程序称作C源程序,简称C程序,C程序可由若干个文本文 件组成,文件扩展名为C (使用C+编译器时默认扩展名为 CPP)。C源程 序经编译、连接后得到扩展名为 EXE的可执行文件(目标程序)。预处理编译、连接执行若干个C程序文件-TC程序-T目标程序文件-T1.3. C程序从主函数开始执行,每个 C程序有且仅有一个主函数,因此,每个C程序文件中至多有一个主函数。1.4. C语
2、句以分号结尾,用括起来的一组语句称作复合语句,复合语句可省略花 括号之后的分号。1.5. 允许一行内写多个C语句,也允许一个C语句占用多行,但保留字和标识符 不可拆行。1.6. 在C集成环境VC+ 6.0中,新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为:Ctrl+N、Ctrl+S、F7、Ctrl+F5。第1页共21页C程序设计知识点第3章数据类型、运算符与表达式第4页共21页第2章程序设计的灵魂一一算法2.1. 解决问题的方法和步骤称作算法。算法和数据结构是程序的两个主要要素。2.2. 算法具有确定性、有穷性、有效性等特点。2.3. 算法可用自然语言、流程图、N-S图、
3、计算机语言、伪代码等描述。伪代码是 用介于自然语言和计算机语言之间的文字和符号来描述算法。起止框C)输入输出框判断框O处理框注释框连接点0流程线有向线段或折线图2.1 ANSI流程图符号2.4. 算法的基本结构分为:顺序结构、选择结构、循环结构图2.2顺序结构NNJ N图2.6顺序结构条件Y n匚t图2.3选择结构图2.7选择结构2.5. 由三种基本结构组成的程序称作结构化程序,结构化程序中的每个模块只有 一个入口和一个出口。结构化程序设计通常采用“自顶向下、逐步细化”的 设计方法。第3章数据类型、运算符与表达式3.1. C的数据类型如下所示:表3.1 C语言的数据类型数据类型字节数数值范围基
4、 本 类 型整型无符号短整型(unsigned short int)40 216-1有符号短整型(signed short int)2215 215-1无符号长整型(unsigned long int)40 232-1有符号长整型(signed long int)4-231 231-1实 型单精度实型(float)4长37位,6位有效双精度实型(double)8长307位,15位有效长双精度实型(long double)10长4931位,18位有效字符型(char)1 :0 28-1空类型(void)1构 造 类 型枚举类型2指针类型2数组类型结构体类型共用体类型3.2. C符号常量名、变量名
5、、函数名等统称标识符,标识符的命名规则为:以字母或下划线开头,由字母、数字、下划线组成,超出32个字符部分被忽略(最好不超过8个字符)。3.3. 以0开头的整数为八进制整数,以0X或Ox开头的整数为十六进制无符号整数。3.4. -3276832767 为 int 型,0U 65535U 为 unsigned 型,65536U4294967295U 和 0UL 4294967295UL 为 unsigned long 型,-2147483648-32769、32768 2147483647和-2147483648L2147483647L 为 long 型。后缀 U 和 L 不区分大 小写和次序。
6、3.5. 数据的存储字节数可用运算符sizeof()查询,括号内可是数据、表达式或类型名。3.6. 有符号整数(int和long)按补码存储,因此,-65535U-1U与1U65535U依次 相等,-4294967295UL-1UL 与 1UL 4294967295UL 依次相等。3.7. 定点数(含小数点数)和浮点数统称C实型常量,浮点数的一般形式为:尾数e除码 或 尾数E除码其含义为:尾数X10除码其中,尾数为定点数或整数,除码为整数。标准浮点数的小数点在第1位非0数字之后。后缀L或l的实型常量为长双精度,无后缀实型常量为双精度。3.8. 用一对单引号括起来的单个字符称作C字符常量,其值为
7、该字符的 ASCII码(1字节无符号整数)。3.9. 转义字符n、t、Y、分别表示回车符、制表符、反斜杠、单引号、 双引号。3.10. 转义字符 整数、衣整数(或X整数)中的整数分别为八进制、十六进制, 表示以此整数为ASCII码的字符。3.11. 用双引号括起来的一串字符称作 C字符串型常量,串中字符数称作串长,可以为0。字符串的存储形式为:依次存储字符串中字符的ASCII码,并追加一个空字符0( 1字节无符号整数0)。3.12. 字符型、整型、实型数据统称数值型数据,不同类型的数值型数据可以混合运 算,低精度数据被自动强制转换为高精度数据后方参与运算。另外,字符常量 为有符号短整数,两个字
8、符型数据间的运算按有符号短整数处理。3.13. 如果将数值型数据赋给不同类型的数值型变量,则数值型数据将被自动强制转 换为变量的数据类型。3.14. C允许定义变量的同时赋初值。3.15. C运算符及其优先级、结合性如附录 C (教材第365页)所示。3.16. 强制数据类型转换的一般形式为:(类型名)数据3.17. 自增+、自减-运算只能作用于变量,作用于右侧时,返回变量自增、自减前 的值。3.18. 赋值表达式的格式为:变量=表达式或 变量0卩=表达式其中,op为运算符+、-、*、人%、&、A、|中某一个。前者将右 边表达式的值赋给左边的变量,后者将左边变量的当前值与右边表达式的值作 相应
9、运算后仍赋给左边的变量。整个赋值表达式取左边变量所赋的新值。3.19. 用逗号分隔的一组表达式称作逗号表达式,其一般形式为:表达式,表达式,表达式其功能为:从左至右依次计算各表达式的值,并以最后一个表达式的值为整个 逗号表达式的值。3.20. 将数学式改为C表达式时应注意:(1)乘号*不可省略;(2)正确改写脚码、运算符、括号等;(3)正确书写函数名;(4) 把握好运算优先级,分数线改为/时,分子、分母相应加括号;(5) 正确拆分不等式组;(6) 区分整数除法和实数除法。C程序设计知识点第4章顺序结构程序设计第4章顺序结构程序设计4.1. 表达式后缀分号称作表达式语句,即,表达式;4.2. p
10、utchar、getchar、printf、scanf等输入输出函数的原型在头文件 stdio.h中。4.3. 函数putchar和getchar的格式和功能如下: putchar格式:putchar(表达式)功能:向标准输出设备输出以指定表达式的值为ASCII码的字符,并以该值为函数值(自动强制转换为int型)。(2)getchar格式:getchar()功能:从标准输入设备输入一个字符,并以该字符为函数值。注意:getchar可提取空格及回车、Tab等部分控制字符,而且只提取输 入中相应位置上的一个字符,因此,输入字符间无须分隔,否则也被视为 输入字符。4.4. printf函数的格式和功
11、能如下:格式:printf(格式控制串,输出表列)功能:(1)从右至左依次计算输出表列中各表达式的值;(2)从左至右依次输出格式控制串中的字符,其中, %引导的格式控制符由输 出表列中相应表达式的值所取代。输出表列是一组用逗号分隔的表达式(又称输出项,可以为0项)。格式控制串为字符串型数据(可以是表达式)。其中,格式符用于控制输出表列中相应 表达式的输出格式。格式符及其功能如下表所示:表4.1 printf格式字符格式符说明d或i有符号十进制短整数(不输出正号)u无符号十进制短整数o无符号八进制短整数(无前缀0)x或X无符号十六进制短整数(无前缀0x,数字的大小写与 x相冋)c字符s字符串f定
12、点数(默认6位小数)。e或E浮点数(浮点数中e的大小写与格式符 e的大小写相冋)g或G%f和e中输出宽度较短者(e与g的大小写相同)附加格式符说明l插在%和d、i、u、o、x、X之间,表示输出相应长整数。整数插在%和其它格式符之间,前一个整数的绝对值为输出数据的宽度,后一个整数 控制实际输出位数:输出整数时,指定输出位数,不足左补0,超出保留;输出实数时,指定输出小数位数,不足右补0,超出四舍五入;输出字符串时,指定输出字符数。另外,第一个整数为负时,输出数据左对齐,否则右对齐。整数整数整数4.5. scanf函数的格式和功能如下:格式:scanf(格式控制串,地址表列)其中,格式控制串为字符
13、串型数据(可以是表达式),地址表列是一组用逗号分 隔的地址。功能:(1)右至左依次计算地址表列中各表达式的值;(2)从标准输入设备提取数据,并从左至右依次存储到所指定的存储单元。(3)地址表列中的地址可用表达式表示,通常形式为:&变量其中&是地址运算符,它表示取其后变量的存储(起始)地址。说明:(1) scanf函数格式符与printf函数的格式符的功能相似。scanf的合法格式符 不区分大小写、实型格式符均等效,另外,表4.2 scanf的附加格式符说明附加格式符说明正整数指定输入数据的最大宽度(插在%与其它格式符之间)*跳过当前一个数据(插在%与其它格式符之间)*正整数跳过当前指定个字符(
14、插在%与其它格式符之间)(2)如果格式控制串中有非格式符,则输入数据中对应位置上必须是该字符, 且被跳过,这为指定数据间分隔符提供了方便。(3)printf和scanf格式控制串中的每对%(从左至右结合)按一个普通字符% 对待。第6页共21页C程序设计知识点第5章选择结构程序设计第5章选择结构程序设计5.1. C逻辑值为短整数(int),真、假分别为1、0。另外,字符、数、指针作为逻辑 量时,非0、非空为真(即1),0、空为假(即0)。逻辑运算如下表所示:表5.1逻辑运算真值表左兀右元!右元左兀&右兀左元|右元假(0)假(0)真(1)假(0)假(0)假(0)r真(非0)假(0)假(0)真(1)
15、真(非0)假(0)真(1)假(0)真(1)真(非0)真(非0)假(0)真(1)真(1)5.2. 对于形如口 II 口 II 的逻辑式,从左至右计算的逻辑值,遇到真则提前终止。5.3. 对于形如 &的逻辑式,从左至右计算的逻辑值,遇到假则提前终止。5.4. 算术、关系、逻辑运算的优先级参见附录C (教材第365页)。5.5. if语句的格式和功能如下:(1)格式一:if(条件)语句功能:如果条件成立,方执行语句。(2)格式二:if(条件)语句1 else语句2功能 如果条件成立,执行语句1,否则执行语句2。注意:else不可独立使用,它与其前最近一个尚未配对的if配对,为避免歧义,通常只在els
16、e中嵌套if语句。5.6. 条件表达式的格式和功能如下:格式:条件?表达式1:表达式2功能:如果条件成立,取表达式1的值,否则取表达式2的值。说明:条件表达式可以嵌套,与其前最近一个尚未配对的if配对。5.7. switch语句的格式和功能如下:格式:switch(表达式)case 常量i: 语句组idefault:语句组 n+1功能:如果表达式的值等于常量i,则从语句组i开始执行,否则执行语句组n+1 o说明:(1) “表达式”的值和“常量”为整型(包括字符型)o(2) switch中的每个语句组称作一个分支,为使各分支独立,通常以 break、return、exit等语句结尾。另外,“ d
17、efault:语句组n+1”可以缺省。5.8. break语句的格式和功能如下:格式:break;功能:结束本层switch语句或本层循环语句。说明:break语句只能用于switch语句和循环。第8页共21页C程序设计知识点第6章循环结构程序设计第6章循环结构程序设计6.1. while语句的格式和功能如下:格式:while(表达式)循环体功能:当表达式的值为真时,重复执行其后循环体。说明:循环体是循环语句的内嵌语句,可以是空或复合语句(下同)o6.2. do-while语句的格式和功能如下:格式:do循环体while(表达式)功能:重复执行循环体,直到表达式的值为假。说明:do-while
18、循环至少执行一次循环体。6.3. for语句的格式和功能如下:格式:for(表达式1;表达式2;表达式3)循环体功能:(1)计算表达式1;(2)当表达式2的值为真时,重复执行循环体和计算表达式3o说明:表达式1、表达式2、表达式3均可缺省,但保留分号。6.4. continue语句的格式和功能如下:格式:continue;功能:跳过循环体中其后程序段(结束本次循环)o说明:continue语句只能用于循环。6.5. 掌握以下算法:累加、阶乘、判断素数、分解整数数字、递推数列、打印字符 图形。第9页共21页C程序设计知识点第7章数组第7章数组7.1. 同一类型数据的序列称作数组,数组中数据用相应
19、下标变量访问,因此,数组 亦可视为由下标变量组成的序列。72 定义数组语句的一般格式和功能为:格式:数据类型名 数组名第1维长度第n维长度功能:为数组分配连续内存单元,用于存储数组中的下标变量(低维优先),并将起始地址(又称基址)赋给数组名。说明:数组长度只能为整型常量或整型常量表达式。73 数组的要素有:数据类型、数组名、维数及各维的长度。各维的长度必须是常 量,可用常量表达式表示,其值的整数位有效一一截断取整。74下标变量的格式为:数组名第1维下标第n维下标7.5. 下标从0开始,可用表达式表示,其值的整数位有效。下标最大值比长度小1。76下标变量的使用与普通变量相同。7.7. 定义数组的
20、同时可对数组中的下标变量赋初值。格式:数据类型名 数组名第1维长度第n维长度=数据表功能:定义数组的同时将数据表中数据依次赋给数组中下标变量,未赋值下标 变量的初值为相应数据类型的0。说明:数据表中的数据必须是常量,可用表达式表示。第1维长度可省略,如果省略,其长度由数据表和其它维长度确定一一存储所需的最小长度。7.8. 以字符为数据元素的数组称作字符数组,它由一组字符型下标变量组成。除赋 值外,字符数组名的使用与字符串变量相似。字符数组也可用字符串初始化。7.9. 标准函数库提供许多用于处理字符串的函数。表7.1常用字符串处理函数格式功能头文件puts(串)依次输出串中字符,遇到0终止,然后
21、换行。stdio.hgets(串)读入一行字符,依次存入所分配的内存空间,并追加0。strcat(串 1,串 2)将串2复制、连接到串1的第一个0处。strin g.hstrcpy(串 1,串 2)将串2复制到串1。strcmp(串 1,串 2)比较串1和串2的大小。strlen(串)求字符串的长度。strlwr(串)将串中大与字母均转换为相应小与字母。strupr(串)将串中小与字母均转换为相应大与字母。注意:输出字符串及处理字符串的函数,均忽略字符串中第一个0及其后的字符。7.10. 掌握冒泡排序。第12页共21页C程序设计知识点第8章函数第15页共21页8.1.828.3.8.4.8.5
22、.8.6.8.7.8.8.8.9.8.10.8.11.8.12.第8章函数自定义函数的格式为:函数值类型 函数名(带类型声明的形参表列)函数体 函数值的默认数据类型为int。如果函数有返回值,则用return语句返回,其格式为:return 表达式; 或 return(表达式);如果函数无返回值,即函数值类型为void,亦可用格式:return;结束本函数并返回调用者。函数一般调用格式为:函数名(实参表列)其中,实参表列为一组逗号分隔的表达式。实参按从右至左的次序计算并传递 给相应形参。如果函数调用在其定义之前,调用前应作相应声明,声明格式为:函数值类型名函数名(形参及其类型声明表列);其中,
23、形参可省略。函数不可嵌套定义,但允许嵌套调用,亦可直接或间接调用自身(称作递归函数)。递归函数的函数体的一般格式为:(B班同学不作要求)/*递归时,如何递归*/*非递归时,如何处理*/*非递归时,如何处理*/*递归时,如何递归*/if(递归条件)语句1else语句2或if(!递归条件)语句1else语句2形参及函数内定义的变量称作局部变量,它从定义处生效,且只在该函数内有 效。因此,不同函数中的局部变量可以同名,但同名不同义。在所有函数之外定义的变量称作全局变量,它从定义处生效。如果局部变量与全局变量同名,则同名全局变量被屏蔽。局部变量的存储方式分为:自动(auto,默认)、静态(static
24、)、寄存器(register)8.13. 存储方式和数据类型是变量的两个重要属性,必须在定义变量时一并声明,关键字的排列顺序没有限制。变量的默认数据类型为int,默认存储方式为auto,但关键字auto和int不可同时缺省。8.14. auto型局部变量占用动态数据区,当函数调用结束时释放所占内存。register占用CPU中的寄存器,但寄存器不够用时,占用动态数据区。8.15. 全局变量和static型局部变量占用静态数据区,默认初值为相应数据类型的0。8.16. static型局部变量的声明和初始化只执行一次。8.17. 如果全局变量被声明为static型,则其它程序文件不能使用该全局变量
25、。否则,其它程序文件也可使用该全局变量,但使用前应作extern声明。8.18. 被声明为static型的函数,只在本程序文件中有效,不能被其它程序文件调用。否则,其它程序文件也可调用此函数,但调用前应作extern声明。8.19. 常用数学函数在头文件 math.h中。掌握基本初等函数。C程序设计知识点第9章预处理命令第9章预处理命令9.1. 预处理命令在程序编译前执行,其主要功能是“文本置换”。9.2. 不带参数宏定义的格式和功能如下:格式:#define宏名文本功能:在预处理时,将程序中宏名用相应的文本置换。9.3. 带参数宏定义的格式和功能如下:格式:#define宏名(形参表列)文本
26、功能:在预处理时,将程序中带参数的宏用相应的文本置换,且文本中的形参 被相应的实参所置换。注意:形参无须且做类型声明。9.4. 终止宏定义的格式如下:格式 #undef宏名9.5. 宏定义可以引用已有的宏,亦可重新定义所代表的文本。9.6. 预处理命令无须以分号结尾,否则分号也参与置换。9.7. #inelude命令的格式和功能如下:格式一:#inelude 文件名格式二:#include 文件名功能:在预处理时,用指定文件置换本命令一一加载文件。置换后,被包含文 件成为本文件的一部分,其函数、全局变量等均可在本文件中直接使用,无须 作extern声明。前一种格式先在当前目录中找指定文件,如果
27、未找到,方到存 放C头文件的目录中查找。后一种格式直接到存放C头文件的目录中查找指定 文件。9.8. 条件编译命令的格式和功能如下:格式一:#ifdef宏名 程序段1 #else程序段2 #endif功能:在预处理时,如果指定的宏名已定义,则用程序段1置换本命令,否则用程序段2置换本命令。当程序段2为空时,#else可省略(下同)。格式二:#ifndef宏名 程序段1 #else程序段2 #endif功能:在预处理时,如果指定的宏名未定义,则用程序段1置换本命令,否则用程序段2置换本命令。格式三:#if常量表达式程序段1 #else程序段2 #endif功能:在预处理时,如果指定常量表达式的值
28、为真(非0),则用程序段1置换本 命令,否则用程序段2置换本命令。注释命令的格式如下:9.9. 注释命令在预处理时被删除,不影响源程序和目标程序/*注释内容*/第17页共21页C程序设计知识点第10章指针第10章指针10.1. 内存的基本单位是字节,每个字节都有相应的编号,称作地址或指针。借助于 指针,C语言可以直接访问内存,从而对硬件进行操作。10.2. 变量所占用内存的大小由其数据类型决定,变量所占用内存的第1个字节的地址称作该变量的地址或指针,表为:&变量名10.3. 指针所指向数据的类型称作该指针的基类型,它所指向数据用*指针访问,可作为普通变量使用。10.4. 指针本身也是一种数据类
29、型,占用 2字节内存,可作为无符号整数输出和参与 关系运算、逻辑运算,但指针的其它运算不同于整数运算。10.5. 指针运算可简单地分为以下五类:(1) 单目运算有六个:!、&、*、+、-、sizeof。(2) 双目运算有四种:-、关系运算、逻辑运算、赋值运算。(3) 指针与整数间的运算有三个:+、-、。(4) 强制类型转换运算:()。(5) 结构体成员运算:-。其中,+、-、+、-、+=、-二均以基类型数据为基本单位。10.6. 一维数组的数组名可作为指针调用,它指向数组中的第一个元素,以数组中元 素的类型为基类型。数组名的值不可修改,且sizeof(数组名)的值为整个数组所 占内存的字节数。
30、10.7. 对于一维数组来说,基址+i和 &基址i均指向数组中的第i+1个元素(i=0);*(基址+i) 和 基址i均表示数组中的第i+1个元素(i=0)。10.8. n维数组可看作是以n-1维数组为元素的一维数组,数组名可看作是指向数组 中的第一个n-1维数组的指针。10.9. 下标变量可作为实参,但不可作为形参,实际上,它被误认为指针。10.10. 探C源程序经编译后,系统为源程序中的每个函数均分配一个入口地址,称作函数指针。在C源程序中,函数指针用函数名表示,其值不可修改。以函 数指针为值的变量称作函数指针变量,其定义格式为:函数类型名(*函数指针变量名)();可用下述格式代替函数名:(
31、*函数指针)10.11. 探标注表示此部分为非考试内容。函数返回值可以是指针,定义函数的一般格式为:基类型*函数名(形参列表)函数体10.12. 不允许将非0数直接赋给指针变量,须做强制转换。当指针变量的值为0时, 称之为空指针。10.13. 探 以指针为元素的数组称作指针数组。10.14. 探以指针为基类型的指针称作指向指针的指针,以指向指针的指针为值的 变量称作指向指针的指针变量,其定义格式为:存储方式关键字 基类型名*指向指针的指针变量名10.15. 探C源程序经编译、连接所得目标程序(exe文件)可作为DOS外部命令使 用,命令行的一般式为:路径目标程序文件名 参数1参数2参数n10.
32、16. 探C主函数main可带两个形参,前者为int型,用于接收命令行中字符串 个数,后者为字符串指针数组,用于接收命令行中各字符串。带参主函数的格 式为:void main(int 形参 1,char * 形参 2 ) 函数体其中,形参仁参数个数+1形参20=路径目标程序文件名形参 2i=参数 i , i=1,2,n第19页共21页C程序设计知识点第11章 结构体与共用体第11章结构体与共用体11.1. 声明结构体语句的一般格式为:struct标识符成员表列;其中,成员表列为一组声明变量的语句,这些变量称作该结构体的成员,又称 数据项、分量、域、字段等。语句结尾处的分号不可缺省,标识符可以省略, 如果不省略标识符,则新增一个数据类型(名):struct标识符11.2. 定义结构体变量的一般格式为:struct标识符变量表列;也可在声明结构体的同时定义变量:struct标识符成员表列变量表列;11.3. 结构体变量可在定义时赋初值,类似于数组赋初值。11.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025保单质押的借款合同格式
- 二零二五年度个人股权变更与员工激励相结合的协议范本3篇
- 2025保姆雇佣合同范本2
- 二零二五年度海洋工程装备按揭购买协议3篇
- 二零二五年度房屋买卖补充协议书(附装修及家具清单)3篇
- 2024年预制板房建设合同范本3篇
- 2024某银行与客户之间的储蓄存款合同
- 二零二五年度房地产企业社保代缴授权协议3篇
- 2024年甲方提供专利技术乙方提供产品生产的专利许可合同
- 2024版小程序技术开发服务合同
- 广西壮族自治区国资委下属国有企业
- 最新VTE指南解读(静脉血栓栓塞症的临床护理指南解读)
- 生产计划控制程序文件
- 山东省济南市2022年中考英语情景运用拔高练习(Word版含答案)
- 护理查房-糖尿病足 PPT课件
- (高清正版)T-CAGHP 015—2018地质灾害治理工程监理预算标准(试行)
- Q∕GDW 12083-2021 输变电设备物联网无线节点设备技术规范
- 公司物流仓储规划方案及建议书
- 智能扫地机器人毕业设计
- 佳能EOS7D数码单反相机说明书
- 大型焰火燃放活动方案审批表
评论
0/150
提交评论