美文网首页一个程序员自学中
Asp.Net前后端全方位面试

Asp.Net前后端全方位面试

作者: 小船翻不翻 | 来源:发表于2020-07-05 14:05 被阅读0次

    所有答案皆来自一个小菜鸟的手笔,看不看都行,主要看题目

    JavaScript

    1. 把下面代码中每一个<li>添加一个click事件,事件弹出每个li的索引值
    <html><head></head><body>
    
    <ul>
    
    <li>aaaa</li>
    
    <li>bbbb</li>
    
    <li>cccc</li>
    
    <li>dddd</li>
    
    </ul>
    
    </body></html>
    

    要求:不能更改原html标记,不可再HTML上添加任何属性,只可在HEAD内编写脚本

    实现:

    <script  type="text/javascript">
    
     window.onload = function () {
    
      var uli = document.getElementsByTagName('li')
    
      for (var i = 0; i < uli.length; i++) {
    
     uli[i].setAttribute("i", i);
    
     uli[i].onclick = function () {
    
     alert(this.getAttribute("i"));
    
     };
    
     };
    
     };
    
      </script>
    
    1. 假如一个网址http://www.sina.com/abc.html?type=1&class=2&module=3..参数不定

    现要求使用时如下

    urlObj.domain = “www.sina.com”;
    
    urlObj.fileName=”abc.html”;
    
    urlObj.params[“type”]=”1”;
    
    urlObj.params[“class”]=”2”;…..参数不能写死,个数和名字不固定
    

    实现:

    function myfunction(httpurl) {
    
      var strs = new Array();
    
      var str = new Array();
    
     strs = httpurl.split("/");
    
      var strs1 = strs[2];//主域名
    
     str = strs[3].split("?");
    
      var str1 = str[0];//html地址
    
      if (str.length > 1) {
    
      var strss = new Array();
    
      var parameter = new Array();
    
     strss = str[1].split("&");
    
      for (var i = 0; i < strss.length ; i++) {
    
     parameter = strss[i].split("=");
    
     parameter[0]//参数变量
    
     parameter[1]//参数值
    
     }
    
     }
     }
    
    1. 河马具有颜色和重量两个属性,和一个游泳、一个奔跑的行为。

    现在有个厂家想根据河马做一些玩具,一个塑料河马一个机器河马,他俩都应该拥有河马的属性和行为,但是塑料河马不能奔跑,机器河马不能游泳。也就是说有其行为但是实现的方式不同,随便输出一些”能游泳”、“不能奔跑”等信息即可请用js面向对象的思想简单实现下这一场景。

    要求:每个对象都是独立的,任何变化都不能影响另一个对象

    实现:

    写一个河马的类,有颜色和重量俩个属性,游泳和奔跑俩个虚方法;

    塑料河马类和机器河马类都继承 河马类,俩个不同类型的河马,对河马类重写行为方法,实现不同的行为。

    ASPNet

    1. 把下面这个函数改写成你认为最好的写法,不用vs,直接写在下面
    public object GetEntity(string type)
    
     {
    
    If(type==”TestInfo”)
    
    return new TestInfo();
    
    if(type==”TestInfo2”)
    
     return new TestInfo2();
    
    return null;
    
     }
    

    实现:

    public object GetEntity(string type)
    
    {
    
    switch(type)
    
    {
    
    case “TestInfo”:
    
    return new TestInfo();
    
    case “TestInfo2”:
    
    return new TestInfo2();
    
    default:
    
    Return null;
    
    }
    
    }
    
    1. 自己实现NameValueCollection的Where扩展方法,只根据键筛选即可

    实现:

    不懂

    1. 有一块电池,当它电用光时和充满电的时候会告知使用者,现使用者为一个玩具狗和一个手机,玩具狗没电时亮红灯,充满时亮绿灯。手机没电时黑屏,充满时屏幕显示已充满,只简单输出一些信息即可,如RedLight、GreenLight、BlackScreen、ShowFull即可。用代码简单实现这一场景,并考虑到有各种各样的使用者,所有的代码写在一个cs文件中,写完复制到下面

    实现:

    ///  <summary>
    
      ///  电池容量显示状态
    
      ///  </summary>
    
      ///  <param name="surplus">容量</param>
    
      ///  <param name="type">使用的类型</param>
    
      ///  <returns></returns>
    
      public  string BatteryMethod(int surplus, string type)
    
     {
    
      switch (type)
    
     {
    
      case  "dog":
    
      if (surplus != 0)
    
     {
    
      return  "GreenLight";
    
     }
    
      else
    
     {
    
      return  "RedLight";
    
     }
    
      case  "phone":
    
      if (surplus != 0)
    
     {
    
      return  "ShowFull";
    
     }
    
      else
    
     {
    
      return  "BlackScreen";
    
     }
    
      default:
    
      return  "错误";
    
     }
    
     }
    

    SQLServer

    1. 取出每个班级考试分数第一名和第二名的学生,不考虑补考成绩,

    只提取学生姓名,分数和班级即可

    Sqlserver链接 192.168.1.33 sazdl Test库StudentExam表

    要求结果如下:


    输出结果

    实现:

    select * from (select top 2 [Student],[Score],[Class] from [Test].[dbo].[StudentExam]
    
     where [Class]=1
    
     order by [Score] desc) C1
    
     union all
    
     select * from (select top 2 [Student],[Score],[Class] from [Test].[dbo].[StudentExam]
    
     where [Class]=2
    
     order by [Score] desc) C2
    
     union all
    
     select * from ( select top 2 [Student],[Score],[Class] from [Test].[dbo].[StudentExam]
    
     where [Class]=3
    
     order by [Score] desc ) C3
    
    1. 取类型为0的每个学生最后一次考试的分数大于80分小于95分的学生,要取整条记录,其中有补考分数,如补考分数大于当前行的考试分数则提取补考分数

    Sqlserver链接 192.168.1.33 sazdl Test库StudentExam表

    要求结果如下:


    输出结果

    实现:

    SELECT TOP 1000 [id],
    
     [Type],
    
     [Student],
    
     [Score]=
    
     case
    
     when [ReExam]>[Score] then [ReExam]
    
     else [Score]
    
     end ,
    
     [ExamTime],
    
     [AddUser],
    
     [IsLock],
    
     [Class]
    
     FROM [Test].[dbo].[StudentExam] S
    
     where type=0 and [Score]>80 AND [Score]<95
    

    相关文章

      网友评论

        本文标题:Asp.Net前后端全方位面试

        本文链接:https://www.haomeiwen.com/subject/vurvqktx.html