2013NET笔试题及答案

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 105 收藏 0 点赞 0 评论 0

 .NET概述

一、名词解释

  1. MSIL:Microsoft  Intermediate  Language(微软中间语言),是一种类似Java字节码的语言,也是为了能在不同平台移植所生成的中间代码。
  2. JIT:Just in Time 即时编译
  3. CLR:Common language runtime  通用语言运行时
  4. CLS:Common Language System  通用语言系统
  5. CTS:Common Type System 通用类型系统,定义了可以在中间语言中使用的预定义数据类型,所有用于.NET Framework 的语言都可以生成最终基于这些类型的编译代码
  6. FCL:Framework Class Library  .Net框架类库

二、选择

  1. 当你在编写C#代码时,按了“F1”,你将获得(B)
    1. 一个错误信息
    2. 上下文帮助
    3. windows帮助
    4. 打印帮助
  2. 在.NET中,程序员在代码中漏写了一个大括号,这属于(C)
    1. 逻辑错误
    2. 运行时错误
    3. 语法错误
    4. 自定义错误

三、填空

  1. .NET Framework 两个主要组件分别是____公共语言运行库__.NET Framework 类库
  2. 公共语言运行库管理内存线程执行代码执行代码安全验证编译以及其他系统服务
  3. .NET Framework有两大主要特征:跨平台跨语言
  4. .NET平台基于两种核心技术,即XMLInternet协议套件

四、问答

  1. 简述CLR(Common Language Runtime,通用语言运行环境)在.NET Framework中的作用?

答:公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的

  1. JIT编译器主要功能是什么?

答:实时编译的功能将所有托管代码能够以它在其上执行的系统的本机语言运行。

  1. 什么是DOTNET?DOTNET可开发什么应用程序?

答:.NET 是一种框架,一种平台,一种为下一代 Internet 服务的全新体系结构。

DOTNET可开发Web窗体、Windows窗体、Windows控制台应用程序、Window服务、Web服务等等。

  1. 编写一个控制台应用程序,在控制台上显示出“你好,欢迎进入C#的世界!”

答:using System;

 

namespace Exercise

{

class Program

{

static void Main()

{

Console.WriteLine(“你好,欢迎进入C#的世界!”);

}

}

}

  1. C#源代码编译成为本地代码的编译过程?

答:源代码 → 编译器(1次编译)→ 中间语言(.exe)→ CLR(JIT 2次编译)→ 本地代码

 

 数据类型

一、名词解释

  1. 表达式:是指操作数和运算符的组合

二、选择

  1. 下列选项中,(C)是引用类型?
    1. enum类型
    2. struct类型
    3. string类型
    4. int类型
  2. C#的数据类型有(B)

A、值类型和调用类型

B、 值类型和引用类型

C、 引用类型和关系类型

D、关系类型和调用类型

  1. 以下哪个类是int的基类?(  A )

A.Int32          B.Dotnet              C.double              D.System.Data

  1. 下列选项中,哪个是引用类型(C   )

A.char类型                                                B.double类型

C.string类型                                                D.int类型

  1. 在C#中,下列变量定义与赋值正确的是( D   )

A. int a=同学;

B. float a=老师;

C. double a=教室;

D.string a=“学校”;

  1. 在C#中,下列表达式计算正确的是(B C)

A、10%3=3

B、 10/3=3

C、 10%3=1

D、10/3=1

  1. 值类型存储于     (A)          

A、堆栈

B、  堆      

C、 .队列

  1. C#中的所有数据类型都派生自(D)类

A、String

B、  Int64    

C、  Int32

D、Object

 

三、填空

  1. sizeof typeof 运算符的作用获取对象的大小和类型、。
  2. C#字符串是使用string  关键字声明的,实际是它是一个引用类型。
  3. 装箱是把 值   类型转换到引用类型 
  4. 装箱、拆箱操作发生在引用类型值类型之间

四、问答

  1. const和static readonly的区别?

答:用const修饰符声明的成员叫常量,在编译期初始化并嵌入到客户端的程序。用static readonly声明的成员依然是变量,只不过具有和常量类似的使用方法,通过类进行访问,初始化后不可以修改。

  1. bool类型有哪两个值?这两个值可以赋值给int变量吗?

答: True/False ,不能

  1. C#有那些数据类型?他们之间的区别?

答:C#支持的数据类型有:

值类型

包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。

引用类型

包括:对象类型、类类型、接口、元数据、字符串类型、数组。

值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

  1. 值类型存储于内存的哪个区?

答:值类型存储于栈区

  1. C#中的所有数据类型都继承于哪个类?

答:C#中所有数据类型都继承于Object。

  1. 写出下列赋值表达运算后a的值,设原来a=12,n=5。a和n都定义为整型变量

答:   (1) a+=a      值为:24

(2) a-=a       值为:0

(3)a* = 2+3      值为:27

(4) a%=(n%=2)       值为:0

(5)a/=a+a       值为:13

(6)a+=a-=a*=a      值为:-120

 

第一章 结构、枚举

一、名词解释

  1. Bll:bussiness logic layer 业务逻辑层

二、选择

  1. 以下是一些C#中的枚举型的定义,其中错误的用法有(A)?
    1. public enum var1{ Mike = 100, Nike = 102, Jike }
    2. public enum var1{ Mike = 100, Nike, Jike }
    3. public enum var1{ Mike=-1 , Nike, Jike }
    4. public enum var1{ Mike , Nike , Jike }

三、填空

  1. 结构体的关键字是struct
  2. 枚举的关键字是enum
  3. 枚举是   类型, 结构是   类型。
  4. 结构只能  定义带参数的构造函数, 不能 继承其它结构或者类。

 

四、问答

  1. 结构和类有什么相似处和区别

答:结构是值类型,而类是引用类型。

向方法传递结构时,结构是通过传值方式传递的,而类是作为引用传递的

与类不同,结构的实例化可以不使用 new 运算符

结构可以声明构造函数,但它们必须带参数

一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object

不能在结构中初始化实例字段

 

  1.  定义结构体类型的格式为:

答:struct <结构体类型名>

{

<成员类型1> <成员名1>;

<成员类型2> <成员名2>;

<成员类型n> <成员名n>;

};

  1. 什么是枚举?

答:枚举是一个指定的常数,是一组已命名的数值常量。枚举是值类型的一种特殊形式。枚举从System.Enum继承而来

 

第二章 程序控制语句

一、选择

  1. 下面那些不是循环语句(D)

A、      while

B、       do

C、       for

D、      if…else

二、填空

  1. Switch语句中,每个case后是使用break语句来结束。
  2. 跳转语句有breakcontinuegotoreturn
  3. 循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。
  4. C#语言中基本语句可以分为三种:赋值语句选择语句循环语句
  5. 循环结构的类型有 whiledoforforeach

三、问答

  1. Continue和Break的区别是什么?

答:Continue是中断本次循环,进入一下次的循环

Break是中断整个循环

  1. while 和do…while循环的区别?

答:While循环先判断条件是否满足再执行,而do…while先执行然后判断条件是否成立。

 

第三章 类、对象、构造

一、名词解释

  1. OOP:object-oriented programming 面向对象编程,所谓“对象”就是一个或一组数据以及处理这些数据的方法和过程的集合。面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度
  2. OOD:Object Oriented Design面向对象设计 将OOA的结果转化成与现实需求更贴切的系统和对象设计,利用一系列相互协作的软件对象来进行软件设计。
  3. OOAObject Oriented Analysis面向对象分析 评估用户需求和需要解决的问题。针对用户问题的静态、动态和功能等,输出会提供相应的概念设计。

二、选择

  1. 下列关于构造函数的描述正确的是(C)

A、构造函数可以声明返回类型。

B、 构造函数不可以有private修饰

C、 构造函数通常与类名相同

D、构造函数不能带参数

