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. 【Android】【踩坑日记】解决Error:SSL peer shut down incorrectly

    前提条件 http://services.gradle.org/distributions/ 复制到浏览浏览器能打开 下一步 打开Android studiogradle version 配置文件进行 ...

  2. axios中出现两次请求,OPTIONS请求和GET请求

    在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...

  3. ubuntu php

    ubuntu 12.04安装php7 和配置apache2 https://www.cxybj.com/?p=231 https://blog.csdn.net/u011608531/article/ ...

  4. LC 781. Rabbits in Forest

    In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how ...

  5. 001-tomcat下载、解压、启动、开机启动

    一.tomcat作用 Tomcat就是Servlet容器 下载解压 下载:找到合适版本下载使用即可 http://tomcat.apache.org/ window 下载zip解压 linux上使用 ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-3.Vidoe相关接口完善和规范协议

    笔记 3 .Vidoe相关接口完善和规范协议     简介:完善相关接口,协议规范讲解 1.save接口保存对象             1)@RequestParam(value = "p ...

  7. 用pyhton配置LVS_DR模式

    import paramiko vip = '192.168.42.250' ds = '192.168.42.8' rs1 = '192.168.42.9' rs2 = '192.168.42.10 ...

  8. Linux系统管理_主题01 :初识Linux_1.7 关闭和重启Linux_shutdown

    shutdown [选项] 时间 [警告消息] 系统关机  -c 取消前一个 shutdown 命令.值得注意的是,当执行一个如 “shutdown -h 11:10”的命令时,只要按“Ctrl+C ...

  9. Java数组(4):数组实用功能

    Java标准类库的System.arraycopy()方法,及在java.utils.Arrays类中一套用于数组的static方法,都是操纵数组实用功能.下面分别介绍. (1) 数组的复制 (2)  ...

  10. .Netcore 2.0 Ocelot Api网关教程(3)- 路由聚合

    在实际的应用当中,经常会遇到同一个操作要请求多个api来执行.这里先假设一个应用场景:通过姓名获取一个人的个人信息(性别.年龄),而获取每种个人信息都要调用不同的api,难道要依次调用吗?在Ocelo ...