c# 面试题1

1.填空:(一空一分,满分10分)
  (1)面向对象的语言具有[继承]性;[封装]性;[ 多态]性。
  (2)能用foreach遍历访问的对象需要实现[IEnumerable ]接口或声明[GetEnumerator ]方法的类型。
  (3)列举ADO.net中的五个主要的对象[ ];[ ];[ ];[ ];[ ]。
*******************************************************************
2.不定项选择(一题五分,满分10分)
  (1)以下叙述正确的是:
     A 接口可以有虚方法。  B 一个类可以实现多个接口。
     C 接口不能被实例话。  D 接口中可以包含已实现的方法。

  (2)从数据库读取记录,你可以使用的方法有:
     A ExecuteNonQuery     B ExecuteScalar
     C Fill                D EcecuteReader
**********************************************************************
3.简述:private;protected;public;internal修饰符的访问权限。(满分10分)
**********************************************************************
4.写出一条SQL语句,取出表A中第31到第40条记录(ID为自动增长的主键,并ID不是连续的。)(满分10分)
**********************************************************************************
5.列举ASP.NET页面之间传递值的几种方式:(满分10分)
*****************************************************
6.写出程序输出的结果:(满分10分)
 
  class Class1
    {
      private string str="Class1.str";
      private int i=0;
      static void StringConvert(string str)
        {
           str="string being converted";
        }
      static void stringConvert(Class1 c)
        {
           c.str="string being converted";
        }
      static void Add(int i)
        {
           i++;
        }
      static void AddWithRef(ref int i)
        {
          i++;
        }
      static void Main()
        {
          int i1=10;
          int i2=20;
          string str="str";
          Class1 c=new Class1();
          Add(i1);
          AddWithRef(ref i2);
          Add(c.i);
          StringConvert(str);
          StringConvert(c);
          Console.WriteLine(i1);
          Console.WriteLine(i2);
          Console.WriteLine(c.i);
          Console.WriteLine(str);
          Console.WriteLine(c.str);
        }    
    }  
*******************************************************************************
7.写出程序输出的结果:(满分10分)
    public abstract class A
      {
        public A()
         {
            Console.WriteLine('A');
         }
        public virtual void Fun()
         {
            Console.WriteLine("A.Fun()");
         }
      }

    public class B:A
      {
         public B()
           {
             Console.WriteLine('B');
           }
         public new void Fun()
           {
             Console.WriteLine("B.Fun()");
           }
         public static void Main()
           {
             A a=new B()
               a.Fun();
           }
      }
*******************************************************************************
8.写出程序输出的结果:(满分10分)
    public class A
      {
          public virtual void Fun1(int i)
            {
              Console.WriteLine(i);
            }
          public void Fun2(A a)
            {
              a.Fun1(1);
              Fun1(5);
            }
      }
    public class B:A
      {
         public override void Fun1(int i)
           {
              base.Fun1(i+1);  
           }
         public static void Main()
           {
              B b=new B();
              A a=new A();
              a.Fun2(b);
              b.Fun2(a);
           }
      }
*********************************************************************************
9.一列数的规则如下:1 1 2 3 5 8 13 21 34........ 求第30位数是多少,用递规实现。(满分10分)
********************************************************************************************
10.(满分10分)
select * from tt
------------------/
id       pid
-----  -------
1         1
1         1
2         2
3         3
3         3
3         3
如何删除重复数据,请写出sql语句。

 

 

 

 

 

 

 

 

 


参考答案:
1.(1)继承性;封装性;多态性。
  (2)IEnumerable;GetEnumerator
********************************
2.(1)B C  (2) B C D
**********************
3.private:私有成员,在类的内部才可以访问。
  protected:保护成员,该类内部和继承类中可以访问。
  public:公共成员,完全公开,没有访问权限。
  internal:在同一命名空间内可以访问。
**********************************************
4.select top 10 * from A where id not in(select top 30 id form A) 或
  select top 10 * from A where id > (select max(id) from (select top 30 id from A)AS A)
********************************************************************
5.  QueryString/Session/Server.Transfer
***************************************
6. 10/21/0/str/string being converted
***************************************
7.A/B/A.Fun()
*****************
8.2/5/1/6
************
9.  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);
           }
      }
***********************************************
10.方法一:使用distinct和临时表
if object_id('tempdb..#tmp') is not null
drop table #tmp
select distinct * into #tmp from tt
truncate table tt
insert into tt select * from #tmp
---------------------------------
方法二:添加标识列
alter table tt add NewID int identity(1,1)
go
delete from tt where exists(select 1 from tt a where a.newid>tt.newid and tt.id=a.id and tt.pid=a.pid)
go
alter table tt drop column NewID
go
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值