  1. 下列哪一个不是类成员是(D)

A、属性

B、 数组

C、 索引器

D、循环结构

三、填空

  1. 析构函数一个类只有 1  
  2. 一个类有个构造函数
  3. 构造函数具有与类相同的名称  ,它通常初始化新对象的数据成员。

四、问答

  1. 方法的签名是指 ?

答:方法名和该方法的参数列表,类型,大小,位置。

  1. 请简述C#中结构与类的区别?

答:数据类型不同:结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,类是引用类型,引用类型在堆上分配地址。

继承性:结构不能从另外一个结构或者类继承,本身也不能被继承,类完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承,虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样

内部结构:结构没有默认的构造函数,但是可以添加构造函数 ,没有析构函数,没有 abstract 和 sealed(因为不能继承) ,不能有 protected 修饰符,可以不使用 new 初始化 ,在结构中初始化实例字段是错误的。类有默认的构造函数 ,有析构函数,可以使用 abstract 和 sealed,有 protected 修饰符,必须使用 new 初始化。

 

第四章 访问关键字、命名空间

一、选择

  1. “访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确    描述?( B  )

A.public                                           B.protected

C.internal                                        D.protected internal

  1. “访问范围限定于只能在自己本身”是对以下哪个成员可访问性含义的正确描述( D )

A.public                                           B.protected

C.internal                                        D.private

二、填空

  1. 无返回值的关键字是void
  2. 访问修饰符有public private protectedinternal.
  3. 命名空间实际上是一种组织相关类 和其他类型的方法
  4. 命名空间是隐式公共的。不能通过指定 问修饰符  写其访问属性。不能将命名空间设置为受保护的、私有的或内部的,因此它们只能作为公共的存在
  5. 引用命名空间的关键字是using

三、问答

  1. 静态成员和非静态成员的区别?

答:静态成员用static修饰符声明,在类被实例化时,通过类进行访问,不带有static修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一静态变量都是一个值,同一个类的不同实例的同一非静态变量可以是不同的值。

  1. C#访问修饰符有哪些,分别有什么作用?

答:public:访问不受限制。

protected:访问仅限于包含类或从包含类派生的类型。

Internal:访问仅限于当前程序集。

protected internal:访问仅限于当前程序集或从包含类派生的类型。

private:访问仅限于包含类型。

 

第五章 继承

一、选择

  1. 在堆栈上创建对象和调用构造函数时,通常使用(B )关键字
  1. Typeof
  2. New
  3. As
  4. is

二、填空

  1. override即 重写 是指重写基类的方法(方法的覆盖)
  2. override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
  3. 关键字base 用于派生类的构造函数显示调用基类构造函数
  4. 一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员的是继承  
  5. 调用基类构造函数,运用base关键字。
  6. 虚方法的关键字是virtual
  7. C#提供virtual关键字,用于将方法定义为支持多态。
  8. Override 关键字用于重写基类的虚拟方法。
  9. 面向对象的特征有封装继承 多态.

三、问答

  1. C#中类可以实现多继承吗?通过什么方式实现呢?

答:C#中类不能够多继承,必须通过接口实现。

  1. 继承是面向对象编程的一个重要的概念.请简述继承的概念和优点.

答:继承:一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员。

优点:使用继承无需从头开始创建新类,便可以在现有类的基础上添加新方法、属性和事件(事件是对用户操作)的响应。,既省时又省力。

  1. 说明base关键字、new关键字和override关键字各自的作用。

答:关键字base,用于派生类的构造函数显示调用基类构造函数。

new访问修饰符用于显示隐藏继承自基类的成员,即如果派生的类成员的名称与基类成员名称相同,new关键字会将派生类成员识别为一个全新的成员。

关键字override用于修改方法,具有override关键字修饰的方法是对基类中同名方法的新实现,

 

第六章 抽象类、接口

一、选择

  1. 下列描述错误的是(D)

A、类不可以多重继承而接口可以

B、 抽象类自身可以定义成员而接口不可以

C、 抽象类和接口都不能被实例化

D、一个类可以有多个基类和多个基接口

  1. 以上描述错误的是(A)
    1. 在C++中支持抽象类而在C#中不支持抽象类
    2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员
    3. 在C#中可以使用NEW修饰符显示隐藏从基类继承的成员。
    4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加上override。
  2. 下列关于接口的描述不正确的是(B)
    1. 接口描述了组件对外提供的服务,在组件和组件之间,组件和接口之间都是通过接口进行交互的
    2. 一个组件可以实现多个接口,而一个特定的组件接口只可以被一个组件来实现
    3. 接口是组件之间的协议,接口一旦发布,组件发布者就应该尽量保持接口不变,否则将影响现有系统的运行
    4. 接口声明实际就是一种定义新的接口的类型的声明 。接口使用interface 来定义
  3. 在C#中,多继承通过(  B  )来实现

A.属性                                                          B.接口

C.索引器                                                       D.方法

  1. 以下叙述正确的是: (ABC    )

A. 接口中可以有虚方法。                          B. 一个类可以实现多个接口。

C. 接口不能被实例化。                            D. 接口中可以包含已实现的方法。

  1. 虚方法的执行方式可以被派生类改变,这种改变通常通过(A )实现.

A、方法重载

B、 构造方法

C、 值方法

D、引用型方法

二、填空

  1. 抽象类的关键字是abstract
  2. 密封类的关键字是sealed
  3. 抽象类的方法 可以 实现,接口的方法 必须 实现。
  4. 接口不能被实例化
  5. 不可以多重继承 而接口可以
  6. 抽象类自身可以定义成员而接口不可以
  7. 一个类可以实现多个接口
  8. 虚方法 可以在派生类 重写,抽象方法 必须在每个非抽象的派生类中 重写。
  9. 如果Alpha类继承自BETA类,则Alpha类称为  派生类     ,BETA类称为   基类     。
  10. 有一个基类Person,一个接口Iteller。类Employee要同时继承类和接口,则其正确的写法应该是   public class Employee : Person,Itrller 
  11. 接口是一种引用类型,在接口中可以声明方法、属性、索引器和事件,但不可以声明公有的域或私有的成员变量。

 

三、问答

  1. Sealed修饰符是干什么的?

答:表示密封类,用于类时表明该类不能被继承,不能和abstract同时使用,因为这两个修饰符在含义上互相排斥,用于方法和属性时,表示该方法或属性不能再被继承,必须和override关键字一起使用,因为使用sealed修饰符的方法或属性肯定是基类中相应的虚成员

  1. 简述抽象类的定义以及在C#编程语言中,抽象类的作用是什么?

答: 有时,我们只需要继承某个特定类,但不需要实例化该类的对象。这样的类成为抽象基类。C#允许通过在类中添加abstract关键字来创建抽象基类。

   作用: 在抽象基类中,可以指定一个方法而不指定其代码主体。这意味着抽象基类保存着方法的定义,而方法的实际实现则写在派生类中

  1. 声明抽象方法注意一下几点?

答: 1.抽象基类除了抽象方法外,还可以包含已实现的方法。

2.操作需要用abstract关键字来标识。

3.操作的定义始终已分号结束。

 

第七章 属性、索引器、迭代器

一、选择

  1. 下列关于C#索引器理解正确的是(C)

A、索引器的参数必须是两个或两个以上

B、 索引器的参数类型必须是整数型

C、 索引器没有名字

D、以上皆非

 

二、填空

  1. 要声明类或结构上的索引器,使用this关键字
  2. 属性是一个或两个代码,表示一个get访问器和/或一个set访问器。
  3. 属性的     set   访问器用于将值赋给类的私有实例变

三、问答

  1. 简述属性的定义及其作用?

答:属性是一种用于访问对象或类的特性的成员,停供了数据的封装性和安全

性。

