软件设计师.NET认证考试测试卷
注意事项:用蓝、黑色钢笔答题。保持卷面整洁。
得分 | 阅卷人 |
|
|
一、单项选择(40分,每小题1分)
1. 以下标识符中不全是关键字的是( )
A、case for int B、while goto foreach
C、bool class long D、then if char
2. 一个C#程序总是调用哪个方法作为开始(入口):( )
A、Main B、main C、MAIN D、任意一个方法即可
3. 设“int a=12;”,则执行完语句“a+=a*a;”后,a的值是( )
A、12 B、144 C、156 D、288
4. 在类作用域中能够通过直接使用该类的( )成员名进行访问。
A、私有 B、公有 C、保护 D、任何
5.decimal类型和float(double)类型都可以表示小数,正确说法是( )
A、两者没有任何区别
B、decimal比float和double类型取值范围大
C、decimal比float和double类型精度高
D、以上说法都不对
6. 可用作C#程序用户标识符的一组是( )
A、void define +word B、a3_b3 _12 Ys
C、for -a1 Case D、2a c3 DO
7. 以下不是引用类型的是( )
A、结构体 B、对象类型
C、接口类型 D、委托类型
8.windows应用程序开发时,窗体加载时触发的事件是( )
A、Click B、Paint C、Load D、Init
9.C#中定义枚举使用的关键字是( )
A、enum B、interface C、struct D、class
10. 类的成员中,可以用来存储数据的是( )
A、属性 B、字段 C、方法 D、事件
11. 要修改窗体的标题,需要修改窗体的哪个属性( )
A、Title B、Caption C、Head D、Text
12. 在Array类中,可以对一维数组中的元素进行排序的方法是( )
A、Sort() B、Clear() C、Copy() D、Reverse()
13. 关于字符串变量的类型转换,下列语句错误的是( )
A、string str=”123”;int i=int.Parse(str);
B、string str=”123”;int i=System.Convert.ToInt32(str);
C、string str=”123”;int i=(int)str;
D、以上语句都没有错误
14. 声明一个10行,5列的整型二维数组,下列正确的是( )
A、int[] arr = new int[10,5];
B、int[10,5] arr = new int[];
C、int[,] arr = new int[10,5];
D、int[10,5] arr = new int[10,5];
15. C#语言的值类型不包括:( )
A、枚举类型 B、结构体类型 C、数值类型 D、对象类型
16. 以下说法正确的是( )
A、接口可以实例化 B、抽象类可以实例化
C、类可以实现多个接口 D、接口中可以包含字段
17. 关于虚方法实现多态,下列说法错误的是( )
A、定义虚方法使用关键字virtual
B、虚方法是实现多态的一种应用形式
C、虚方法在子类中必须被重写
D、重写虚方法使用的关键字是override
18. 以下关于继承的说法错误的是( )
A、.NET框架类库中,Object类是所有类的基类
B、派生类不能直接访问基类的私有成员
C、protected修饰符修饰的成员在子类中可以被访问
D、在任何情况下,基类对象都不能转换为派生类对象
19. ASP.NET中,用户自定义控件的文件扩展名是( )
A、.ascx B、.aspx C、.asax D、.asp
20. 在ASP.NET的内置对象中,必须要有Lock和Unlock方法以确保多个用户无法同时改变某一变量的对象是( )
A、Sessioin B、Cookie C、Request D、Application
21. Application对象的默认有效期是( )
A、15分钟 B、应用程序启动到结束 C、15分钟 D、30分钟
22. 在执行A页面时,若要调用B页面,B页面执行完后,继续执行A页面,可以通过Server对象的哪个方法来实现( )
A、Transfer B、Execute C、Redirect D、MapPath
23. 在对Sql Server数据库进行访问时,应该使用的是( )
A、SQL Server .NET Framework 数据提供程序
B、OLE DB .NET Framework 数据提供程序
C、Oracle .NET Framework 数据提供程序
D、ODBC .NET Framework 数据提供程序
24. 下列字符串能够正确链接SQL Server 2005数据库的是( )。
A、Data Source=(local);Integrated Security=SSPI; Initial
Catalog=myDB
B、DataSource=(local);Integrated Security=SSPI;
Initial Catelog=myDB
C、DataSource=(local);IntegratedSecurity=SSPI;
Intial Catelog=myDB
D、Data
Source=(local);Integrated Security=SSPI;InitialCatelog=myDB
?????25. 要从数据库读取符合某一条件的记录数量,下列方法最合适的是( )
A、ExecuteNonQuery B、ExecuteScalar
C、ExecuteReader D、Fill
26. 下列关于ref和out的描述,错误的是( )
A、使用ref参数,传递到ref参数的参数必须最先初始化
B、使用out参数,传递到out参数的参数必须最先初始化
C、使用ref参数,必须将参数作为ref参数显示传递到方法
D、使用out参数,必须将参数作为out参数显示传递到方法
27.下列关于构造函数的描述正确的是( )
A、构造函数可以声明返回类型 B、构造函数不可以用private修饰
C、构造函数必须与类名相同 D、构造函数不能带参数
28. 关于ASP.NET中的代码隐藏文件的描述正确的是( )
A、Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
B、项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
C、项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
D、以上都不正确。
29. ASP.NET中,服务器控件是为Web表单专门设计的。服务器控件有两种类型,它们是( )
A、HTML控件和Web控件 B、HTML控件和XML控件
C、XML控件和Web控件 D、HTML控件和IIS控件
30. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是( )
A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
C、Select操作的Sql语句只能由ExecuteReader()方法来执行;
D、ExecuteReader()方法返回一个DataReder对象;
31. 如果要将窗体设置为透明的,则( )
A、要将Opacity属性设置为小于100%得值;
B、要将FormBoderStyle属性设置为None;
C、要将locked 属性设置为True;
D、要将 Enabled属性设置为True;
32. 装箱、拆箱操作发生在( )
A、类与对象之间 B、对象与对象之间
C、引用类型与值类型之间 D、引用类型与引用类型之间
33. 若想支持Foreach语句需要实现的接口是( )
A、IEnumerable B、IEnumerator C、ICollection D、ICollectData
???????34. 以下哪个是可以变长的数组( )
A.Array B.string[] C.string[N] D.ArrayList
35. 用户自定义异常类需要从以下哪个类继承( )
A.Exception B.CustomException C.ApplicationException D.BaseException
36. .Net依赖以下哪项技术实现跨语言互用性?( )
A.CLR B.CTS C.CLS D.CTT
???????37. 以下哪个类型和int类型相同?( )
A.Int32 B.Object C.ValueType D.Int16
38. “访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?( )
A.public B.protected C.internal D.protected internal
39. 以下叙述正确的是:( )
A. 接口中可以定义字段。 B. 一个类可以实现多个接口。
C. 接口可以被实例化。 D. 接口中可以包含已实现的方法。
40. 下列关于C#中索引器理解正确的是( )
A、索引器的参数必须是两个或两个以上
B、索引器的参数类型必须是整数型
C、索引器必须定义一个名字
D、以上皆非
二、多项选择(10分,每小题2分)
1. 对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放
或重置非托管资源相关的应用程序定义的任
务? ( )
A、Close B、Dispose C、Finalize D、using E、Quit
2. 下面描述错误的是( )。
A、窗体也是控件; B、窗体也是类;
C、控件是从窗体继承来的; D、窗体的父类是控件类;
3. 以下哪些可以作为接口成员? ( )
A、方法 B、属性 C、字段 D、事件 E、索引器
4. 您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?( )
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错误。
5. 下列类是访问数据库时使用的是:( )
A、SqlConnection B、SqlCommand C、SqlDataReader D、DataTable
四、填空题(10分,每空1分)
1.c#中的三元运算符是 ? : 。
2.面向对象的语言具有 封装 性、 继承 性、 多态 性。
3.当整数a赋值给一个object对象时,整数a将会被___装箱______。
4.委托声明的关键字是___delegate_________。
5.在Asp.net中所有的自定义用户控件都必须继承自_______System.Web.UI.UserControl___________。
6. 在.Net托管代码中我们不用担心内存漏洞,这是因为有了 GC 。
7. 用 sealed 修饰的类不能被继承。
8. float f=-123.567F; int i=(int)f; i的值现在是 -123 。
五、简答题(40分)
1.写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。) (5分)
Select top 10 * from(Select Row_number() over(order by id) as rownumber ,* from A) as B where rownumber>30
2. 请详述在.NET中类(class)与结构(struct)的异同?(5分)
Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。
Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。加分的回答:Int32、Boolean等都属于结构体。
3. StringBuilder 和 String 的区别? (5分)
String在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder
4.简述DataReader和DataSet的异同 (5分)
DataReader使用时始终占用SqlConnection,在线操作数据库
每次只在内存中加载一条数据,所以占用的内存是很小的
是只进的、 只读的
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接(非连接模式)
DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行 回传更新操作(动态操作读入到内存的数据)
5. 编写代码实现:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。(10分)
int[] intArr = new int[100];
ArrayList myList = new ArrayList();
Random rnd = new Random();
while (myList.Count < 100)
{
int num = rnd.Next(1, 101);
if (!myList.Contains(num))
{
myList.Add(num);
}
}
for (int i = 0; i < 100; i++)
{
intArr[i] = (int)myList[i];
Console.Write("{0} ", intArr[i]);
Console.WriteLine();
}
Console.ReadKey();
6.值类型和引用类型的区别,实例。
1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
2.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
3.值类型不可能包含 null 值:然而,可空类型功能允许将 null 赋给值类型。
4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
在dotnet中有两大类数据类型,即值类型和引用类型,值类型存贮在栈中,而引用类型存贮在动态的堆中,栈是先进先出的有系统管理的空间,而堆是由应用程序控制的可随时申请和释放该空间,在Donnet中一般情况下有垃圾收集器处理,他们的不同导致在编程上的不同。
例:
StringBuilder a=new StringBuilder();//将StringBuilder的一个首地址传给a
StringBuilder b=a;//将StringBuilder的一个首地址传给b
b.Append("mxh");
Console.WriteLine(a);
a=null;
Console.WriteLine(b);
输出结果:mxh
mxh