编译原理词法分析习题集带答案

合集下载

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。

答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。

词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。

2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。

它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。

三、论述题1. 论述编译器中的代码优化技术及其重要性。

答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。

常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。

代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。

四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。

编译原理第4章答案

编译原理第4章答案

第四章词法分析1.构造下列正规式相应的DFA:(1)1(0|1) * 101(2)1(1010* | 1(010) * 1)* 0(3)a((a|b) * |ab * a)* b(4)b((ab)* | bb) * ab解:(1)1(0|1) * 101 对应的 NFA为1101012341下表由子集法将NFA 转换为 DFA:I I0=ε-closure(MoveTo(I,0))I1=ε-closure(MoveTo(I,1))A[0]B[1]B[1]B[1]C[1,2]C[1,2]D[1,3]C[1,2]D[1,3]B[1]E[1,4]E[1,4]B[1]B[1]001101A B C D E110,1(2)1(1010 * | 1(010) * 1)* 0 对应的 NFA 为εε1101010 01234561εε101978ε下表由子集法将NFA 转换为 DFA:I I=ε-closure(MoveTo(I,0))I1= ε-closure(MoveTo(I,1))A[0]B[1,6]B[1,6]C[10]D[2,5,7]C[10]D[2,5,7]E[3,8]B[1,6]E[3,8]F[1,4,6,9] F[1,4,6,9]G[1,2,5,6,9,10]D[2,5,7]G[1,2,5,6,9,10]H[1,3,6,9,10]I[1,2,5,6,7] H[1,3,6,9,10]J[1,6,9,10]K[2,4,5,7] I[1,2,5,6,7]L[3,8,10]I[1,2,5,6,7] J[1,6,9,10]J[1,6,9,10]D[2,5,7]K[2,4,5,7]M[2,3,5,8]B[1,6]L[3,8,10]F[1,4,6,9] M[2,3,5,8]N[3]F[1,4,6,9] N[3]O[4]O[4]P[2,5]P[2,5]N[3]B[1,6]1L111111010B I KA D E F M00110 00C11G H J101NP O(3)a((a|b) * |ab * a)* b(略 )(4)b((ab) * | bb) * ab(略 )2.已知 NFA=( {x,y,z},{0,1},M,{x},{z} )其中:M(x,0)={z},M(y,0)={x,y},M(z,0)={x,z},M(x,1)={x}, M(y,1)=φ ,M(z,1)={y},构造相应的 DFA。

编译原理一些习题答案

编译原理一些习题答案

第2章形式语言基础2.2 设有文法G[N]: N -> D | NDD -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9(1)G[N]定义的语言是什么?(2)给出句子0123和268的最左推导和最右推导。

解答:(1)L(G[N])={(0|1|2|3|4|5|6|7|8|9)+} 或L(G[N])={α| α为可带前导0的正整数}(2)0123的最左推导:N ⇒ ND ⇒ NDD ⇒ NDDD ⇒ DDDD ⇒ 0DDD ⇒ 01DD ⇒ 012D ⇒ 0123 0123的最右推导:N ⇒ ND ⇒ N3 ⇒ ND3 ⇒ N23 ⇒ ND23 ⇒ N123 ⇒ D123 ⇒ 0123268的最左推导:N ⇒ ND ⇒ NDD ⇒ DDD ⇒ 2DDD ⇒ 26D ⇒ 268268的最右推导:N ⇒ ND ⇒ N8 ⇒ ND8 ⇒ N68 ⇒ D68 ⇒ 2682.4 写一个文法,使其语言是奇数的集合,且每个奇数不以0开头。

解答:首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。

如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法分3部分来完成。

分别用3个非终结符来产生句子的第1位、中间部分和最后一位。

引入几个非终结符,其中,一个用作产生句子的开头,可以是1-9之间的数,不包括0,一个用来产生句子的结尾,为奇数,另一个则用来产生以非0整数开头后面跟任意多个数字的数字串,进行分解之后,这个文法就很好写了。

N -> 1 | 3 | 5 | 7 | 9 | BNB -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | B02.7 下面文法生成的语言是什么?G1:S->ABA->aA| εB->bc|bBc G2:S->aA|a A->aS解答:B ⇒ bcB ⇒ bBc⇒ bbccB ⇒ bBc⇒ bbBcc ⇒ bbbccc……A ⇒εA ⇒ aA ⇒ aA ⇒ aA ⇒ aaA ⇒ aa……∴S ⇒ AB ⇒ a m b n c n , 其中m≥0,n≥1即L(G1)={ a m b n c n | m≥0,n≥1} S ⇒ aS ⇒ aA ⇒ aaS ⇒ aaaS ⇒ aA ⇒ aaS ⇒ aaaA ⇒aaaaS ⇒ aaaaa ……∴S ⇒ a2n+1 , 其中n≥0即L(G2)={ a2n+1 | n≥0}2.11 已知文法G[S]: S->(AS)|(b)A->(SaA)|(a)请找出符号串(a)和(A((SaA)(b)))的短语、简单短语和句柄。

编译原理第三版课后习题答案

编译原理第三版课后习题答案

编译原理第三版课后习题答案编译原理是计算机科学中的一门重要课程,它研究的是如何将高级程序语言转换为机器语言的过程。

而《编译原理》第三版是目前被广泛采用的教材之一。

在学习过程中,课后习题是巩固知识、提高能力的重要环节。

本文将为读者提供《编译原理》第三版课后习题的答案,希望能够帮助读者更好地理解和掌握这门课程。

第一章:引论习题1.1:编译器和解释器有什么区别?答案:编译器将整个源程序转换为目标代码,然后一次性执行目标代码;而解释器则逐行解释源程序,并即时执行。

习题1.2:编译器的主要任务是什么?答案:编译器的主要任务是将高级程序语言转换为目标代码,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等过程。

第二章:词法分析习题2.1:什么是词法分析?答案:词法分析是将源程序中的字符序列划分为有意义的词素(token)序列的过程。

习题2.2:请给出识别下列词素的正则表达式:(1)整数:[0-9]+(2)浮点数:[0-9]+\.[0-9]+(3)标识符:[a-zA-Z_][a-zA-Z_0-9]*第三章:语法分析习题3.1:什么是语法分析?答案:语法分析是将词法分析得到的词素序列转换为语法树的过程。

习题3.2:请给出下列文法的FIRST集和FOLLOW集:S -> aAbA -> cA | ε答案:FIRST(S) = {a}FIRST(A) = {c, ε}FOLLOW(S) = {$}FOLLOW(A) = {b}第四章:语义分析习题4.1:什么是语义分析?答案:语义分析是对源程序进行静态和动态语义检查的过程。

习题4.2:请给出下列文法的语义动作:S -> if E then S1 else S2答案:1. 计算E的值2. 如果E的值为真,则执行S1;否则执行S2。

第五章:中间代码生成习题5.1:什么是中间代码?答案:中间代码是一种介于源代码和目标代码之间的表示形式,它将源代码转换为一种更容易进行优化和转换的形式。

编译原理习题答案

编译原理习题答案

编译原理习题答案《编译原理》习题答案:第⼀次:P142、何谓源程序、⽬标程序、翻译程序、汇编程序、编译程序和解释程序?它们之间可能有何种关系?答:被翻译的程序称为源程序;翻译出来的程序称为⽬标程序或⽬标代码;将汇编语⾔和⾼级语⾔编写的程序翻译成等价的机器语⾔,实现此功能的程序称为翻译程序;把汇编语⾔写的源程序翻译成机器语⾔的⽬标程序称为汇编程序;解释程序不是直接将⾼级语⾔的源程序翻译成⽬标程序后再执⾏,⽽是⼀个个语句读⼊源程序,即边解释边执⾏;编译程序是将⾼级语⾔写的源程序翻译成⽬标语⾔的程序。

关系:汇编程序、解释程序和编译程序都是翻译程序,具体见P4 图 1.3。

P143、编译程序是由哪些部分组成?试述各部分的功能?答:编译程序主要由8个部分组成:(1)词法分析程序;(2)语法分析程序;(3)语义分析程序;(4)中间代码⽣成;(5)代码优化程序;(6)⽬标代码⽣成程序;(7)错误检查和处理程序;(8)信息表管理程序。