  1. 简述索引器的定义及其作用?

答:索引器是C#的简单组件,使用索引器,可以用索引数组的方式来索引对象,

索引器提供了与数组访问相类似的类成员访问方式。

  1. 简述索引器和属性之间的区别?

答:1 属性通过名称标识。索引器通过签名标识。

2 属性通过简单名称或成员访问来访问。索引器通过元素访问来访问。

3 属性可以为静态成员或实例成员。索引器必须为实例成员。

4 属性的get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参

表。属性的 set 访问器包含隐式 value 参数。除了 value 参数外,索引器的 set

访问器还具有与索引器相同的形参表。

  1. 什么是迭代器,运用迭代器有什么好处。

答:迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使

能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。只

需提供一个迭代器,即可遍历类中的数据结构,它的优点就是可以是实现容器

类和自定义集合的循环。

 

第八章 委托、事件

一、选择

  1. 委托可以 (  ) 把递给   (C

A、对象和对象

B、 对象和方法

C、 方法和方法

二、填空

  1. 委托的关键字是delegate
  2. 委托的参数和返回类型必须和调用函数一致
  3. 委托本身能够拥有一个签名 ,当它持有与它的签名  相匹配的方法的引用后,委托就可以和这个方法一样被调用
  4. 定义事件的关键字是event 

三、问答

  1. 定义一个多路委托有几个步骤

答: 定义一个委托类型

编写具有相同签名方法作为委托

创建委托对象,将它绑定到需要通过委托调用的第一个方法

创建另一个委托对象,绑定到下一个需要调用的方法

可用+,-,+=或-=操作符,合并成一个集成的多播委托

  1. 简述创建事件的过程

答:定义事件

   给对象预订该事件

   将该事件(当它发生时)通知订户

  1. 什么是多播委托?

答:多播委托也是一个委托,它可以调用多个方法,只要这些方法的签名与委托的定义相同。多播委托的概念是委托和事件编程之间的门槛,多播委托是通过对方法的委托进行组合而创建的。组合多个委托,可用+,-,+=或-=操作符。要让一个委托调用多个方法,可以用+或+=操作符为该委托增加方法。要减少一个多播委托持有的方法,可以使用-或-=操作符。

 

第九章 数组

一、名词解释

  1. 什么是数组?

答:数组是一种数据结构,它包含若干相同类型的变量

 

二、填空题

  1. 实现数组反转的函数是:Reverse.
  2. 对数组排序的函数是:Sort.
  3. System.Array 是所有数组类型的抽象基类型
  4. 能用foreach的都实现了接口IEnumerable
  5. 所有数组都是引用类型

 

三、选择题

  1. string mystring=”My name is ynn.”;Console.WriteLine(mystring.Substring( 11,3 ))的结果是:(B)

A。 yn    B. ynn     C.is      D.s y

 

  1. double num=3.1415926.”;Console.WriteLine(num.ToString(F3))的结果是:(C)

A。 F3    B. 3.14    C.3.142     D.3.141

 

  1. double num=3.14;Console.WriteLine(num.ToString(p1))的结果是:(B)

A。 p1    B. 31.4%    C.31.40%    D.3.14%

 

  1. DateTime.Now.ToString(“yyyyMMddhhmmss”)(假如今天的日期是2008-12-22 15:34:50)的结果是(A)

A。20081222153450  B.2008-12-22 15:34:50   C.20081222  D.081222153450

 

四、简答题

  1. 数组包括哪些种类?

答:一维、多维、交错。

 

  1. 二维数组的Length得到的是?

答:成员个数

 

  1. 二维数组与交错数组有什么区别?

答:二维数组的每一行成员数相同,交错数组的每一行成员数有可能不同。

 

  1. 简述常见的数组声明及赋值的方法

方法一:

int[] arr1 = new int[3];

arr1[0]=1;

arr1[2] = 2;

arr1[1] = 3;

 

方法二:

int arr2 = new int[3] { 1, 2, 3 };

 

方法三:

int aar3 = new int[] { 1, 2, 3 };

 

  1. String和StringBuilder有什么区别

在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值

String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。

 

  1. 字符串的比较有几种?分别举例说明

 

String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( )。

Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就能使用Equals( )方法,CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。

示例:

int result;

bool bresult;

s1=”aaaa”;

s2=”bbbb”;

//Compare( )method

//result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2

result=String.Compare(s1,s2);

result=s1.CompareTo( s2 );

result=String.CompareOrdinal(s1,s2);

bresult=s1.Equals( s2 );

bresult=String.Equals( s1,s2 );

 

 

  1. string s = “abcdeabcdeabcde”;

string[] sArray = s.Split(‘c’);

foreach (string i in sArray)

Console.WriteLine(i.ToString());

输出的结果是:

ab

deab

deab

de

 

  1. 请说明foreach的用法

 

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下:
foreach (type identifier in expression) statement
若要循环访问集合,集合必须满足特定的要求。集合类型:
必须是 interface、class 或 struct。
必须包括返回类型的名为 GetEnumerator 的实例方法

 

  1. 请编程实现一个冒泡排序算法?

答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length – 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}

  1. C#中,string str = null 与 string str =””,请尽量用文字说明区别。
    string str =””初始化对象分配空间而string str=null初始化对象

 

 

第十章 集合

一、名词解释

  1. 什么是集合?

答:NET Framework 提供了用于数据存储和检索的专用类。这些类提供对堆栈、队列、列表和哈希表的支持。大多数集合类实现相同的接口,可继承这些接口来创建适应更为专业的数据存储需要的新集合类

 

二、填空题

  1. 所有集合引用的名称空间是:System.Colliections.
  2. stack是出,Queue是出。
  3. Array类的  Clear    方法用于将数组中的一系列元素设置

 

三、选择题

  1. 以下哪个是可以变长的数组?(  D  )

A.Array                      B.string[]

C.string[N]                  D.ArrayList

 

 

  1. 以下哪个是排序的数据列表: (  A  )

A.SortedList        B.HashTable

C.ArrayList         D. Heap

 

  1. 在.NET中,Hashtable在.NET中,Hashtable类所在的命名空间是(  C  )(选择一项)

A.System.Threadint

B.System.IO

C.System.Collections

D.System

 

 

四、简答题

  1. 集合类具有哪三个特点?

1)、集合类定义为 System.Collections  System.Collections.Generic 命名空间的一部分。

2)、大多数集合类都派生自 ICollection、IComparer、IEnumerable、IList、IDictionary 和 IDictionaryEnumerator 接口以及它们的等效泛型接口。

3)、使用泛型集合类可以提供更高的类型安全性,在某些情况下还可以提供更好的性能,尤其是在存储值类型时,这些优势会体现得更明显。

 

  1. ArrayList类的Count方法和Capacity方法有何区别?

Count方法返回ArrayList实例包含的实际元素数,而Capacity方法返回ArrayList可容纳的元素总数。

 

  1. Heap与stack的差别?

答:Heap是堆,空间是由手动操作分配和释放的,它的存储区很大的自由存储区. Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。

 

 

4、集合包括哪些种类?常用的集合类有哪些?

ArrayList使用大小可按需动态增加的数组实现 IList 接口。

Hashtable表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。

SortedList表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。

BitArray管理位值的压缩数组,该值表示为布尔值,其中 true 表示位是打开的 (1),false 表示位是关闭的 (0)。

Stack表示对象的简单的后进先出非泛型集合。

Queue表示对象的先进先出集合。

 

5.  数组和数组列表的区别是什么?

数组必须在实例化是确定数组的长度,而数组列表不需要一开始确定长度,根据添加的元素的数量动态增长。

ArrayList只有一维,而数组可以是多维。

数组的元素一旦确定后不能添加和删除,而数组列表可以随时添加和删除元素。

 

