1、进程和线程的区别是什么?

  答:https://www.cnblogs.com/renzhuang/articles/6733461.html
2、请列举ASP.Net页面之间传递值的几种方式?列出3种

  答:https://www.cnblogs.com/jhuang-com/p/5961513.html
3、请解释ASP.Net MVC开发框架,并说明使用MVC有哪些好处?

  答:总的来说MVC设计模式可以方便开发人员分工协作,提高开发效率,增强程序的可维护性和拓展性而且还利用Controller将Model与View分离,降低它们之间的耦合度。

  更快的服务器端处理和客户端呈现:MVC只简单地处理“模板”,而无需构建复杂的控件树,因此,无论是在服务器处理的时间,和客户端的呈现速度都会有所提高;MVC优点:1.大型开发的时候容易维护,扩展性很好。2.能够对HTML有完全的控制权限,对于前端来说很友好。3.能够进行单元测试,保证功能的实现。缺点:1.没有那么多的现成控件使用,开发效率相对较低(特别是对于菜鸟来说)2.对于大型数据的处理比较难,还是因为没有现成girdview控件。这个控件虽然生成的html结构异常复杂,但是对于处理大量而且复杂的数据来说是很不错的。不过一般网站是很少有这种大量且复杂的数据,很多菜鸟都是用这个大炮来打蚊子,浪费且低效率。对于网站开发来说这个控件应该不推荐使用。

  简单地讲:C# 是语言, asp.net, asp.net mvc,winform,wpf,wcf 都是框架

  既然是框架,则都提供了一些框框(规范,标准,接口)等

  开发时按这些框框走,就实现了我们想要的结果

  但是不同的框架提供的框框是不一样的,

  是圆的框我们就得把自己削成圆的往里套,

  是方的框我们就得把自己吃成胖子往里套,

  当然,不管是圆框还是方框,都能达到目的

  winform 走的是 win32 gdi 的路子,wpf走的是Directx 的路子,

  但他们都能实现桌面程序的界面效果

  asp.net 走的是页面周期,服务端控件Render成HTMl的路子,

  asp.net mvc 走的是路由到不同的View的路子,但是他们都能实现Web 站点的功能

4、请写出一条sql语句,去除表A中的第31到40条记录(SQLSERVER以自增长ID为逐渐,注意:ID可能不是连续的)

  select * from (select ROW_NUMBER() OVER(ORDER BY ID) as rowid from A)T where T.rowid>30 and rowid<=40

  select top 10 * from A where ID not in(select top 30 ID from Aorder by ID) order by ID

  select top 40 * from A  except select top 30 * from A

  except 返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值)。

  intersect 返回 两个结果集的交集(即两个查询都返回的所有非重复值)。

5、SQL行变列和列转行

  答:在做数据统计的时候,行转列,列转行是经常碰到的问题。case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强

  行专列测试数据

CREATE  TABLE [StudentScores]
(
[UserName] NVARCHAR(20), --学生姓名
[Subject] NVARCHAR(30), --科目
[Score] FLOAT, --成绩
) INSERT INTO [StudentScores] SELECT '张三', '语文', 80
INSERT INTO [StudentScores] SELECT '张三', '数学', 90
INSERT INTO [StudentScores] SELECT '张三', '英语', 70
INSERT INTO [StudentScores] SELECT '张三', '生物', 85
INSERT INTO [StudentScores] SELECT '李四', '语文', 80
INSERT INTO [StudentScores] SELECT '李四', '数学', 92
INSERT INTO [StudentScores] SELECT '李四', '英语', 76
INSERT INTO [StudentScores] SELECT '李四', '生物', 88
INSERT INTO [StudentScores] SELECT '码农', '语文', 60
INSERT INTO [StudentScores] SELECT '码农', '数学', 82
INSERT INTO [StudentScores] SELECT '码农', '英语', 96
INSERT INTO [StudentScores] SELECT '码农', '生物', 78

行专列

