C#程序设计试题二及答案
一、选择题(每小题2分,共40分) 1.下面关于接口的说法正确的是( ) ⑴ 接口和类一样也不能进行多继承
⑴ 实现接口的类中不一定要定义所有接口中出现的条目
⑴ 派生类隐藏基类的实现,并不改变基类中的实现和接口的映射关系 ⑴ 显示接口成员实现应该有类的实例来调用 2.下列类的定义中哪些是合法的抽象类
⑴ sealed abstract class c1{ abstract public void test() {} ⑴ abstract sealed public void test() ⑴ abstract class c1{ abstract void test()} ⑴ abstract class c1{ abstract public void test()}
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 对象的连接字符串中Initial Catalog 子串的含义是( )。
⑴ 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循环 ⑴ for each循环
⑴ 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分) public class A {
public virtual void Fun() {
Console.WriteLine(“A.Fun()”); } }
public class B:A {
public override void Fun() {
Console.WriteLine(“B.Fun()”); } }
public class C:B {
new public void Fun() {
Console.WriteLine(“C.Fun()”); } }
public static void Main() {
A a=new B(); a.Fun(); a=new C(); a.Fun(); }
2.有一个动态的程序集Teach.Management.WebLib.Course.DAO,该命名空间下有一个接口ICourse及实现该接口的CourseDAOClass类,请采用动态反射技术实现返回该程序集的元数据CourseDAOClass类对应的接口实例对象。(10分) 3.设计一个自定义异常类MyException.任意从键盘上输入一个人的年龄在0—120之间的数据,否则分别输出其异常信息,要求写一个控制台应用程序,采用Try-Catch-Finally异常处理机制实现上述功能。(8分)
4.实例化一个ArrayList类后,添加三个学生姓名到该实例中。请完成下面的一个方法,对该实例进行排序,然后输出该实例的各个元素的值,代码结构如下:(6分)
public static void PrintArrayListValues(Ienumerable myList) { …
}//形参对象myList会引用一个实例化后的ArrayList类的对象。 三、综合设计题(每小题15分,共30分)
1. 现有Light、Fan、Speak三个组件,分别有三个方法来描述它们的工作状态。请设计一个Program类,在该类中创建一个委托链表成员,设计一个方法显示调用委托链表每个成员,采用动态构建一个字符串返回信息以描述三个组件的工作状态。部分代码如下:
public class Light //Light组件 {
public string SwitchPosition() {
return “light is off”; } }
相关推荐: