DoNet面试题(选择题)原题

合集下载

.NET开发人员面试题(含答案)

.NET开发人员面试题(含答案)

.NET开发人员试题(综合)每题5分1、用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?2、软件开发过程一般有几个阶段?每个阶段的作用?3、请列举一些您用到过的设计模式以及在什么情况下使用该模式?4、您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?5、您离职的原因是什么?.NET开发人员试题(基础)一、填空:每题2分1.面向对象的语言具有继承性、封装性、多态性。

2. 能用foreach遍历访问的对象需要实现 IEnumerable _接口或声明3.委托声明的关键字是delegate ?4.在.Net托管代码中我们不用担心内存漏洞,这是因为有了gc __?5.当类T只声明了私有实例构造函数时,则在T的程序文本外部,不可以(可以or 不可以)从T派生出新的类,不可以(可以or 不可以)直接创建T的任何实例。

二、单选:每题2分6.在对SQL Server 数据库操作时应选用(A)。

a)SQL Server .NET Framework 数据提供程序;b)OLE DB .NET Framework 数据提供程序;c)ODBC .NET Framework 数据提供程序;d)Oracle .NET Framework数据提供程序;7.以下描述错误的是(A)a)在C++中支持抽象类而在C#中不支持抽象类。

b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

c)在C#中可使用new 修饰符显式隐藏从基类继承的成员。

d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

8.C#的数据类型有(A)a)值类型和调用类型;b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;9.下列描述错误的是(D)a)类不可以多重继承而接口可以;b)抽象类自身可以定义成员而接口不可以;c)抽象类和接口都不能被实例化;d)一个类可以有多个基类和多个基接口;10.在DOM中,装载一个XML文档的方法(D)a)save方法b)load方法c)loadXML方法d)send方法三、不定项选择:每题3分11. 以下叙述正确的是:B CA. 接口中可以有虚方法。

DotNet测试题

DotNet测试题

心之所向,所向披靡.NET 测试题一、单选题(15×2)1.下列选项中,()是值类型。

A.string类型 B. IComparable类型 C. struct类型 D. int[] 类型2.关于中的代码隐藏文件的描述正确的是()A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。

编程逻辑唯一与用户界面不同的文件中。

该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。

B.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。

C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。

D.以上都不正确。

3.关于构造函数的说法中,说法错误的是()A.调用子类的构造函数时,会调用父类的构造函数。

B.通过base关键字可以调用父类的构造函数。

C.构造函数不能声明为private。

D.通过this关键字可以调用本类中的其它构造函数。

4.在DOM中,加载一个XML结构文档的方法()A.Save方法B. Load方法C. LoadXml方法D. Send方法5.在SQL中,建立表用()命令A.CREATE TRIGGERB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX6.switch语句的控制表达式的数据类型不可以是()A.stringB. enumC. longD. float7.下列哪个功能是C#3.0中新出现的A.泛型B. 可空类型C. 扩展方法D. 匿名方法8.声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型是()A.void myCallBack(int x)B.int receive(int num)C.string receive(int x)D.不确定9.在SQL中,若要修改表结构则用()命令A.MODIFY TABLEB.UPDATE TABLEC.ALTER TABLED.NEW TABLE10.看下面代码string str = "我来自Allrun";byte [] bytesUTF8 = Encoding.UTF8.GetBytes (str);byte [] bytesUni = Encoding.Unicode.GetBytes (str);Console.WriteLine ("StringLength={0},BytesUTF8Length={1},BytesUniLength={2}",str.Length, bytesUTF8.Length, bytesUni.Length);请问输出的结果是()A.StringLength=9,BytesUTF8Length=15,BytesUniLenth=18B.StringLength=9,BytesUTF8Length=18,BytesUniLenth=15C.StringLength=12,BytesUTF8Length=15,BytesUniLenth=18D.StringLength=12,BytesUTF8Length=18,BytesUniLenth=1511.要对注册表进行操作则必须包含()命名空间ponentModelB.System.CollectionsC.System.ThreadingD.Microsoft.Win32框架中,在Web窗体页上注册一个用户控件,指定该控件的名称为“Mike”,正确的注册指令为()A.<%@Register TagPrefix = “Mike” TagName = “Space 2”Src = “myX.ascx”%>B.<%@Register TagPrefix = “Space 2”TagName = “Mike” Src = “myX.ascx”%>C.<%@Register TagPrefix = “SpaceX” TagName = “Space 2”Src = “Mike”%>D.以上都不是13.在 中,下面说法正确的是()A.machine.config用来保存的当前计算机所有应用程序的配置。

