当前位置:文档之家› PHP学习第3章运算符和表达式

PHP学习第3章运算符和表达式

PHP学习第3章运算符和表达式
PHP学习第3章运算符和表达式

PHP学习记录

3.运算符和表达式 (3)

3.1.运算符 (3)

3.1.1.数学运算符 (3)

3.1.2.字符运算符 (4)

3.1.3.比较运算符 (5)

3.1.4.赋值运算符 (6)

3.1.5.逻辑运算符 (6)

3.1.6.递增递减运算符 (7)

3.1.7.三目运算符 (8)

3.1.8.运算符的优先级 (8)

3.2.表达式 (9)

3.2.1.基本表达式形式 (9)

3.2.2.表达式的值 (9)

3.2.3.比较表达式 (9)

3.2.4.三目表达式 (9)

3.运算符和表达式

3.1.运算符

3.1.1.数学运算符

例子名称结果

-$a取反$a的负值。

$a+$b加法$a和$b的和。

$a-$b减法$a和$b的差。

$a*$b乘法$a和$b的积。

$a/$b除法$a除以$b的商。

$a%$b取模$a除以$b的余数。

注意:

除法运算总是返回浮点数,但是在两个数都是整数或字符串转换成的整数,并且运算结果刚好被整除,此时返回一个整数。

取模运算的操作数在运算之前都会转换成整数,出去小数部分,符号和被除数的正负相同。如$a%$b的结果与$a的结果相同。

例子:

$a=8;

$b=2;

$c=3;

echo"\$a=".$a;

echo"
";

echo"\$b=".$b;

echo"
";

echo"\$c=".$c;

echo"
";

echo"\$a+\$b=".($a+$b);

echo"
";

echo"\$a-\$b=".($a-$b);

echo"
";

echo"\$a*\$b=".($a*$b);

echo"
";

echo"\$a/\$b=".($a/$b);

echo"
";

echo"\$a%\$b=".($a%$b);

echo"
";

echo"\$a/\$c=".($a/$c);

echo"
";

echo"\$a%\$c=".($a%$c);

?>

输出结果:

$a=8

$b=2

$c=3

$a+$b=10

$a-$b=6

$a*$b=16

$a/$b=4

$a%$b=0

$a/$c=2.6666666666667

$a%$c=2

3.1.2.字符运算符

字符运算符只有一个“.”(点号),对字符串进行连接操作,可以实现字符串的连接,也可以实现对字符串的连接赋值。

例:

$str1="hello";

$str2="world";

echo"\$str1:".$str1;

echo"

";

echo"\$str2:".$str2;

echo"

";

echo"\$str1+\$str2:".$str1.$str2;

$str1.="China";

echo"

";

echo$str1;

?>

输出结果为:

$str1:hello

$str2:world

$str1+$str2:hello world

hello China

3.1.3.比较运算符

比较运算符,负责条件判断,比较等操作,是程序中经常用到的一种运算符。比较运算符的结果,只有两种,要么为真,要么为假。

运算符功能说明

>大于运算符左边表达式的值大于右边表达式的值,返回TRUE

<小于运算符左边表达式的值小于右边表达式的值时,返回TRUE

>=大于等于运算符左边表达式的值大于等于右边表达式的值,返回TRUE

<=小于等于运算符左边表达式的值小于等于右边表达式的值时,返回TRUE

==相等运算符左右两边表达式的值相等时,返回TRUE

!=不等运算符左右两边表达式值不相等时,返回TRUE

<>不等运算符左右两边表达式值不相等时,返回TRUE

===恒等运算符左右两边表达式的值相等并且类型一样时,返回TRUE

!==非恒等运算符左右两边表达式值不相等或类型不一致时,返回TRUE

例:

$a=2;

$b=3;

$c="2";

$d=3;

echo"\$a=".$a;

echo"

";

echo"\$b=".$b;

echo"

";

echo"\$c=".$c;

echo"

";

echo"\$d=".$d;

echo"

";

var_dump($a>$b);

echo"

";

var_dump($a==$c);

echo"

";

var_dump($a===$c)

echo"

";

var_dump($b>=$d)

echo"

";

var_dump($d<=$b);

?>

输出结果为:

$a=2

$b=3

$c=2

$d=3

bool(false)

bool(true)

bool(false)

bool(true)

bool(true)

3.1.

4.赋值运算符

赋值运算符实际上就是将表达式的值,赋给左侧变量,或者是将原表达式的值,复制到新变量中,所以改变其中的一个,并不影响另一个。

运算符功能说明

=赋值右侧表达式值赋给变量

