当前位置:文档之家› C#程序设计语言期末考试题A有答案)

C#程序设计语言期末考试题A有答案)

………密………封………线………以………内………答………题………无………效……期末试题——C#程序设计语言(A卷)一.判断题(每题1分,共10分,正确的打√,错误的打×)( ) 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的圆周率常量,下面哪段代码是正确的?bA.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的最终值是什么?。

cA.6 B.1 C.0 D.true6.下列语句是MyClass的一部分,obj是MyClass的一个对象。

private class subclass{public int data;}void change(ref int x) { x=1;}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. 17.用户自定义的异常类应该从哪个类中继承(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(int x);则用该委托产生的回调方法的原型应该是:bA.void receive (int x)B.int receive(int num)C.int receive( )D.不确定的10.C#中TestClass为一自定义类,其中有以下属性定义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 Base………密………封………线………以………内………答………题………无………效……{public void Hello(){System.Console.WriteLine("Hello in Base!");//先基后派}}class Derived : Base{public void Hello(){System.Console.WriteLine("Hello in Derived!");}}则下列语句在控制台中的输出结果为__c___。

Derived x = new Derived();x.Hello();A. Hello in Base!B. Hello in Derived!C. Hello in Base!D. Hello in Derived!Hello in Derived! Hello in Base!12.下列关于接口的说法中,哪个选项是正确的?(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中,假设你正在单步调试某个应用程序。

程序从入口开始,调用某个私有方法将产生异常。

现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试? aA.使用逐语句调试B.使用逐过程调试C.跳出调试D.停止调试 Framework 2.0中,处理异常是很有用的功能。

一个try代码块可以有多个catch块于之对应。

在多个catch块中,下面哪个异常应该最后捕获?aA. System.Exception类B. System.SystemException类C. System.ApplicationException类D. System.StackOverflowException类19.在二维坐标系中,通常需要保存一组点的坐标。

使用二维数组是一个解决方案。

下面哪段代码正确初始化了2行2列的整数二维数组?aA. int[,] array = new int[2,2];B. int[][] array = new int[2][2];C. int[,] array = new int[2][2];D. int[][] array = new int[2,2];20.已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter。

现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段代码?dA. Season currentSeason = Spring;B. currentSeason = Spring;C. currentSeason = Season.Spring;D. Season currentSeason = Season.Spring;三.简答题(每题5分,共10分)1.类与对象有什么区别?答:类是用来描述某种具有相同属性和行为的事物,对象是类的一种具体表现。

2.什么叫多态性,在C#语言中如何实现多态?答:多态性是指一段程序能够处理多种类型对象的能力。

………密………封………线………以………内………答………题………无………效……四.综合题(共40分)1.下面这段程序要完成的功能是:从输入的字符串中找出小写字母并输出到终端。

请检查下列代码,找出所有错误的代码,并写出该行完整的正确代码。

(4分)1.using System;2.public class Program3.{4.static void Main(string [] args)5.{6.string inputString=Console.ReadLine();7.string lowerCase=string.Empty;8.foreach (char ch in inputString)9.if (ch>='a'||ch<='z')10.lowerCase+=ch.ToString;11.Console.WriteLine("小写字母有:"+lowerCase);12.}13.}更正以下两句:9. if (ch>='a'&&ch<='z')10. lowerCase+=ch.ToString();2.下述代码用于重写Message方法。

请分析下述代码,并更正错误代码行。

(4分)1. interface IMsg2. {3. void Message();4. }5. public class MyClass : IMsg6. {7. public virtual void Message()8. {9. Console.WriteLine("MyClass");10. }11. }12. public class MyDerivedClass : MyClass13. {14. public void Message()15. {16. Console.WriteLine("MyDerivedClass");17. }18. }第14行:更正为:public override void Message()3.下面代码功能是对数组进行遍历,请分析下列代码段并在空白行补全C#代码。

相关主题