select * from [StudentScores] /*数据源*/
AS P
pivot
(
sum(Score/*行转列后 列的值*/) FOR
p.Subject/*需要行转列的列*/ IN ([语文],[数学],[英语],[生物]/*列的值*/)
) AS T

效果

列转行测试数据

CREATE TABLE ProgrectDetail
(
ProgrectName NVARCHAR(20), --工程名称
OverseaSupply INT, --海外供应商供给数量
NativeSupply INT, --国内供应商供给数量
SouthSupply INT, --南方供应商供给数量
NorthSupply INT --北方供应商供给数量
) INSERT INTO ProgrectDetail
SELECT 'A', 100, 200, 50, 50
UNION ALL
SELECT 'B', 200, 300, 150, 150
UNION ALL
SELECT 'C', 159, 400, 20, 320
UNION ALL

列转行

select P.ProgrectName,P.Supplier,P.SupplyNum
from
(
select ProgrectName, OverseaSupply, NativeSupply,
SouthSupply, NorthSupply
from ProgrectDetail
)T
unpivot
(
SupplyNum FOR Supplier IN
(OverseaSupply, NativeSupply, SouthSupply, NorthSupply )
) P

行专列case语句实现

select * from [StudentScores]
-- 使用case when (SQL2000以上)
select [UserName],
max(case 课程 when '语文' then 分数 else 0 end)语文,
max(case 课程 when '数学' then 分数 else 0 end)数学,
max(case 课程 when '英语' then 分数 else 0 end)英语,
max(case 课程 when '生物' then 分数 else 0 end)生物
from [StudentScores]
group by [UserName]

效果

6、1、1、2、3、5、8、13、21、34,求第30位数是多少,用递归算法实现。

  答:斐波纳契数列(Fibonacci Sequence),又称黄金分割数列。在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,从算法的角度利用递归和非递归两种方式实现:

  递归

private static  long Fibonacci(int n)
{
  long result = ;//当n<=2时都返回1
  if(n>)//当n>2时,进行递归计算
  {
    result= Fibonacci(n-)+Fibonacci(n-);
  }
  return result;
}

  循环

private static long Fibonacci(int n)
{
long result = ; //当n<=2时都返回1
if (n > ) //当n>2时,利用循环计算
{
long first = ;
long second = ;
int i = ;
n = n - ; //每次当然要减少两次循环
while (i < n)
{
first = second;
second = result;
result = first + second;
i++;
}
}
return result;
}

7、什么是匿名方法?请写一段代码

  答:匿名方法(Anonymous methods)匿名方法是没有名称只有主体的方法。 提供了一种传递代码块作为委托参数的技术。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

  匿名方法概念实例:

using System;

delegate void NumberChanger(int n);
namespace DelegateAppl
{
class TestDelegate
{
static int num = ;
public static void AddNum(int p)
{
num += p;
Console.WriteLine("Named Method: {0}", num);
} public static void MultNum(int q)
{
num *= q;
Console.WriteLine("Named Method: {0}", num);
}
public static int getNum()
{
return num;
} static void Main(string[] args)
{
// 使用匿名方法创建委托实例
NumberChanger nc = delegate(int x)
{
Console.WriteLine("Anonymous Method: {0}", x);
}; // 使用匿名方法调用委托
nc(); // 使用命名方法实例化委托
nc = new NumberChanger(AddNum); // 使用命名方法调用委托
nc(); // 使用另一个命名方法实例化委托
nc = new NumberChanger(MultNum); // 使用命名方法调用委托
nc();
Console.ReadKey();
}
}
}

输出的结果为:
Anonymous Method: 10
Named Method: 15
Named Method: 30

  上列匿名方法是通过使用delegate关键字创建委托实例来声明的。例如:

delegate void NumberChanger(int n);//声明一个有参的委托
...
NumberChanger nc = delegate(int x)
{
Console.WriteLine("Anonymous Method: {0}", x);
};

代码块

Console.WriteLine("Anonymous Method: {0}", x);

