Go to my github

C#试题

1.   关于C# 中的结构,一下说法中错误的是()。(选择一项)

A :结构可以有构造函数               B :结构体内可以有字段

C :结构体内可以有方法               D :结构体内可以被继承

2. 在C# 编程中,访问修饰符控制程序对类中成员的访问,如果不写访问修饰符,类的默认访问类型是(b)。

A  public     B private     C internal         D protected

3.在C#中,下面关于结构使用正确的是()。(选择一项)

A :class Person{} Struct Teacher : Person{//…}

B :struct Person{} Struct Teacher:Person{//….}

C :struct Teacher{string name;int age;

public Teacher(string name,int age){this.name=name;this.age=age;}}

D :struct Teacher{string name;int age;public Teacher(){}}

4.在C#中类的实例需要使用的关键字是(C)(选择一项)

A : this      B: base       C new         D : as

5.索引器允许按照自定义的访问方式访问类或结构的实体组成的数组,以下所引器定义正确的是(A)。

A :public Teach this[string index]{get {//..}}

B :public Teach this[index]{get{//..}}

C :publci string Teach[index]{get{//..}}

D :public Teach[index]{get{//…}}

6 . 在C# 代码中,(A)是类Teacher 的属性。(选择一项)

Public class Teacher{Int age=13;Private string Name{get{return name;}set{name=value;}}

Public void SaySomething(){//…}   }

A : Name B name        C age         D  SaySomething

7.在C# 语言中方法重载的主要方式有两种,包括(D)和参数类型不同的重载。(选择一项)

A: 参数名称不同的重载 B : 返回类型不同的重载C: 方法名不同的重载 D :参数个数不同的参数

8.在一下C# 代码的下划线处填入(),该C#语句表示打开一个文件,如果该文件不存在则发生异常。

FileStream fs=new FileStream(“D:\\music.txt”,______________);

A :FileMode.Create  B :FileMode.Open  C :FileMode.Close   D:FileMode.CreateNew

9.分析一下C#代码,根据面向对象的多态行,代码的运行结果是()(选择一项)

class A{public void F(){Console.Write(“A”); }

Public void F(string chr){Console .Write(“B”);}}

class B:A{Public void F(){Console.write(“B”);} Static void Main(){B objB=new B();objB.F();} }

A : A        B : B         C : C                  D : D

10 .在C#中下面关于接口正确的是()(选择一项)

A :public interface IStudentService{public string addStudent()}

B   public interface IStudentService{string addStudent(){//…..}}

C :public class Student(){} public interface IStudentService:Student{string addStudent()}

D :public interface IStudentService{ string addStudent()}

11.在C# 中,可以避免使用枚举变量来避免不合理的赋值,一下枚举定义中正确的是()(选择一项)

A : public enum Sex{male,femal}

B :public enum Sex{male,femal;}

C :public Sex enum {male,femal;}

C :public Sex enum {male,femal}

12.在C# 中提供了一种集合类型的哈希表(HashTable),哈希表的数据是通过键(key)和()来组织的

A : 项(Item)        B :记录(Record)     C :表(table)    D :值(Value)

13.在C# 中,使用()访问修饰符修饰的方法被称之为抽象方法。

A: this              B :abstract             C :new              D :virtual

14.在C# 中创造一个对象是,系统最先执行的是()中的语句。

A :main方法      B:构造方法        C :初始化函数       D :字符串函数

15.在C#中,关于List<T>和Dictionary<K,V>的说法,正确的是()(选择二项)

A :List<T>和Dictionary<K,V>都有RemoveAt方法

B :List<T>和Dictionary<K,V>都有Count属性

C :获取元素时,List<T>需求类型转换,Dictionary<K,V>不需要类型装换

D:List<T>通过索引访问集合元素,Dictionary<K,V>通过Key 访问集合元素。

16.在C# 语言中,方法重载的主要方式有两种,包括()和()。(选择二项)

A:参数类型不同的重载                B :返回值类型不同的重载

C:方法名称不同的重载                D :参数个数的不同重载

17.在一下C#中的数据类型中,()属于值类型(选择两项)

A:bool            B:struct          C:class          D:string

18.某些学员用C#写了一段代码,代码的输出结果是()。(选择一项)

     class Program{ static void Main(string[] args){Student s=new Student();

s.sayHi();Console.ReadLine();}}

class Person{public virtual void sayHi(){Console.WriteLine(“你好”);}}

Class Student:Person{Public override void sayHi(){

Console.WriteLine(“你好,我是一名学生”);}}

A :学生 B:你好,我是一名学生

C:你好!

     你好,我是一名学生

D: 空

19.在C#代码中,关于抽象方法和虚方法使用正确的是:()(选择一项)

A :public abstract class Animal{public Animal(){}public abstract void Run();}

public class Cat:Animal{public Cat(){}public void Run(){}}

B :public class Animal{Public Animal(){}Public abstract void Run(){}}

Public class Cat:Animal{Public Cat(){}Pulblic void Run(){}}

C :public abstract class Animal{Public Animal(){}Public abstract void Run(){}}

Public class Cat:Animal{Public Cat(){}Pulblic  override void Run(){}}

D :public virtual class Animal{Public Animal(){}Public virtual void Run(){}}

Public class Cat:Animal{Public Cat(){}Pulblic void Run(){}  }

20.某学员用C#写了如下代码段,该代码的输出结果是()。(选择一项)

     static void Main(string[] args){ ArrayList list=new ArrayList();

         list.Add(“ACCP”);list.Add(“   BENET”);

         Console.WritteLine(list[1]);Console.Read();}

A:ACCP       B:BENET      C:下标溢出错误        D:1

21.分析一下C#片段中的属性,该属性是()属性。(选择一项)

     private string name; Public string Name{Get{return name;} }

   A:可读可写 B:只写  C:只读   D: 静态

22..NET框架是.NET战略的基础,是一种新的便捷的开发平台,它具有两个主要的组件,分别是()和框架类库。(选择一项)

A:公共语言运行时 B:Web服务 C:命名空间 D:Main()函数

23.在C# 代码中,下面关于结构描述错误的是()。(选择一项)

A:结果是值类型 B:结构不能被继承 C:结构中可以有属性,也可以有方法

D:可以给结构添加无参的构造函数

24.分析如下所示的C#代码段,在该段代码中一共进行了()次装箱。(选择一项)

     static void Main(string[]args){

         int age=18; object refage=(object)age; int valage=(int)refage;

        Test(valage);Console.ReadLine();}

public void Test (int number){Console.WriteLine(number);}

A:0     B:1     C:2     D:3

25.在.NET中,接口是一中规范和标准,它可以月约束类的行为,下列接口定义正确的是()(选择一项)

A:public interface IBicycle{void ride();}

B:public interface IBicycle{void ride(){} ;}

C:public interface IBicycle{String Type(){get();set();}}

D:public interface IBicycle{string color;}

26.在C#中有如下范型集合代码,项该范型集合中添加一个键为“李四”的学员对象,一下选项中该范型集合不同操作,其中正确的是()。(选择二项)

Dictionary<string,Student> dict=new Dictionary<string Student>();

A:dict.RemoveAt(0);

B:Student stu=dict[“李四”];

C:foreach(Student stu in dict.Keys){…}

D:foreach(Student stu in dict.Values){….}

27.下列代码中使用了抽象类的概念,这段代码中发生错误的代码行是()。

     abstract class WashingMachine{public WashingMachine(){}abstract public void Wash(); }

class MyWashingMachine:WashMachine{override public void Wash(){}static void Main(){

     washingMachine wm=new WashingMachine();wm.Wash();}   }

A:1     B:2     C:3     D:4

28.在C# 中,下列关于密封类使用正确的是()(选择一项)

A:sealed class Persong{//…} class Student:Person{//…}

B: class Persong{//…} sealed  class Student:Person{//…}

C:sealed class Persong{Public int addStudent();}

D:sealed class Persong{Public int addStudent();}

29.以下关于C#中构造函数说法正确的是()

A:在访问一个类时,系统最先执行类的构造函数。 B:构造函数有返回值

C:一般情况先,构造函数总是private类型的。 D:可以为枚举类型中的元素赋整数值。

30.在以下代码中,()是类Teacher的方法。

     public class Teacher{int age=33;private string name;

public string Name{get{return name;}set{name=value;}}}  public void SaySomething{//…..}

A : Name      B name        C age         D  SaySomething

31.在使用C# 语言开发程序过程中,有时需要按照使用类图说明类与类之间的关系,在类图中使用()符号表示共有成员。

A.+               B:-     C :*         D:#

32.以下C#代码运行的结果是()

     List<int> num=new List<int>();

     for (int i=1;i<6;i++){num.Add(i);}

for(int i=1;i<3;i++){num.Remove(i);}

foreach(int i in num){Console.Write(i.ToString());}

A:运行出错

B:345

C: 145

D 135

33.假设我们要使用C#设计一个日志系统,要求程序运行是,检查system.log文件是否存在,如果已经存在则直接打开,如果 不存在则创建一个,为了实现这个目的,我们应该以FileMode的()方式创建文件流。(选择一项)

A:CreateNe  B  Open   C  OpenOrCreate   D  Create

34.关于C# 中的结构,以下说法中正确的是();

A 结构可以有构造函数 B 结构体内可以有字段,但不能有方法

C 结构体内可以有方法,但不能有字段 D 结果可以被继承

35,关于C# 中的虚方法,以下说法中正确的是();

A  使用static 修饰 B  可以有方法体 C  可以被子类重写 D  使用abstract 修饰

37.分析如下C# 代码,根据类的继承关系,运行后的输出结果是()(选择一项)

     public class Person{private int age=0;public int Age{ get{return age;}set{

     If(value>=18)Console.WriteLine(“成年人”);Else Console.WrteLine(“未成年人”);}}}

public class People:Person{public People(){Console.Write(“不得入内”);}}

class Test{static void Main (string[]args){people shang=new People(); shang.Age=17}  }

A 未成年人 不得入内 B 成年人 不得入内  C  不得入内  D  不得入内 未成年人

38.在C# 中,数据类型包括值类型和引用类型,以下属于值类型的有()。(选择两项)

A  System.Object  B   int  C   类  D   结构

39.在C#语言开发的程序中,以下关于反射的说法中错误的是()。(选择一项)

A.反射提供了封装程序集,模块和类型对象 B.使用反射可以动态的创建类型的实例

C.使用反射时必须提供解决方案

D.使用反射可以获得已加载的程序集和在其中定义的类型信息,也可以调用类型的方法或访问字段和属性

40.在C#语言开发的程序中,以下对于方法重载的定义错误的是()。(选择二项)

A.public int Sub(int a,int b)和public int Sub(int c,int d)

B.public int Modify(int a ,int b)和public int Modify(string a,int b,string c)

C.public void SayHi(string a,int b)和public void SayHi(string a,string b)

D.public void Multiply(int a,int b)和public int Multiply(int a,int b)

41.在C#中,下列数据类型属于引用类型的是()。(选择一项)

A.整型(int) B.结构(struct) C.接口(interface) D.枚举(enum)

42.在C#程序中,下面关于枚举的说法不正确的是()。(选择一项)

A.使用枚举可以避免不合理赋值 B.枚举属于值类型

C.MessageBox的返回结果DialogResult是枚举类型

D.System.Drawing.Color类型是枚举类型

43.在C#语言中,以下关于文件处理描述错误的是()。(选择一项)

A.要对文件进行读书,需要在类中使用System.IO命名空间

B.Stream Writer写入器创建方法可以为new Stream Writer(String FilePath)

C.Stream Writer写入器创建方法也可以为new Stream Writer(FileStream myfs)

D.StreamReader读取器读取文件流中从当前位置到末尾的所有字符的方法为ReaderLine()

44.在C#语言中,以下关于集合的说法错误的是()。(选择一项)

A.ArrayList 只能通过索引来访问和删除值 B.HashTable可以直接通过键名来获取值

C.使用List<T>添加、读取元素时,不需要拆箱和装箱,这一点和ArrayList相同

D.使用Dictionary<K,V>可以通过Key获取Value,这一点和HashTable相同

45.在C#总,下列关于属性的使用正确的是()。(选择一项)

A.   private int num; public string Num{ get{retuen num;} set{num=value;} }

B.   private int num;public int Num{get{retuen num;}set{num=value;}}

C.   private int num;public int Num{get{ num=value;}set{ retuen num;}}

D.   private int num;private int Num{get{retuen num;}set{num=value;}}

47.在C#语言中,以下关于Trainer类中构造函数的说法错误的是()。(选择二项)

A.此构造函数一般命名为Trainer B.此构造函数可以返回int或stirng型

C.此构造函数一般为public类型 D.此构造函数一般被显示调用

48.在C#程序中,下面关于接口的说法错误的是()。(选择一项)

A.接口中更可以包含属性、方法等,但是都不能实现

B.接口和类有重要的区别,前者可以被多重继承,而后者不可以

C.接口可以实例化,但实例化时必须实现所有未实现的方法

D.实现接口的类必须实现接口中未实现的方法

49.在C#语言中,若类a的命名空间为“b.c”,类d的命名空间为“e.f”,则下列说法中错误的是()。

A.若在d 中使用a中的方法,可以通过“using b.c”引入命名空间

B.命名空间“e.f”中不可能出现名为a的类

C.若在d中使用a中的方法,可以通过“b.c.a”全名的方式使用

D.a和d虽在不同的命名空间下,但仍可存在继承关系

51.在C#语言开发的程序中,以下关于反射的说法中错误的是()。(选择一项)

A.反射提供了封装程序集,模块和类型对象 B.使用反射可以动态地创建类型的实例

C.使用反射时必须提供解决方案

D.使用反射可以获取已加载的程序集和在其中定义的类型信息,也可以调用类型的方法或访问字段和属性

52.在C#语言开发的程序中,以下对于方法重载的定义错误的是()。(选择二项)

A.public int Sub(int a,int b)和public int Sub(int c,int d)

B.public int Modify(int a ,int b)和public int Modify(string a,int b,string c)

C.public void SayHi(string a,int b)和public void SayHi(string a,string b)

D.public void Multiply(int a,int b)和public int Multiply(int a,int b)

53.在C#中,下列数据类型属于引用类型的是()。(选择一项)

A.整型(int) B.结构(struct) C.接口(interface) D.枚举(enum)

54.在C#程序中,下面关于枚举的说法不正确的是()。(选择一项)

A.使用枚举可以避免不合理赋值 B.枚举属于值类型

C.MessageBox的返回结果DialogResult是枚举类型

D.System.Drawing.Color类型是枚举类型

55.在C#语言中,以下关于文件处理描述错误的是()。(选择一项)

  1. 要对文件进行读写,需要在类中使用System.IO命名空间
  2. Stream Writer 写入器创建方法可以为new StreamWriter(String FilePath)

C.Stream Writer写入器创建方法也可以为new Stream Writer(FileStream myfs)

D.StreamReader读取器读取文件流中从当前位置到末尾的所有字符的方法为ReaderLine()

56.在C#语言中,以下关于集合的说法错误的是()。(选择一项)

A.ArrayList 只能通过索引来访问和删除值

B.HashTable可以直接通过键名来获取值

C.使用List<T>添加、读取元素时,不需要拆箱和装箱,这一点和ArrayList相同

D.使用Dictionary<K,V>可以通过Key获取Value,这一点和HashTable相同

57.在C#总,下列关于属性的使用正确的是()。(选择一项)

A.   private int num;public string Num{get{retuen num;}set{num=value;}}

B.   private int num;public int Num{get{retuen num;}set{num=value;}}

C.   private int num;public int Num{get{ num=value;}set{ retuen num;}}

D.   private int num;private int Num{get{retuen num;}set{num=value;}}

59.在C#语言中,以下关于Trainer类中构造函数的说法错误的是()。(选择二项)

A.此构造函数一般命名为Trainer  B.此构造函数可以返回int或stirng型

C.此构造函数一般为public类型   D.此构造函数一般被显示调用

60. 在C#程序中,下面关于接口的说法错误的是()。(选择一项)

A.接口中更可以包含属性、方法等,但是都不能实现

B.接口和类有重要的区别,前者可以被多重继承,而后者不可以

C.接口可以实例化但实例化时必须实现所有未实现的方法D.实现接口的类必须实现接口中未实现的方法

61.在C#语言中,若类a的命名空间为“b.c”,类d的命名空间为“e.f”,则下列说法中错误的是()。

A.若在d 中使用a中的方法,可以通过“using b.c”引入命名空间

B.命名空间“e.f”中不可能出现名为a的类

C.若在d中使用a中的方法,可以通过“b.c.a”全名的方式使用

D.a和d虽在不同的命名空间下,但仍可存在继承关系

63.分析以下C#片段中的属性,该属性是()属性。(选择一项)

private string name;public string Name{get{return name;}}

A可读可写    B只写     C只读     D 静态

64.在C#中,以下使用键值对存储数据的是()。(选择一项)

A ArrayList    B  Array     C 字符型数组     D HashTable

65.在C#语言中,以下关于继承的说法错误的是()。(选择一项)

A.   一个子类不能同时继承多个父类   B 任何类都是可以被继承的

C  子类继承父类,也可以说父类派生了一个子类   D  Object类是所有类的基类

67.分析如下C#chengxu,运行输出的结果是()。(选择一项)

public struct Size{public int x;public int y;public Size(int x,int y){this.x=x;this.y=y;}}

class Test{ static void Main(){ Size size1=new Size(8,10); Size size2=size1; Size1.y=200;

         Console.WriteLine(“{0}|{1}”,size1.y,size2.y);}  }

A.   200|200   B    200|10  C   10|10     D    10|200

68.在开发C#程序过程中,我们会大量的使用对象和类,以下关于类和对象说法正确的是()。(选择一项)

A  类的实例被称为对象  B对象可以被继承 C 类可以归纳为对象

D在对象的基础上,将状态和行为实体化为类的过程称为实例化

69.以下关于C#中的构造函数说法正确的是()。(选择一项)

  1. 构造函数可以有参数                        C 构造函数有返回值
  2. 一般情况下,构造函数总是private类型的    D 构造函数可以通过类的实例调用

74.在C#中,如果类C继承自类B,类B继承自类A,则以下描述正确的是()。(选择一项)

A  C不仅继承了B中的成员,同样也继承了A中的成员 B   C只继承了B中的成员

C   C只继承了A中的成员 D   C 不能继承了A或B中的成员

75.在C#程序中,()类的对象在插入和删除时可以提供更好的性能(选择一项)

a )类和结构都是引用数据类型 b)类和结构都可以被继承

c)类可以实现接口,但是结构不可以实现接口

d)类可以具有默认无参的构造函数,而结构中只能具有带参数的构造函数

76. 在C#中创建一个类对象时,系统最先执行的时()中的语句。(选择一项)

a)main方法    b)构造函数  c)初始化函数   d)字符串函数

79.在C#程序中定义一个泛型集合对象students的代码是:

Dictionary<string, Student> students = new Dictionary<string, Student>();

下面集合操作的代码片段正确的是().(选择一项)

a)      Student stu=students[“Jimmy”]; c) students.Add(“Jimmy”);

b)      students.Remove(4);              d) foreach(Student stu in students.Keys){}

80在C#程序语言中,下列关于序列化和反序列化的说法中错误的是()。(选择二项)

a)要实现序列化操作,需要引入的命名空间是:System.Runtime.Serialization.Formatters.Binary

b)序列化和反序列化是可逆的过程,序列化是将对象状态储存到特定介质,反序列化是从储存介质中将数据重新构建为对象

c)要实现对象的序列化和反序列化操作,首先需要使用{Seriazation}标识类具有可序列化特性

d)如果Computer类是Laptop类的父类,要实现Laptop对象的序列化操作,只需要在Laptop类头部标记可序列化特性

81在C#语言开发程序中,以下关于IComparable<T>和IComparer<T>的说法中错误的是()。(选择一项)

a) IComparable<T>是泛型接口,实现该接口的类可以实现排序功能

