软件设计师.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

原文地址:https://www.cnblogs.com/zzunstu/p/3408583.html