学习啦 > 创业指南 > 职场 > 笔试题 > c#经典笔试题

c#经典笔试题

时间: 护托1061 分享

c#经典笔试题

学习啦在线学习网   C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。下面就由学习啦小编为大家介绍一下c#经典笔试题的文章,欢迎阅读。

  c#经典笔试题篇1

学习啦在线学习网   1. c#中错误处理机制有哪些

学习啦在线学习网   CLR提供的结构化错误处理机制,用try..catch..finally 捕获

学习啦在线学习网   2. public/protect/private/internal修饰符的区别

  public:任何类和成员都可以访问

学习啦在线学习网   protect:该类和派生类能访问

学习啦在线学习网   private:只能该类访问

学习啦在线学习网   internal:只能在包含它的程序集中访问

  3. 大量数据(如3000万条数据)并发处理时,有哪几种机制

学习啦在线学习网   存储过程或事务.取得最大标识的时候同时更新,注意主键不是自增量方式.这种方法并发的时候是不会重复主键的,

  取得最大标识要有一个存储过程来获取.

  4. String/StringBuilder的异同

  string是一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串对象就不能改变了。修改字符串内容的方法

  和运算符实际上是创建一个新的字符串.

学习啦在线学习网   stringbuilder分配好内存,对字符串的修改就在赋予stringbuilder实例的存储单元中进行.

  举例:

学习啦在线学习网   string的确是不能修改的:

学习啦在线学习网   string str = "a";

  str = "b"//str是被赋值了"b"没错,但是str里面原来的string值"a"并没有被修改。

  string str = "a";

学习啦在线学习网   string str1 = str;

  str += "b";//此时str = "ab",str1 = "a";

  StringBuilder str = new StringBuilder( "a" );

  StringBuilder str1 = str;

学习啦在线学习网   str.Append( "b" );

  str.ToString()和str1.ToString()都是"ab"。

  5. 解释string str=null/string str=""

  str=null,声明而不分内存空间,str=""声明而分内存空间

  6. 什么是单例模式,写个运用单例模式的类

  Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接

  实例它

  // Singleton pattern -- Structural example

  using System;

  // "Singleton"

学习啦在线学习网   class Singleton

  {

  // Fields

  private static Singleton instance;

  // Constructor

学习啦在线学习网   protected Singleton() {}

  // Methods

  public static Singleton Instance()

  {

  // Uses "Lazy initialization"

  if( instance == null )

  instance = new Singleton();

  return instance;

  }

  }

  /**////

  /// Client test

  ///

  public class Client

  {

学习啦在线学习网   public static void Main()

  {

  // Constructor is protected -- cannot use new

学习啦在线学习网   Singleton s1 = Singleton.Instance();

学习啦在线学习网   Singleton s2 = Singleton.Instance();

  if( s1 == s2 )

  Console.WriteLine( "The same instance" );

  }

  }

  7. ASP.NET页面间传递有哪几种方式

学习啦在线学习网   QueryString, response.Redirect(), session, server.Transfer

  8. 解释重载/覆盖

学习啦在线学习网   9. Web Services的含义/UDDI的含义

学习啦在线学习网   Web服务是利用SOAP在HTTP上执行远程方法调用的一种新方法。

  UDDI的含义:统一描述发现和集成(UDDI)提供一种发布和查找服务描述的方法。

  10.虚函数/抽象函数各自的定义

学习啦在线学习网   虛函數:由virtual聲明,它允許在派生類中被重寫,要重寫方法,必須先聲名為virtual

学习啦在线学习网   public class myclass

  {

学习啦在线学习网   public virtual int myint()

  {

  函數体;

  }

  }

  class myclass1:myclass

  {

  public override int myint()

  {

  函數体1;

  }

  }

  抽象類、抽象函數:由abstract聲明,在抽象類中可以定義抽象方法,抽象方法基本沒有執行代碼,派生類必須重寫它,提供其執行代碼

学习啦在线学习网   public abstract class myclass

  {

学习啦在线学习网   public abstract int myint();

  }

学习啦在线学习网   public class myclass1:myclass

  {

  public override int myint()

  {

  函數体;

  }

  }

  c#经典笔试题篇2

  1.接口和类的异同

  接口類:由interface聲明,是特殊的抽象類,是方法、屬性、事件和索引符的組合,沒有字段,其成員無執行方式,無構造函數,不允許進行運算符重載,接口和它的成員沒有任何訪問修飾符,它總是公共的,不能聲明為虛擬或靜態,繼承自接口的派生類必須實現接口中的所有方法

学习啦在线学习网   interface Imyinterface

  {

  void myfunction();

  string name

  {

  get;

  set;

  }

  }

学习啦在线学习网   class myclass:Imyinterface

  {

学习啦在线学习网   void myfunction()

  {

  函數体;

  }

学习啦在线学习网   string name

  {

  get

  {

学习啦在线学习网   return name;

  }

  set

  {

  name=value;

  }

  }

  }

  接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!

  而类是负责功能的具体实现!

  在类中也有抽象类的定义,抽象类与接口的区别在于:

学习啦在线学习网   抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。

学习啦在线学习网   但接口是一个行为的规范,里面的所有东西都是抽象的!

学习啦在线学习网   一个类只可以继承一个基类也就是父类,但可以实现多个接口

学习啦在线学习网   2.property/assembly区别

  3.DataReader/DataSet区别

  dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表

  DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接

学习啦在线学习网   datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。

  4.using/new各自的意义

  using引入名称空间或者说使用非托管资源new 新建实例或隐藏父类方法

学习啦在线学习网   5.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现

学习啦在线学习网   public class MainClass

  {

学习啦在线学习网   public static void Main()

  {

  Console.WriteLine(Foo(30));

  }

学习啦在线学习网   public static int Foo(int i)

  {

学习啦在线学习网   if (i <= 0)

  return 0;

  else if(i > 0 && i <= 2)

  return 1;

  else return Foo(i -1) + Foo(i - 2);

  }

  }

  6.C#中的委托是什么?事件是不是一种委托?

学习啦在线学习网   委托可以把一个方法作为参数代入另一个方法。

  委托可以理解为指向一个函数的引用。

学习啦在线学习网   是,是一种特殊的委托

  7.override与重载的区别

  重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

学习啦在线学习网   Override 是进行基类中函数的重写

学习啦在线学习网   8.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

  QueryString、FormsAuthentication,Server.Transfer

  9.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

  foreach (System.Windows.Forms.Control control in this.Controls)

  {

  if (control is System.Windows.Forms.TextBox)

  {

  System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;

  tb.Text = String.Empty ;

  }

  }

学习啦在线学习网   foreach (System.Windows.Forms.Control controlinthis.Controls)

  {

  if (controlis System.Windows.Forms.TextBox)

  {

  System.Windows.Forms.TextBox tb = controlas System.Windows.Forms.TextBox ;

学习啦在线学习网   if(tb!=null)

  {

  tb.Text = String.Empty ;

  }

  }

  }

学习啦在线学习网   10.请编程实现一个冒泡排序算法?

学习啦在线学习网   int [] array = new int [*] ;

  int temp = 0 ;

  for (int i = 0 ; i < array.Length - 1 ; i++)

  {

学习啦在线学习网   for (int j = i + 1 ; j < array.Length ; j++)

  {

学习啦在线学习网   if (array[j] < array[i])

  {

  temp = array[i] ;

  array[i] = array[j] ;

学习啦在线学习网   array[j] = temp ;

  }

  }

  }

  c#经典笔试题篇3

  1.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

  可以用任意类型

  C#中的索引器通常用于索引数组,楼上的THIS就是索引器了。

学习啦在线学习网   索引器不单能索引数字(数组下标),还能索引一些HASHMAP的字符串,所以,通常来说,C#中类的索引器通常只有一个,就是THIS,但也可以有无数个,只要你的参数列表不同就可以了

学习啦在线学习网   索引器和返回值无关

  class A

  {

  int[] i=new int[10];

  publib int this[int v]

  {

学习啦在线学习网   return i[v];

  }

学习啦在线学习网   2.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m

  if(m%2 == 1){

  S = (m + 1) / 2;

学习啦在线学习网   } else {

  S = -m / 2;

  }

学习啦在线学习网   int Num = this.TextBox1.Text.ToString() ;

学习啦在线学习网   int Sum = 0 ;

学习啦在线学习网   for (int i = 0 ; i < Num + 1 ; i++)

  {

  if((i%2) == 1)

  {

  Sum += i ;

  }

  else

  {

学习啦在线学习网   Sum = Sum - I ;

  }

  }

学习啦在线学习网   System.Console.WriteLine(Sum.ToString());

  System.Console.ReadLine() ;

  3.

学习啦在线学习网   using System;

  class A

  {

学习啦在线学习网   public A()

  {

  PrintFields();

  }

学习啦在线学习网   public virtual void PrintFields(){}

  }

学习啦在线学习网   class B:A

  {

学习啦在线学习网   int x=1;

  int y;

  public B()

  {

  y=-1;

  }

  public override void PrintFields()

  {

  Console.WriteLine("x={0},y={1}",x,y);

  }

  }

  当使用new B()创建B的实例时,产生什么输出? X=1,Y=0;x= 1 y = -1

  4..什么叫应用程序域?

学习啦在线学习网   应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

  5.CTS、CLS、CLR分别作何解释?

学习啦在线学习网   CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

学习啦在线学习网   6.什么是装箱和拆箱?

学习啦在线学习网   从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

学习啦在线学习网   7.什么是受管制的代码?

  unsafe:非托管代码。不经过CLR运行。

  8.什么是强类型系统?

  RTTI:类型识别系统。

学习啦在线学习网   9.在.net中,配件的意思是?

  程序集。(中间语言,源数据,资源,装配清单)

  10.常用的调用WebService的方法有哪些?

学习啦在线学习网   1.使用WSDL.exe命令行工具。

  2.使用VS.Net中的Add Web Reference菜单选项

3169989