中国程序员联盟群特种兵选拔考试题目--C#

来源:互联网 发布:java环境变量配置出错 编辑:程序博客网 时间:2024/05/06 14:52

在.NET Framework中,使用编译工具编译源代码时,代码引用的任何内容都将通过引用元来得到,以下选项中是较为常见的引用元数据?

A:   AssemblyRef
B:   ModuleRef
C:   TypeRef
D:   MemberRef
E:   ObjectRef

在Assembly中,能够查看到的内容为:

A:   区域性
B:   程序大小
C:   创建日期
D:   版本
E:   处理器体系结构

如果需要弹出一个消息框(即常见的如记事本编辑后关闭,提示保存的那个窗口),在C#中需要使用哪个类模块的哪个方法:

A:   System.IO中的MsgBox
B:   System.Form中的MessageBox
C:   System.Windows.Form中的MessageBox
D:   System.Windows.Forms中的MessageBox

下面说法正确的是:

A:   sbyte是无符号8位值
B:   short是有符号16位值
C:   ulong是无符号64位值
D:   object不是所有类型的基类型
E:   char是16位Unicode字符

以下常见类中,为静态类的是:

A:   Console
B:   DataSet
C:   SqlConnection
D:   Math
E:   Environment
F:   ThreadPool

以下类型中,可以定义为常量的是:

A:   UInt32
B:   Single
C:   DataTable
D:   SByte
E:   HashTable

不管是任何编程语言,对于操作字符串,往往是效率最低的,在.NET Framework中,提供了StringBuilder类(在System.Text.StringBuilder中),那么,下述对StringBuilder描述正确的是:

A:   在初始时指定了最大字符数,默认值是Int32.MaxValue(约为20亿),并且不允许更改最大字符数值
B:   StringBuilder.ToString()方法返回一个String,这个String不会创建一个新的String对象。
C:   StringBuilder中提供了类似于String中的Trim的方法,可以用来截断首尾的空格
D:   StringBuilder的ToString()方法返回的String绝对不能更改,如果调用一个方法来修改这个String,那么StringBuilder就会收到消息,并在内部创建并使用一个新的字符数组。

在.NET Framework运行的程序中,可以使用数组,但在.NET Framework中使用的数组的方式与常规有所异同,以下对于数组的描述,哪些是正确的?

A:   所有的数组都隐式继承自System.Array
B:   所有数组都隐式实现IEnumerable,ICollection和Ilist
C:   无法使用代码创建下界为非0的数组
D:   当访问超过数组边界的值时,会导致System.IndexOutOfRangeException的异常
E:   获取一个数组的大小是使用UBound

对于泛型(如List),对开发人员的优势体现有哪几个方面?

A:   源代码保护。使用一个泛型算法的开发人员不需要访问算法的源代码。然而,使用C++模板或者JAVA的泛型技术时,算法的源代码必须提供给准备使用算法的用户。
B:   类型安全性。将一个泛型算法应用于一个特定的类型时,编译器和CLR能理解开发人员的意图,并保证只有与指定数据类型兼容的对象才能随同算法使用。若试图使用不兼容类型的一个对象,会造成编译时错误,或者在运行时抛出异常。
C:   更加清晰的代码。由于编译器强制类型安全性,所以减少了源代码中必须进行的转型次数。这意味着代码更容易编写和维护。
D:   更佳的性能。在泛型之前,要想定义一个常规化的算法,必须定义它的所有成员来操作Object数据类型。如果希望使用算法来操作值类型实例,CLR必须在调用算法的成员之前对值类型实例执行装箱。

以下对于WebServices说法正确的是:

A:   WebServices需要架设在IIS上,并仅只能供B/S结构的程序以及Office中的InfoPath程序使用,而在WinForm中使用相当麻烦,需要使用大量代码才能连接到WebService,并且无法与WebServices之间的交互无法同步。
B:   WebServices传递数据通常是以XML方式进行传输,在传输过程中不需要考虑所传输的数据是否为基类型的数据,直接传递即可。
C:   如果编写的工程需要使用WebServices,其所在的服务器地址不可以动态指定,如果需要动态指定,则需要进行动态引用。
D:   WebServices提供的方法需要使用[WebMethod]公开,才能供外部程序调用。使用C#编写WebServices时,需要注意不管函数是否有返回值,至少需要返回完整结构。

 

设计题

1.       请用C#设一个类,要求:继承System.Data.DataSet,新增ConnectionString和Execute方法,要求在Execute方法里面执行某个SQL语句后,可以在设计的类返回指定的数据。

2.       请设计一个dll,该组件拥有一个Form类,另外需要设计一个WinForm程序,该程序拥有两个文本框和一个按钮,其中一个文本框输入设计的dll的路径,另外一个文本框输入dllhttp://msnpiki.msnfanatic.com/index.php/Main_Page的namespace和窗口类名,要求点击按钮即可弹出dll中的窗口(要求:不能引用这个dll,提示:利用反射)

3.       请简单写一个例子来简要介绍C#中的序列化

4.       请简单介绍C#中对于异常处理的基本知识

5.       请设计一个WinForm程序,要求实现自定义的XML结构,能够在WinForm中使用TreeView显示出来,同时要求能够进行节点的编辑并保存。

6.       请设计一个简单的两台机器通信的程序(只需要能够简单收发信息即可,不需要在界面和异常处理上花大量时间)

7.       请简要介绍System.Text.StringBuilder与String的异同

8.       请用自己的思路来描述如何利用C#设计一个三层结构的系统

9.       请使用ASP.NET设计两个页面,其中一个页面是发起某项申请的页面,另外一个是审批页面。发起页面要求使用System.Data.SqlClient写入记录到MSSQL中,当写入后,假定已通知审批用户,审批用户键入地址进行审批,将审批结果更新到数据表中。(要求提供SQL Server数据库压缩文件或SQL脚本以及aspx和cs源代码)