6     HashTable,SortList,NameValueCollection之间的异同?

这三种集合类均是表示键值对的集合,都是属于字典。

HashTable里面的元素根据键的哈希代码的顺序进行排序

SortedList里面的元素根据键的值进行排序,并和按照键和索引访问。

NameValueCollection与HashTable很相似,区别是HashTable不允许有重复的键,而NameValueCollection允许有重复的键

 

7     Stack,Queue之间的区别是什么?

Stack类用于实现后入先出的数据结构,它存储数据的形式是最后插入的对象出现在堆栈的最顶端。

Queue类用于实现先入先出的数据结构,它存储数据的形式是最先插入的对象最先获取。

 

8     简述ArrayList的主要方法,以及这些方法的含义。

ArrayList:    Add()   添加单个元素

AddRange()  添加一个数组列表

GetRange()  从数组列表中取出一部分

Remove()    移除单个元素

RemoveAt()  移除指定索引位置的元素

Clear()     清空数组列表中的所有元素

 

 

第十一章 反射

一、名词解释

  1. 什么是泛型?

答:所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化。从而实现更灵活的方式复用

  1. 什么是反射?

反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类型于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型,并且对这些新类型的操作进行调用。

二、填空题

  1. 在.Net中所有可序列化的类都被标记为_serializable__
  2. 泛型的符号是:  <>
  3. 程序集分为共享程序集私有程序集
  4. 反射所需要的名称空间是:System.Reflection.

 

三、简答题

  1. 泛型约束where T :class的意思?

答:规定T必须是一个引用类,包括任何类,委托或接口。

 

  1. 泛型约束where T :new()的意思?

答:规定T必须实现一个默认的构造器new()。如果同一个类型上有多个约束new()约束必须最后指定

 

  1. .NET框架2.0中常用的几个集合类型?

答:Dictionary<>类、List<>类、Queue<>类、Stack<>类

 

  1. 使用泛型的优点是?

通过泛型可以定义类型安全的数据结构,而无需使用具体实际的数据类型,着能够显著提高性能并得到高质量的代码。

泛型通过把类型参数化来达到代码重用的目标,这一特性可以应用在类、结构、接口、委托、方法的设计之中。泛型除了可以大幅提高代码复用性。

提供编译期间的类型检查,减少不必要的显式类型转换,减少不必要的装箱操作,从而提高应用程序的运行效率

 

  1. 什么是System.Reflection名称空间?

Reflection名称空间包含的类的的接口提供对所加载的类型、方法和字段的查看管理,能够动态创建和调用类型。

 

  1. 什么是程序集?

程序集是.NET框架应用程序的生成块,它构成了部署、版本控制、重复使用的基本单元,它是为协同工作而生成的类型和资源的集合。

 

 

第十二章 异常处理

一、填空题

  1. 异常是 一定  会发生的。
  2. 异常类名称尽量使用Exception作为结尾
  3. Throw语可用来抛出  系统异常  或   用户自定义异常
  4. 用户自定义异常类需要从   Exception      类继承.
  5. 在C#异常处理中,一个try语句块可以有     多         个catch块。

二、选择题

  1. 下列关于C#的异常处理的说发法,错误的是(   A  )。

A.try块必须跟catch块组合使用,不能单独使用

B.一个try块可以跟随多个catch块

C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常

D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行

 

三、简答题

  1. 可以创建自已的异常吗?

可以,要创建自定义的异常类型,编写派生自Exception的类即可。

 

  1. 什么是异常处理?为什么需要异常处理?

一个良好且强大的程序的标志是为意外情况作好准备并在出现意外情况时能够恢复。在程序编译或执行的任何时候都有可能发生错误码。执行有问题的代码时,会“产生异常“,导致应用程序的崩溃,所以必须在程序中处理可能产生的各种异常。只有这样,才能保证开发出健壮的应用程序。

 

  1. net的错误处理机制是什么

.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

 

  1. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

答:会执行,在return前执行

 

  1. 以下代码段中能否编译通过?请给出理由。

try

            {

            }

            catch (IOException e3)

            {

         }

不能,IOException不在System名称空间,而在System.IO名称空间

 

 

第十三章 流

一、名词解释

  1. 什么是流?

它是通过缓冲机制将数据从生产者(如键盘、磁盘文)的这一过程的抽象。件、内存或其他设备)传送到接受该数据的消费者(如屏幕、文件或者内存等

 

二、填空题

  1. IO代表的意思是:inputoutput
  2. FileStream 中的Read( )Write( )方法分别是用来读和写文件流的
  3. C#中IO操作的最小单位是:字节
  4. 文件操作必须声明_____System.IO__命名空间。
  5. IO操作盘符的类是:DriverInfo。

 

三、选择题

  1. 用户自定义异常类需要从以下哪个类继承:(  A  )

A.Exception                             B.CustomException

C.ApplicationException                    D .BaseException

 

  1. 下列关于C#的异常处理的说发法,错误的是(   A  )。

A.try块必须跟catch块组合使用,不能单独使用

B.一个try块可以跟随多个catch块

C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常

D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行

 

四、简答题

  1. Stream派生的具体字节数据流类包括

答:FileStream  为文件I/O设计的字节数据流

MemoryStream 使用内存来存储的字节数据流

 

  1. System.IO命名空间提供了哪几个类分别起什么作用?

答:

a)         File类-静态类,可以测试一个文件是否存在,以及拷贝文件、删除、移动、打开文件和创建文件流

b)        FileInfo类-实例类,提供一个具体文件的有关信息,包含了相应的实例方法,用来执行文件的拷贝、移动、删除等有关信息

c)         Directory类-静态类,提供了用来判断目录是否存在,以及创建目录等与目录操作有关的方法。

d)        DirectoryInfo类-提供了操作具体目录的实例方法,包括重命名,获得目录内文件列表等。

e)         Path类-用于分析和构造路径字符串的实用类。

 

 

 

 

 

 

第十四章 文件

一、填空题

  1. File类的所有方法都是  静态的,因此要求将所有文件的路径传递到所有方法调用。
  2. File类是一个密封类,其他类不可以从该类继承。
  3. File类的   Copy()方法可用于将文件从一个位置复制到另一个位置。
  4. File类的   Move()方法可用于移动一个文件。
  5. File类的    Delete()方法可用于删除文件。
  6. Directory类的    CreateDirectory()方法可用于创建目录。
  7. Directory类的    Move()方法可用于移动目录。
  8. Directory类的    Delete()方法可用于删除目录。
  9. DirectoryInfo和FileInfo类都继承自   FileSystemInfo类。
  10. .File类的Copy()方法的一种重载方法接受第三个参数,该参数是一个  bool    值 。
  11. 使用代码行“FileStream fs=File.Create(@”C:ABC.TXT”);”创建文件时,如果文件C:ABC.TXT已经存在,则   文件创建成功,并覆盖原来的文件

第十七章 Xml的处理一

一、名词解释

  1. 什么是XML?

答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。

二、填空题

  1. 在XML中有    一       个根元素?
  2. XML注释用   <!– –>      表示
  3. XML的显示可以用   CSS与XSL
  4. XML中属性值用  双引号或单引号 分隔.

 

三、选择题

  1. 下面关于XML的描述错误的是(D)。

a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单、与平台无关并被广泛采用的标准;

c)XML文档可承载各种信息;

d)XML只是为了生成结构化文档;

 

四、简答题

1. XML文件写入的步骤是什么?

答:

引用System.Xml

定义XmlTextwrite,根据文件路径及格式,实例化XmlTextWrite;设置Formatting与Indentation。设置开始书写WriteStartDocument,若有节点使用WriteStartElement与WriteEndElement书写,在WriteStartElement中参数输入节点名。若有值则用WriteString书写,方法参数为值。如有属性则用WriteStartAttribute与WriteEndAttribute书写,WriteStartAttribute方法参数为属性名,中间加入WriteString,方法参数为属性值,

