大学C# - 试题 - 答案题库 - 程序设计 - .NET - Framework - vis

更新时间:2024-04-02 22:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

、单选题(每题 2分,共30分)

1、打开代码编辑器的功能键是( )

A、F1(帮助) B、F5(运行) C、F7

2、加载窗体时触发的事件是( ) D、Load

3、关闭任一个窗体并结束应用程序的语句是( ) C、Close

4、若有语句:label1.Text=″C#.NET″;默认情况下,在执行本语句之前标签控件的Name属性和Text属性的值分别为:( ) C、″label1″、″label1″

5、下列关于C#语法规则说法错误的是( ) A、字母区分大小写

B、同一行可以书写多条语句,但语句之间必须用分号分隔 C、//可用于注释语句且被注释的语句不会被编译。

D、变量在使用之前必须先声明,一旦声明后,就具有初始值

6、程序调试的目的是( ) B、发现错误 7、下列选项中,( )是引用类型。 C、string类型

8、下列描述错误的是( )

A、类不可以多重继承而接口可以 B、抽象类和接口都不能被实例化

C、抽象类自身可以定义成员而接口不可以 D、一个类可以有多个基类和多个基接口

9、设置计时器时间间隔的属性是( ) C、Interval

10、设置控件Tab键顺序的属性是( )

B、TabIndex

11、要创建多文档应用程序,需要将窗体的( )属性设为true。 D、IsMdiContainer

12、下列关于构造函数的描述正确的是( ) C、构造函数必须与类名相同 13、在类的定义中,类的(

)描述了该类的对象的行为特征. C.方法

14、 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成( ) C.virtual

二、填空题(每空1分,共15分)

1、C#源程序文件的扩展名为( .cs) 2、在.NET中所有类的基类是(Object)

3、要编写和运行C#代码,用户必须安装(NET.Framwork)。 4、C#通过(区分大小写)避免变量名或类名的使用冲突。

5、if分支结构中,条件表达式的值必须是( bool)类型的数据。 6、类具有 ( 封装)、(继承)和(多态)三种基本特性。

7、接口使用关键字( interface)来定义,类使用关键字( class)来定义。 8、设置控件不可用、不可见的属性名分别是(enable)和(visable) 9、c#.net程序 三种工作模式分别是(设计模式)、(执行模式)和中断模式 10、(Main)方法是Windows应用程序的唯一入口点,而且只能有一个。 三、判断题(每题1分,共10分)

1.( T)在C#中,装箱操作是将值类型转化成引用类型。

2.( F)接口中的成员不可以有访问域修饰符,但可以有其它修饰符。(不可) 3.( T )重载通常是指在同一类中,包括多个名称相同但参数列表不同的方法 4.( T)在C#程序中,静态成员一般是通过类名来调用。

6.( F)变量名的命名方法通常有PascalCase和camelCase两种。

7.( T )常量是一种在使用过程中值不发生改变的特殊变量,即常量只能是在声明时赋值,之后就不能再赋值。

8.( F)C#.net程序中数组的下标最小值可以是0或1。

9.( F)判断单选框或复选框是否被选中的属性名是IsSelected。(checked) 一、选择填空题(每空2分,共60分)

1.在对SQL Server 数据库操作时应选用(a)。 a)SQL Server .NET Framework 数据提供程序; 4.以下描述错误的是(a,b)

a)在C++中支持抽象类而在C#中不支持抽象类。

b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 5.C#的数据类型有(b) b)值类型和引用类型; 6.下列描述错误的是(d)

a)类不可以多重继承而接口可以;

b)抽象类自身可以定义成员而接口不可以; c)抽象类和接口都不能被实例化;

d)一个类可以有多个基类和多个基接口; 7.在DOM中,装载一个XML文档的方法(b)

b)load方法

8.下列关于构造函数的描述正确的是(c) a)构造函数可以声明返回类型。 b)构造函数不可以用private修饰 c)构造函数必须与类名相同 d)构造函数不能带参数

