第1页共7页诚信应考考出水平考出风格2007—2008学年第1学期期末考试试卷《C#程序设计》开课单位:;考试形式:闭卷;考试时间:2008年1月8日;所需时间:120分钟题序一二三四五六七八总分得分评卷人注意:请将答案写到试题后的答题纸上,写在试题上一律不给分!一.判断题(本大题共8题,每题2分,共16分。)1.C#中类不可以多重继承而接口可以。2.ASP.NET应用程序项目中所有Web窗体页的代码文件运行时都被编译成.EXE文件。3.XML是一种简单、与平台无关并被广泛采用的标准。4..NET编译器将源程序编译出的.EXE文件是CPU能直接执行的机器代码。5.ASP.NET中,使用验证控件来验证用户输入,要求用户必须输入该项,则适用RequiredFieldValidator控件。6.C#中扩充类继承了基类所有的元素,包括构造函数与析构函数。7.ADO.NET中DataSet是不依赖于数据库的独立数据集,即使数据连接断开,DataSet依然是可用的。8.C#中可以使用const关键字定义一个常量,定义时必须进行初始化。二.选择题(本大题共10题,每题2分,共20分。)1.下列选项中,()是引用类型。A.enum类型B.struct类型C.string类型D.int类型2.C#的数据类型有()得分得分年级:_____________专业:_____________________班级:_________________学号:_______________姓名:__________________…………………………………………………………..装………………….订…………………..线………………………………………………………第2页共7页A.值类型和调用类型;B.值类型和引用类型;C.引用类型和关系类型;D.关系类型和调用类型;3.下列关于构造函数的描述正确的是()A.构造函数可以声明返回类型。B.构造函数不可以用private修饰C.构造函数必须与类名相同D.构造函数不能带参数4.有如下数组定义:int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};则myArray3[2][2]的值是()。A.9B.2C.6D.越界5.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为()A.%@RegisterTagPrefix=“Mike”TagName=“Space2”Src=“myX.ascx”%B.%@RegisterTagPrefix=“Space2”TagName=“Mike”Src=“myX.ascx”%C.%@RegisterTagPrefix=“SpaceX”TagName=“Space2”Src=“Mike”%D.以上皆非6.下列ASP.NET语句()正确地创建了一个与SQLServer2000数据库的连接。A.SqlConnectioncon1=newConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);B.SqlConnectioncon1=newSqlConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);C.SqlConnectioncon1=newSqlConnection(DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB.;D.SqlConnectioncon1=newOleDbConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);7.在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、()、利用Socket接收和发送数据。A.建立Socket连接;B.获得端口号;C.获得IP地址;D.获得主机名;第3页共7页8.我们定义类成员时,如果希望类成员只能被派生类访问,而对外界是隐藏的,则可使用()访问修饰符声明。A.publicB.privateC.protectedD.internal9.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是()A.HTML服务器控件和Web控件B.HTML服务器控件和XML控件C.XML控件和Web控件D.HTML服务器控件和IIS控件10.ASP.NET应用程序在Global.asax文件中有一些特定的事件,其中()事件在每个客户端首次请求页面时触发。A.Application_StartB.Session_BeginRequestC.Session_StartD.Session_End三.填空题(本大题共13空,每空2分,共26分。)1.当整数a赋值给一个object对象时,整数a将会被______________。2.在.Net托管代码中我们不用担心内存漏洞,这是因为有了___________。3.C#中所有类的基类为________________。4.C#中使用Command对象执行数据库操作一般需要3个步骤,1.建立数据库连接,使用Connection对象的方法;2.执行数据库操作,执行select语句可使用_____________方法或ExecuteScalar()方法,执行delete、insert等SQL语句可使用______________方法;3.关闭数据库连接,使用Connection对象的______________方法。5.在.NET的___________命名空间中提供了用于进行文件和流读写操作的类,如File类和____________类。6.C#中常见的异常处理是try……__________……finally结构。7.C#类中的属性不能直接进行访问,必须通过访问器(accessors)进行,具有______访问器的属性的值可以进行设置,具有________访问器的属性的值可以读出。8.在派生类中若要访问基类成员可使用_________关键字。四.程序阅读题(本大题共3题,共14分。)得分得分第4页共7页(1)写出以下程序的运行结果:(4分)classP{publicstaticvoidM(outinta,outintb){a=5;b=6;}staticvoidMain(){intx,y;M(outx,outy);Console.WriteLine(x={0},y={1},x,y);}}(2)写出以下程序的运行结果:(4分)classA{publicvoidF(){Console.WriteLine(使用AF);}publicvirtualvoidV(){Console.WriteLine(使用AV);}}classB:A{newpublicvoidF(){Console.WriteLine(“使用BF);}publicoverridevoidV(){Console.WriteLine(“使用BV);}}classTest{staticvoidMain(){Bb=newB();Aa=b;a.F();b.F();a.V();b.V();}}(3)某Windows应用程序中有如下代码段:stringid=this.textBoxId.Text.Trim();stringsex=this.comboBox1.SelectedItem.ToString();第5页共7页stringsqlstr=insertintotest(学号,姓名,性别,年龄)values('+id+this.textBoxName.Text.Trim()+','+sex+',+age+);ExecuteSql(sqlstr);请根据这段代码回答:(6分)①这段代码涉及到哪几个控件,分别可能是什么类型的控件。②描述这段代码的功能。五.简答题(本大题共5题,共24分。)1.简述如何在Windows应用程序中使用第三方控件(以***.DLL文件方式提供)。(4分)2.简述你所理解的WebService的特点和应用范围,说出一种WebService使用的标准协议。(4分)WebService就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。WebService所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以WebService可以在任何支持这些标准的环境(Windows,Linux)中使用。注:SOAP协议(SimpleObjectAccessProtocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。优势:(1).跨平台。(2).SOAP协议是基于XML和HTTP这些业界的标准的,得到了所有的重要公司的支持。(3).由于使用了SOAP,数据是以ASCII文本的方式而非二进制传输,调试很方便;并且由于这样,它的数据容易通过防火墙,不需要防火墙为了程序而单独开一个“漏洞”。(4).此外,WebService实现的技术难度要比CORBA和DCOM小得多。(5).要实现B2B集成,EDI比较完善与比较复杂;而用WebService则可以低成本的实现,小公司也可以用上。(6).在C/S的程序中,WebService可以实现网页无整体刷新的与服务器打交道并取数。得分第6页共7页缺点:(1).WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。(2).WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。3.列举在ASP.net中常用的几种页面间传递参数的方法,分析它们的优缺点。(6分)session(viewstate)简单,但易丢失application全局cookie简单,但可能不支持,可能被伪造inputttype=hidden简单,可能被伪造url参数简单,显示于地址栏,长度有限数据库稳定,安全,但性能相对弱4.简述如何使用DataSet和DataAdapter对数据库进行查询和修改。(5分)4、DataReader和DataSet的异同DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比第7页共7页DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作5.分析C#中如何实现编译时的多态性和运行时的多态性。(5分)C#里支持两种类型的多态性,包括运行时的多态性和编译时的多态性.编译时的多态性是通过重载来实现的,包括方法重载和操作符重载;然后对于非虚的成员,系统在编译时是根据传递的参数类型与个数等信息来决定实现什么操作.运行时的多态性就是指直到系统运行时才根据实际情况决定实现何种操作,实际表现为虚成员virtual与接口interface.编译