为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言知识点

2017-10-11 22页 doc 48KB 23阅读

用户头像

is_890199

暂无简介

举报
C语言知识点C语言知识点 C语言知识点总结 C语言知识点总结 ......................................................................................... 1 一、 常量................................................................................................... 2 二、 标识符......................................
C语言知识点
C语言知识点 C语言知识点总结 C语言知识点总结 ......................................................................................... 1 一、 常量................................................................................................... 2 二、 标识符............................................................................................... 2 三、 变量................................................................................................... 2 四、 表达式............................................................................................... 3 五、 输入输出函数 ................................................................................... 4 六、 C语言的语句 .................................................................................... 5 七、 C程序的基本结构 ............................................................................ 5 八、 选择结构语句 ................................................................................... 6 , i(表达式) 语句1 else 语句2 ........................................................ 6 达式2 : 表达式3 ............................. 6 , 条件运算符 表达式1? 表 , switch语句 ..................................................................................... 6 九、 循环结构 ........................................................................................... 7 , or循环语句 .................................................................................... 7 , while循环语句 do while循环语句 ............................................. 7 十、 数组................................................................................................... 7 十一、 字符串函数 ....................................................................................... 8 十二、 函数................................................................................................... 9 十三、 指针................................................................................................. 10 十四、 宏定义............................................................................................. 11 十五、 结构体~共用体~枚举类型 ......................................................... 11 十六、 Turbo C的使用.............................................................................. 13 一、 常量 , 数字常量 i. 普通数字:1,35,2.7 -2ii. 指数形式:2.45e-2等价于2.45*10 注意e大小写皆可~e前面的数字 不能省~就算是1也不能省~后面的数字一定要是整数 iii. 长整型,单精度浮点型:3235L,32.5 分别表示3235是长整型数据, 32.5是单精度浮点型左,若不写上L,则表示3235是整型,32.5是双 精度浮点型,L,大小写皆可 , 字符常量 i. 普通字符常量:用单引号把一个字符括起来,如??,?@? 一对单引号括起来并以“\”开头的字符序列,如?\n?(回ii. 转义字符常量: 车)、?\123?(8进制123对应的字符), ?\x23?(16进制23对应的字符) , 字符串常量 把一个字符序列括起来,如“BCe”, 系统存放字符串常用一对双引号 量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会 给再开一个字节里面放一个’\0’做为结束标志。 , 符号常量 定义 #deine 符号常量名 符号常量值,如#deine N 20则定义了符号 ,常量N,其值为20注意符号常量名和符号常量值之间是用空格隔开~ 。而不是写上=号~#deine和符号常量名之间也有空格的 , 题目:P7—1,5,6,7,9,10 二、 标识符 , 命名规则 以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头, 而不能也数字开头,另外不能将关键字做为标识符。32个关键字表在 P365附录B , 变量名,函数名,符号常量名全都是标识符 , 题目:P7—2,3,4 三、 变量 , 变量的定义格式 类型名 变量名; 如 int ;定义了一个整型常量。变量名是由人类随便定义的,符合命名 规则的前提下,爱写啥就写啥。所以什么lg,cc,y1或者函数名un,ind 等全部是自定的用来做为名字而已,没有更特别的意义。 , 类型名 int 整型,long 长整型: 用于存放整数,只是数值范围不同 lot 单精度浮点型 double 双精度浮点型:用于存放实数,数值范围,精 度不同 chr字符型:用于存放字符 , 变量赋值,初始化 int =3;定义的同时初始化 =6*9;定义后在程序中进行赋值 , 变量的值 只有在赋值操作时才会被改变,即将其放在等号左边时才会改变它的值, 或自增自减操作:=5,++,--,像+3并未改变的值,只是使用了的值而已. , 自增自减运算 变量++,++变量,变量--,--变量 使变量的值自增1或自减1 等价于 变量=变量+1 变量=变量-1 ++,--放于变量前后效果的区别: 当自增自减运算做为表达式的一部分时,++~--放在变量前面是先自增 。自减再使用变量的值~放在变量后面则是先使用变量的值~再自增自减 如x=3; print(“%d”,++x);则相当于执行了++x; print(“%d”,x);这样的操作所 以打印出4 则相当于执行了print(“%d”,x); x++;这样的操再如x=3; print(“%d”,x++); 作,则打印出3,当然最后x的值还是4。 四、 表达式 , 运算符和运算对象 一个运算符都有若干个运算对象,如 + 必然要跟两个运算对象才能进行 加法运算:3+5。C语言里称需要跟n个运算对象的运算符为n元运算符。 一元运算符有:!,(类型名) 二元运算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=,< , > , <=, >=, = =(等 于), !=(不等于),&&(且) , ||(或) 多元运算符有: , , 运算符的优先级和结合性 i. 优先级:同一个运算对象左右两边若同时有两个运算符,则这两个运算 符优先级高的先进行运算。 ii. 结合性:若同一个运算对象左右两边的两个运算符优先级相同,则根据 结合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自 右自左的先算右边的运算符。 iii. 各运算符的优先级和结合性见P365附录C , 强制类型转换 格式: (类型名) 表达式 。将后跟的表达式的值的数据类型转换为与圆 括号内的类型名一致的类型。。注意类型名一定要用,, 括起来 , 算术表达式 i. 算术运算符:+,-,*,/,%(求余) ii. 由算术运算符加上运算对象构成算术表达式,如3+3*6-9/2 iii. 值:跟我们时学的一样,就是表达式的计算结果 iv. 整数除以整数结果取整数部分~故1/3得到的值是0 5%3 结果为2~想想小学除法~求余得到的是余数不是商。v. , 赋值表达式 i. 赋值运算符:=,+=,-=,*=,/=,%= ii. 赋值表达式:变量=表达式,如x=3+6,x+=6-9,x+=x*=3+4 注意等号 左边只能是变量 /=为例:x/=表达式 等价于 x=x/(表达式)iii. 复合赋值运算符的运算:以 iv. 值:=号左边的变量最终的值 , 关系表达式 i. 关系运算符:< , > , <=, >=, = =(等于), !=(不等于) ii. 由关系运算符加上运算对象构成关系表达式,如3>=4, 2== iii. 值:满足相应运算符所指定的关系的值为1,否则为0 , 逻辑表达式 &&(且) , ||(或) , !(非) i. 逻辑运算符: ii. 由逻辑运算符加上运算对象构成逻辑表达式,如3&&4, x||!y iii. 值:满足相应运算符所指定的关系的值为1,否则为0 iv. 进行 ||或 运算时~若||左边的表达式值为1~则不再对右边的表达式 进行运算。 进行 &&且 运算时~若&&左边的表达式值为0~则不再对右边的表达式v. 进行运算。 , 逗号表达式 i. 逗号运算符: , ii. 用逗号将各种表达式连续起来构成逗号表达式,如3+4,=9,8* iii. 值:组成逗号表达式的各个表达式中的最后一个的值,如上例为8* , 题目:P7—11~17 P8—18~33 五、 输入输出函数 , scn(“格式控制串”,变量地址表列); 如scn(“%d%c%d”,&,&ch,&b); scn(“%4”,&x); 注意: i. 格式控制串可控制截取用户输入的前几个字符给变量,但不能控制输入 几位小数给变量,如不能写成scn(“%4.2”,&x); ii. 第二个参数给的是地址,即要么是&+变量名或数组元素名的形式,要 么就是一个数组名或指针变量名,如int *p,; p=&; scn(“%d”,p); iii. 考试时注意看题目给你写好的scn的格式 1. 若其格式控制串内各格式符用“,”隔开如scn(“%d,%c,%d”,&,&ch,&b); 那输入时也要用逗号隔开,如此例输入时应:3,+,5 2. 若是这种格式scn(“%d %d”,&,&b);则输入时应:3 5; 3. 若是这种格式scn(“%d%c%d”,&,&ch,&b);则输入时应3+5,若写成3 + 5 则=3,ch=‘ ’(空格),b=任意值 (自己上机运行看看结果) , print(“格式控制串”,输出项表列); ”,x);此处的意思是将x打印出来,且占8列,保如lot x=7.5; print(“%8.2 留两位小数。自己上机运行看看效果。 , 常用格式符汇总: i. %d:输入输出整型数据,%ld:输入输出长整型数据 ii. %c:输入输出字符型数据 iii. %:输出单(双)精度浮点型数据,输入单精度型数据。 %l: 输入双精度型数据 iv. %s:输入输出一个字符串,用print输出字符串时,输出项书写时可为 字符串常量,或字符数组名。如print(“%s”,”hello”);或chr str[10]=”hello”; print(“%s”,str); v. %u:输入输出无符号整型,%o:输入输出八进制数, %x:输入输出十六进制数 , getchr(); 函数调用后返回用户输入的一个字符,故需再定义一个变量来存放这个 字符,即使用时应 chr c; c=getchr();意思就是接收用户输入的一个字符, 并将其赋值给变量c。 , putchr(字符常量或字符变量名); 如chr c=??; putchr(c);或putchr(„?);都会向屏幕输出字符。 六、 C语言的语句 , 表达式语句:由表达式末尾加上分号构成。 , 函数调用语句:由函数调用表达式加上分号构成。 , 空语句: ; , 选择结构语句:i语句 switch语句 , 循环语句:or语句 while语句 do while语句 , 复合语句:用花括号,,将以上任意语句括起来构成一条复合语句。 七、 C程序的基本结构 void min() { 声明部分:用来定义变量和声明自定义函数的原型,需以“;”结尾,如int x; 执行语句部分:第六点里介绍的各种语句,如x=3;print(“%d”,x); } min函数外可写自定义函数。如 int mx() { return 0; } 八、 选择结构语句 , i(表达式) 语句1 else 语句2 如果i语句的圆括号内的表达式值为非0,则执行语句1,值为0则执行语句 2。 i. 表达式可为任意表达式,i语句执行的实质是判断表达式的值是否为0 。来决定执行语句1还是语句2另外请在此处表达严重关切~不管是高 手还是菜鸟经常会把判断两个数相等的符号“==”写成了一个等号“=” 成为了赋值运算~这样的写法不会引发编译错误~但结果会与原意大 大不同~所以考试前请再三提醒自己。 ii. 语句1和语句2都只能是一个语句,若要跟多条语句~切记用一对{} 括起来~构成复合语句,也不要随便在圆括号后加“,” ~因“ ,” 。构成一条空语句~这会使后面跟的语句1不再属于i语句的组成部分 iii. i语句的三种结构 1. 单边: i(表达式) 语句 2. 双边:i(表达式) 语句1 else 语句2 3. 多层(重点掌握): i(表达式1) 语句1 else i(表达式2) 语句2 else i(表达式3) 语句3 … else 语句n , 条件运算符 表达式1? 表达式2 : 表达式3 若表达式1的值非0,则取表达式2的值做为整个表达式的值,否则取表达 式3的值为整个表达式的值。如 3>4? 1:2 该表达式的值为2 , switch语句 switch(表达式) { cse 表达式1:语句 cse 表达式2:语句 … cse 表达式n:语句 deult: 语句 } 语句执行过程:先计算表达式的值,然后判断该值与表达式1到表达式n中的哪个相等,若与表达式i的值相等,则执行表达式i后的所有语句,当遇到brek;语句时结束整个switch语句的执行。表达式1到表达式n的值都不相等的情况下执行deult后跟的语句。每个cse后可跟多条语句。 九、 循环结构 , or循环语句 or(表达式1;表达式2;表达式3) 循环体语句 语句执行过程: 1. 计算表达式1 2. 判断表达式2的值是否为0,若为0,语句执行结束,若不为0,进入 步骤3 3. 执行循环体语句(需注意的是循环体语句只能有一个语句~若要包含多 个语句要用一对{}括起来~构成一条复合语句~此处也不要随便加上 “” ; ~因一个“,”可构成一条空语句~这会使得后面真正的循环体 )。进入步骤4 语句不属于or循环语句的部分 计算表达式3,然后重新进入步骤2 4. , while循环语句 do while循环语句 i. while(表达式) 循环体语句 执行过程: 1. 判断表达式的值是否为非0,若是进入步骤2,否则结束语句执行。 2. 执行循环体语句,重新回到步骤1。 ii. do 循环体语句 while(表达式); 执行过程: 1. 执行循环体语句,进入步骤2 2. 判断表达式的值是否为非0,若是重新回到步骤1,否则结束语句执行。 这里要注意的地方跟or语句一样~即循环体语句只能有一个语句~若要包 含多个语句要用一对{}括起来~构成一条复合语句~此处也不要随便加上 “” ; ~因一个“,”可构成一条空语句~这会使得后面真正的循环体语句不属于while循环语句的部分~另外do while循环的while(表达式)后是 要加“,”的。 , brek语句:放在循环体内实现的功能是结束其所在的那层循环的执行。 十、 数组 , 定义格式:数据类型 数组名[整型常量];如 int [10]; 定义了一个整型数组,数组名为,这个数组含有10个元素。 , 引用数组元素: 格式:数组名[下标] 切记下标值从0开始。下标可为常 量,表达式,变量等,如int i=3; [0]=5;[3*2]=9; [i]=7; , 初始化:数据类型 数组名[整型常量]={数据表列};将数据表列的各个值 依次赋值给数组的各个元素。如int [5]={0,1,2,3,4};则数组各元素[0]到[4] 的值分别为0,1,2,3,4 , 遍历数组元素 数组定义后,我们不能对数组进行整体的操作,如int [10];不能用=3这样的 操作将数组的各元素都赋值为3;而只能一个一个元素的进行赋值,如 [0]=3;[1]=3;[2]=3…[9]=3; 当然此时我们就可以借助于一个or循环来控制下 标的变化从而对数组的各个元素进行赋值 or(i=0;i<10;i++) [i]=3; 遍历数组各元素的最简单的例子,一般考试考的是找出当然这只是用or循环 数组元素的某种特性的极值,比如最大值,最小值,或对数组各元素进行排 序,这时我们就可以使用or循环来遍历数组的各元素,然后在当前循环中得 到一个元素再对其进行处理。如i=2时访问到的元素是[2],你就可以问问它, 你是不是最小值啊。 , 整型数组 int [10]; 整型数组里的各个元素存放的是整数。[3]=3; , 字符型数组 str[3]=??;chr str[20];字符型数组里的各个元素存放的是字符。 十一、 字符串函数 , gets(字符数组名或字符指针变量); 如chr str[10],* str2; str2=str;则gets(str);或gets(str2);都是接收用户输入 的字符串如“BC”存入到字符数组str中 , puts(字符数组名或字符指针变量或字符串常量); 如chr str[10]=”chin”; chr *str2;str=str2; 则puts(str); 或puts(str2); 或 puts(“chin”);都会在屏幕上打印出 chin , strlen(字符数组名或字符指针变量);字符串测长函数 chr str[20]=”hello world!”; int len;len=strlen(str);得出的结果是len的值为12 , strct(字符串1的地址,字符串2的地址); 将字符串2的连接到字符串1的尾部。 chr str1[20]=”BC”,str2[20]=”xyz”; strct(str1,str2); 则程序运行的结果是str1内存放的字符串变为BCxyz,当然str2存放的 字符串还是xyz。 , strcmp(字符串1的地址,字符串2的地址); 比较串1和串2哪个比较大。比较大小的依据是,两个字符串从左往右 相应位置上第一个不相等的字符SCII码值之差。 chr str1[20]=”BCE”,str2[20]=”BDE”; int i; i=strcmp (str1,str2); 第一个不相等的字符为str1的‘C’和str2的‘D’,而二者相差-1,故-1 做为strcmp函数执行的结果返回到被调用的位置,该位置位于赋值表达 式内,故将其值赋值给i,即此时i的值就是-1. , strcpy(字符串1的地址,字符串2的地址); 将字符串2的内容复制到字符串1内。 chr str1[20]=”BC”,str2[20]=”xyz”; strcpy(str1,str2);此时str1的内容为”xyz”,当然str2的内容没变 strcpy(str1,”uvw”);此时str1的内容又变成了“uvw“。 十二、 函数 , 函数定义 函数类型 函数名( 形式参数列表 ) { 内部变量定义和声明部分 执行语句 } 如: int mx (int x , int y ) { int z ; z= x > y ? x : y ; return ( z ) ; } 注意点: 1.函数类型是指返回值的类型,即要与return语句后跟的表达式的值的类型一致。若函数类型为void则说明该函数无返回值~即函数体里不能出现return 语句。 2.形式参数列表里定义的变量要记得给它们指定类型,而且如果同时要定义多 ,而不能写成int x,y; 个~应在每个前面都分别指定类型名 3.函数体里能写的语句跟min函数一样,在开头可定义所需要的变量,后面跟上一堆执行语句。 , 函数调用流程 以上面的函数为例,在min函数进行调用: void min() { int ,b,c; scn(“%d%d”,&,&b); print(“%d”,mx(,b));或 c=mx(,b);print(“%d”,c)以上两种方法都会在屏幕中打印出,b间的较大值。 调用函数的格式 函数名(实际参数列表);调用的时候像什么函数类型,形式参数的类型就不要加上去了。mx(,b)中mx就是函数名,写上变量名,b是实际参数列表,执行这个调用语句时,会先把,b的值给相应位置的形式参数即执行了x=,y=b这样的操作,然后开始执行mx函数的函数体的语句。当mx函数体里执行到一个return语句时,则mx函数结束执行,将return后的表达式的值返回 给min函数调用mx函数的那个位置,即若上面=3,b=5则mx(,b)return后的表达式的值应该是5也就是说执行完mx后把5返回到调用mx的位置可看成print(“%d”,5);或另一种解法的c=5。 } 十三、 指针 , 指针变量的声明: 类型名 * 指针变量名; , 通过指针变量访问它所指向的普通变量的值 先将普通变量的地址赋值给指针变量,再通过指针运算符* 得到普通变 量的值。 int *p,x,y; x=3; p=&x; 则print(“%d”,*p);会打印出3即x的值 y=*p;则y的值变为3 *p=5;则x的值变为5 , 指针变量加上(减去)一个位移的效果 若指针变量存入的是数组元素的地址,则其加一减一得到的是那个数组 。 元素下一个或前一个元素的地址 int [10]; p=&[3]; *p得到的是[3]的值。 若p++;此时p存放的是[4]的地址&[4]; *p得到的就是[4]的值。 或p--;此时p存放的是[2]的地址&[2],*p得到的就是[2]的值。 , 行指针 i. 主要是对于二维数组来说的,二维数组每行都有自己的地址,第0行地 址用 数组名 表示,第i行地址为 数组名+i;而想要得到二维数组里 一个元素的地址,必需先得到其所在行的地址,然后再由那个地址得到 元素的地址,比如说 int [3][4];定义了一个二维数组,该二维数组第 0行的地址为,第1行的地址为+1,第2行的地址为+2,想从行的地址 得到元素的地址,需在行地址前加上指针运算符“*”,即*就是第0行 首个元素的地址即[0][0]的地址,而[0][2]的地址就是在[0][0]的地址基础 上加上位移量2,即*+2,然后想得到[0][2]这个元素的值呢就再加上一 个指针运算符“*”,即*(*+2),类似地,想得到[2][2]这个元素的值呢就 是*(*(+2)+2) ii. 定义行指针变量: 类型名 (*变量名)[数组长度]; 如int (*p)[4],[3][4]; p=;此时就可把p当成来用,用法同上所述。 , 判断是否合法访问数组元素:若是指针法访问,判断指针后跟的是否地址; 若是下标法访问,判断下标有无越界。 , 函数指针:函数名即为函数的地址(指针) i. 函数指针变量的定义: 类型名 (*变量名) (形参列表);如 int (*p)(); ii. 赋值:指针变量=函数名;设有个函数其函数名为mx,则要将该函数的 地址给p的话只要执行如下语句即可 p = mx; , 指针数组:指针数组的数组元素都是指针变量,是用来存放变量的地址的, 定义格式为 类型名 * 变量名[数组长度]; 如int * p[10]; , 指向指针的指针:指针变量也是一种变量,故在内存中也有对应的一个地址, 而要存放指针变量的地址,就要求助于用来存放指针变量的地址的指针变 量,定义格式 类型名 ** 变量名;如 int *p1; int **p2; int =3;可进行赋值 p1=&; p2=&p1; 则 、*p1和 **p2的值都是3. 十四、 宏定义 , 无参宏定义 #deine 标识符 值 定义后,出现所定义的标识符的地方都 将以定义时指定的值来代替。 #deine M 2+3 min() { int x; x=M*M; 则x的值为2+3*2+3=11若想得到的结果是(2+3)*(2+3)则 定义时也写成这样 #deine M (2+3) } 注意#deine、标识符、值之间都要用空格隔开~且宏定义结尾不需加分 号。 , 带参宏定义 #deine 标识符(参数表) 值 #deine S(x,y) x*y min( ) { int =3,b=4,c=5,d=6; print("*b=%d\n", S(,b)); 此时会打印出 *b=12 print("+b*c+d=%d\n" , S(+b,c+d)); 此时会打印出+b*c+d=29,带参宏 定义执行时是将+b这样一个表达式代替x,c+d这样一个表达式代替y, 所以S(+b,c+d)进行的是+b*c+d的运算,而不是将+b的值给x,c+d的值 给y然后再做x*y,这点跟函数调用传递参数是不一样的。 } , 自定义类型名typede:对已存在的类型名取一个外号。 i. 基本格式:typede 原类型名 新类型名; ii. typede int INTEGER; 则int ,b;等价于INTEGER ,b; iii. typede int NUM[10]; 则 int [10];等价于 NUM ; 即为一个有10个元 素的数组的数组名。 iv. typede int * INTEGER; 则int *,*b;等价于INTEGER ,b; 十五、 结构体~共用体~枚举类型 , 结构体 i. 结构体类型的定义及变量的定义 struct 结构体名 {类型 成员1; 类型 成员2; …… 类型 成员n; }变量名; 如 struct student { chr nme[10]; long num; int score[4]; }st1;定义类型时同时定义变量 struct student st2;定义类型后,用类型名定义变量 还有一种 struct { chr nme[10]; long num; int score[4]; }st3;不给类型名,直接定义变量 ,如以上st1,st2,st3的ii. 结构体变量所占字节数:各成员各占字节数之和 字节数皆为10+4+2*4=22 iii. 结构体数组的定义及初始化 struct student [3]={{ "zhng",20030001,89,90,91,92}, {"liu",20030002,68,69,70,71}, {"li",20030003,57,58,59,60} } iv. 结构体成员的访问 1. 结构体变量名. 成员名 如st1.nme[2] 2. 通过指针访问:struct student *st; st=&st1; (*st).num 或 st->num , 共用体 i. 共用体类型的定义及变量的定义 union 共用体名 { 类型 成员名1; … 类型 成员名n; }; 变量的定义与结构体类似,也有三种方法。 union dt { int i; chr ch; lot ; }d1; 定义类型时同时定义变量 union dt d2; 定义类型后,用类型名定义变量 union { int i; chr ch; lot ; }d3; 不给类型名,直接定义变量 ii. 共用体变量所占字节数:各成员所占字节数的最大值,如上d1,d2,d3所 占字节数皆为4.(单精度浮点型变量所占字节数最多为4). iii. 共用体成员的访问 1. 共用体变量名. 成员名 如d1. 2. 通过指针访问:union student *d; d=&d1; (*d).num 或 d->num , 枚举类型 i. 枚举类型的定义: enum 枚举名{枚举元素名1,枚举元素名2,…,枚举元素名n}; ii. 枚举元素的值: …。默认值分别为0、1、、n-1枚举元素的值也可在定义时重指定~对 于没有指定值的元素~按顺序加1 如enum weekdy{sun=7,mon=1,tue,wend,thur,ri,st};则sun值为7,mon值 为1,tue值为2,wend值为3,thur值为4,ri值为5,st值为6 十六、 Turbo C的使用 , 菜单激活: 10 , 菜单切换:左右方向键在不同菜单间切换,上下方向键在同一个菜单不同选 项间切换。 , 载入文件:两种方法:1.找到源文件所在位置,直接将其拉到Turbo C快捷 方式上;2. 3 , 运行程序: ctrl+9 , 看程序运行结果:lt+5 , 进入编辑状态:菜单Edit , 保存: 2 , 插入状态切换: Insert键
/
本文档为【C语言知识点】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索