当前位置:文档之家› C#模拟试卷

C#模拟试卷

C#模拟试卷一、选择题:(本大题共40个小题。

1~30题,每小题1分;31~40题,每小题2分;共30分。

在每小题给出的四个选项中,只有一项符合题目要求, 把所选项前的字母填在括号内。

)1、以下哪些功能不属于C#2.0新增的特性(A)。

A.继承和多态 B.泛型C.可空类型 D.遍历器2、C#中声明一个命名空间的关键字是(A)。

A.namespace B.nameplace C.this D.as3、C#的数据类型有数值类型和( D)类型两种。

A.结构类型 B.关系类型C.调用类型 D.引用类型4、以下类型中,不属于值类型的是(D )A.整数类型 B.布尔类型C.字符类型 D.类类型5、C#系统类型System.Int64对应以下(C)数据类型。

A.char B.intC.long D.short6、声明一个常量所用的关键字是(D )。

A.new B.boolC.is D.const7、以下叙述正确的是(c)。

A. 一条表达式中可以同时出现浮点数类型和decimal类型B. 类可以继承,并且可以多重继承C. int[,] b=new int[4,5] //创建了一个二维数组,第一维长为4,第二维长为5D. int x=23; object o=x; int y=(int) o; //实现了一次装箱操作8、以下有关结构类型和枚举类型的叙述错误的是(B)。

A. 结构类型和枚举类型都是复合类型B. 结构类型只能是简单值类型的组合C. 枚举类型要求成员只能是整数类型D. 枚举类型的变量在某一时刻只体现其中的一项内容9、一个初始化语句:enum monthes{January,February=3,March=5,April=7,May,June},则此时May的值为(C)。

A.4 B.5 C.8 D.910、下面是几条定义初始化二维数组的语句,指出其中正确的是(D)。

A.int array2[ ][ ]=new int[3,2];B.int array2[,]=new int[3,2];C.int[ ][ ] array2=new int[3,2];D.int[, ] array2=new int[3,2];11、接口和类最主要的区别在于(D )。

A.类可以重载而接口不可以 B.类不可以重载而接口可以C.类可以多重重载而接口不可以 D.类不可以多重重载而接口可以12、下面是事件的创建过程,正确的排序是(B)。

a.创建一个类,用于传递参数给事件处理程序。

b.创建事件发生时所执行的处理程序。

c.声明事件对应的代码。

d.事件发生。

e.创建事件代表。

A.ecabd B.eacbdC.acebd D.aebcd13、关于静态域成员与非静态域成员,以下说法正确的是(C)。

A. 一个类的所有对象共享非静态域成员B. 一个类的一个对象分别拥有不同的非静态域成员的实例C. 静态域成员都能在不生成实例的情况下直接被使用D. 非静态域成员都能在不生成实例的情况下直接被使用14、常用(A)关键字来创建对象并调用构造函数。

A.new B.as C.is D.typeof15、x的初值为24,则表达式x+=x--+=x%=17运算的结果值为(D)。

A. 28 B.27 C.26 D.错误的表达式16、C#程序的基本构架包括(D )。

A.分支结构,直序结构,逆序结构B.分支结构,顺序结构,while结构C. 选择结构,直序结构,循环结构D.选择结构,顺序结构,循环结构17、如果不带修饰符,C#中类成员被默认声明成(C )。

A.public B.protected C.private D.static18、关于重载,以下叙述错误的是(D)。

A. 重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法B. 方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区别它们C. 重载构造函数主要是为了在创建对象的同时进行赋值D. 方法的重载允许两个方法的名称和参数列表相同,而返回类型不同19、下面说法错误的是(A )。

A.任何运算符都可以进行重载 B.可以重载<<运算符C.可以重载赋值运算符= D.可以重载方法,构造函数20、下面有关C#中方法的参数描述正确的是(B )。

A. 利用值类型参数调用方法时,对形参的修改会反映到实参上去B. 输出型参数的实参在传递给形参前,不需要明确赋值C. 引用型参数不另外开辟新的内存区域,这一点是它与输出型参数的不同之处D. 数组型参数可以是任何类型的数组21、下面关于C#中类的构造函数描述正确的是(D )。

A. 为了增强类的封装性,构造函数一般被声明成private型B. 构造函数如同方法一样,需要认为调用才能执行其功能C. 与方法不同的是,构造函数只有void这一种返回类型D. 在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数22、下面是一个派生类的定义语句:public class car: vehicle{private string model=”L”;private int wheelNo=4;}请指出针对该定义的正确的说法(C )。

A. vehicle类是car类的一个特例,因而它可以被继承B. car类是父类,vehicle类是子类C. 在car类中定义的成员model和wheelNo会删除vehicle类中同名的成员D. car类是vehicle类的一个特例,它可以继承vehicle类中除构造函数和析构函数以外的所有成员23、(D )关键字可以用来访问当前对象的基类对象。

