一个程序员自学中

Asp.Net前后端全方位面试

2020-07-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
上一篇下一篇

猜你喜欢

热点阅读