DOTNET面试题(初级中级)参考答案net

DOTNET面试题(初级中级)参考答案net

中软强网DOTNET程序员面试题(初级中级)参考答案姓名:年龄:籍贯:应聘岗位:期望薪金:最低薪金:期望培训方向:联系方式:住址:1.填空: 评分标准:一空1分,满分10分。

(1)面向对象的语言具有________性、_________性、________性。

继承性、封装性、多态性。

(考基本概念)(2)能用foreach遍历访问的对象需要实现________________接口或声明________________方法的类型。

IEnumerable 、GetEnumerator (对foreach机制的理解,本来不想出这题的,凑分)(3)列举中的五个主要对象_______________、_____________、_______________、______ _________、_________________。

... (送分题, 对的了解)2. 不定项选择:评分标准: 一题5分,不选或者错选均不得分。

漏选得2分。

满分10分。

(1) 以下叙述正确的是:A. 接口中可以有虚方法。

B. 一个类可以实现多个接口。

C. 接口不能被实例化。

D. 接口中可以包含已实现的方法。

B、C (考对接口的理解)(2) 从数据库读取记录,你可能用到的方法有:A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReaderB、C、D (考查对的熟练程度)3. 简述private、protected、public、internal 修饰符的访问权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同一命名空间内可以访问。

评分标准:答对1题2分,2题5分,3题7分。

全对10分。

(送分题)4. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。

DoNet面试题面试相关DotNet面试题_8

DoNet面试题面试相关DotNet面试题_8

.Net 面试题(八)
Web Service的开发与应用
1.请简述SOAP协议
答:SOAP的全称是简单对象访问协议(Simple Object Access Protocol)以XML形式提供了一个简单、轻量的用于在分散和分布环境中交换结构化和类型信息的机制。

SOAP协议定义了交互的方式,但并未规定时限协议的环境和技术细节。

2.什么是WSDL,它有何作用
答:WSDL的全称是Web服务描述语言(Web Service Description Language),它是一种符合XML语法规范的语言,用以描述服务器端提供的Web Service方法,其中包括方法的名称、参数数量、各个参数的类型以及返回的类型等信息。

一个WSDL文件可以完全地描述整个服务器所提供的Web Service。

3.如何在.NET中创建Web Service
答:在.NET中,可以使用内建类型WebService和WebMethod特性来实现Web Service,这种方法使得程序员完全不需要处理和通信有关的工作,而将注意力集中在逻辑工作上。

为了获得更大的灵活性,程序员也可以通过实现IHTTPRequest接口来实现定义的asmx资源请求处理类型。

更进一步的,程序员可以自定义资源文件和处理程序,来实现完全自定义的Web Service,只需要确保所有的返回都符合SOAP协议即可。

.NET面试题完整版(含前、后端及数据库等多个个方面带参考答案)

.NET面试题完整版(含前、后端及数据库等多个个方面带参考答案)

.NET⾯试题完整版(含前、后端及数据库等多个个⽅⾯带参考答案)⼀。

基础篇1.简述 private、 protected、 public、 internal 修饰符的权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同⼀命名空间内可以访问。

2 .列举 页⾯之间传递值的⼏种⽅式。

QueryString,Session,Cookies,Application,Server.Transfer。

2.C#中的委托是什么?事件是不是⼀种委托?委托是将⽅法作为参数带⼊另⼀个⽅法,委托可以理解为指向⼀个函数的引⽤,事件是⼀种特殊的委托。

3.堆和栈的区别? 1、栈(操作系统):由操作系统⾃动分配释放 ,存放函数的参数值,局部变量的值等。

其操作⽅式类似于数据结构中的栈; 2、堆(操作系统): ⼀般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配⽅式倒是类似于链表。

5.abstract class和interface有什么区别?1.抽象类可以有构造⽅法,接⼝中不能有构造⽅法。

2.抽象类中可以有普通成员变量,接⼝中没有普通成员变量3.抽象类中可以包含⾮抽象的普通⽅法,接⼝中的所有⽅法必须都是抽象的,不能有⾮抽象的普通⽅法。

4. 抽象类中的抽象⽅法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不⾏),但接⼝中的抽象⽅法只能是public类型的,并且默认即为public abstract类型。

5. 抽象类中可以包含静态⽅法,接⼝中不能包含静态⽅法6. 抽象类和接⼝中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接⼝中定义的变量只能是public static final类型,并且默认即为public static final类型。

DoNet面试题面试相关DotNet面试题_3

DoNet面试题面试相关DotNet面试题_3