A.object B.this C.as D.base24、下面有关虚方法的描述正确的是(A)。

A. 虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B. 在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C. 重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D. 在重写虚方法时,需要同时带上override和virtual修饰符25、下面关于密封类和密封方法的说法正确的是( B )。

A. 密封类是抽象类的一种特例,唯一的区别是:定义密封类时要使用sealed修饰符B. 密封类不允许被继承,因而不能由密封类派生岀其他类C. 如同抽象方法只能定义在抽象类中一样,密封方法也只能定义在密封类中D. 由于密封方法也被视作一种虚方法,因而在定义密封方法时必须带上virtual修饰符26、重载是(B )的形式之一。

A.接口B.多态C.继承D.类27、异常类对象都是(C )类对象。

A.System.Reflecion B.System.constC.System.exception D.system.attribute28、异常可以被try定义的模块所捕捉,而被相应的(B)定义的模块所控制和处理。

A.try B.catch C.throw D.finally29、如果要想打开一个日志文件乡其中追加记录,并且要求保存文件原有的内容,而且当文件不存在时可以创建新文件。

请问可以使用下面哪些打开方式来打开文件?AA.FileMode.Append B.FileMode.CreatC.FileMode.CreatNew D.FileMode.Open30、如果要想写二进制文件,请问需要使用下面的哪些类?BA.StreamReader B.BinaryWriterC.StreamWriter D.BinaryReader二、填空题:(本大题共10个小题,每小题2分,共20分,把答案填写在题中横线上)1、关键字 class 表示一个类的定义。

2、 Random.Next 方法用来产生随机数。

3、属性的 set 存取程序用来给类的private实例变量赋值。

4、索引函数能够以数组的方式来控制对多个变量的读写访问。

5、被调用的方法中的 return 语句可以用来向调用方法传递表达式的值。

6、C#提供循环结构来遍历数据结构,比如数组中的值。

7、类型判断表达式e is T,如果e的类型就是T,或存在从e的类型到类型T的隐式引用转换,则表达式返回值为。

8、Console.WriteLine(“Micrisoft”.PadRight(18,’*’))的结果是。

9、泛型的主要思想是将算法和完全分离开来,从而实现高度可重用的开发。

10、是指跳过方法的定义,而将方法的执行代码直接封装在一个代表对象中。

三、程序修改题:(本大题共3个小题,1~2每小题5分,第3题10分,共20分)1、分析下面的程序,试找出并改正其中的错误。

using System;namespace 程序修改题_1{class Program{static void Main(string[] args){int[ ] iArray=new int[ ] {5,6,7};Color[ ] cArray=(Color[])iArray;Console.WriteLine("{0} {1} {2}",cArray[0],cArray[1],cArray[2]);}}enum Color{赤,橙,黄,绿,蓝,靛,紫};}改正:2、找出下列代码中的错误并进行修改。

public abstract class A{private int m_y;public virtual int X{get{ return 0;}}public virtual int Y{get{return m_y;}set{m_y=value;}}public abstract int Z{get;set;}}public class B:A{private int m_z;public override int X{get{return base.X+1;}}public override int Y{set{base.m_y=value<0?0:value;}}public override int Z{get{return m_z;}}}改正:(1)(2)3、分析下面的程序,试找出并改正其中的错误。

using System;namespace 程序修改题_3{class Program{static void Main(string[] args){NewDict newdict=new NewDict();Dict dict=new Dict();IDict idict=new IDict();idict=newdict;dict=newdict;dict.LoadLibrary("Hello!");idict.LoadLibrary("Hello!");dict.RestoreLibrary("Hello!");idict.RestoreLibrary("Hello!");dict.InsertWord("Hello!");idict.InsertWord("Hello!");dict.LookupWord("Hello!","Hi!");idict.LookupWord("Hello!","Hi!");dict.DeleteWord("Hello!");idict.DeleteWord("Hello!");}public interface IDict{void LoadLibrary(string filename);void FreeLibrary(string filename);void RestoreLibrary(string filename);bool InsertWord(string word);bool LookupWord(string word, out string resultword);void DeleteWord(string word);}public abstract class Dict{public abstract void LoadLibrary(string filename);public void FreeLibrary(string filename) { }public virtual bool InsertWord(string word){return true;}public string LookupWord(string word){ return "Not Found";}public virtual void DeleteWord(string word) { }}public class NewDict : Dict, IDict{public override void LoadLibrary(string filename) { }void IDict.LoadLibrary(string filename) { }public void RestoreLibrary(string filename) { }public override bool InsertWord(string word){return true;}public bool LookupWord(string word,out string resultword){resultword="Not Found";return true;}public new void DeleteWord(string word) { }}}改正:(1)(2)(3)(4)(5)四、程序阅读题:(本大题共5个小题,每小题6分,共30分)1、写岀下面程序的运行结果。

相关主题