b) IComparable<T>包含一个未实现的方法CompareTo()

c) IComparer<T>是一个比较器,它包含一个未实现的方法Compare(T x, T y)

d) IComparer<T>可以作为Sort()方法的返回值类型,但不能作为参数类型

89. 以下关于c#中的构造函数说法正确的是()。

     a)  构造函数可以有参数

     b)  构造函数有返回值

     c)  一般情况下,构造函数总是Private类型的

     d)  构造函数可以通过类的实例调用

90.在同一个c#程序中,对于下面的这段代码,描述正确的是()。

     Class Person{     Public int age;      Protected string name;  Private int salary;  } 

Class Teacher:Person{Public void Teach(){     Int studentNum;}

Public int GetSalary(){         //…}  }  (选择一项)

a)        Teach方法可以访问变量salary    c)    GetSalary方法可以访问变量salary

b)        Teach方法可以访问变量name    d)    GetSalary方法可以访问变量studentNum

92. 在c#语言中,若类a 的命名空间为“b.c”,类d的命名空间为“e.f”,则下列说法中错误的是()。         a)  若在d 中使用a中的方法,可以通过“using b.c”引入命名空间

         b)  命名空间“e.f”中不可能出现名为a的类

         c)  若在d中使用a 中的方法,可以通过“b.c.a”全名的方式使用

         d)  a和d虽在不同的命名空间下,但仍可存在继承关系

104.在c#中,关于List<>和Dictionary<K,V>的说法,正确的是()。(选择二项)

                   a)   List<T>和Dictionary<K,V>都有RemoveAt方法

                   b)   List<T>和Dictionary<K,V>都有Count属性

                   c)  获取元素时,List<T>需要类型转换,而Dictionary<K,V>不需要

                   d)   List<T>通过索引访问集合元素,Dictionary<K,V>通过Key访问集合元素  

 

posted @ 2011-05-05 18:32  峡谷少爷  阅读(3502)  评论(2编辑  收藏  举报