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. HTML语义化是什么?为什么要语义化?

    HTML语义化HTML的语义化总结为: 用最恰当的标签来标记内容. 该如何理解呢?比如需要加入一个标题,这个标题的字体比正文的要大写,还要加粗.能够实现这种效果的方法有很多,比如用CSS样式进行渲染. ...

  2. PDB GDB 调试代码

    https://blog.csdn.net/zdy0_2004/article/details/80102076 https://www.jianshu.com/p/fb5f791fcb18

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

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

  4. Linux设备驱动程序 之 装载和卸载模块

    前置说明 本文例子中涉及两个模块hello.ko和world.ko,其中hello导出符号供world使用: insmod 该命令将模块的代码和数据装入内核,然后使用内核的符号表继续模块中任何未解析的 ...

  5. TensorFlow错误ValueError: No gradients provided for any variable

    使用TensorFlow训练神经网络的时候,出现以下报错信息: Traceback (most recent call last):   File "gan.py", line 1 ...

  6. ubuntu 17.04 添加用户到sudo组

    最近在系统中安装了KVM和docker,用KVM的时候好好的,可以直接使用virsh等命令.但是安装了docker,使用docker命令时需要在前面加上sudo,这个用起来就挺麻烦的,于是想到dock ...

  7. mongodb 的云数据库产品 atlas 的使用

    前言:最近发现 mlab 被mongodb 收购以后,不再支持新用户,推荐使用 MongoDB Atlas 第一步:注册或登陆 在MongoDB atlas首页,如果有账号,那就点击登陆.否则点击Ge ...

  8. golang中mysql建立连接超时时间timeout 测试

    本文测试连接mysql的超时时间. 这里的"连接"是建立连接的意思. 连接mysql的超时时间是通过参数timeout设置的. 1.建立连接超时测试 下面例子中,设置连接超时时间为 ...

  9. Linux终端中文显示乱码

    今天,帮我们同学处理一下中文显示乱码的问题.这个是个国内Linux用户烦恼的问题,由于大部分的Linux发行版都是以英语为主体的,而且英文在通用性和稳定性上都比中文要好一些,各种奇怪的BUG也要少一点 ...

  10. powerdesigner通过er图生成mysql执行文件

    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一.Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesign ...