.net技术类面试、笔试题汇总2

来源:互联网 发布:网络智能电视机顶盒 编辑:程序博客网 时间:2024/05/21 06:11

   有余本人现在是一名大四的学生,最近正在进行校园招聘,因此特意找了一些面试题和笔试题进行汇总,顺便谈谈今天的面试感想。今天去应聘了三家公司,有一家国企,有一家成都的,有一家好像是外企,总部在国外。第一家是成都本地公司,首先进行了自我介绍,然后就说了自己弄过的一些东西,其实本人觉得很多网站就是对数据的增删改查,谈了自己擅长的东西,因此还算比较愉快,叫我等通知,第二家是那个外企,首先也是自我介绍,然后面试官对着我的简历提了一些问题,本人谈了下数据库,以及大概的谈了下ajax,用js写xmlhttprequest比较复杂,还要判断浏览器兼容性,就给面试官说了我后面就喜欢用jquery的ajax,然后面试官问我对公司有什么要求没有,我说没有要求,这家也还算比较愉快吧。第三家就问的比较详细了,开始问了我asp.net的内置对象,我只回答了cookie,session,application,我回来看了一下,原来还包括server,request,response,其实平时自己也会用这些东西,真没注意这个这些概念吧,然后问了我禁用cookie后session还能用么,这个答案我回答的不能,session有个sessionID就是存在cookie里面的,其实我回答错了,我忘了还有个cookieless这个东西,可以通过设置web.config让sessionID通过Url传递到服务器,很遗憾答错了。然后又问了我session的默认有效时间,session的默认有效时间是20分钟,这个肯定也没问题,最后问了我一个方法重写的作用,我当时回答了方法重写就是覆盖了父类的方法,这个作用我还真不知道该怎么说,所以这个也就没回答上,最后面试官没收我的简历,感觉很受打击。其实很多东西平时自己会用,但是有时候要说反而不知道该怎么说了。因此面试的同学们还是多应该看看面试和笔试的一些题吧,争取早日拿到一个不错的offer,让我们共同努力!当然也希望面试官不要对我们学生要求太高,毕竟大学的教育质量在那里,而且经验也没有多少,对我们绝大部分大学生来说,虽然学了一些东西,但是我们都还是菜鸟,我们有时候只是需要一个机会,让我们能够学习的机会,我的.net只是基本上都是自学的,学校根本没讲什么东西,都是照着书上念,最后希望面试官能给我们这些大学生一个机会!

下面开始今天的20道面试与笔试题:

21、是否可以继承String

String类是sealed类故不可以继承。 

22

        static void Main(string[] args)

        {

            Console.WriteLine(GetIt());

            Console.ReadKey();

        }

        static int GetIt()

        {

            int i = 8;

            try

            {

                i++;

                Console.WriteLine("a");

                return i;//把返回值设定为i,然后“尽快”返回(没啥事就回去吧)

            }

            finally

            {

                Console.WriteLine("b");

                i++;

            }

        }

上面程序的执行结果是ab9

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行

会执行,在return后执行。

        static void Main(string[] args)

        {

            //Console.WriteLine(GetIt());

            Console.WriteLine(GetPerson().Age);

            Console.ReadKey();

        }

        static Person GetPerson()

        {

            Person p = new Person();

            p.Age = 8;

            try

            {

                p.Age++;

                Console.WriteLine("a");

                return p;//把返回值设定为i,然后尽快返回(没啥事就回去吧。搞完就走)

            }

            finally

            {

                Console.WriteLine("b");

                p.Age++;

            }

        }

加分的补充回答(也助记):读取数据库中数据的条数的程序

public int QueryCount()

{

   …..

   try

   {

      return cmd.ExecuteScalar();

   }

   finally

   {

      cmd.Dispose();

   }

}

先执行cmd.ExecuteScalar(),把返回值暂时存起来,然后再去执行finally(钱放在这,我去劫个色),然后把返回值返回。return都是最后执行,但是return后的表达式的计算则是在finally之前。

如果C#设计的是先执行cmd.Dispose()再执行return就会出现return执行失败了,因为cmd已经Dispose了。

28intDateTimestring是否可以为null?

null表示“不知道”,而不是“没有”。没有年龄和不知道年龄是不一样。

数据库中null不能用0表示。0岁和不知道多少岁不一样。

Sex is zero。《色即是空》

            //int i1 = null;

            //int? i2 = null;//值类型后加?就成了可空数据类型

            ////int i3 = i2;//所以把可空的赋值给一定不能为空的会报错。

            //int i4 = (int)i2;//可以显式转换,由程序员来保证一定不为空

            //int? i5 = i4;//一定会成功!

            //using()→try{]catch{}finally{}

            //int?是微软的一个语法糖。是一种和int没有直接关系的Nullable类型

            Nullable<int> d1 = new Nullable<int>();//int? d1=null;

            Nullable<int> d2 = new Nullable<int>(3);//int? d2=3;

            Console.WriteLine(d1==null);

