• C# 程序员最常用的面试题及答案


    1 .列举ASP.NET 页面之间传递值的几种方式。
      答. 1).使用QueryString, 如....?id=1; response. Redirect().... 
          2).使用Session变量 
          3).使用Server.Transfer
    2.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
    答 : QueryString、 this.Server.Transfer
    3. 一列数的规则如下: 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); 
                  } 
            } 
    4.在下面的例子里
    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
    5.net中读写数据库需要用到那些类?他们的作用?
    答:SqlConnection/OleDbConnection:建立数据库的连接;
          SqlCommand/OleDbCommand:执行数据库脚本。




    60.ASP。NET与ASP相比,主要有哪些进步?
    答:asp解释形,aspx编译型,性能提高,可以跟美工的工作分开进行,更有利于团队开发。

    61.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
    int[] intArr=new int[100];
    ArrayList myList=new ArrayList();
    Random rnd=new Random();
    while(myList.Count<100)
    {
    int num=rnd.Next(1,101);
    if(!myList.Contains(num))
    myList.Add(num);
    }
    for(int i=0;i<100;i++)
    intArr[i]=(int)myList[i];


    65.DataReader与Dataset有什么区别?
    答:一个是只能向前的只读游标,一个是内存中的表。

    68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
    答:string inputStr=" xx xx ";
         inputStr = Regex.Replace(inputStr.Trim(), @"s+", " ");

    69.下面这段代码输出什么?为什么?
    int i=5;
    int j=5;
    if (Object.ReferenceEquals(i,j))
    Console.WriteLine("Equal");
    else
    Console.WriteLine("Not Equal");
    答:不相等,因为比较的是对像
    74.什么是虚函数?什么是抽像函数?
    答:虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。
    77.什么是ASP.net中的用户控件?
    答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。

    80.什么是code-Behind技术。
    答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.

    85.当整数a赋值给一个object对像时,整数a将会被?
    答:装箱。

    87.public static const int A=1;这段代码有错误么?是什么?
    答:const不能用static修饰。
    94.下面的代码中有什么错误吗?_______
    using System;
    class A
    {
    public virtual void F(){
    Console.WriteLine("A.F");
    }
    }
    abstract class B:A
    {
    public abstract override void F(); 答:abstract override 是不可以一起修饰.
    } // new public abstract void F(); 

    96.下面这段代码有错误么?
    switch (i){
    case(): 答://case()条件不能为空
    CaseZero();
    break;
    case 1:
    CaseOne();
    break;
    case 2:
    dufault; 答://wrong,格式不正确
    CaseTwo();
    break;
    }

    109.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
    答:<script ***script>
    setTimeout('window.close();',3000);
    function show()
    {
    if (window.event.button == 1)
    {
    alert("左");
    }
    else if (window.event.button == 2)
    {
    alert("右");
    }
    }
    < /script>
    118.<%# %> 和 <% %> 有什么区别?
    答:<%# %>表示绑定的数据源
    < % %>是服务器端代码块
    120.重载与覆盖的区别?
    答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
                      2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
                      3、覆盖要求参数列表相同;重载要求参数列表不同。
                      4、覆盖关系中,调用那个方法体,是根据对象的类型(对像对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。

    125.分析以下代码。
    public static void test(string ConnectString)

    {
    System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
    conn.ConnectionString = ConnectString;
    try {
       conn.Open();
    …….
    }
    catch(Exception Ex)
    {
       MessageBox.Show(Ex.ToString());
    }
    finally
       { 
       if (!conn.State.Equals(ConnectionState.Closed))
        conn.Close();
       }
    }
    请问 1)以上代码可以正确使用连接池吗?
    答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。 
    128.在下面的例子里
    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

    129.下面的例子中

    using System;
    class A
    {
    public static int X;
    static A(){
    X=B.Y+1;
    }
    }
    class B
    {
    public static int Y=A.X+1;
    static B(){}
    static void Main(){
    Console.WriteLine("X={0},Y={1}",A.X,B.Y);
    }
    }
    产生的输出结果是什么?
    答:x=1,y=2

  • 相关阅读:
    MSP430的CAN通信发送
    Arduino 101/Genuino101使用-第2篇
    CC2541调试问题记录-第一篇
    STM32运行FreeRTOS出现prvTaskExitError错误死机
    Arduino 101/Genuino101使用-第一篇
    LAUNCHXL-28379D入门学习-第一篇
    蒸汽机的原理
    等高线相似性匹配
    cad转shapefile文件
    ArcGIS坐标转换
  • 原文地址:https://www.cnblogs.com/kkfish/p/5194586.html
Copyright © 2020-2023  润新知