+=赋值加左侧原变量加上右侧变量,值赋给原变量

-=赋值减左侧原变量减去右侧变量后,值赋给原变量

*=赋值乘左侧原变量乘以右侧变量后,值赋给原变量

/=赋值除左侧原变量除以右侧变量后,值赋给原变量

%=赋值取余左侧原变量与右侧变量取余,值赋给原变量

.=字符串赋值左侧原变量连接到右侧变量后,值赋给原变量

3.1.5.逻辑运算符

逻辑运算符只能操作布尔型数值,处理后的结果值也是布尔型,经常使用多个逻辑运算符组成逻辑表达式,并返回逻辑条件的布尔型结果。

运算符描述说明

and或&&逻辑与两边同时true时返回true,否则返回false

or或||逻辑或两边同时false时返回false,否则返回true

not或!逻辑非当操作数为true时,返回false,否则ture

xor逻辑异或

例:

$a=2;

$b=3;

$c=6;

var_dump(!($a>$b&&$b<$c));

echo"

";

var_dump(($a>$b)and($b<$c));

echo"

";

var_dump($a==$b or$b<$c);

echo"

";

var_dump($a==$b||$b<$c);

echo"

";

$x=$a<$b;

$y=$b===$c;

var_dump($x xor$y);

?>

输出结果为:

bool(true)

bool(false)

bool(true)

bool(true)

bool(true)

3.1.6.递增递减运算符

++$a$a的值加一,然后返回$a的值$a++返回$a的值,然后将$a的值加一--$a$a的值减一,然后返回$a的值$a--返回$a的值,然后将$a的值减一例:

$a=5;

echo"变量后加:".$a++;

echo"

";

echo"输出结果为:".$a;

echo"

";

$b=5;

echo"变量前加".++$b;

echo"

";

echo"输出结果:".$b;

echo"

";

$c=5;

echo"变量后减:".$a--;

echo"

";

echo"输出结果为:".$a;

echo"

";

$d=5;

echo"变量前减".--$b;

echo"

";

echo"输出结果:".$b;

echo"

";

?>

输出结果:

变量后加:5

输出结果为:6

变量前加6

输出结果:6

变量后减:6

输出结果为:5

变量前减5

输出结果:5

3.1.7.三目运算符

三目运算符由两个表示符号即问号、冒号等组成。

格式:exp1?exp2:exp3

如果exp1的结果为true则返回exp2的值,否则返回exp3的值。

例:

$a=2;

$b=3;

$d=($a>$b)?5:7;

echo"\$d=".$d;

?>

输出结果为:

$d=7

3.1.8.运算符的优先级

运算符结合方向

++--非结合递增递减!非结合逻辑非

*/%左结合算术运算+-.左结合算术

<<=>>=左结合比较运算符==!====!==左结合比较运算符&&左结合逻辑运算符||左结合逻辑运算符?:左结合三目运算符

右结合赋值运算符=+=-=*=/=.=%=&=|=^=

<<=>>=

and左结合逻辑运算符xor左结合逻辑运算符or左结合逻辑运算符注意:

相同优先级的运算符按照其结合方向进行运算,

3.2.表达式

表达式由算术运算符、变量、常量及括号组成。

3.2.1.基本表达式形式

最基本的表达式形式就是常量和变量。

3.2.2.表达式的值

如:$a=5;

涉及两个值,一是整形常量5的值,二是变量$a的值。

除此之外还有一个额外的值,即赋值语句本身的值。

$b=($a=5)

与:$a=5$b=5是一样的。

赋值操作顺序是从右到左,$b=$a=5

3.2.3.比较表达式

表达式的结果为布尔值。

3.2.

4.三目表达式

与三目运算符一致。

C语言第三章表达式与运算符笔记

