C#程序设计试题二及答案.docx

上传人:b****2 文档编号:18177594 上传时间:2023-08-13 格式:DOCX 页数:12 大小:18.97KB
下载 相关 举报
C#程序设计试题二及答案.docx_第1页
第1页 / 共12页
C#程序设计试题二及答案.docx_第2页
第2页 / 共12页
C#程序设计试题二及答案.docx_第3页
第3页 / 共12页
C#程序设计试题二及答案.docx_第4页
第4页 / 共12页
C#程序设计试题二及答案.docx_第5页
第5页 / 共12页
C#程序设计试题二及答案.docx_第6页
第6页 / 共12页
C#程序设计试题二及答案.docx_第7页
第7页 / 共12页
C#程序设计试题二及答案.docx_第8页
第8页 / 共12页
C#程序设计试题二及答案.docx_第9页
第9页 / 共12页
C#程序设计试题二及答案.docx_第10页
第10页 / 共12页
C#程序设计试题二及答案.docx_第11页
第11页 / 共12页
C#程序设计试题二及答案.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C#程序设计试题二及答案.docx

《C#程序设计试题二及答案.docx》由会员分享,可在线阅读,更多相关《C#程序设计试题二及答案.docx(12页珍藏版)》请在冰点文库上搜索。

C#程序设计试题二及答案.docx

C#程序设计试题二及答案