是匿名方法的主体。

  委托可以通过匿名方法调用,也可以通过命名方法调用,即,通过向委托对象传递方法参数。例如:

nc();

8、列出几种使用过的工作流产品和框架, 并简要对比他们的差异。

  答:java开发语言的jbpm、Apache ODE、Enhydra Shark、Bonita、Open Business Engine、Eclipse JWT

  .Net的Windows Workflow Foundation、NetBPM、CCFlow,参考

  模拟公司的请假流程,

这个典型的流程假设:公司有两级领导,一级为主管Chief,一级为老板Boss

场景描述:

在某公司中,部门员工休假需要主管Chief的批准。 
  如果休假天数大于10天,则 在部门主管同意后,还必须老板Boss批准。 
  如果是部门主管请假则直接提交老板批准。 
  在休假被批准之前,申请人可以撤销休假申请。 
  申请批准后,对休假天数进行修改(也可以是其他业务数据处理)。 每次休假申请结束之 后,不管通过未通过或是否取消,都必须记录下来。 
  流程结束时,系统要把请假的结果信息Email给申请人。

对于大于10天的申请,如果部门主管已批准同意而上级主管还未批准,这时申请人撤销申请后,系统应发Email通知部门主管申请已撤销。

9、列出你所了解的设计模式,说一说实用设计模式可能带来的好处,并尝试用代码写一个例子。

   答:是对面向对象设计中反复出现的问题的解决方案。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

  https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F

.Net面试题一的更多相关文章

  1. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  2. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  3. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  4. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  5. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...

  6. C++常考面试题汇总

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  7. .NET面试题系列[4] - C# 基础知识(2)

    2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...

  8. 我们公司的ASP.NET 笔试题,你觉得难度如何

    本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...

  9. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  10. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

随机推荐

  1. 服务器多进程powershell导致服务器瘫痪问题解决

    1.公司服务器多次无法访问,经查多由于开启了多个powershell进程,网上查询是被挖矿了,可通过将powershell应用程序重命名解决. 2.然而重命名的时候发现需要trustedInstall ...

  2. 预处理、const、static与sizeof-为什么要引入内联函数

    1:引入内联函数的主要目的是,用它替代C语言中表达形式的宏定义来解决程序中函数调用的效率问题.在C语言里可以使用如下的宏定义: #define ExpressionName(Var1,Var2) (V ...

  3. Arcengine获得arcgis安装的版本

    ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Version  //gsioracle MessageBox.Show(ESRI.ArcGIS.RuntimeMan ...

  4. 前端知识点回顾——Javascript篇(六)

    fetch 在原生ajax+es6promise的基础上封装的一个语法糖,返回promise对象. fetch(url, initObj) .then(res=>res.json()) .the ...

  5. springboot-mvc:入参日期类型转换String->Date

    4种方式: 1.通过在application.ym中配置 spring.mvc.data-format: yyyy-MM-dd HH:mm:ss ,使用的是ParserConverter 优点:简单的 ...

  6. 【SR汇总】效果对比

    算法时间效率 -见 https://www.cnblogs.com/wxl845235800/p/10826957.html 1.SRCNN <Learning a Deep Convoluti ...

  7. javascript 数据分组

    一.静态数据 [ {"id":"1001","name":"值1","value":"11 ...

  8. mybatis之动态SQL操作之删除

    /** * 持久层 */ public class StudentDao { /** * 动态SQL--删除 */ public void dynaSQLwithDelete(int... ids) ...

  9. 学一学Transfomer

    017年,Google发表论文<Attention is All You Need>,提出经典网络结构Transformer,全部采用Attention结构的方式,代替了传统的Encode ...

  10. Java网络编程简明教程

    Java网络编程简明教程 网络编程  计算机网络相关概念 计算机网络是两台或更多的计算机组成的网络,同一网络内的任意两台计算机可以直接通信,所有计算机必须遵循同一种网络协议. 互联网 互联网是连接计算 ...