.Net 面试题(三)字符串、集合和流的使用1.System.String是值类型还是引用类型答:是引用类型,它的对象在初始化之后就不能再作修改,任何试图修改字符串对象的动作将导致一个新的字符串对象的产生。

2.StringBuilder类型有何作用答:StringBuilder采用构造器设计模式的思想高效地构造一个字符串对象,在构造过程中StringBuilder可以有效避免临时字符串对象的生成。

一旦StringBuilder的ToString方法被调用后,最终的字符串就被生成,而随后的操作将导致一个新的字符串对象的分配。

因为字符串对象的不可修改特性,StringBuilder还经常被用来和非托管代码交互。

3.如何在String和Byte[]对象之间进行转换答:字符串和字节数组的转换依赖于编码方式的使用,不同的编码标准将使用不同的算法进行。

System.Text.Encoding类型提供了大部分常见的编码算法支持,用以进行字符串和字节数组之间的转换。

4.简述BASE64编码的作用以及C#中对其的支持答:BASE64编码是一种用于混淆明码的编码方式,其算法是把原先的8位字节数组顺序分配到新的6位字节数组中,再在每个字节的高2位填充0来组成新的8位字节数组。

在.NET 中Convert类可以用来进行BASE64字符串和8位字节数组之间的转换。

5.什么是字符串池机制答:字符串池机制致力到发送程序的性能。

CLR会保留程序中出现过的字符串对象的集合,并且在需要新的字符串时,先检查已有的集合,在查找成功时返回已有对象的引用。

字符串池机制可以通过程序集元数据特性进行控制,C#默认的机制是打开字符串池机制。

6.int[]是引用类型还是值类型答:数组类型是一族类型,都继承自System.Array,而System.Array又继承自System.Object,所有的数组类型都是引用类型。

7.数组之间如何进行转换答:数组类型在符合条件的情况下可以进行隐式地转换,条件包括:数组维数必须相同;目标项目类型和源项目类型必须存在在隐式或者显示转换关系;源数组的项目类型不是值类型。

DOTNET软件工程师面试试题~~~~~~

DOTNET软件工程师面试试题~~~~~~

.NET软件工程师面试试题一、选择题。

(每题2分,共35题)1、C#中声明一个命名空间的关键字是( )。

spaceplaceingD.as2、如果不带修饰符,C#中类成员被默认声明成( )。

A.publicB.protectedC.privateD.static3、定义如下枚举enum monthes{ January , February=3 , March=5 , April=7 , May , June }则此时January 和May的值分别为( )。

A.1,8B.0,9C.0,8D.1,94、下面是几条定义初始化二维数组的语句,其中正确的是( )。

A.int array2[][] = new int[3,2];B.int array2[,] = new int[3,2];C.int[][] array2 = new int[3,2];D.int[,] array2 = new int[3,2];5、用户类若想支持foreach语句需要实现的接口是( )。

A.IEnumerableB.IEnumeratorC.ICollectionD.IList6、以下哪些可以作为接口成员?( )。

(选择三项)A.方法和属性B.字段C.事件D.索引器E.构造函数和析构函数7、声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是( )。

A.void myCallBack(int x)B.int receive(int num)C.string receive(int x)D.不确定的8、下面哪个选项不能在web.config文件中配置的( )。

A.连接字符串B.身份验证C.网站导航D.程序出现错误时,定向到的错误提示页面9、支持三种验证方式,不属于其中的是( )。

A.passportB.SqlServer身份C.WindowsD.Forms10、在中,下列关于session对象的说法正确的是( )。

net面试题与答案(选择、填空、简答)(免费下载)

net面试题与答案(选择、填空、简答)(免费下载)

.net面试题选择题1.以下叙述正确的是:(BC)A. 接口中可以有虚方法B. 一个类可以实现多个接口C. 接口不能被实例化D. 接口中可以包含已实现的方法2.从数据库读取记录,你可能用到的方法有:(BCD)A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader3.以下关于ref和out的描述哪些项是正确的?(多选) (ACD)A. 使用ref参数,传递到ref参数的参数必须最先初始化B. 使用out参数,传递到out参数的参数必须最先初始化C. 使用ref参数,必须将参数作为ref参数显式传递到方法D. 使用out参数,必须将参数作为out参数显式传递到方法4.在对SQL Server 数据库操作时应选用 (A)A. SQL Server .NET Framework 数据提供程序B. OLE DB .NET Framework 数据提供程序C. ODBC .NET Framework 数据提供程序D. Oracle .NET Framework数据提供程序5.下列选项中,(C) 是引用类型A. enum类型B. struct类型C. string类型D. int类型6.关于中的代码隐藏文件的描述正确的是 (C)A. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。