具体功能见P7-9。

P144、语法分析和语义分析有什么不同?试举例说明。

答:语法分析是将单词流分析如何组成句⼦⽽句⼦⼜如何组成程序,看句⼦乃⾄程序是否符合语法规则,例如:对变量 x:= y 符合语法规则就通过。

语义分析是对语句意义进⾏检查,如赋值语句中x与y类型要⼀致,否则语法分析正确,语义分析则错误。

P155、编译程序分遍由哪些因素决定?答:计算机存储容量⼤⼩;编译程序功能强弱;源语⾔繁简;⽬标程序优化程度;设计和实现编译程序时使⽤⼯具的先进程度以及参加⼈员多少和素质等等。

补充:1、为什么要对单词进⾏内部编码?其原则是什么?对标识符是如何进⾏内部编码的?答:内部编码从“源字符串”中识别单词并确定单词的类型和值;原则:长度统⼀,即刻画了单词本⾝,也刻画了它所具有的属性,以供其它部分分析使⽤。

对于标识符编码,先判断出该单词是标识符,然后在类别编码中写⼊相关信息,以表⽰为标识符,再根据具体标识符的含义编码该单词的值。

编译原理习题及答案

编译原理习题及答案

2. 正规式 M 1 和 M 2 等价是指_____。 A.( ) M1 和 M2 的状态数相等 C.( ) M1 和 M2 所识别的语言集相等 B.( ) M1 和 M2 的有向边条数相等 D.( ) M1 和 M2 状态数和有向边条数相等
3. 文法 G:S→xSx|y 所识别的语言是_____。 A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*
10.编译程序使用_____区别标识符的作用域。 A. ( ) 说明标识符的过程或函数名 B.( ) 说明标识符的过程或函数的静态层次 C.( ) 说明标识符的过程或函数的动态层次 D. ( ) 标识符的行号 三、填空题(每空 1 分,共 10 分) 1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。 2.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个 单词符号,其输出结果是单词符号,供语法分析器使用。 3.自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。 4.一个 LR 分析器包括两部分:一个总控程序和___一张分析表__。 5.后缀式 abc-/所代表的表达式是___a/(b-c)__。 6.局部优化是在__基本块___范围内进行的一种优化。 四、简答题(20 分) 1. 简要说明语义分析的基本功能。 答:语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检 查。
4lr0分析器所谓lr0分析是指从左至右扫描和自底向上的语法分析且在分析的每一步只须根据分析栈当前已移进和归约出的全部文法符号并至多再向前查看0个输入符号就能确定相对于某一产生式左部符号的句柄是否已在分析栈的顶部形成从而也就可以确定当前所应采取的分析动作移进还是按某一产生式进行归约等

(完整版)编译原理习题及答案(整理后)

(完整版)编译原理习题及答案(整理后)

8、规范推导是最左推导,故选 d。
9、由 T→T,…和 T→(… 得 FIRSTVT(T))={(,,)};
由 T→S 得 FIRSTVT(S)⊂FIRSTVT(T),而 FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,};
因此选 c。
10、d 11、c 12、b 13、b 14、b
标语言
第二章
一、单项选择题
1、文法 G:S→xSx|y 所识别的语言是 。
a. xyx
b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法 G 描述的语言 L(G)是指 。
a. L(G)={α|S⇒+ α , α∈VT*}
b. L(G)={α|S⇒* α, α∈VT*}
c. L(G)={α|S⇒* α,α∈(VT∪VN*)} d. L(G)={α|S⇒+ α, α∈(VT∪VN*)}
6、一个文法所有句型的集合形成该文法所能接受的语言。
五、简答题
1、句柄 2、素短语
3、语法树
4、归约
六、问答题
1、给出上下文无关文法的定义。
2、文法 G[S]:
() () () () ()
5、推导
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc (1)它是 Chomsky 哪一型文法? (2)它生成的语言是什么? 3、按指定类型,给出语言的文法。 L={aibj|j>i≥1}的上下文无关文法。 4、有文法 G:S→aAcB|Bd
a. 23 B. 42 c. 30 14、规范归约指 。
d. 17
a. 最左推导的逆过程
b. 最右推导的逆过程