9.以下是一些C#中的枚举型的定义,其中错误的用法有(c) a)public enum var1{ Mike = 100, Nike = 102, Jike } b)public enum var1{ Mike = 100, Nike, Jike } c)public enum var1{ Mike=-1 , Nike, Jike } d)public enum var1{ Mike , Nike , Jike }

10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(d)。 a)9 b)2 c)6 d)越界

11.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量。

a)方法、属性、索引器和事件;

12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(a )

a)HTML控件和Web控件

13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( b)

b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%> 14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(c)。

a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 c)Select操作的Sql语句只能由ExecuteReader()方法来执行; d)ExecuteReader()方法返回一个DataReder对象;

15.下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。

b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

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

18.如果将窗体的FormBoderStyle设置为None,则(a )。 a)窗体没有边框并不能调整大小;

19.如果要将窗体设置为透明的,则( b) b)要将Opacity属性设置为小于100%得值; 20.下列关于C#中索引器理解正确的是(c ) c)索引器没有名字

21.下面描述错误的是(c )。 a)窗体也是控件; b)窗体也是类;

c)控件是从窗体继承来的; d)窗体的父类是控件类;

22.要对注册表进行操作则必须包含( d)。 d)Microsoft.Win32命名空间;

23.要创建多文档应用程序,需要将窗体的(d )属性设为true。 d)IsMdiContainer;

24.如果设treeView1=new TreeView(),则treeView1.Nodes.Add(\根节点\返回的是一个 (a)类型的值。 a)TreeNode;

25.下面关于XML的描述错误的是(d)。 a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单、与平台无关并被广泛采用的标准; c)XML文档可承载各种信息; d)XML只是为了生成结构化文档;

26. 以下的C#代码,试图用来定义一个接口: public interface IFile {

int A;

int delFile() {

A = 3; }

void disFile(); }

关于以上的代码,以下描述错误的是(d )。

a)以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误; b)以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;

c)代码void disFile();声明无错误,接口可以没有返回值; d)代码void disFile();应该编写为void disFile(){};

27.在ASP.NET中有Button控件myButton,要是单击控件时,导航到其他页面http://www.abc.com, 正确的代码为(c )。

c)private void myButton_Click(object sender, System.EventArgs e){Reponse.Redirect(“http://www.abc.com”);} 28.XML文档既包含数据同时也可包含( b)。 b)架构;

29.在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( a)、利用Socket接收和发送数据。 a)建立Socket连接;

30.声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法

的原型应该是(b )。

b)int receive(int num) ; d)不确定的;

二、判断题,对的打√错的打×(每小题2分,共20分) 1.(√)在C#中,装箱操作是将值类型转化成引用类型。

2.(√)接口中的成员不可以有访问域修饰符,但可以有其它修饰符。 3.(√)在C#中,索引器是专门用来访问对象中的数组信息的。 4.(√)在C#中,接口可以被多重继承而类不能。

5.(√)在C#中,int[][]是定义一个int型的二维数组。 6.(√)异常类对象均为System.Exception的子类对象。

7.(√) 当窗体最小化后,再次还原成为活动窗体时将自动触发Paint事件。

8.(√) ASP.NET中,使用验证控件来验证用户输入,要求用户不可跳过该项输入,并且用户输入值在0和1000之间,则适用RequiredFieldValidator和RangeValidator控件。 9.(×) 声明委托实际上是声明了一个方法。 10.(√) 任何事物都是对象。

三、简述题(每小题10分,共20分)

1.面向对象的思想主要包括什么? 1 继承 多态 封装

3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

3 装箱和拆箱发生 值类型向引用类型转换,和引用类型向值类型转 重载:同一个函数参数不同 4.列举一下你所了解的XML技术及其应用

4.xml可以用来做网页(xslt) xml可以当作数据库 xml可以用来保存对象的系列化 5.值类型和引用类型的区别?写出C#的样例代码。

5值类型,没有什么好说的.引用类型用处是返回两个以上参数的时候比较好用 ref out 我常用的是out不要先赋值