编程逻辑唯一与用户界面不同的文件中。

该文件称作为"代码隐藏"文件,如果用C#创建,该文件将具有".ascx.cs"扩展名B. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件C. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库 (.dll)文件D. 以上都不正确7.以下描述错误的是 (A)A. 在C++中支持抽象类而在C#中不支持抽象类B. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员C. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员D. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override8.C#的数据类型有 (A)A.值类型和调用类型;B.值类型和引用类型;C.引用类型和关系类型;D.关系类型和调用类型;9.下列描述错误的是 (D)A. 类不可以多重继承而接口可以B. 抽象类自身可以定义成员而接口不可以C. 抽象类和接口都不能被实例化D. 一个类可以有多个基类和多个基接口10.下列关于构造函数的描述正确的是 (C)A. 构造函数可以声明返回类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.下面有关用户控件与aspx页面区别说法错误的是(B)A.用户控件不能再包含<HTML><BODY><FORM>标记,而aspx页面可以包含B.用户控件不能触发服务器端的事件,只是一种外观重用方式,而aspx页面可以C.用户控件继承自erControl,而aspx页面继承自System.Web.UI.PageD.用户控件可以包含其它用户控件,但是不能直接访问,必须包含在某个aspx页面中才可以访问,而aspx 页面是可以直接访问的2.想在在aspx页面使用用户控件,则aspx页面开始部分必须添加下面哪个页面指令AA. <%@ Page %>B.<%@ Master %>C. <%@ Control %>D. <%@ Register %>3.根据你的理解,你认为第三控件与用户控件的主要区别是AA.第三方控件是编译后的代码,后缀为dll,只要应用程序引用进来,就可以使用,而用户控件是页面文件,属于非编译代码,只限于在当前应用程序中使用B.用户控件比第三方控件更灵活,可以在应用程序中多个地方使用C.用户控件出现在工具箱中,而第三方控件不会出现在工具箱中D.用户控件比第三方控件的执行效率要高一些4.下面关于HttpHandler与HttpModule说法正确的是CA.一个Http请求中可以经历多个HttpModule和一个HttpHandlerB.一个Http请求中可以经历多个HttpHandler和一个HttpModuleC.HttpModule是一个Http请求的最终处理者D.HttpHandler通常做一些停止数据向客户端输出的操作5.在aSPNET中,关于HttpHandler说法不正确的是:(D)A.通常文件后缀名为ashxB.它是一个Http请求处理的最终点C.它实现了IHttpHandlerD.当它的IsReusable属性为false时,表示只能使用一次6.下面哪个选项不能在web.config文件中配置的(C)A.连接字符串B.身份验证C.网站导航D.程序出现错误时,定向到的错误提示页面7.a SPNET支持三种验证方式,不属于其中的是(B)A.passportB.SqlServer身份C.WindowsD.Forms8.在网站某个目录的web.config配置文件中,有一段关于该目录授权的代码,经过分析,你认为正确的答案是:B<authentication><deny user="?" />拒绝所有匿名用户<allow users="xiaozhang" />容许xiazhang<deny roles="*">拒绝所有用户</authentication>A.所有用户都可以访问该网站目录,除xiaozhang以外B.所有用户都不能访问该网站目录,除xiaozhang以外C.匿名用户和xiaozhang都不能访问该网站目录D.所有角色和用户都不能访问该网站目录9.已知在网站的根目录下有一个web.config文件,有如下关于验证的代码,正确说法的是B<authorization mode="Forms"><forms name="userLogin" loginUrl="~/login.aspx" timeout="20"></forms></authorization>A.loginUrl的作用是,当用户登录不成功时,转向login.aspx页面B.loginUrl的作用是,当用户进入网站如果未登录,就转向login.aspx页面C.timeout是超过20分钟不登录,就退出网站D.timeout的作用是当20分钟后,用户还没有登录,就转向login.aspx页面10.下列关于部署的说法,正确的是(a d)A.部署就是将站点文件复制到相关web目录中B.应该在本地站点将内容处理好,比如数据库连接字符串设置好并加密,然后直接复制到站点到远程服务器相关目录即可C.发布预编译站点,如果将来需要更新某个页面,最好不要选择使用”使用固定命名和单页程序集”D.发布预编译站点就是将站点所有文件都编译到dll中11.下面(C)不属于导航控件A.MenuB.SiteMapPathC.ViewD.SiteMapDataSource12.在中的母版中的内容页中能包含的HTML元素是(D)A.<html>B.<head>C.<body>D.<script>13.如果希望使用TreeView控件显示时默认全部展开应设置(D)属性A.ExpanDepthB.ExpandImageToolTipC.ExpandImageUrlD.Expand14.在SiteMapPath控件中,要设置导航路径中分隔符应设置(B)属性A.PathDirectionB.PathSeparatorC.PathSeparatorStyleD.Provider15.下列关于ContentPlaceHolder控件说法错误的是(C)ContentPlaceHolderMainA.ContentPlaceHolder控件为母版页中的内容定义一个相对区域B.母版页还包括一个或多个ContentPlaceHolder控件C.ContentPlaceHolder控件必须包含在内容页中D.Content 控件使用其ContentPlaceHolderID属性与ContentPlaceHolder关联.16.下列(c)模板不属于Repeater控件A.ItemTemplateB.alternatingItemTemplateC.SelectedItemTamplateD.SeparatorTemplate17.设置(a)属性将会页面显示DataList控件时调用EditItemTemplate模板A.EditItemIndexB.EditIndexC.SelectedItemIndexD.ModifyItemIndex18.如果在DataList中实现分页一般(AB)(选择二项)A.使用Sql语句B.使用PageDataSource对象进行分页C.设置CurrentPageIndex属性D.设置DataList的PageIndex属性19.DataList中的交替行模板是(B)A.ItemTemplateB.alternatingItemTemplateC.SelectedItemTamplateD.SeparatorTemplate20.下面关于DataList说法错误的是(C)A.DataList没有内置分页功能B.DataList具有SelectedItemTamplate模板C. DataList不能使用ObjectDataSource控件进行绑定数据可以使用ObjectDataSource控件进行绑定数据D. DataList比Repeater控件多了二个模板DataList有编辑模板和选择模板21.在中,application是(C)类的实例A.HttpapplicationB.HttpapplicationUtilityC.HttpapplicationStateD.Page22.在中,下列关于session对象的说法正确的是(D)。