编译原理习题课(词法分析)

编译原理习题课(词法分析)

整理ppt
11
四.解答题
1.已知语言求文法
(1).构造语言L(G[S])={ (n )n | n≥0 } 的文法。
句子结构特征: L={ε,(),(( )),((( ))),…}
文法为: G[S] : S→(S) | ε
(2).构造语言L(G)={ am bn | n>m>0 } 的文法。
单独生成am 或bn 可以用 A→Aa|a B→Bb|b
c. ε|0|1 (00|01|10|1ε|0|1 (00|01|10|11) *
e. 没有一个
整理ppt
7
5.有文法 G[S]=( {S , A , B } , {a , b} , P , S ) 其中P为: S→AB | AS
A→a | aA
B→b |bb 则图所示的语法树中,_b____正确的描述了对符号
整理ppt
1
词法分析习题课 一、填空题
1.设文法G[<id>]的产生式是 <id>→a | b | c | <id>a | <id>c | <id>0 | <id>1则
文法的终结符号集合VT=_a_,b_,c_,0_,_1 __ ,非终结符号 集合VN=___<i_d_>_____。
2.高级程序设计语言的翻译主要有两种方式: __编_译__方_式__和__解_释__方_式__。二者的根本区别在于 __是_否__生_成__目_标__代_码______。
整理ppt
2
3.一个文法G[Z]若存在推导Z=+>…Z…则称G[Z]是 _递__归__文法,这类文法所产生的句子有_无__穷_个。
4.编译过程中扫描器所完成的任务是从字符串形 式的__源_程__序__中识别出一个个具有独立意义的最 小语法单位------__单_词_____。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《编译原理》习题(一)——词法分析
一、是非题(请在括号内,正确的划√,错误的划×)
1.编译程序是对高级语言程序的解释执行。

(× )
2.一个有限状态自动机中,有且仅有一个唯一的终态。

(×)
9.两个正规集相等的必要条件是他们对应的正规式等价。

(× )
二、选择题
1.词法分析器的输出结果是_____。

A.( ) 记号B.( ) 相应条目在符号表中的位置
C.( ) 记号和属性二元组D.( ) 属性值
2.正规式M 1 和M 2 等价是指_____。


A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.语言是
A.句子的集合B.产生式的集合
C.符号串的集合D.句型的集合
4.编译程序前三个阶段完成的工作是
A.词法分析、语法分析和代码优化
B.代码生成、代码优化和词法分析
C.词法分析、语法分析、语义分析和中间代码生成
D.词法分析、语法分析和代码优化
5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即
[
A.字符B.单词C.句子D.句型
6.构造编译程序应掌握______。

A.( )源程序B.( ) 目标语言
C.( ) 编译方法D.( ) 以上三项都是
7.词法分析的任务是
A.识别单词B.分析句子的含义
C.识别句子D.生成目标代码
三、填空题
1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。

3.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。

?
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。

17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。

1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。

3.通常把编译过程分为分析前端与综合后端两大阶段。

词法、语法和语义分析是对源程序
的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。

5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。

四、名词解释题: 1.词法分析
词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则 &
从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位, 并转换成统一的内部表示(token),送给语法分析程序。

13.扫描器------执行词法分析的程序。

五、简答题
(一)、描述由正规式b*(abb*)*(a| )定义的语言,并画出接受该语言的最简DFA 。

答:由正规式b*(abb*)*(a| )定义的语言是字母表{a, b}上不含子串aa 的所有串的集合。

最简DFA 如下:
(二)、描述由正规式b a(bb a) b 定义的语言,并画出接受该语言的最简DFA 。

答:正规式b a(bb a) b 体现的特点是,每个a 的左边都有若干b ,除非a 是第一个字母。

该正规式定义的语言是:至少含一个a ,但不含子串aa 的所有a 和b 的串集。

最简DFA 如下:
(三). 一字母表Σ={a, b},试写出Σ上所有以a 为首的字组成的正规集相对应的正规式。

答:正规式 a ( a | b )*。


(四).令Σ={a,b},则正规式a*b|b*a 表示的正规集是什么 答:.(a*b|b*a)={a,b,ab,ba,aab,bba……}
(五)、构造下列正规式相应的DFA (用状态转换图表示) (1)0(0 | 1)*1 (2)0*10*10*10*1
(3)letter (letter | digit )*
(1)

< start
1 a b b
2 start 2 a
b
b 1 0

b
(2)
(3)
(六).设有非确定的有自限动机NFA M=({A ,B ,C},{0,1},,{A},{C}),其中:
(A ,0)={C} (A ,1)={A ,B} (B ,1)={C} (C ,1)={C}。

请画出状态转换距阵和状态转换图。

^
0 1 A C A ,B B C ) C
C
状态转换图为
|
(七).编译程序和高级语言有什么区别
用汇编语言或高级语言编写的程序,必须先送入计算机,经过转换成用机器 语言表示的目标程序(这个过程即编译),才能由计算机执行。

执行转换过程 的程序叫编译程序。

汇编程序是指没有编译过的汇编语言源文件。

编译程序转 |
A B 1
C 1
1
0 1
1
换过的叫目标程序,也就是机器语言。

编译程序的工作情况有三种:汇编型、解释型和编译型。

汇编型编译程序用来
将汇编语言编写的程序,按照一一对应的关系,转换成用机器语言表示的程序。

解释型编译程序将高级语言程序的一个语句,先解释成为一组机器语言的指令,
然后立即执行,执行完了,取下一组语句解释和执行,如此继续到完成一个程序
止。

用解释型编译程序,执行速度很慢,但可以进行人和计算机的"对话",随时
可以修改高级语言的程序。

BASIC语言就是解释型高级语言。

编译型编译程序将
级语言编写的程序,一次就会部翻译成机器语言表示的程序,而且过程进行很快,
在过程中,不能进行人机对话修改。

FORTRAN语言就是编译型高级语言。

(八).编译程序的工作分为那几个阶段。

词法分析、语法分析和语义分析是对源程序进行的分析(称为编译程序的前端),
而中间代码生成、代码优化和代码生成三个阶段合称为对源程序进行综合(称为
编译程序的后端),它们从源程序的中间表示建立起和源程序等价的目标程序。

(九)、有穷自动机M接受字母表={0,1}上所有满足下述条件的串:每个1都有0直接跟在右边。

构造一个最小的DFA M及和M等价的正规式。

【】【】
(十)、证明正规式(ab)*a 与正规式a(ba)*等价(用构造他们的最小的DFA方法)。

【答案:】
·
(十一)、设={0,1}上的正规集S 由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA 。

(8分) 答:
构造相应的正规式:(0|1)*1(0|1) (3分) NFA: (2分)
1
0 0 I
I
1I
#
{0,1,2} {1,2} {1,2,3} {1,2} {1,2} {1,2,3} {1,2,3} {1,2,4} {1,2,3,4} {1,2,4} 、 {1,2} {1,2,3} {1,2,3,4}
{1,2,4}
{1,2,3,4}
0 1 2 3
}
(十二)、处于/* 和 */之间的串构成注解,注解中间没有*/。

画出接受这种注解的DFA 的状态转换图。


(十三)设有字母表{a ,b}上的正规式R=(ab|a)*。

构造NFA ,确定化,化简 (2014A)
解:(1)

)
(3)对(2)得到的DFA 化简,合并状态0和2 为状态2:
<

(十四)、给定文法G[S]:
S→aA|bQ;A→aA|bB|b;B→bD|aQ ;Q→aQ|bD|b;D→bB|aA ;E→aB|bF
F→bD|aE|b
构造相应的最小的DFA 。

解:先构造其NFA:用子集法将NFA确定化:

将S、A、Q、BZ、DZ、D、B重新命名,分别用0、1、2、3、4、5、6表示。

因为3、4中含有z,所以它们为终态。

令P
=({0,1,2,5,6},{3,4})用b进行分割:
P1=({0,5, 6},{1,2},{3,4})再用b进行分割:
P2=({0},{5, 6},{1,2},{3,4})再用a、b 进行分割,仍不变。

+
再令{0}为A,{1,2}为B,{3,4}为C,{5,6}为D。

最小化为右上图。

*。

相关文档
最新文档