intDateTime不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值nullstring可以为null

C#int等值类型不可以为null、而数据库中的int可以为null,这就是纠结的地方。int?就变成了可空的int类型。bool?DateTime?

            int i1 = 3;

            int? i2 = i1;

            //int i3 = i2;//不能把可能为空的赋值给一定不能为空的变量

            int i3 = (int)i2;//显式转换

可空数据类型经典应用场景:三层中的Model属性的设计。

int?翻译生成.NetNullable<int>CTS

29using关键字有什么用?什么是IDisposable

using可以声明namespace的引入,还可以实现非托管资源的释放,实现了IDisposiable的类在using中创建,using结束后会自动调用该对象的Dispose方法,释放资源。加分的补充回答:using其实等价于try……finally,用起来更方便。

30XML 与 HTML 的主要区别

1. XML是区分大小写字母的,HTML不区分。 

2. HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略</p>或者</li>之类的结束 标记。在XML中,绝对不能省略掉结束标记。 

HTML<img src="1.jpg"><br><br>

XML<img src="1.jpg"></img><br/><br/>

3. XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 字符作为结尾。这样分析器就知道不用 查找结束标记了。 

4. XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。 

5. HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

XML是用来存储和传输数据的

HTML是用来显示数据的

如果使用了完全符合XML语法要求的HTML,那么就叫做符合XHTML标准。符合XHTML标准的页面有利于SEO

31string str = null 与 string str = “”说明其中的区别。 

答:string str = null 是不给他分配内存空间,string str = \"\" 给它分配长度为空字符串的内存空间。 string str = null没有string对象,string str = “”有一个字符串对象。

string s3 = string.Empty;//反编译发现,string.Empty就是在类构造函数中 Empty = "";

32.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。 

答:解1: select top 10 * from A where id not in (select top 30 id from A) 

演变步骤:

1select top 30 id from T_FilterWords--取前条

2select * from T_FilterWords 

where id not in (select top 30 id from T_FilterWords)--id不等于前三十条的

--也就是把前条排除在外

3select top 10 * from T_FilterWords 

where id not in (select top 30 id from T_FilterWords)

--取把前条排除在外的前条,也就是-40

2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 

解答3:用ROW_NUMBER实现

33.面向对象的语言具有________性、_________性、________性 

答:封装、继承、多态。 

不要背,脑子中要有联想。

34..Net中所有可序列化的类都被标记为_____? 

答:[serializable] 

35、什么是code-Behind技术。 

就是代码隐藏,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。code-Behind是基于部分类技术实现的,在我的项目的三层代码生成器中用到了部分类。

36接口是一种引用类型,在接口中可以声明(   a),但不可以声明公有的域或私有的成员变量。   
  a) 方法、属性、索引器和事件;  

  b) 索引器和字段;     
  c) 事件和字段;   

解读:接口中不能声明字段只能声明方法,属性、索引器和事件 最终都编译生成方法。因为字段属于实现层面的东西,只有存取值的时候才会用到字段,所以中接口中不能定义字段。

37. ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(c)。   
  a) insertupdatedelete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;   
  b) ExecuteNonQuery()方法返回执行Sql语句所影响的行数。   
  c) Select操作的Sql语句只能由ExecuteReader()方法来执行;   
  d) ExecuteReader()方法返回一个DataReader对象;  

SQLHelper实现一下。


38. 下列关于C#中索引器理解正确的是(c   )   
  a) 索引器的参数必须是两个或两个以上   
  b) 索引器的参数类型必须是整数型   
  c) 索引器没有名字   
  d) 以上皆非   

39. 下面关于XML的描述错误的是(d)。   
  a) XML提供一种描述结构化数据的方法;   
  b) XML   是一种简单、与平台无关并被广泛采用的标准;   
  c) XML文档可承载各种信息;   
  d) XML只是为了生成结构化文档;   


40以下的C#代码,试图用来定义一个接口:   
  public   interface   IFile   
  {   
              int   A;   
              int   delFile()   
              {   
                      A   =   3;   
              }   
              void   disFile();   
  }   
  关于以上的代码,以下描述错误的是(d   )。   
  a) 以上的代码中存在的错误包括:不能在接口中定义变量,所以int   A代码行将出现错误;   
  b) 以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;   
  c) 代码void   disFile();声明无错误,接口可以没有返回值;   
  d) 代码void   disFile();应该编写为void   disFile(){};  



原创粉丝点击