黑马程序员技术交流社区

标题: 经典.net面试题目(第一节) [打印本页]

作者: 吴凡    时间: 2012-8-10 10:36
标题: 经典.net面试题目(第一节)
1. 简述 private protected public internal 修饰符的访问权限。
. private :   私有成员, 在类的内部才可以访问。
     protected : 保护成员,该类内部和继承类中可以访问。
     public :    公共成员,完全公开,没有访问限制。
     internal:   在同一命名空间内可以访问。
2 .列举ASP.NET 页面之间传递值的几种方式。
. 1.使用QueryString,  ....?id=1; response. Redirect()....
    2.使用Session变量
3.使用Server.Transfer
4.使用Application
5.使用Cache
6使用HttpContextItem属性
7.使用文件
8.使用数据库
9.使用Cookie
3. 一列数的规则如下: 112358132134......  求第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);
        }
    }
4.C#中的委托是什么?事件是不是一种委托?
      
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
5.override与重载的区别
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。实现多态。
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用SessionCookieApplication,您有几种方法进行处理?
同第2
7.请编程遍历页面上所有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 ;
}
      }
8.请编程实现一个冒泡排序算法?
答:
        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)
       {
        temp = array ;
        array = array[j] ;
        array[j] = temp ;
       }
      }
    }
    9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?(索引器是对属性的封装,具体查看msdn)
    答:不是。可以用任意类型。
    10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
    答:
        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() ;
    11..netB/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
    答:使用MVC模式分层
    一般为3
            数据访问层,业务层,表示层。
    数据访问层对数据库进行增删查改。
    业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
    表示层为了与用户交互例如用户添加表单。
    优点:  分工明确,条理清晰,易于调试,而且具有可扩展性。
    缺点:  增加成本。
    12.在下面的例子里
         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
    13.什么叫应用程序域?
    答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
    14.CTSCLSCLR分别作何解释?
    答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
    15.什么是装箱和拆箱?
    答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

    作者: 许庭洲    时间: 2012-8-10 10:46
    不错,值得学习!
    作者: 张洋    时间: 2012-8-10 10:55
    打个包放出来直接下载的说~这样还得一份份复制。。。
    作者: cjycjy09039    时间: 2012-8-11 07:53
    {:soso_e128:}thanks。
    作者: 张文    时间: 2012-8-12 15:31
    ts..不错。




    欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2