最后用xtw.WriteEndDocument();xtw.Close();结束

 

2.XML 与 HTML 的主要区别

1)        XML是区分大小写字母的,HTML不区分。

2)        在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略&lt;/p&gt;或者&lt;/li&gt;之类的结束

3)        标记。在XML中,绝对不能省略掉结束标记。

4)        在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用

5)        查找结束标记了。

6)        在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

7)        在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

 

第十八章 Xml的处理二

一、名词解释

  1. 什么是DTD?

答:DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。

 

二、填空题

  1. DOM英文全称是  document object model   ,中文全称是  文档对象模型  

 

 

三、选择题

  1. 下面关于XML的描述错误的是(B)。

a) 每个XML文档必须有且只有一个根元素。

b) 根元素的起始标记可以不放在所有其他元素的起始标记之前。

c) 根元素的结束标记要放在所有其他元素的结束标记之后。

d) 根元素是一个完全包括文档中其他所有元素的元素。

 

四、简答题

  1. XmlReader 和 XmlWriter类可以实例化吗?

答:不行,2个都是抽象类,无法实例化。

 

  1. XmlReader与XmlWriter有什么区别?

答:前者主要是对XML进行读取等操作,后者主要是对XML进行写入等操作。

 

  1. 是什么SAX?

答:SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。它是XML_DEV邮件列表中的成员根据应用的需求自发地定义的一套对XML文档进行操作的接口规范。

 

  1. XmlWriter中写入元素节点和写入属性用什么?

答:WriteElementString、WriteStartElement 和 WriteNode 方法可以用于编写元素节点,WriteAttributeString、WriteStartAttribute 和 WriteAttributes 方法专门为创建属性而设计。

 

 

 

  1. XML文件写入的步骤是什么?

答:优点:SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。另外,你无需像在DOM中那样为所有节点创建对象。最后,SAX“推”模型可用于广播环境,能够同时注册多个ContentHandler,并行接收事件,而不是在一个管道中一个接一个地进行处理。

缺点:SAX的缺点是你必须实现多个事件处理程序以便能够处理所有到来的事件,同时你还必须在应用程序代码中维护这个事件状态,因为SAX解析器不能交流元信息,如DOM的父/子支持,所以你必须跟踪解析器处在文档层次的哪个位置。如此一来,你的文档越复杂,你的应用逻辑就越复杂。虽然没有必要一次将整个文档加载到内存中,但SAX解析器仍然需要解析整个文档,这点和DOM一样。

 

 

  1. SAX和DOM的区别是?
  • SAX是顺序的,层次化的分析XML文档,着眼于当前的事件连续的处理,不是全部文档都读入内存
  • DOM的做法正是将XML文档元素全部读入内存,生成一棵包含全部内容的树,以便全局的控制各个节点元素。

 

第十九章 ADO.NET(一)

一、名词解释

  1.  什么是ADO.NET?

ADO.NET 是 Microsoft.Net 框架中包含的数据访问组件。

  1. 什么是OLE DB?

OLE DB(Object Linking and Embedding for Database 对象链接与嵌入数据库)提供统一的数据访问接口

  1. 什么是ADO?

ADO(ActiveX Data Object,ActiveX 数据对象)是 Microsoft 开发的一种数据访问方法,通过 OLE DB 提供程序与数据库连接

  1. 什么是ODBC?

ODBC(Open Database Connectivity 开放式数据库连接)是一组可用于连接各种关系数据库的函数集

 

 

二、填空题

  1. SqlCommand对象中_CommandType____用来指定需要执行的命令类型,__CommandText____用来指定命令类型相关的信息。
  2. 在C#中为了避免忘记使用connection的close,我们可以使用using____来帮我们自动释放连接资源。
  3. SqlConnection,SqlCommand,SqlDataReader是在System.Data.SqlClient命名空间下..
  4. Sqlconnection打开数据库连接的命令是: open();关闭数据库连接的命令是:close().
  5. DataReader  不能  向后访问,只能向前访问 。
  6. ADO.NET 的基本组件包括: DataSet  和  .NET 框架数据提供程序

 

三、选择题

  1. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

d)ExecuteReader()方法返回一个DataReder对象;

 

  1. 您的公司有一个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”

 

 

四、简答题

  1. DataReader和DataSet的异同

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对 SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..

DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作…

 

 

  1. ADO。NET相对于ADO等主要有什么改进?

a)         ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,

b)        不使用com

c)         不在支持动态游标和服务器端游

d)        可以断开connection而保留当前数据集可用

e)         强类型转换

f)   xml支持异同

 

  1. 简述ADO.NET中常用五大对象是什么及其作用?

答:connection 连接对象
command 命令对象,指示要执行的命令和存储过程!
datareader是一个向前的只读的数据流。
dataadapter是功能强大的适陪器,支持增删改查的功能
dataset是一个数据级对象,相当与内存中的一张表或多张表

 

  1. SqlCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader()分别返回什么?

答:ExecuteNonQuery()执行不返回结果,返回的为一个执行影响行数int型,ExecuteScalar()返回第一行第一个字段的值,ExecuteReader()返回一个DataReader对象

 

5.Command的CommandType什么作用?

答:指定需要执行命令的类型,通常为StoredProcedure:命令类型为存储过程,Text:命令类型为SQL文本命令

 

6     如何使用UDL文件方式获取连接sqlserver数据库字符串?

答:新建一个txt文件,将文件后缀名改为.udl,打开UDL文件,提供程序microsoft oledb provide for sqlserver ,点下一步,服务器中输入.,选择指定的用户名称和密码,输入用户名及密码(本机可使用WINODWS认证),选择数据库,测试通过。退出。将文件用记事本打开 ,复制; Everything after this line is an OLE DB initstring下面的代码即连接数据库字符串。

 

8     连接操作数据库基本步骤是什么?

答:首先using System.Data.SqlClient;实例化SqlConnection对象,将SqlConnection对象的ConnectionString设置连接数据库字符串,实例化SqlCommand对象,设置SqlCommand的CommandText属性,一般为一段sql代码,Connection属性指定为先建立的SqlConnection对象。执行Command返回ExecuteReader()返回一个DataReader或执行ExecuteNonQuery()无返回

 

 

第二十章 ADO.NET(二)

一、名词解释

  1. 什么是DataSet?

DataSet相当于数据在内存中的镜像,可以用来描述数据库库表(包括数据信息和表格式信息)和库表之间的关系。

DataSet由两部分组成:Tables和Relations。

 

 

二、填空题

  1. 在SqlDataAdapter中填充数据集用__Fill___方法。
  2. 在数据库表中三种关系,分别为______________________________
  3. SqlCommand对象中_CommandType____用来指定需要执行的命令类型,__CommandText____用来指定命令类型相关的信息。
  4. SqlDataAdapter有预先配置好的____个Command实例。
  5. DataReader  不能  向后访问,只能向前访问 。
  6. DataSet由两部分组成:TablesRelations
  7. DataSet中可以含有   一个或多个 张表
  8. DataSet、DataTable在    System.Data   命名空间下。
  9. DataAdapter是与 DataSet 一起使用的对象,它在数据库和数据集之间起桥梁的作用。

 

三、选择题

  1. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