(选择一项)A.用户每次打开一个web页面,将会创建一个session对象B.用户关闭客户端web页面后,session对象将立即消失C.应用程序退出后,session对象的值才能消失D.每个用户的Session对象不能被其他用户访问23.在中,为了将当前页面跳转到一个相同目录下名为Main.htm的页面,下面方法正确的是(C)。

(选择一项)A.Server.Execute(“Main.htm”);B.Servlet.Transfer(“Main.htm”);C.Response.Redirect(“Main.htm”);D.Response.Write(“Main.htm”);24.某个用技术开发的网站拥有大量的访问量,最近该网经常因为服务器内存占用率过高而宕机,作为该网站技术员的你仔细检查了该网站的系统,发现内存占有率过高是因为每个用户都有大量数据保存在Session中,为了解决该问题你应该进行(C)处理。

(选择一项)A.将保存在Session中的数据保存在application中B.将保存在Session中的数据保存在Cookie中C.将Session中对安全性要求不高的数据保存在Cookie中,不经常使用的数据保存在数据库中D.将Session中对安全性要求不高的数据保存在application中,不经常使用的数据保存在Cookie中25.对于第三方在线文本编辑控件FreeTextBox,如果需要获取控件中录入文本的HTML代码,需要访问什么属性(A)(选择一项)A.TextB.HtmlTextC.ValueD.SelectText26.有时候编辑过程中会出现如下的错误,如果要避免该错误,需要在Page页面指令上做何设置(D):(选择一项)A.EnableEventValidation="true"B.EnableEventValidation="false"C.ValidateRequest="true"D.ValidateRequest="false"27.使用验证码生成控件Webvalidates,生成验证码的方法为(C):(选择一项)A.Generate()B.Initial()C.Create()D.Next()28.CodeSmith中,脚本标签写法正确的是(B):(选择一项)A.<script runat=”server”></script>B.<script runat=”template”></script>如果不添加会被视为普通文本C.<CodeTemplaterunat=”server”></CodeTemplate>D.<CodeTemplaterunat=”template”></CodeTemplate>29.利用CodeSmith生成实体类的代码,对于DbType.Int32,应输出的类型为:(C)(选择一项)A.byteB.shortC.intD.long30.下面那种数据源控件适合于三层结构数据绑定(C)A.SqlDataSourceB.aCessDataSoureC.ObjectDataSoureD.XmlDataSoure31.下面对于几种数据源控件说法错误的是(A)A.SqlDataSource数据源控件不能用于oracle数据库和aCess数据库。

相关文档
最新文档