winform常考面试题
1. WCF、WPF、WF、WebServices 简述
参考答案
WCF:Windows Communication Foundation,是由微软开发的一系列支持数据通信的应用程序框 架,可以翻译为 Windows 通讯开发平台。它是.NET 框架的一部分,由 .NET Framework 3.0 开始引 入。整合了原有的 windows 通讯的 .net Remoting,WebService,Socket 的机制,并融合有 HTTP 和 FTP 的相关技术。是 Windows 平台上开发分布式应用最佳的实践方式。
WPF:Windows Presentation Foundation,WPF 是微软新一代图形系统,运行在.NET Framework 3.0 架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。
WF: Windows Workflow Foundation,它是微软在.NET3.0 之后推出的一套工作流开发框架,其 主要的目的在于为现有的.NET 应用程序嵌入工作流应用。
WebService:一种跨编程语言和跨操作系统平台的远程调用技术。
1)远程调用,就是一台计算机的应用可以调用其他计算机上的应用。
2)跨编程语言:是指服务端、客户端程序的编程语言可以不同
3)跨操作系统平台:是指服务端、客户端可在不同的操作系统上运行
例如:支付宝,支付宝并没有银行卡等数据,它只是去调用银行提供的接口来获得数据。还有 天气预报等,也是气象局把自己的系统服务以 WebService 服务的形式暴露出来,让第三方网站和程 序可以调用这些服务功能。
填空题部分
2、能用foreach遍历访问的对象需要实现 IEnumerable 接口 或 声明 GetEnumerator 方法的类型 。
3、c#中的三元运算符是 ? : 。
4、面向对象的语言具有 继承性 、 封装性 、 多态性 。
5、当整数a赋值给一个object对象时,整数a将会被 装箱?
6、类成员有 3 种可访问形式?
7、public static const int A=1;这段代码有错误么?是什么?
参考答案:const成员都是static所以应该去掉static
8、float f=-123.567F;int i=(int)f;
参考答案:i的值现在是 -123
9、利用operator声明且仅声明了==,有什么错误么?
参考答案:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="
10、委托声明的关键字是 delegate?
11、用sealed修饰的类有什么特点?
参考答案:不可被继承
12、在Asp.net中所有的自定义用户控件都必须继承自 System.Web.UI.UserControl?
13、在.Net中所有可序列化的类都被标记为 [serializable] ?
14、在.Net托管代码中我们不用担心内存漏洞,这是因为有了 GC ?
选择题部分
1、以下叙述正确的是: ( B C )
A. 接口中可以有虚方法。
B. 一个类可以实现多个接口。
C. 接口不能被实例化。
D. 接口中可以包含已实现的方法。
2、从数据库读取记录,你可能用到的方法有:( BCD )
A. ExecuteNonQuery
B. ExecuteScalar
C. Fill
D. ExecuteReader
3、对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close
B.Dispose
C.Finalize
D.usingE.Quit
4、以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )
A.使用ref参数,传递到ref参数的参数必须最先初始化。
B.使用out参数,传递到out参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
5、在对SQL Server 数据库操作时应选用( A )。
A.SQL Server .NET Framework 数据提供程序;
B.OLE DB .NET Framework 数据提供程序;
C.ODBC .NET Framework 数据提供程序;
D.Oracle .NET Framework数据提供程序;
6、下列选项中,( C )是引用类型。
A.enum类型
B.struct类型
C.string类型
D.int类型
7、关于ASP.NET中的代码隐藏文件的描述正确的是( C )
A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
B.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
D.以上都不正确。
8、以下描述错误的是( A )
A.在C++中支持抽象类而在C#中不支持抽象类。
B.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
C.在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
D.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
9、C#的数据类型有( B )
A.值类型和调用类型;
B.值类型和引用类型
C.引用类型和关系类型;
D.关系类型和调用类型;
10、下列描述错误的是( D )
A.类不可以多重继承而接口可以;
B.抽象类自身可以定义成员而接口不可以;
C.抽象类和接口都不能被实例化;
D.一个类可以有多个基类和多个基接口;
11、在DOM中,装载一个XML文档的方法( D )
A.save方法
B.load方法
C.loadXML方法
D.send方法
12、下列关于构造函数的描述正确的是( C )
A.构造函数可以声明返回类型。
B.构造函数不可以用private修饰
C.构造函数必须与类名相同
D.构造函数不能带参数
13、以下是一些C#中的枚举型的定义,其中错误的用法有( A )
A.public enum var1{ Mike = 100, Nike = 102, Jike }
B.public enum var1{ Mike = 100, Nike, Jike }
C.public enum var1{ Mike=-1 , Nike, Jike }
D.public enum var1{ Mike , Nike , Jike }
14、int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是( D )。
A.9
B.2
C.6
D.越界
15、接口是一种引用类型,在接口中可以声明( A ),但不可以声明公有的域或私有的成员变量。
A.方法、属性、索引器和事件;
B.方法、属性信息、属性;
C.索引器和字段;
D.事件和字段;
16、ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是( A )
A.HTML控件和Web控件
B.HTML控件和XML控件
C.XML控件和Web控件
D.HTML控件和IIS控件
17、ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( D )
A.<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>
B.<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>
C.<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>
D.以上皆非
18、在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是( C )。
A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
C.Select操作的Sql语句只能由ExecuteReader()方法来执行;
D.ExecuteReader()方法返回一个DataReder对象;
19、下列ASP.NET语句( B )正确地创建了一个与SQL Server 2000数据库的连接。
A.SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
B.SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
C.SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
D.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
20、Winform中,关于ToolBar控件的属性和事件的描述不正确的是( D )。
A.Buttons属性表示ToolBar控件的所有工具栏按钮
B.ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
C.DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键
D.ButtonClick事件在用户单击工具栏任何地方时都会触发
21、在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和( B ),必要时还要设置参数尺寸。
A.大小;
B.上限;
C.初始值;
D.类型;
22、如果将窗体的FormBoderStyle设置为None,则( B )。
A.窗体没有边框并不能调整大小;
B.窗体没有边框但能调整大小;
C.窗体有边框但不能调整大小;
D.窗体是透明的;
23、如果要将窗体设置为透明的,则( B )
A.要将FormBoderStyle属性设置为None;
B.要将Opacity属性设置为小于100%得值;
C.要将locked 属性设置为True;
D.要将 Enabled属性设置为True;
24、下列关于C#中索引器理解正确的是( C )
A.索引器的参数必须是两个或两个以上
B.索引器的参数类型必须是整数型
C.索引器没有名字
D.以上皆非
25、下面描述错误的是( D )。
A.窗体也是控件;
B.窗体也是类;
C.控件是从窗体继承来的;
D.窗体的父类是控件类;
26、要对注册表进行操作则必须包含( D )。
A.System.ComponentModel命名空间;
B.System.Collections命名空间;
C.System.Threading命名空间;
D.Microsoft.Win32命名空间;
27、要创建多文档应用程序,需要将窗体的( D )属性设为true。
A.DrawGrid;
B.ShowInTaskbar;
C.Enabled;
D.IsMdiContainer;
28、如果设treeView1=new TreeView(),则treeView1.Nodes.Add("根节点")返回的是一个 ( A )类型的值。
A.TreeNode;
B.int;
C.string;
D.TreeView;
29、下面关于XML的描述错误的是( D )。
A.XML提供一种描述结构化数据的方法;
B.XML 是一种简单、与平台无关并被广泛采用的标准;
C.XML文档可承载各种信息;
D.XML只是为了生成结构化文档;
30、装箱、拆箱操作发生在: ( C )
A.类与对象之间
B.对象与对象之间
C.引用类型与值类型之间
D.引用类型与引用类型之间
31、用户类若想支持Foreach语句需要实现的接口是: ( A )
A.IEnumerable
B.IEnumerator
C.ICollection
D.ICollectData
32、.Net Framework通过什么与COM组件进行交互操作?( C )
A.Side By Side
B.Web Service
C.Interop
D.PInvoke
33、.Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( A )
A.Side By Side
B.Interop
C.PInvoke
D.COM+
34、装箱与拆箱操作是否是互逆的操作?( B )
A.是
B.否
35、以下哪个是可以变长的数组?( D )
A.Array
B.string[]
C.string[N]
D.ArrayList
36、用户自定义异常类需要从以下哪个类继承:( A )
A.Exception
B.CustomException
C.ApplicationException
D.BaseException
37、对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close
B.DisposeC.Finalize
C.using
D.Quit
38、.Net依赖以下哪项技术实现跨语言互用性?( C )
A.CLR
B.CTS
C.CLS
D.CTT
39、以下哪个类是int的基类?( B )
A.Int32
B.Object
C.ValueType
D.Int16
40、请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。
需要购买本课才能留言哦~