一、.Net Framework部分*
1.装箱、拆箱操作发生在: ( C )
A.类与对象之间 B.对象与对象之间 C.引用类型与值类型之间 D.引用类型与引用类型之间
2.用户类若想支持Foreach语句需要实现的接口是: ( C? )
A.IEnumerable B.IEnumerator C.ICollection D.ICollectData
3..Net Framework通过什么与COM组件进行交互操作?( C )
A.Side By Side B.Web Service C.Interop D.PInvoke
4..Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( )
A.Side By Side B.Interop C.PInvoke D.COM+
5.装箱与拆箱操作是否是互逆的操作?( B )
A.是 B.否
6.以下哪个是可以变长的数组?( )
A.Array B.string[] C.string[N] D.ArrayList
7.用户自定义异常类需要从以下哪个类继承:( C )
A.Exception B.CustomException C.ApplicationException D.BaseException
8.以下代码段中能否编译通过?请给出理由。
try
{
}
catch(FileNotFoundException e1)
{
}
catch(Exception e2)
{
}
catch(IOException e3)
{
}
catch
{
}
不能通過:catch(IOException e3) 前面已經有catch(Exception e2),這樣下面的根本不會執行。
9.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( B,C? )
A.Close B.Dispose C.Finalize D.using E.Quit
10..Net依赖以下哪项技术实现跨语言互用性?( C )
A.CLR B.CTS C.CLS D.CTT
"公共语言运行时"(CLR), 它处理存储分配,错误限制和所有编程中遇到的繁忙工作
通过实现称为通用类型系统(CTS) 的严格类型验证和代码验证基础结构来加强代码可靠性。
公共语言规范(CLS)
11.请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)
前者操作時是創建它的副本,即值類型;後者是引用類型,修改的是它本身,因此速度更快。
12.以下哪个类是int的基类?( C )
A.Int32 B.Object C.ValueType D.Int16
ValueType是所有值類型的基類。
二、C# 部分*
13.以下哪些可以作为接口成员?(多选) ( A,B? )
A.方法 B.属性 C.字段 D.事件 E.索引器 F.构造函数 G.析构函数
14.以下关于ref和out的描述哪些项是正确的?(多选) ( A, )
A.使用ref参数,传递到ref参数的参数必须最先初始化。
B.使用out参数,传递到out参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
--(1)、引用参数(ref)在可以作为引用参数在函数成员调用中传递之前,必须已明确赋值;
而输出参数(out)在可以作为输出参数在函数成员调用中传递之前不一定要明确赋值;
在该函数成员正常返回前都必须已明确赋值。
--(2)、在函数内部,引用参数(ref)被视为初始已赋值,输出参数(out)被视为初始未赋值。
--(3)、默认地,C#中的所有参数都是值传递。只有在参数的修饰符中明确包含out或ref,才是引用传递;
但是需要知道的是,当参数的类型是引用类型时,你传递的是一个对象的引用而不是实际的对象;
更多内容请参见关于参数传递和C#程序员参考。
15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?( D )
A.public B.protected C.internal D.protected internal
Protected訪問修飾符:保護類中成員的作用域限制在本類和它的派生類中使用。還有這些修飾符:
Public:訪問不受限制
Internal:訪問僅限于當前程序集
Protected internal:限于包含派生類的當前程序集或類型
Private 僅限于包含類型 密封類:密封類不允許擴展
Sealed class horse { } 抽象類:包含抽象方法和屬性的類,這種類的方法(使用Abstract修飾符)在派生類中才被實例化。在派生類中使用override關健字可實現重載。
16.
class Class1
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
17.abstract class BaseClass
{
public virtual void MethodA()
{
}
public virtual void MethodB()
{
}
}
class Class1: BaseClass
{
public void MethodA(string arg)
{
}
public override void MethodB()
{
}
}
class Class2: Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
Console.WriteLine(o.MethodA());
}
}
请问,o.MethodA调用的是: ( C )
A.BaseClass.MethodA B.Class2.MethodA C.Class1.MethodA D.都不是请问,o1.Count的值是多少?( B )
A.1 B.2 C.3 D.4
18.请叙述属性与索引器的区别。
下面是屬性:
class Person {
private string firstname;
public string FirstName {
get {return firstname;}
set {firstname = value;}
}
}
下面是索引:
class Sample {
public string this [int index] {
get {return "You passed " + index; }
}
}
19.请叙述const与readonly的区别。
每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。
为了不违背编码规则,通常把static数据成员声明为private,然后通过statci property提供读写访问。
const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。
const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。
const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。
readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。
readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。
readonly 只能在聲明時或者構造函數裡面初始化,並且不能在 static 修飾的構造函數裡面。
20.请叙述类与结构的区别。
1)、結構是值類型;
2)、結構不支持繼承;
3)、結構不能定義默認的構造函數;
4)、結構不能定義析構函數;
5)、結構不能使用初始值設置域值。
三、ASP.NET & ADO.NET部分*
21.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。
所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:
a、 匿名用户不允许访问这个应用程序。
b、 所有雇员除了Tess和King都允许访问这个应用程序。
请问您应该使用以下哪一个代码段来配置这个应用程序?( A )
A. <authorization>
<deny users=”allwin/tess, allwin/king”>
<allow users=”*”>
<deny users=”?”>
</authorization>
B. <authorization>
<allow users=”*”>
<deny users=”allwin/tess, allwin/king”>
<deny users=”?”>
</authorization>
C. <authorization>
<deny users=”allwin/tess, allwin/king”>
<deny users=”?”>
<allow users=”*”>
</authorization>
D. <authorization>
<allow users=”allwin/tess, allwin/king”>
<allow users=”*”>
</authorization>
E.<authorization>
<allow users=”*”>
<deny users=”allwin/tess, allwin/king”>
</authorization>
22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C? )
A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。
B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。
C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。
D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。
23.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)( CD )
A.在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。
B.在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。
C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。
D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。
E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET 代码错误。
F. 在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET HTTP错误。
24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( B )
A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”
B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”
C. “Data Source= AllWin /PubBase;Initial Category=PubBase;Integrated Security= SSPI”
D. “Data Source= AllWin / PubBase;Database=Test;Integrated Security= SSPI”
25.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个 Xml Web Service?( ? )
A.在“引用”对话框的.Net标签中选择 System.Web.Services.dll。
B.在“Web引用”对话框中输入这个 XML Web service 的地址。
C.在您的 Global.asax.cs 中添加一条 using 语句并指定这个 XML Web service 的地址。
D.在您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相应的 .wsdl 和 .disco 文件。
26.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么做? ( B )
A. 将SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。
B. 创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。
C. 将DataGrid控件的AllowSorting属性设置为True,并将DataGridColumn的SortExpression属性设置为 “ProductName DESC”.以显示ProductName。然后将这个DataTable对象绑定到DataGrid控件。
D. 将DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。然后将这个DataTable对象绑定到DataGrid控件。
四、Xml部分
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
27.请写出获取上述Xml中全部没有属性的BBB元素的XPath。
28.请写出获取上述Xml中所有含有2个子节点的元素的XPath。
五、Javascript & DHtml部分*
<HTML>
<HEAD>
<TITLE>登录</TITLE>
<Script Language=”javascript”>
function CheckFom()
{}
</Script>
</HEAD>
<form Method="POST" >
用户名:<input name="user_name" >
密 码:<input name="password" >
<input type=button value="提交" οnclick= CheckFom ()>
</form>
</HTML>
29.请完成上面脚本区中的CheckForm函数。要求用户名、密码框不允许为空。
30.您需要动态创建一个文本框,并且当此文本框获得焦点后弹出对话框,提示“Ok”。
六、逻辑推理部分*
31.一人拿一张百元钞票到商店买了25元的东西,店主由于手头没有零钱,便拿这张百元钞票到隔壁的小摊贩那里换了100元零钱,并找回了那人75元钱。那人拿着25元的东西和75元零钱走了。过了一会儿,隔壁小摊贩找到店主,说刚才店主拿来换零的百元钞票为假币。店主仔细一看,果然是假钞。店主只好又找了一张真的百元钞票给小摊贩。
问:在整个过程中,店主一共亏了多少钱财?(不计商品利润)