6.ADO.net中常用的对象有哪些?分别描述一下。

6 ado.net 我直接用 sqlhelper了 有connection command 还有参数 7.如何理解委托?

7 回调机制比较有用的.在net中采用了委托. 8.C#中的接口和类有什么异同。

8 接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似

11.ASP.net的身份验证方式有哪些?分别是什么原理?

11 asp.net身份验证最常用还是以前的session方法. form验证没有用过. 微软的哪个也没有用过

12.进程和线程分别怎么理解?

12 进程简单理解为单个程序吧(按ctrl+alt+del)可以看到的.它至少有一个主线程 . 15..net中读写XML的类都归属于哪些命名空间? 15 system.xml (system.io创建目录的时候用)

18.如何部署一个ASP.net页面。

18 部置一个页面. 也就是说没有代码是直接写在aspx中的了.只接放在IIS的虚拟目录下就行

了.当然要asp.net支持

19.如何理解.net中的垃圾回收机制。

19 垃圾回收..一般的只要掌握.非托管对象要记得释放资源就行了吧. 20.常用的调用webservice方法有哪些?

20 直接在vs.net里面引用就OK了.它会自己生成一个代理类

1. 填空: (1)面向对象的语言具有___继承性、_封装___性、___多态性。

(2)能用foreach遍历访问的对象需要实现 IEnumerable接口或声明GetEnumerable 方法的类型。

(3)列举ADO.net中的五个主要对象Command、Connection、DataSet、DataSetCommand、DataReader。

2. 不定项选择:

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

B. 一个类可以实现多个接口。 C. 接口不能被实例化。

(2) 从数据库读取记录,你可能用到的方法有: B.ExecuteScalar

C. Fill D. xecuteReader

3. 简述 private、 protected、 public、 internal 修饰符的访问权限。 3. . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。

4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)

4. 解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

5 .列举ASP.NET 页面之间传递值的几种方式。

5. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer

6. 写出程序的输出结果 6. (考查值引用和对象引用) 10 21

0 str

string being converted. class Class1 {

private string str = \ private int i = 0;

static void StringConvert(string str) { str = \ }

static void StringConvert(Class1 c) { c.str = \ }

static void Add(int i) { i++; }

static void AddWithRef(ref int i) { i++; }

static void Main() { int i1 = 10; int i2 = 20; string str = \ Class1 c = new Class1(); Add(i1);

AddWithRef(ref i2); Add(c.i);

StringConvert(str); StringConvert(c); Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str); } }

7.写出程序的输出结果 7. A B A.Fun()