3.1概述 1.C语言表达式:用C语言运算符将常量、变量、函数调用连接起来的有意义的式子。.C语言的表达式为算术表达式、赋值表达式、逗号表达式、条件表达式、关系表达式和逻辑表达式。 2.表达式的值的类型取决于参与运算的数据的类型。 3.关系运算表达式成立,则结果为1,代表“真”,否则结果为0,代表“假”。4.运算符按参与运算的对象个数可以分类:单目运算符、双目运算符和三目运算符。 3.2算术运算符与算术表达式 1.除法运算:当两个操作数都是整型时,除法视为整除,运算结果舍去小数部分,只保留整数部分。 2.取模运算(求余):运算结果为一个整型,这个数是整除运算的余数,符号与被除数符号相同。例如:8%3的结果是3,8%(-5)的结果是3。 3.取负运算(单目运算),即只有一个操作数参与运算。 4.注意:’\%’与’%%’都相同于显示% 5.算术运算符的优先级:括号、函数调用、取负、*/%、+- 6.结合性:从左至右。 3.3其他运算符的应用 3.3.1赋值运算符和赋值表达式 1.一般形式:变量赋值运算符表达式例如:a=5+10 2.赋值表达式的计算过程:首先计算表达式的值,然后将该值赋给左侧的变量。 3.复合的赋值运算:+=,-=,*=,/=,%=等例如:a+=b等价于a=a+b 4.说明:(1)赋值号左边只能是变量,不允许出现常量、函数调用和表达式。 (2)赋值表达式中的“表达式”,又可以是另一个赋值表达式。 (3)当赋值号两边的数据类型不同时,一般由系统自动进行类型转换。

其原则是,赋值号右边的数据类型转换成与左边的变量相同的数据类型。 3.3.2自增自减运算符 1.功能:自增、自减运算符的作用是使变量的值增1或减1。 2.当自增、自减运算符的前置(在变量之前)变量本身先自增(或自减),然后再参与运算; 3.当自增、自减运算符的后置(在变量之后)变量先参与运算,然后变量本身再自增(或自减)。 注:自增、自减运算符只能用于整型变量,不能用于常量或表达式。 4.-i++相当于-(i++) 从右至左的右结合性 5.i+++j相当于(i++)+j 3.3.3条件运算符和条件表达式 1.一般形式:表达式1?表达式2:表达式3 2.条件表达式的执行过程:首先计算表达式1,如果非0(真)则计算表达式2,表达式2的值作为条件表达式的值;如果表达式1的值为0(假),则计算表达式3,表达式3的值作为条件表达式的值。 3.3.4逗号运算符和逗号表达式 1.一般形式:表达式1,表达式2,……,表达式n 2.逗号表达式的计算过程是:先计算表达式1,再计算表达式2,依次计算直到表达式n,表达式n,表达式n的值是整个逗号表达式的值。 3.3.5 sizeof运算符 1.一般形式:sizeof(类型名或变量名) 类型名可以是基本类型名,也可以是其他的构造类型名 2.功能:sizeof运算给出指定类型在内存中所占的字节数。 数学函数 1.fabs(x) 求x的绝对值

第三章 运算符和表达式

