一、進程和線程的區別是什麼?html
答:https://www.cnblogs.com/renzhuang/articles/6733461.html
二、請列舉ASP.Net頁面之間傳遞值的幾種方式?列出3種前端
答:https://www.cnblogs.com/jhuang-com/p/5961513.html
三、請解釋ASP.Net MVC開發框架,並說明使用MVC有哪些好處?java
答:總的來講MVC設計模式能夠方便開發人員分工協做,提升開發效率,加強程序的可維護性和拓展性並且還利用Controller將Model與View分離,下降它們之間的耦合度。算法
更快的服務器端處理和客戶端呈現:MVC只簡單地處理「模板」,而無需構建複雜的控件樹,所以,不管是在服務器處理的時間,和客戶端的呈現速度都會有所提升;MVC優勢:1.大型開發的時候容易維護,擴展性很好。2.可以對HTML有徹底的控制權限,對於前端來講很友好。3.可以進行單元測試,保證功能的實現。缺點:1.沒有那麼多的現成控件使用,開發效率相對較低(特別是對於菜鳥來講)2.對於大型數據的處理比較難,仍是由於沒有現成girdview控件。這個控件雖然生成的html結構異常複雜,可是對於處理大量並且複雜的數據來講是很不錯的。不過通常網站是不多有這種大量且複雜的數據,不少菜鳥都是用這個大炮來打蚊子,浪費且低效率。對於網站開發來講這個控件應該不推薦使用。sql
簡單地講:C# 是語言, asp.net, asp.net mvc,winform,wpf,wcf 都是框架設計模式
既然是框架,則都提供了一些框框(規範,標準,接口)等服務器
開發時按這些框框走,就實現了咱們想要的結果mvc
可是不一樣的框架提供的框框是不同的,框架
是圓的框咱們就得把本身削成圓的往裏套,asp.net
是方的框咱們就得把本身吃成胖子往裏套,
固然,不論是圓框仍是方框,都能達到目的
winform 走的是 win32 gdi 的路子,wpf走的是Directx 的路子,
但他們都能實現桌面程序的界面效果
asp.net 走的是頁面週期,服務端控件Render成HTMl的路子,
asp.net mvc 走的是路由到不一樣的View的路子,可是他們都能實現Web 站點的功能
四、請寫出一條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 返回 兩個結果集的交集(即兩個查詢都返回的全部非重複值)。
五、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]
效果
六、一、一、二、三、五、八、1三、2一、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 = 1;//當n<=2時都返回1 if(n>2)//當n>2時,進行遞歸計算 { result= Fibonacci(n-1)+Fibonacci(n-2); } return result; }
循環
private static long Fibonacci(int n) { long result = 1; //當n<=2時都返回1 if (n > 2) //當n>2時,利用循環計算 { long first = 1; long second = 1; int i = 0; n = n - 2; //每次固然要減小兩次循環 while (i < n) { first = second; second = result; result = first + second; i++; } } return result; }
七、什麼是匿名方法?請寫一段代碼
答:匿名方法(Anonymous methods)匿名方法是沒有名稱只有主體的方法。 提供了一種傳遞代碼塊做爲委託參數的技術。在匿名方法中您不須要指定返回類型,它是從方法主體內的 return 語句推斷的。
匿名方法概念實例:
using System; delegate void NumberChanger(int n); namespace DelegateAppl { class TestDelegate { static int num = 10; 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(10); // 使用命名方法實例化委託 nc = new NumberChanger(AddNum); // 使用命名方法調用委託 nc(5); // 使用另外一個命名方法實例化委託 nc = new NumberChanger(MultNum); // 使用命名方法調用委託 nc(2); 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(10);
八、列出幾種使用過的工做流產品和框架, 並簡要對比他們的差別。
答: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通知部門主管申請已撤銷。
九、列出你所瞭解的設計模式,說一說實用設計模式可能帶來的好處,並嘗試用代碼寫一個例子。
答:是對面向對象設計中反覆出現的問題的解決方案。是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。
https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F