public abstract class A {

public A()

{

Console.WriteLine('A'); }

public virtual void Fun() {

Console.WriteLine(\ } }

public class B: A {

public B() {

Console.WriteLine('B'); }

public new void Fun() {

Console.WriteLine(\ }

public static void Main() {

A a = new B(); a.Fun(); } }

8. 写出程序的输出结果: 8. 2 5 1 6

public class A {

public virtual void Fun1(int i) {

Console.WriteLine(i); }

public void Fun2(A a) {

a.Fun1(1); Fun1(5); } }

public class B : A {

public override void Fun1(int i) {

base.Fun1 (i + 1); }

public static void Main() {

B b = new B(); A a = new A(); a.Fun2(b); b.Fun2(a); } }

9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......

求第30位数是多少, 用递归算法实现。(C#语言) 9.

public class MainClass {

public static void Main() {

Console.WriteLine(Foo(30)); }

public static int Foo(int i) {

if (i <= 0) return 0;

else if(i > 0 && i <= 2) return 1;

else return Foo(i -1) + Foo(i - 2); } }

评分标准: 写出return Foo(i -1) + Foo(i - 2); 得5分。

写出if(i > 0 && i <= 2) return 1; 得5分。

方法参数过多需要扣分(扣除分数 = 参数个数 - 1)

不用递归算法扣5分

(递归算法在树结构建立等方面比较常用)

10. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求: 1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。

10

要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象 评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分) <2>从Mouse和Master中提取抽象(5分)

<3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分)

public interface Observer {

void Response(); //观察者的响应,如是老鼠见到猫的反映 }

public interface Subject {

void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 }

public class Mouse : Observer {

private string name;

public Mouse(string name, Subject subj) {

this.name = name; subj.AimAt(this); }

public void Response()

{

Console.WriteLine(name + \ } }

public class Master : Observer {

public Master(Subject subj) {

subj.AimAt(this); }

public void Response() {

Console.WriteLine(\ } }

public class Cat : Subject {

private ArrayList observers; public Cat() {

this.observers = new ArrayList(); }

public void AimAt(Observer obs) {

this.observers.Add(obs); }

public void Cry() {

Console.WriteLine(\ foreach (Observer obs in this.observers) {

obs.Response(); } } }

class MainClass {

static void Main(string[] args) {

Cat cat = new Cat();

Mouse mouse1 = new Mouse(\ Mouse mouse2 = new Mouse(\

Master master = new Master(cat); cat.Cry(); } }

//---------------------------------------------------------------------------------------------

设计方法二: 使用event -- delegate设计.. public delegate void SubEventHandler(); public abstract class Subject {

public event SubEventHandler SubEvent; protected void FireAway() {

if (this.SubEvent != null) this.SubEvent(); } }

public class Cat : Subject {

public void Cry() {

Console.WriteLine(\ this.FireAway(); } }

public abstract class Observer {

public Observer(Subject sub) {

sub.SubEvent += new SubEventHandler(Response); }

public abstract void Response(); }

public class Mouse : Observer {

private string name;

public Mouse(string name, Subject sub) : base(sub) {

this.name = name; }

public override void Response()

{

Console.WriteLine(name + \ } }

public class Master : Observer {

public Master(Subject sub) : base(sub){} public override void Response() {

Console.WriteLine(\ } }

class Class1 {

static void Main(string[] args) {

Cat cat = new Cat();

Mouse mouse1 = new Mouse(\ Mouse mouse2 = new Mouse(\ Master master = new Master(cat); cat.Cry(); } } 问题:

1、进程和线程的区别

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

2、成员变量和成员函数前加static的作用

它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

3、malloc和new的区别

new是C++的关键字。malloc在分配内存时必须按给出的字节分配,new可以按照对象的大小自动分配,并且能调用构造函数。可以说new是对象的对象,而malloc不是。本质上new分配内存时,还会在实际内存块的前后加上附加信息,所以new所使用的内存大小比malloc多。

4、堆和栈的区别

栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。

堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。

栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。

栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而栈是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一。不同堆分配的内存无法互相操作。栈空间分静态分配和动态分配两种。静态分配是编译器完成的,比如自动变量(auto)的分配。动态分配由alloca函数完成。栈的动态分配无需释放(是自动的),也就没有释放函数。为可移植的程序起见,栈的动态分配操作是不被鼓励的!堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。

一.填空题

1.c#中的三元运算符是__?:___?

2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___?

3.类成员有_____种可访问形式? this.;new Class().Method;

4.public static const int A=1;这段代码有错误么?是什么? const不能用static修饰

5.float f=-123.567F;

int i=(int)f;

i的值现在是_____? 123

6.利用operator声明且仅声明了“==”,有什么错误么?

7.委托声明的关键字是______? delagete

8.用sealed修饰的类有什么特点?密封,不能继承

9.在Asp.net中所有的自定义用户控件都必须继承自________?Control

10.在.Net中所有可序列化的类都被标记为_____?

11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?gc

12.下面的代码中有什么错误吗?_______

using System;

class A {

public virtual void F(){

Console.WriteLine(\

} }

abstract class B:A {

public abstract override void F(); // new public abstract void F(); }

13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。

14.下面这段代码有错误么?

switch (i){

case():

CaseZero();

break;

case 1:

CaseOne();

break;

case 2:

dufault; //wrong

CaseTwo();

break; }

15.在.Net中,类System.Web.UI.Page 可以被继承么?可以

二.简答题

1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法

4.谈谈类和结构的区别?类是引用类型、结构是值类型

5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。

6.对于这样的一个枚举类型:

enum Color:byte{

Red,

Green,

Blue,

Orange }

string[] ss=Enum.GetNames(typeof(Color));

byte[] bb=Enum.GetValues(typeof(Color));

试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。

7.您了解设计模式么?请列出您所知道的设计模式的名称。 //

8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?

9.什么叫做SQL注入,如何防止?请举例说明。

10.下面这段代码输出什么?为什么?

int i=5;

int j=5;

if (Object.ReferenceEquals(i,j))

Console.WriteLine(\ else

Console.WriteLine(\

1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用 例 。

2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)

开发语言概念题

3.什么是反射?

4.用Singleton如何写设计模式

5.C#中的垃圾回收机制是怎样的?

6.什么是Application Pool?

7.链表和数组的区别,各有什么优缺点.

8.Remoting在客户端服务器怎么实现 ?

9.什么是友元函数?

10.用标准C如何实现多态?

11.什么是虚函数?

12.什么是抽象函数?

13.什么是内存泄漏,怎样最简单的方法判断被存泄漏 ? 英语题

14.用英文介绍一下使用C#/C++做的项目,主要功能

15.如果要与美国开电话会议,会如何与美国的工程师沟通

16.如果老板认为你的技术落后,你会怎么回答

数据库知识题

17.使用什么工具来调用存储过程

18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点?

19.触发器的作用

其它知识题及问题

20.什么是Web Service?

21.什么是XML?

22.Socket怎么实现?

《基于C#的windows程序设计》试题二

一、选择

1. C#中MyClass 为一自定义类,其中有以下方法定义

一、 选择题答案

public void Hello(){..}

使用以下语句创建了该类的对象,并使变量obj 引用该对象: MyClass obj = new MyClass();

那么,可如何访问类MyClass 的Hello 方法?( c ) A. obj.Hello(); B. obj::Hello(); C. MyClass.Hello(); D. MyClass::Hello();

2. 分析下列C#语句,注意类MyClass 没有访问修饰符: namespace ClassLibrary1 {

class MyClass {

public class subClass {

int i; } } }

若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择(d ) A. private 访问只限于包含该成员的类,私有的

B. protected 访问限于包含该成员的类及类的派生灯,保护的

C. internal 访问只限于所在的程序集,只有在同一个程序集中才能访问 D. public 访问不受限制,公共的还有一种是protected internal

3. C#可以采用下列哪些技术来进行对象内部数据的隐藏?(a ) A. 静态成员

B. 类成员的访问控制说明

C. 属性

D. 装箱(boxing)和拆箱(Unboxing)技术

4. 分析下列程序: public class class4 {

private string _sData = ““;

public string sData{set{_sData = value;}} }

在Main 函数中,在成功创建该类的对象obj 后,下列哪些语句是合法的?( d )

A. obj.sData = “It is funny!”; B. Console.WriteLine(obj.sData); C. obj._sData = 100; D. obj.set(obj.sData);

5. 分析下列程序中类MyClass 的定义 class BaseClass {

public int i; }

class MyClass:BaseClass {

public new int i; }

则下列语句在Console 上的输出为( b ) MyClass y = new MyClass(); BaseClass x = y; x.i = 100;

Console.WriteLine(“{0}, {1}”,x.i,y.i); (提示:注意类MyClass 中的new 关键字) A. 0, 0 B. 100, 100 C. 0, 100 D. 100, 0

6. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派 生类的需要,则应将该方法声明成( a ) A. sealed 方法 封闭类 B. public 方法 公共类 C. visual 方法 虚方法 D. override 方法 重载基类

7. 类MyClass 中有下列方法定义:

public void testParams(params int[] arr) {

Console.Write (“使用Params参数!”); }

public void testParams(int x,int y) {

Console.Write (“使用两个整型参数!”); }

请问上述方法重载有无二义性?若没有,则下列语句的输出为( d ) MyClass x = new MyClass(); x.testParams(0);

x.testParams(0,1); x.testParams(0,1,2); A. 有语义二义性;

B. 使用Params 参数!使用两个整型参数!使用Params 参数! C. 使用Params 参数!使用Params 参数!使用Params 参数! D. 使用Params 参数!使用两个整型参数!使用两个整型参数!

8. 使用下列哪种方法可以减小一个ArrayList 对象的容量?( a ) A. 调用Remove 方法 B. 调用Clear 方法

C. 调用Trim(调整,修剪)ToSize 方法 D. 设置Capacity 属性

9. C#程序中,可使用try..catch 机制来处理程序出现的( a )错误. A. 语法 B. 运行 C. 逻辑 D. 拼写

10. C#中,在方法MyFunc 内部的try..catch 语句中,如果在try 代码块中发生异常,并且在当前的所有catch 块中都没有找到合适的catch 块,则( C ) A. .NET 运行时忽略该异常

B. .NET 运行时马上强制退出该程序

C. .NET 运行时继续在MyFunc 的调用堆栈中查找提供该异常处理的过程 D. .NET 抛出一个新的”异常处理未找到”的异常

二、填空题

1、1、SOAP

使用XML消息调用远程方法,是Web服务最重要的协议。

2、2、XML

可以使Web服务方便的处理数据,实现内容与表示分离。

3、3、APPLICATION对象

被用来存储一个应用中所有用户共享的信息。

4、在Web页面中,表单的功能是收集用户信息和________。4、实现系统与用户交

5、在ASP.NET页面中,有一些事件是被服务器自动调用,如5、Page_Load()

________事件在页面被加载的时候被自动调用。

6、CSS(Cascading Style Sheets)中文翻译为 _____6、层叠样式表单___ , CSS是一种来装饰HTML的一种标记集合。

7、 7、Response对象 用来将信息发送回给浏览器。

8、 8、ValidationSummary控件 可以在一个位置集中显示来自 Web 页上所有验证程序的错误信息。

9、在ADO.NET中使用Connection对象的BeginTransaction()方法来申明事务开始,利用Transaction对象的__9、Commit()方法__来提交事务。

10、使用Command的 _10、ExecuteReader()方法_ 方法返回 DataReader 对象。

三、简答题

1、简述WEB应用的开发技术。

、主要有以下开发技术:

a.HTML(Hyper Text Markup Language)超文本标记语言 b.PHP(Personal Home Page Tools)技术 c.JSP(Java Server Pages)技术 d.ASP(Active Server Page)技术 e.ASP.NET技术

2、什么是代码分离形式?

代码分离(Code Behind)形式是asp.net为了提高代码阅读性采用的新技术,使asp.net页面源程序代码更清晰和便于阅读。他的实质是将页面显示视图(页面内容)的HTML标记和控制页面交互过程的程序代码分离。这样可以分别设计、分别调试和分别保存,其两者之间的关联是通过编译器指令Page实现的。

3、简述 HTML服务器控件。

对象化之后的HTML 标记我们称为HTML控件。我们可以使用如VB.NET 或C# 等语言来撰写控制HTML 控件的程序,ASP.NET 把HTML标记对象化,可以让页面对象的互动、程序的编写及维护变的更轻松容易,执行的效率提高。HTML控件虽然比HTML标记进步了不少,但它显然只是一个过渡产品,因为它一般只提供属性的读取和修改,不具备“方法调用”和“事件驱动”的能力,也就是说不具备完全的面向对象的特性。

4、ADO.NET访问数据库的步骤。

ASP.NET中通过ADO访问数据库,一般要通过以下步骤: 1) 创建一个数据库链路; 2) 请求一个记录集合;

3) 把记录集合暂存到DataSet;

4) 如果需要,返回第2步 (DataSet可以容纳多个数据集合);

5) 关闭数据库链路;

6) 在DataSet上完成所需要的操作。

5、编写一个函数,来生成一个随机整数,该整数位于用户在文本框中提供的两个整数之间。 〈% Page Language=”VB” Debug=”true”%>

Top