第三章运算符和表达式 3.1 运算符和表达式概述 使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。 根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类: (1) 单目(一元)运算符:只连接一个操作数的运算符。 (2) 双目(二元)运算符:带有两个操作数的运算符。 (3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。 C语言中的表达式可以分为三类: (1) 单个常量或者单个变量是最简单的表达式。 (2) 带有运算符的表达式。 (3) 函数调用。 任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符和运算结果是运算的三大要素。 3.2 算术运算符和算术表达式 一、基本算术运算符和简单算术表达式 1. 基本算术运算符 C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。 2. 简单算术表达式 当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。简单算术表达式的基本形式:data1 op data2。data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。 3. 基本算术运算符使用说明 (1) +、-、*,/既可以连接整型数据,也可以连接实型数据。当参与这4个运算符的运算对

第三章。运算符和表达式2、分支结构

Top 1.运算符和表达式-2 2.分支结构 1. 运算符和表达式-2 1.1. 赋值运算 1.1.1. 使用“=”进行赋值运算 “=”称为赋值运算符,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。示例代码如下所示: 1.int num =18, index; 2.System.out.println(index = num %5);// 结果为:3,赋值表达式本身也有值 3.System.out.println(index);// 结果为:3 4.int a, b, c; 5. a = b = c =100; 6.// c=100 整个表达式的值为100,将其赋值给b,同样b=(c=100)整个表达式 的值也为100,然后有将这个值赋给了a,所以a 的值也是100。 1.1. 2. 使用扩展赋值表达式 在赋值运算符”= ”前加上其它运算符,即为扩展赋值运算符,其效率高于赋值运算符,推荐使用,扩展赋值运算符如下图- 5所示:

图- 5 1.2. 字符连接运算 1.2.1. 使用“+”进行字符串连接 “+”除了可以进行算术运算以外,还可以实现字符串的连接,同时可以实现字符串与其他数据类型的“相连”。 当+ 号作用于两个数字类型变量时,是在进行算术运算。 当+ 号两边的变量有一个是字符串类型,即””括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型。示例代码如下所示: 1.int a =100; 2.String msg ="a="+ a; 3.System.out.println(msg);//a=100,字符串拼接 4.msg =""+100+200; 5.System.out.println(msg);//结果为: 100200,””+100,为字符串100再拼 上200为100200 6.msg =100+200+""; 7.System.out.println(msg);//结果为:300,100+200为算术运算结果为300, 再加上””为300 1.3. 条件(三目)运算 1.3.1. 使用条件(三目)运算符

第三章 数据类型、运算符与表达式 练习与答案

第三章数据类型、运算符与表达式 [试题分类]: 1.{ 下列程序执行后的输出结果是________________。 #define MA(x) x*(x-1) mian() \{int a=1,b=2; pirntf(“%d\n”,MA(1+a+b));\} } 试题编号:E54749 答案:8 题型:填空题 2.C语言中基本数据类型包括整型、实型、字符型。() 试题编号:E57279 答案:正确 题型:判断题 3.{ 要得到下列结果: a, b A, B 97,98,65,66 请按要求完善程序。 main( ) \{char c1,c2; c1=’a’;c2=’b’; printf(“%c,%c ”,c1,c2); printf(“%c,%c\n”, ___); printf(“%d,%d,%d,%d\n”,_c1,c2,c1-32,c2-32); \} } 试题编号:E55118 答案:c1-32,c2-32 题型:填空题 4.能表示“整型变量x的绝对值小于5”的表达式是___。(注意本题答案中规定不得使用系统函数)。 试题编号:E55113 答案:(x<5)&&(x>-5) 题型:填空题

5.设有定义"int a,b=10;",则执行语句"a=b<<2+1;"后a的值___。试题编号:E55111 答案:80 题型:填空题 6.设有定义"int x=4;",则表达式"x+=x*=x+1"的值是___。 试题编号:E55110 答案:40 题型:填空题 7.有下列运算符:>>、&&、|、!=,优先级别最高的是___。 试题编号:E55109 答案:>> 题型:填空题 8.用十进制来表示无符号短整型数据的数值范围是___。 试题编号:E55108 答案:0~65535 题型:填空题 9.{ 设有以下变量说明语句 char w='A'; int x=10; float y=20; double z=30; 则执行赋值语句 x=w*x+z-y; 之后x所得值的数据类是___。 } 试题编号:E55106 答案:int型 & 整型 题型:填空题 10.{ 设有变量说明语句 double d=5.4; int a,b; 则执行下述语句组的输出结果是___。 b=((a=2.1)+1.5)/3.6; d*=b; printf("%f\n",d); } 试题编号:E55104

第三章数据类型、运算符和表达式

设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是(D)。 A.12 B.18 C.16 D.21 下列数据中,为字符的是(D)。 A.‘AB’ B."A" C.How D.‘A' 以下符号中,合法的用户标识符是(D)。 A. -p B. int C. 3ab D. _xt_ 以下实型常量中,符合C语言语法的是(A)。 A. .5E-3 B. 1.2E0.5 C. E15 D. 3.14.159E 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为(D) A. 5 B. 6 C. 31 D. 36 设C 语言中,int 类型数据占4个字节,则short 类型数据占(C)。 A.1个字节 B.2个字节 C.4个字节 D.8个字节 若x=3.5,a=2,y=2.5,b=3则表达式(float)(a+b)/2+(int)x%(int)y的值是()。A.1.5 B.2.5 C.3.5 D.2 以下选项中不属于C语言的类型的是(D)。 A.signed short int

B.unsigned long int C.unsigned int D.long short 关于C语言数据类型的叙述,正确的是(C)。 A. 整型不是基本类型 B. 数组不是构造类型 C. 变量必须先定义后使用 D. 不允许使用空类型 若a=12,则表达式a-=a的值为(A)。 A. 0 B.12 C.1 D. 24 若x=3.5,a=2,y=2.5,b=3则表达式(int)(a+b)/2+(int)x%(int)y的值是(D)。 A. 1.5 B. 2.5 C. 3 D. 3.5 若a是数值类型,则逻辑表达式(a==1)&&(a!=1)的值是(C)。 A.1 B. 2 C. 0 D. 不知道a的值,不能确定 若char x=97,则变量x对应(A)字符。 A. ‘a’ B. ‘A’ C. ‘9’ D. ‘7’ 设C语言中,int类型数据占2个字节,则float类型数据占(C)字节。 A. 1个 B. 2个 C. 4个 D. 8个 下列数据类型不是C语言基本数据类型的是(C)。 A. 字符型 B. 整型 C. 数组

第三章-关系代数与关系运算复习课程

第三章关系代数与关系运算 关系数据语言有三类: 1.关系代数语言 2.关系演算语言(元组关系演算语言、域关系演算语言) 3.具有关系代数和关系演算双重特点的语言如SQL 一.关系代数 关系代数:一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。用对关系的运算来表达查询。 运算:将一定的运算符作用于一定的运算对象上,得到预期的运算结果 运算三要素:运算符、运算对象、运算结果 关系代数的运算对象和结果都是:关系 关系代数运算符(四类):集合运算符、专门的关系运算符、算术比较符和逻辑运算符 集合运算符:并(U)、差(—)、交(∩) 传统的集合运算符——从关系的“水平“方向即行的角度来进行 专门的关系运算符:广义笛卡尔积(ⅹ)、选择(σ)、投影(π)、连接、除 专门关系运算符不仅涉及行而且涉及列 比较运算符:>、<、=、≥、≤、≠ 逻辑运算符:¬∧∨ 用来辅助专门的关系运算符 二.传统的集合运算符

传统集合运算符是二目运算符 设关系R和S具有相同的目n(即n个属性),且相应的属性取自同一个域 1.并(Union) 记作:RUS={t|t∈R∨t∈S}结果仍是n目关系,由属于R或S的元组组成。 例: (a)(b) (c)(d) (e) 2.差 关系R与S的差记作:R-S={t|t∈R∧t∈S} 结果仍是n目,由属于R而不属于S的所有元组组成。如图E 3.交 关系R与S的交记作:R∩S = { t | t∈R∧t∈S }结果仍是n目,由即属于R又属于S 的所有元组组成。如图D 可以用差来表示R∩S=R-(R-S) 4.广义笛卡尔积 两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(m+n)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S 有k2个元组,那么关系R与S的广义笛卡尔积有k1 x k2个元组,记作 R×S = { t r t s | t r∈R∧t s∈S } 结果是m+n目 如图例

C语言运算符与表达式的练习题答案

C语言运算符与表达式的练习题 单项选择题 (1)以下选项中,正确的 C 语言整型常量是(D)。 A. 32L B. 510000 C. -1.00 D. 567 (2)以下选项中,(D)是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3)字符串的结束标志是(C)。 A. 0 B. '0' C. '\0' D. "0" (4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (5)逻辑运算符中,运算优先级按从高到低依次为(D)。 A. && ! || B. || && ! C. && || ! D. ! && || (6)表达式!x||a==b 等效于(D)。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是(A)。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 *(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。 A. 3 B. 0 C. 9 D. -12 (9)在以下一组运算符中,优先级最低的运算符是(D)。 A. * B. != C. + D. = (10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。 A. 6 B. 12 C. 15 D. 表达式出错 (11)若已定义 x 和 y为double 类型,则表达式的值是(D)。

第三章 运算符与表达式

第三章运算符与表达式 3、1 C运算符简介 运算符:狭义的运算符是表示各种运算的符号。 表达式:使用运算符将常量、变量、函数连接起来,构成表达式。 C语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C语言运算符可以看作是操作符。C语言丰富的运算符构成C语言丰富的表达式(是运算符就可以构成表达式)。运算符丰富、表达式丰富、灵活。 在C语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值符运算符,位操作运算符、自增自减运算符等等。甚至数组下标,函数调用都作为运算符。 C的运算符有以下几类: ++,-- 本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符,其它运算符在以后相关章节中结合有关内容陆续进行介绍。 3、2 算术运算符和算术表达式

1、算术运算符 +(加法运算符。如3+5) -(减法运算符或负值运算符。如5-2,-3) *(乘法运算符。如3*5) /(除法运算符。如5/3,5.0/3) %(模运算符或求余运算符,%要求两侧均为整型数据。如7%4的值为3)。 除了负值运算符-单目运算符外,其它都是双目运算符。 说明: (1)两个整数相除的结果为整数,如5/3的结果为1,舍去小数部分。但是如果除数或被除数中有一个为负值,则舍入的方向是不固定的,多数机器采用“向0取整”的方法(实际上就是舍去小数部分,注意:不是四舍五入)。 (2)如果参加+,-,*,/运算的两个数有一个为实数,则结果为double型,因为所有实数都按double型进行计算。 (3)求余运算符%,要求两个操作数均为整型,结果为两数相除所得的余数。求余也称为求模。一般情况,余数的符号与被除数符号相同。 例如:-8%5=-3;8%-5=3 2、算术表达式 算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。运算对象可以是常量、变量、函数等。 例如,下面是一个合法的C算术表达式。a*b/c-1.5+’a’。

相关主题
文本预览
相关文档 最新文档