期末试题——C#程序设计语言(A 卷)一•判断题(每题1分,共10分,正确的打V,错误的打X)( )4•派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。
( )5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。
( )6 •隐式类型转换就是不需要声明目标类型就可以进行的转换?( )7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。
( )8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override。
()9. C#中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。
( )10.在类中可以重载构造函数,C #会根据参数匹配原则来选择执行合适的构造函数。
( )1 +、-、*、/、% ++、--均属于二兀运算符。
( )2 .字符串类型属性引用类型。
( )3. Visual Studio 控件的属性窗口中,按钮“ A->Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。
.单项选择题(每题2分,共40分)(1. C#程序设计语言属于什么类型的编程语言: aA .高级语言B .自然语言C .机器语言D .汇编语言2. 如有int a=11;则表达式(a++*1/3 )的值是:bA. 0 B . 3 C . 4 D . 123. 类的字段和方法的默认访问修饰符是:bA. public B . private C . protected D . internal4. 对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。
如圆周率PI始终为3.14。
现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的? bD . true obj 是 MyClass 的一个对象。
x=1;}A.const float PI;PI = 3.14f;B.const float PI = 3.14f;C.float const PI;PI = 3.14f;D.float const PI = 3.14f;5. 请问经过表达式 a=3+3>5?0:1 的运算,变量 a 的最终值是什么?。
c A . 6B . 1C . 0 6.下列语句是 MyClass 的一部分, private class subclass{public int data;}void change(ref int x) { public void test(){subClass s=new subClass(); s.data=100; change(ref s.data); Console.WriteLine(s.data);}则调用 obj.test() 后。
控制台输出( d )。
A. 100B. 101C. 0D. 1 7.用户自定义的异常类应该从哪个类中继承(d)A. System.ArgumentExceptionB. System.IO.IOExceptionC. System.SystemExceptionD. System.ApplicationException8.下面有关虚方法的描述正确的是( a )。
A. 虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B. 在定义虚方法时,基类和派生类的方法定义语句中都要带上 virtual 修饰符C. 重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上 new 修饰符D. 在重写虚方法时,需要同时带上override 和 virtual 修饰符 9.下列语句声明了一个委托 :public delegate int myCallBack(intx); 则用该委托产生的回调方法的原型应该是 :bA.void receive (int x)B.int receive(int num)C.int receive( )D. 不确定的10. C#中Testciass 为一自定义类,其中有以下属性定义public void Property{ …} 使用以下语句创建了该类的对象,并使变量 obj 引用该对象: TestClass obj=new TestClass(); 那么,可通过什么方式访问类 TestClass 的 Property 属性 (c) A. TestClass.Progerty; B. TestClass. Property(); C. obj. Property; D. obj. Property(); 11. 已知类 Base 、 MyClass 的定义如下class Basepublic void Hello() {!");// 先基后派System.Console.WriteLine("Hello in Base} class Derived : Base{public void Hello(){System.Console.WriteLine("Hello in Derived ! ");}}则下列语句在控制台中的输出结果为 __cDerived x = new Derived();x.Hello();A. Hello in Base !B. Hello in DerivedC. Hello in Base !D. Hello in DerivedHello in Derived !Hello in Base12. 下列关于接口的说法中,哪个选项是正确的?(d)A. 一个类可以有多个基类和多个基接口B. 抽象类和接口都不能被实例化C. 抽象类和接口都可以对成员方法进行实现D. 派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法13. 下列关于构造函数的描述中,哪个选项是正确的?(a)A. 构造函数必须与类名相同B. 构造函数不可以用 private 修饰C. 构造函数不能带参数D. 构造函数可以声明返回类型14. 引用数组元素时 , 数组下标的数据类型可以允许哪项类型?(c)A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式15. 以下类 MyClass 的属性 count 属于__c___属性。
class MyClass{int i;int count{get{ return i; }}}A. 只读B. 只写C. 可读写D. 不可读不可写16. 要让用户选择和浏览要打开的文件,应使用什么对话框?(b)A. FileDialogB. OpenFileDialoC. SaveFileDialoD. FolderBrowserDialog17. 在 Visual Studio 2005 中,假设你正在单步调试某个应用程序。
程序从入口开始,调用某个私有方法将产生异常。
现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试? a9冲10 11 12 13:- 14诽"调用此方法会产生异常0oSomathin^ 0 : privatestatic void BoSomEthing 0A.使用逐语句调试 C.跳出调试使用逐过程调试 停止调试中,处理异常是很有用的功能。
一个 try 代码块可以有多个catch 块于 a D.B. 18. .NET Framework 2.0 之对应。
在多个catch 块中,下面哪个异常应该最后捕获? A. System.Excepti on 类 B. System.SystemExcepti on 类C. System.Applicati on Excepti on 类D. System.StackOverflowExcepti on类19. 在二维坐标系中,通常需要保存一组点的坐标。
使用二维数组是一个解决方案。
下面哪段代码正确初始化了 2行2列的整数二维数组? aA. in t[,] array = new in t[2,2]; C. in t[,] array = new in t[2][2];20. 已经定义了一个 Season 枚举, 定义一个名为 curre ntSeas ondB. i nt[][] array = new in t[2][2];D. i nt[][] array = new in t[2,2];它有 4 个成员 Spring , Summe , Autumn, Winter 。
现在需要 的Season 枚举,并将其赋值为Spring ,应使用下面哪段代码?A. Seas on curre ntSeas on = Spring;B. curre ntSeas on = Spring;C. curre ntSeas on = Seas on. Spri ng; D . Seas on curre ntSeas on = Seas on. Spri ng三•简答题(每题5分,共10分)1.类与对象有什么区别?答:类是用来描述某种具有相同属性和行为的事物,对象是类的一种具体表现。
2.什么叫多态性,在C#语言中如何实现多态?答:多态性是指一段程序能够处理多种类型对象的能力。
四•综合题(共40分)1.下面这段程序要完成的功能是:从输入的字符串中找出小写字母并输出到终端。
请检查下列 代码,找出所有错误的代码,并写出该行完整的正确代码。
(4分)1. using System;2. public class Program3.{rsvzpscw C oriole Appli c Ati GTL Z BN {el^ss Frogran4. static void Main( stri ng [] args)using System. Ccllsctions. Generi c :2 3:L using System. Text;(4分)5. {6. stri ng in putStri ng=C on sole.ReadL in e();7. stri ng lowerCase=stri ng.Empty;8. foreach (char ch in in putStri ng)9. if (ch>='a'||ch<='z')10. lowerCase+=ch.ToStri ng;11. Console.WriteLine (” 小写字母有:"+lowerCase); 12. } 13. }更正以下两句:9. if (ch>='a'&&ch<='z') 10. lowerCase+=ch.ToStri ng();2. 下述代码用于重写 Message 方法。