d)ExecuteReader()方法返回一个DataReder对象;

 

  1. 以下关于C#中DataSet的说法错误的是( CD  )。
    1. 1个DataSet中可以多张有表
    2. 1个DataSet中可以有多个关系
    3. 1个DataSet只能有1张表
    4. 1个DataSet只能有1个关系
  2. 下面有关DataTable的说法正确的是( BD   )。
    1. DataTable中的rows表示列
    2. column表示列
    3. 在设计DataTable时是先加行再加列
    4. 在设计DataTable时是先加列再加行
  3. 下面说法正确的是(  BC  )
    1. DataReader可以实例化
    2. File不能实例化
    3. DataSet有构造函数重载
    4. DataRow可以实例化
  4. 下列说法正确的是(  B  )。
    1. 在StreamWrite中调用Write方法即可写入内容不需要再调用其他方法
    2. ADO.NET有断开模式和连接模式
    3. DataReader可以先前或向后操作
    4. D.若要使用Command的Fill填充到DataSet必须先调用Connection的Open方法

四、简答题

  1. DataReader和DataSet的异同

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对 SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..

DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作…

 

 

  1. DataAdapter中预先配置好的Command实例是什么?

答:SelectCommand,InsertCommand,DeleteCommand,UpdateCommand,分别是提供对数据库数据的查找(选择),插入,删除,修改

 

 

  1. DataAdapter 中的Fill ()方法有什么作用?

答:可以将数据库中的表(或连表)填充到dataset中的table中

 

  1. DataView的Sort属性有什么作用?

答:可以使用Sort指定单个或多个列排序顺序并包含 ASC(升序)和 DESC(降序)参数

 

  1. 连接数据库后如何将某一张表的内容存到DataTable中?

答:建立连接后,实例化SqlDataAdapter ,将SqlDataAdapter 的SelectCommand的Connection设置为连接对象,CommandText设置为想要查询表的SQL语句。定义DataSet,使用SqlDataAdapter的Fill()方法将数据库中的表存在一个DataSet,定义DataTable,使用DataSet的Tables方法获取表即可

 

6. DataView和DataTable的区别是?

DataView 使您能够创建 DataTable 中所存储的数据的不同视图,这种功能通常用于数据绑定应用程序。使用 DataView,您可以公开表中具有不同排序顺序的数据,并且可以按行状态或基于筛选器表达式来筛选数据。

DataTable描述的是一个表信息,它包换Columns集合和Rows集合。

 

 

第二十一章 ADO.NET(三)

一、名词解释

  1. 什么是事务?

事务提供了一种将T-SQL语句分组的方法,从而使它们能够被当成一个单元来处理:组中所有语句或都执行,或都不执行。

 

二、填空题

  1. 存储过程中输入参数用   input  ,输出参数用   output 
  2. SqlCommand对象中_CommandType____设置为  StoredProcedure 使用存储过程
  3. 事务的提交方法为____Commit______,回滚方法为___RollBack___。
  4. 事务的4个特性是:原子性一致性 隔离性 持久性

 

三、选择题

  1. 在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(B ),必要时还要设置参数尺寸。

a)大小;             b)上限;              c)初始值;            d)类型;

 

  1. 一下关于存储过程的说法正确的是(  D  )
    1. 存储过程可以有参数,可以有返回值,返回值就是输出参数。
    2. SqlCommand对象可以设置存储过程的相关信息。
    3. connection.open,sql,1,1 为调用无参,无返回值存储过程。
    4. 存储过程执行效率比sql语句高的主要原因是预编译。

四、简答题

 

  1. 存储过程的优点?

a)             答:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。

b)            存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。

c)             存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。

d)            存储过程主要是在服务器上运行,减少对客户机的压力。

e)             存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。

f)             存储过程可以在单个存储过程中执行一系列     SQL     语句。

g)     存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

  1. 使用存储过程的步骤是?

1)   构造与Sql服务器连接对象

SqlConnection MyCon = new SqlConnection()

 

2)   构造SqlCommand对象

SqlCommand MyCmd = new SqlCommand()

 

3)   指定SqlCommand对象调用的存储过程

MyCmd.CommandText = “ProcedureName”

 

4)   声明SqlCommand对象的命令类型为存储过程

MyCmd.CommandType = CommandType.StoredProcedure

 

5)   构造参数对象

SqlParameter MyParam = new SqlParameter(“@ParamName”,类型,宽度);

 

6)   赋值给参数对象

MyParam.Value = Value

 

7)   将参数添加到SqlCommand对象

MyCmd.Parameters.Add(MyParam)

 

8)   执行SqlCommand

MyCmd.ExecuteNonQuery()

 

9)   关闭Sql连接对象 MyCon.Close()

 

  1. 事务处理的步骤是?

a)  创建SqlTransaction 对象,使用BeginTransaction() 方法。

b)  给SqlCommand对象的Transaction 属性赋值。

c)  使用commit()方法提交事务。

d)  使用Rollback() 方法回滚事务。

 

 

第二十二章 ADO.NET(四)

一、名词解释

 

二、填空题

  1. 在ADO.NET 编程中,  不能   使用一个DataAdapter 对象向多个DataTable 填充数据。
  2. myTable.Rows[0][2]返回myTable的第  一    行第   三     列数据。
  3. 使用数据适配器的  update   方法能够更新数据。
  4. myDataSet.Tables.Add()语句执行后,myDataSet中增加的表的名称是  Talbe1.

 

三、选择题

  1. DataAdapter 对象的Update 查询语句中, 使用下列哪种Where 子句可以保证本行的

4gA’W0Od
oIT农庄,IT认证,题库,微软认证,ATA认证更新不会覆盖其他用户的更改。ACD

1I o#`$U0t X


X_www.itnz.cnA. 包含数据源所有的列

B. 只包含主键列

C. 包含主键列和一个时戳列
“Au3I[1]KC­@$Z9lIT农庄,IT认证,题库,微软认证,ATA认证D. 包含主键列和已修改列

  1. DataAdapter 对象的DeleteCommand 的属性值为null,将造成:C

A. 程序编译错误
B. DataAdapter 在处理DataSet 中被删除的行时,这些行将被跳过不处理
K?0vJ;oVBzIT农庄C. DataAdapter 在处理DataSet 中被删除的行时,将引发异常
bY ak


_nLD. DataAdapter 在处理DataSet 中被删除的行时,将出现对话框询问用户如何处理该
”s)G(b J’gS


Q/sIT农庄行

  1. 为了提高性能,在使用DataAdapter 填充DataSet 前,可以将_A____属性值设为false.

A. DataSet 对象的EnforceConstraints
8o’hTZ.xA
TIT农庄,IT认证,题库,微软认证,ATA认证B. DataSet 对象的CaseSensitive

C. DataAdapter 对象的AcceptChangesDuringFill
],_,ObG+CIT农庄,IT认证,题库,微软认证,ATA认证D. DataAdapter 对象的MissingSchemaAction

 

  1. DataAdapter 对象使用与__ C ____属性关联的 Command 对象将DataSet 修改的数据保存入数据源。

J1f0gc


CIT农庄,IT认证,题库,微软认证,ATA认证A. SelectCommand    B. InsertCommand    C. UpdateCommand


O{?4o
TIT农庄,IT认证,题库,微软认证,ATA认证D. DeleteCommand
;n
C6uAp[IT农庄,IT认证,题库,微软认证,ATA认证

  1. 目前在ADO.NET 中可以使用与下列哪些数据源相关的DataAdapter?ABC

d6e{0P‑E­tIT农庄,IT认证,题库,微软认证,ATA认证A. SQL Server .NET 数据源    B. OLE DB .NET 数据源

C. XML 文件                  Z+Q7`Ii6VV        RIT农庄D. ODBC .NET 数据源

  1.  Dataset1 为一数据集对象,语句


gYz#U


lm.L;Iakr7p
kIT农庄Dataset1.ReadXml(“F:/Dataset1.XML”,XmlReadMode.ReadSchema);!WR2L‑S0?]www.itnz.cn的作用是:A

A. 若Dataset1 已经包含架构,则将所有由XML 文件内部架构定义的新表加入Dataset1,然后向Dataset1 加载数据;
B. 向Dataset1 加载数据;忽略所有XML 文件内部架构,并丢弃所有与Dataset1 现有架构不匹配的数据。
H(j­u ib
s4Iwww.itnz.cnC. 忽略所有XML 文件内部架构而根据XML 数据推断出新的架构。添加到Dataset1;然后向Dataset1 加载数据。
L4H3v,G
F[1]yd*`院校IT认证教育交流第一平台D. 从 XML 文件读取数据集数据修改信息,将其合并到Dataset1 中。

  1. DataView 对象的特性有:AD

A. DataView 只能访问单个 DataTable 表

B. DataView 可以作为连接两个相关表的手段

C. DataView 不能进行排序

D. DataView 可以根据记录的版本、状态进行筛选

8.  DataSet 对象ds 中,数据表对象Customers 的表名为”Customers”,其表结构如下:
C,t$[9|LuIT农庄,IT认证,题库,微软认证,ATA认证CustomerID int 0
v{+W^Yq;g
@1UIT农庄CompanyName string 1

Address string 2

City string 3
bw#r7II5mT/R该表有300 条记录,其中有一些刚刚被标记为删除。我们希望从表中查找所有已经标记为删除的、来自London 的客户信息,并将结果以City 列递减排序放入一个DataRow 数._:Cw8u0PH院校IT认证教育交流第一平台组中。则执行下列___ B ___语句可以完成此目标。


B’?b
H


^


z        nIT农庄,IT认证,题库,微软认证,ATA认证A.DataRow[] selRows = Customers.Select(“City = ‘London'”, “City DESC”,a,MY‑j
c)i
AN;~IT农庄,IT认证,题库,微软认证,ATA认证DataRowState.Deleted);

B.DataRow[] selRows = Customers.Select(“City = ‘London'”, “City DESC”,DataViewRowState.Deleted);
*yvx4l$Ey


Tq
E院校IT认证教育交流第一平台C.DataRow[] selRows = Customers.Select(“City = ‘London'”, “City ASC”,DataRowState.Deleted);
bW:y7q;O;cIT农庄,IT认证,题库,微软认证,ATA认证D.DataRow[] selRows = Customers.Select(“City = ‘London'”, “City ASC”,0r4w J


C:{IT农庄,IT认证,题库,微软认证,ATA认证DataViewRowState.Deleted);


n D,G”K.y;L3lwww.itnz.cn

9. DataSet 对象ds 中,数据表对象Customers 的表名为”Customers”,其表结构如下:

列名 类型 列序号院校IT认证教育交流第一平台. k?‑DS%W
CustomerID int 0

CompanyName string 1
‑Q4X,?n2Ipn-U-Fh院校IT认证教育交流第一平台Address string 2
*[(r[1]w[
nLK院校IT认证教育交流第一平台City string 3

则下列向该表添加一行新数据的语句是否正确?BI
`S
d-h,MJ&A{@IT农庄,IT认证,题库,微软认证,ATA认证object[] row = { “ATA”,”A8″,”Beijing”,1};
T$LQ$lfl‑EzxU
j院校IT认证教育交流第一平台ds.Tables[“Customers”].Rows.Add(row);
A. 正确    B. 错误

10. 数据集对象dsNorthwind 包含两个表,表名分别为”Customers”和”Orders”。执行下列
+Q/Y;G
`:f’A [hIT农庄语句:

 (q


EzVq9[IT农庄dsNorthwind.Relations.Add(5Tg,V2n,q)B3JV”FK_CustomersOrders”,{+NEtkdsNorthwind.Tables[“Customers”].Columns[“CustomerID”],2fvVQ JIT农庄dsNorthwind.Tables[“Orders”].Columns[“CustomerID”],false);
该语句运行结果有______ A ______。
A. 为dsNorthwind 创建了表”Customers”和”Orders”之间的导航关系

B. 为表”Customers”创建了一个唯一性约束
C. 为表”Orders”创建了一个唯一性约束
[1]Rlt c2o”y
Buwww.itnz.cnD. 为表”Customers”创建了一个外键约束,其父表为”Orders”
;h&d)p+e­R)g3SeE. 为表”Orders”创建了一个外键约束,其父表为”Customers”

11. 数据集ds 中两数据表(父表:Customer;子表:CartItems)之间有如图外键约束。父表Customers 中有一行数据的CustomerID=100,子表CartItems 中有20 行数据的CustomerID=100。若从父表中删除该行,则:D 9W7N’r{        [Zt.dt3D院校IT认证教育交流第一平台农

A. 子表不发生任何变化
T8n rR+z+db院校IT认证教育交流第一平台B. 子表中20 个相关行的CustomerID 列的值变为DBNull

C. 子表中20 个相关行被删除
D. 引发Exception

12.  已知ds 为数据集对象。以下语句的作用是_A____。

ds.Tables[“roduct”].Constraints.Add(new UniqueConstraint(“UC_ProductName”,new string[]{“Name”,”Class”},true));
)P c*?+|aI6bA. 为表”roduct”添加一个由列”Name”,”Class”组合成的主键约束
4Lt X`4t0p”hIT农庄,IT认证,题库,微软认证,ATA认证B. 为表”Product”添加一个由列”Name”,”Class”组合成的唯一性约束
C. 为数据集ds 添加一个名为”Product”的数据表,并添加两个列,列名分别为”Name”
‑o'[‘Y
D,l$q院校IT认证教育交流第一平台和”Class”
‘q
@
bG


|9h?‑l”~ x”VIT农庄D. 为数据集ds 添加一个名为”Product”的数据表,并添加一个名为”UC_ProductName”
GI        }0I%qIT农庄的数据列

13.  下列哪些方法可以在DataSet 对象ds 中添加一个名为“Customers”的DataTable 对象?BCD
+P;J$H;m*GGIT农庄A. DataTable dt_customers = new DataTable();

B. DataTable dt_customers = new DataTable(“Customers”);
:B3y2c.{s院校IT认证教育交流第一平台ds.Tables.Add(dt_customers);

C. ds.Tables.Add(“Customers”);

D. ds.Tables.Add(new DataTable(“Customers”);

y0sW7z mIT农庄,IT认证,题库,微软认证,ATA认证

14.  已知ds1、ds2 分别代表两个不同的DataSet 对象。其中ds1 已包含名为“Customer”的DataTable 对象,且该DataTable 对象被变量dt_Customer 引用。已知dt_Customer1Ne+rmg5n w7byIT农庄表中有100 条记录,则执行下列语句后,新的数据表new_dt_Customer 中包含___ B ___0y8fz


EJIT农庄,IT认证,题库,微软认证,ATA认证条记录。
{2G2^‑}uU9JDataTable new_dt_Customer = dt_Customer.Copy();I

A. 0    B. 100    C. 200    *G+l4HP2_,?


KD. 300

15.  下列哪些选项可以作为DataSet 的数据源?ABCD
A. SQL Server 2000 数据库中的视图    ipVt WW
t.v[m院校IT认证教育交流第一平台B. Oracle 数据库中的表
C. XML 文件                          D. Excel 制表文件
|        T


~(SLT[1]lwww.itnz.cn

16.  cmd 是一个SqlCommand 类型的对象,并已正确连接到数据库MyDB。为了在遍历完SqlDataReader 对象的所有数据行后立即自动释放cmd 使用的连接对象,应采用下列哪种方法调用ExecuteReader 方法?D
`9]Y        y,w{‑pA. SqlDataReader dr = cmd.ExecuteReader( );
B. SqlDataReader dr = cmd.ExecuteReader(true);
R E;H-?
IT农庄,IT认证,题库,微软认证,ATA认证C. SqlDataReader dr = cmd.ExecuteReader(0);

D. SqlDataReader dr= cmd.ExecuteReader(CommandBehavior.CloseConnection);
4L1D6ct&^
S[1]V0Pwww.itnz.cn

17. 某Command 对象cmd 将被用来执行以下SQL 语句,以向数据源中插入新记录:
*Y1Q‑m6Ft,M’
SIT农庄,IT认证,题库,微软认证,ATA认证insert into Customers values(1000,“tom”)IT农庄AB 5p{;f `­v


u5YP N
请问,语句cmd.ExecuteNonQuery( );的返回值可能为


[0I#J)OD
e
{6i8e%;i


{A. 0    fTF+r)mcS^$PIT农庄,IT认证,题库,微软认证,ATA认证B. 1    g[1]v!seaJ院校IT认证教育交流第一平台C. 1000    D. “tom”

18. 为创建在SQL Server 2000 中执行Select 语句的Command 对象,可先建立到SQL Server2000 数据库的连接,然后使用连接对象的____ C ___方法创建SqlCommand 对象。
3tZj)` }(T0y Wwww.itnz.cnA. Open    *t` ?[1]O&})E%T)tC$yB. OpenSQL    C. CreateCommand    D. CreateSQL

19. 设计ADO.NET 应用程序时,在下列哪些情况下,使用Command 对象直接访问数据源更加
$a:?R
{(N&^~.G


K院校IT认证教育交流第一平台有效?BCD

A. 使用ADO.NET 对XML 数据文件中的数据进行分析和处理
(G:ih#`$z”E+M|B. 在SQL Server 数据库的表中搜索某个字段值
­Tx5uA[1]|


OxIT农庄,IT认证,题库,微软认证,ATA认证C. 计算SQL Server 数据库中数据表的行数

D. 在SQL Server 数据库中创建存储过程

20.  打开SQL Connection 时返回的SQL Server 错误号为4060,该错误表示:A
_j{#E
JJE3ADOIT农庄,IT认证,题库,微软认证,ATA认证A. 连接字符串指定的服务器名称无效  B. 连接字符串指定的数据库名称无效
tZ6t
sK;I*Z4Fawww.itnz.cnC. 连接超时                        D. 连接字符串指定的用户名或密码错误

21. 目前,Microsoft .NET Framework 的发行包中包含以下.NET 数据提供程序。AB

A. SQL Server .NET 数据提供程序  8f J#L.T”yg$];@5jB. OLE DB .NET 数据提供程序

C. ODBC .NET 数据提供程序        D. XML .NET 数据提供程序
,~H,b-`


}e0fIT农庄,IT认证,题库,微软认证,ATA认证

22.  在ADO.NET 中使用XML 支持时,以下哪些建议是可取的?ABC
FH @
@dR
Fwww.itnz.cnA. 从DataSet 读取XML 格式的数据       [“M‑}4h~L


W{*Pwww.itnz.cnB. 使用XML 格式的数据填充DataSet
v)E1m3_5BIT农庄,IT认证,题库,微软认证,ATA认证C. 为DataSet 创建XML 格式的构架描述   D. 将数据以XML 格式保存在数据库中

23.在ADO.NET 中,为访问DataTable 对象从数据源提取的数据行。可使用DataTable 对象
.}


n#B’f&Z^’G#}的___ A ____属性。       1J[1]b!ZU9X([
i aIT农庄,IT认证,题库,微软认证,ATA认证A. Rows  B. ColumnsI C. Constraints  R(T


? T3L@


G&tUSD. DataSet

24. 包含在DataSet集合中的集合是(A)

A Tables集合                     B Columns集合

C Rows集合                       D Parameters  集合

25. 要检索指定主表记录的所有子表相关记录,应该调用的方法是(B)。

A  GetParentRows                 B GetChildRows

C  GetRelation                   D  GetRows

四、简答题

{
j#No/W
FxnIT农庄1.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

答:一般为3层

数据访问层,业务层,表示层。

数据访问层对数据库进行增删查改。

业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。

表示层为了与用户交互例如用户添加表单。

优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。

缺点: 增加成本。

 

 

第二十三章 ASP.NET基础

一、名词解释

1、 ASP.NET:是创建动态Web页的一种强大的服务器端新技术,利用这项技术,可以为Wrold Wide Web站点或为企业内部互联网创建动态的可进行交互的Web页面。

2、 CodeBehind:asp.net提供的页面代码分离技术,避免像asp时代代码和页面混写。

3、 B/S结构:(Browser/Server结构)结构即浏览器和服务器结构。对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。

4、 Web窗体:是一项ASP.NET功能,可以使用它为Web应用程序创建用户界面。

5、 Visual Studio.NET环境:是开发ASP.NET应用程序的IDE环境。

 

二、选择题

1、 (B)是用于创建Web应用程序的平台,此应用程序可使用IIS和.NET Framework在Windows服务器上运行。

A. C#

B. ASP.NET

C. VB.NET

D. Visual Studio.NET

2、 Web窗体与(C)无关

A. 控件

B. 服务器

C. 浏览器

D. 编译器

3、 下面不属于ASP.NET的功能的是(D)

A. 多语言支持

B. 代码编译执行

C. 缓存机制

D. 较差的安全性

4、 (B)是用于地址的逻辑目录名与服务器上的物理目录相对应,也可成为URL映射

A. 目录

B. 虚拟目录

C. IIS

D. Web窗体

 

5、 (D)用于在IIS中创建虚拟目录

A. 目录创建向导

B.  Web创建向导

C. 虚拟路径向导

D. 虚拟目录创建目录

 

6、 (A)文件由Visual Studio .NET创建,用于定义Web应用程序的配置。

A. Web.Config

B. Global.asax

C. AssemblyInfo.cs

D. ASPX

 

三、简答题

1、 ASP.NET与ASP有哪些不同之处?
答:ASPX 代码与 HTML 设计和文本分离、支持强类型语言,如 C#、VB、简单性和易学性、通过继承机制支持代码的重用、编译页执行效率的大幅提高、易于配置和部署。

2、 在IIS中如何建立一个虚拟目录?
答:打开IIS,右键单击“默认Web站点”节点,然后选择“新建”→“虚拟目录”,然后按照“虚拟目录创建向导”的提示完成创建。

3、 什么是Web窗体?

答:Web窗体是一项ASP.NET功能,可以使用它为Web应用程序创建用户界面。Web窗体将Web应用程序分为两部分:可视化组建和该页的编程逻辑。

4、 服务器端控件有几种类型?分别是什么?
答:2种,分别是:Web服务器控件和HTML服务器控件。

5、  如果用户先安装.net,然后再安装IIS,造成安装之后IIS不支持ASP.NET,怎么解决这个问题?
答:使用aspnet_regiis –i来安装当前版本的asp.net到IIS即可。

第二十四章 JS基础

一、填空题

1、 SCRIPT 标记用于包含javascript代码,其中LANGUAGE定义脚本语言 的种类,SRC表示定义一个URL用以指定以.JS结尾的文件

2、 JS中windows对象表示每个HTML文档的顶层对象

3、 JS中appCodeName表示相对于用户浏览器的codename 、appName表示相对于用户浏览器的实际名字、appVersion表示相对于用户浏览器的版本号、userAgent该属性反映用户浏览器的全部信息

4、 JS中的注释为__//__

5、 JS是一种基于对象类型脚本语言

6、 传统的HTML文档顺序是html head body

7、 一个浏览器窗口中的DOM顺序是windownavigatorscreenhistorylocationdocument

8、 JS中的字符与字符相连接使用__+__号

9、 parent代表父亲对象top代表最顶端对象

10、         引用一个文件名为aaa.js的JS <script type= “text/javascript ” src= “aaa.js ” > </script >

11、         指定在不支持脚本的浏览器显示HTML的标记为 <noscript></noscript >

评论列表
文章目录