C#程序设计试题二及答案

  一、选择题(每小题2分,共40分)

  1.下面关于接口的说法正确的是()

  ⑴接口和类一样也不能进行多继承

  ⑵实现接口的类中不一定要定义所有接口中出现的条目

  ⑶派生类隐藏基类的实现,并不改变基类中的实现和接口的映射关系

  ⑷显示接口成员实现应该有类的实例来调用

  2.下列类的定义中哪些是合法的抽象类

  ⑴sealedabstractclassc1{abstractpublicvoidtest(){}

  ⑵abstractsealedpublicvoidtest()

  ⑶abstractclassc1{abstractvoidtest()}

  ⑷abstractclassc1{abstractpublicvoidtest()}

  3.在ADO.NET中,使用DataAdapter将数据源填充到DataSet,应使用下列哪个方法()。

  ⑴DataAdapter对象的Update方法⑵DataSet对象的Fill方法

  ⑶DataSet对象的Update方法⑷DataAdapter对象的Fill方法

  4.面向对象编程中的“继承”的概念是指()。

  ⑴对象之间通过消息进行交互

  ⑵派生自同一个基类的不同类的对象具有一些共同特征

  ⑶对象的内部细节被隐藏

  ⑷派生类对象可以不受限制地访问所有的基类对象

  5.在静态方法中可以直接访问()

  ⑴实例字段⑵实例方法

  ⑶静态字段⑷实例方法和静态方法

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

  ⑴sealed方法封闭类⑵public方法公共类

  ⑶virtual方法虚方法⑷override方法重载基类

  7.C#程序中,可使用trycatch机制来处理程序出现的()错误。

  ⑴语法⑵运行  ⑶逻辑⑷拼写

  8.下列()类型的对象是ADO.NET在非连接模式下处理数据内容的主要对象。

  ⑴Command⑵Connection

  ⑶DataAdapter⑷DataSet

  9.应用ADO.NET访问数据时,Connection对象的连接字符串中InitialCatalog子串的含义是()。

  ⑴Connection对象连接到的数据库的名称

  ⑵Connection对象的身份验证信息

  ⑶Connection对象的最大连接时间

  ⑷Connection对象使用的缓存大小

  10.Web表单中,按钮的默认事件是()。

  ⑴Click事件⑵Load事件

  ⑶Init事件⑷DbClick事件

  11.关于ASP.NET窗体应用程序,下列说法_______是正确的。

  ⑴Web窗体是在浏览器中进行解释执行的

  ⑵Web窗体程序中脚本和代码必须严格分开

  ⑶Web窗体程序产生的HTML页面只能运行于IE浏览器

  ⑷Web窗体程序的代码可以使用任何一种。

NET兼容的编程语言编写

  12.下面关于多态的说法正确的是()。

  ⑴虚方法可以被派生类中的方法重写

  ⑵方法重写可以重写静态方法

  ⑶抽象类也可以被实例化

  ⑷base关键字不能调用基类的构造方法

  13.在编写C#程序时,当需要对一个数组中的所有元素进行处理,则使用_____循环体最好。

  ⑴while循环⑵foreach循环

  ⑶do循环⑷for循环

  14.在Queue类中的Enqueue方法的作用是

  ⑴将队列末端元素出队列

  ⑵将队列前端元素出队列

  ⑶在队列前端压入新的元素

  ⑷在队列末端加入新的元素

  15.在哈希表中,对象所属的哈希桶的地址是由()决定的。

  ⑴为该对象设置的键值

(2)该对象所属的类

  ⑶该对象的物理存放地址(4)该对象插入哈希表之前,哈希表内的对象个数

  16.在ADO.NET中,表示程序到数据的连接的对象为

  ⑴Connection对象

  ⑵Conmand对象

  ⑶DataSet对象

  ⑷DataAdapter

  17.在ADO.NET中,执行数据库的某个存储过程,则少需要创建_____并设置它们的属性,调用合适的方法。

  ⑴一个Comman对象和一个DataAdapter对象

  ⑵一个Command对象和一个Datase对象

  ⑶一个Connection对象和一个DataSet对象

  ⑷一个Connetction对象和一个Command对象

  18.在System.Collection的名字空间中,下列_____类实现了一种数据结构,这种数据结构支持使用键值来索引结构中存放的对象

  ⑴ArrayList类⑵Stack类

  ⑶Hashtable类⑷Queue类

  19.在C#中设计类时,如何将一个可读可写的公有属性Name修改为只读属性

  ⑴将Name的set块删除

  ⑵将Name的set块置空

  ⑶将Name的set块前加修饰符private

  ⑷将Name添加readonly修饰符

  20.通过继承_____类,用户可以创建自己的异常类。

  ⑴System.Exception⑵System.SystemException

  ⑶System.ApplicationException⑷System.UserException

  二、简单应用题(总计4小题,共30分)

  1.写出下列程序的输出结果(6分)

  publicclassA

  {

  publicvirtualvoidFun()

  {

  Console.WriteLine(“A.Fun()”);

  }

  }

  publicclassB:

A

  {

  publicoverridevoidFun()

  {

  Console.WriteLine(“B.Fun()”);

  }

  }

  publicclassC:

B

  {

  newpublicvoidFun()

  {

  Console.WriteLine(“C.Fun()”);

  }

  }

  publicstaticvoidMain()

  {

  Aa=newB();

  a.Fun();

  a=newC();

  a.Fun();

  }

  2.有一个动态的程序集Teach.Management.WebLib.Course.DAO,该命名空间下有一个接口ICourse及实现该接口的CourseDAOClass类,请采用动态反射技术实现返回该程序集的元数据CourseDAOClass类对应的接口实例对象。

(10分)

  3.设计一个自定义异常类MyException.任意从键盘上输入一个人的年龄在0—120之间的数据,否则分别输出其异常信息,要求写一个控制台应用程序,采用Try-Catch-Finally异常处理机制实现上述功能。

(8分)

  4.实例化一个ArrayList类后,添加三个学生姓名到该实例中。

请完成下面的一个方法,对该实例进行排序,然后输出该实例的各个元素的值,代码结构如下:

(6分)

  publicstaticvoidPrintArrayListValues(IenumerablemyList)

  {

  …

  }//形参对象myList会引用一个实例化后的ArrayList类的对象。

  三、综合设计题(每小题15分,共30分)

  1.现有Light、Fan、Speak三个组件,分别有三个方法来描述它们的工作状态。

请设计一个Program类,在该类中创建一个委托链表成员,设计一个方法显示调用委托链表每个成员,采用动态构建一个字符串返回信息以描述三个组件的工作状态。

部分代码如下:

  publicclassLight//Light组件

  {

  publicstringSwitchPosition()

  {

  return“lightisoff”;

  }

  }

  publicclassFan//Fan组件

  {

  publicstringSpeed()

  {

  return“fanisoverheated”;

  }

  }

  publicclassSpeak//Speak组件

  {

  publicstringVolume()

  {

  return“soundisloud”;

  }

  }

  2.有如下两个接口:

  interfaceIStudent()

  {voidShow();

  stringGetName(stringid);

  }

  interfaceICourse()

  {

  voidShow();

  }

  请设计一个Student类,该类有id和name两字段成员,要求能实现上述接口,并能实现显示接口成员,并写出测试显式接口实现部分代码,调用IStudent接口Show()方法输出“InIStudent”信息;调用ICourse接口Show()方法输出“InICourse”信息

  

参考答案

  一、选择题(每小题2分,共40分)

  1-5(3)(4)(4)

(2)(3)6-10(3)

(2)(4)

(1)

(1)

  11-15(4)

(1)

(2)(4)

(1)16-20

(1)(4)(3)

(1)(3)

  二、简单应用题(总计4小题,共30分)

  1、(6分)

  B.Fun()

  B.Fun()

  2、(10分)

  Typetype=Type.GetType(“Teach.Management.WebLib.Course.DAO.CourseDAOClass”,true);

  ConstructorInfoconstructorInfo=type.GetConstructor(newType[0]);

  return(ICourse)constructorInfo.Invoke(newobject[0]);

  3、(8分)

  publicclassMyException:

ApplicationException

  {

  publicMyException():

base()

  {

  }

  publicMyException(stringstrMessage):

base(strMessage)

  {

  }

  publicMyException(stringstrMessage,Exceptioninner):

base(strMessage,inner)

  {

  }

  }

  intage=int.Parse(Console.ReadLine());

  try

  {

  if((age<=0))

  throw(newMyException(“年龄不能为负数!

”));

  elseif(age>120)

  throw(newMyException(“年龄不能大于120!

”,newOverflowException()));

  else

  Console.WriteLine(“数据正确”);

  }

  catch(MyExceptione)

  {

  Console.WriteLine(“{0},{1}”,e.Message,e.InnerException);

  }

  finally

  {

  Console.WriteLine(“注意输入正确的年龄数据!

”);

  Console.ReadLine();

  }

  4、(6分)

  myList.Sort();

  IEnumeratormyEnumerator=myList.GetEnumerator();

  While(myEnumerator.MoveNext())

  Console.Write(“\n{0}”,myEnumerator.Current);

  Console.WriteLine();

  三、综合设计题(每小题15分,共30分)

  1、(15分)

  publicclassProgram

  {

  publicdelegatestringGetStatus();

  GetStatusgetStatus=null;

  getStatus+=newGetStatus(newLight()。

Switchposition);

  getStatus+=newGetStatus(newFan()。

Speed);

  getStatus+=newGetStatus(newSpeak()。

Volume);

  Console.WriteLine(GetComponentStatusReport(getStatus));

  publicstaticstringGetComponentStatusReport(GetStatusstatus)

  {

  if(status==null)returnnull;

  StringBuilderreport=newStringBuilder();

  delegate[]arrayOfDelegates=status.GetInvocationList();

  foreach(GetStatusgetStatusinarrayOfDelegates)

  report.AppendFormat(“{0},{1},{1}”,getStatus(),EnVironment.NewLine);

  returnreport.ToString();

  }

  }

  2、(15分)

  publicclassStudent:

IStudent,ICourse

  {

  string_id;

  string_name;

  publicStudent(stringid,stringname)

  {

  id=id;

  _name=name

  }

  publicvoidShow()

  {

  Console.WriteLine(“helloworld”);

  }

  voidIStudent.Show()

  {

  Console.WriteLine(“InIStudnet”);

  }

  voidCourse.Show()

  {

  Console.WriteLine(“InICourse”);

  }

  publicstringGetName(stringid)

  {

  if(id==_id)

  return_name

  else

  returnnull;

  }

  }

  //测试代码

  Studentstudent=newStudent();

  ((IStudent)student)。

Show();

  ((ICourse)student)。

Show()

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2