面試寶典

1·視圖零時表,加快數據的查詢javascript

上傳步驟:使用到了FileUpload控件,FileStreamhttppostfilecss

1,準備文件名html

2,將上傳文件緩存在內存中前端

3.採用流的方式邊上傳變接收,接收內容寫入磁盤中java

1. CLRCTSCLS 分別是什麼意思? node

共公語言運行庫,通用類型系統,公共語言規範c++

2. 什麼是基元類型? 程序員

由編譯器直接支持的數據類型稱爲基元類型. web

例如:C#中的int,string等等就是,實際運行過程當中被映射爲FCL中對應的類型(java中叫作包裝類)面試

如:System.Int32,System.String. 

3. 值類型和引用類型的區別是什麼?爲何要設計值類型?值類型會被GC回收嗎?值類型是否能在託管堆分配?

1. a.值類型的數據存儲在內存的棧中;引用類型的數據存儲在內存的堆中,而內存單元中只存放堆中對象的地址。 b.值類型存取速度快,引用類型存取速度慢。 c.值類型表示實際數據,引用類型表示指向存儲在內存堆中的數據的指針或引用d.值類型繼承自System.ValueType,引用類型繼承自System.Object  e.C#中基本數據類型是值類型,結構也是值類型。而數組、類、接口、字符串都是引用類型。 

2. 設計值類型爲了效率高,快速分配空間

3.它在棧上,不會被GC回收.(GC只回收託管堆上的內容)

4.不能夠,除非將它裝箱.

4. Equals= =ReferenceEquals 如何區別使用?

Equals肯定指定的實例是否被視爲相等,可是若是爲空就不能被調用,常被重寫override

==:對於預約義的值類型,若是操做數的值相等,則相等運算符 (==) 返回 true,不然返回 false。對於 string 之外的引用類型,若是兩個操做數引用同一個對象,則 == 返回 true。對於 string 類型,== 比較字符串的值。

ReferenceEquals是Object的靜態方法,用於比較兩個引用類型的對象是不是對於同一個對象的引用。對於值類型它老是返回false。

5. 什麼是虛方法?如何理解多態?

虛方法就是用virtual修飾的方法.調用虛方法時,將爲重寫成員檢查該對象的運行時類型。將調用大部分派生類中的該重寫成員,若是沒有派生類重寫該成員,則它多是原始成員.它是實現多態的途徑之一.

 經過多態,實現了對象的多樣性,而且實現遲綁定,提升程序的靈活性.  

6. overload  override 有什麼區別?

Overload:c#沒有該關鍵字,理解爲重載,屬於運行前,編譯時的一種技術.是繼承的範疇.

Override:是運行時技術,用它實現多態.

方法的重寫Overriding和重載Overloading是多態性的不一樣表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。若是在一個類中定義了多個同名的方法,它們或有不一樣的參數個數或有不一樣的參數類型,則稱爲方法的重載(Overloading)。Overloaded的方法是能夠改變返回值的類型。 

7. 基於接口編程的目的是什麼?什麼狀況下使用接口,什麼狀況下使用抽象類?

目的:(1)a.採用基於接口編程的項目,業務邏輯清晰,代碼易懂,方便擴展,可維護性強。 b. 接口和實現分離了,適於團隊的協做開發。 C.能夠參看IDP原則。

(2) 用來對實現它的類提供約束用接口

(3) 當要訪問到數據成員或屬性時,用抽象類.

基於接口編程的目的是爲了提升程序的靈活性.

當一個類要準備繼承多個類的時候,必須用接口,

當一個類須要被繼承且有方法必需要被定義時,用抽象類.

8. 委託是什麼意思?什麼叫委託鏈?咱們能在代碼中繼承 MulticastDelegate嗎? 

(1) 委託是一個能夠對方法進行引用的類。與其餘的類不一樣,委託類具備一個簽名,而且它只能對與其簽名匹配的方法進行引用

1.委託是經過對方法名的調用來調用方法的一種對象,委託相似於 C++ 函數指針,但它們是類型安全的。

委託容許將方法做爲參數進行傳遞。委託可用於定義回調方法。

2.將多個委託連接在一塊兒,供對象使用,構成委託鏈

3. MulticastDelegate 是一個特殊類。編譯器和其餘工具能夠今後類派生,可是不能顯式地今後類進行派生

9. 實現 Iterators 通常用到哪些接口? 

IEnumerable, IEnumerator

10. 請寫一個簡單泛型類型,要求有兩個泛型參數 TK,其中 T 必須是值類型,K 必須實現了 IDisposable 接口。 

class cls<T,K>

     where T:struct

     where K:IDisposable

{

      private bool disposed = false; 

      public cls() { }

      public void Dispose()

      {

            Dispose(true);

            GC.SuppressFinalize(this);

       } 

       private  void  Dispose(bool disposing)

       {

            if(!this.disposed)

            { 

                if(disposing)  { component.Dispose();}

                CloseHandle(handle);

                handle = IntPtr.Zero;

                disposed = true; 

            }

        }

}
11、簡要談一下您對微軟.NET構架下remoting·兩項技術的理解以及實際中的應用。 

remoting是.net   中服務器端向客戶端發送一個進程編號,一個程序域編號,以肯定對象的位置,跨越machine,   process,   appdomain   進行方法調用的技術,對於三層結構的程序,就能夠使用remoting技術來構建.它是分佈應用的基礎技術.至關於之前的DCOM, Remoting能夠利用TCP/IP,二進制傳送提升效率.

Web Service是一種構建應用程序的普通模型,並能在全部支持internet網通信的操做系統上實施。Web   Service令基於組件的開發和web的結合達到最佳,基於組件的對象模型 . Web   Service主要是可利用HTTP,穿透防火牆.

12 .請解釋ASPNET中以什麼方式進行數據驗證

  Aps.net 中有非空驗證,比較驗證,取值範圍驗證,正則表達式驗證及客戶自定義驗證五大控件,另還有一個集中驗證信息處理控件

13  WEB控件能夠激發服務端事件,請談談服務端事件是怎麼發生並解釋其原理?自動傳回是什麼?爲何要使用自動傳回。

在web控件發生事件時,客戶端採用提交的形式將數據交回服務端,服務端先調用Page_Load事件,而後根據傳回的狀態信息自動調用服務端事件自動傳回是當咱們在點擊客戶端控件時,採用提交表單的形式將數據直接傳回到服務器端.
只有經過自動傳回才能實現服務端事件的機制,若是沒有自動回傳機制就只能調用客戶端事件,而不能調用服務端事件,模擬單擊按鈕時發生到服務器的往返行程.

14  WEB控件及HTML服務端控件可否調用客戶端方法?若是能,請解釋如何調用?

能夠調用

例如: <asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server">

</asp:TextBox>

<INPUT id="Button2" value="Button" name="Button2"

runat="server" onclick="clientfunction();">

15  請解釋ASPNET中的web頁面與其隱藏類之間的關係?

一個ASP.NET頁面通常都對應一個隱藏類,通常都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明以下

<%@ Page language="c#"Codebehind="Tst1.aspx.cs" AutoEventWireup="false"Inherits="T1.Tst1" %>

Codebehind="Tst1.aspx.cs" 代表經編譯此頁面時使用哪個代碼文件,Inherits="T1.Tst1" 表用運行時使用哪個隱藏類.Web頁面描述的是顯示內容,而隱藏類描述的大可能是c#的業務邏輯,

16  什麼是viewstate,可否禁用?是否所用控件均可以禁用?

Viewstate是保存頁面標籤狀態的一種機制,EnableViewState屬性設置爲false便可禁用,理論上均可以禁用,可是一個頁面總會有20個字節來保留頁面標籤的內容.

17  當發現不能讀取頁面上的輸入的數據時頗有多是什麼緣由形成的?怎麼解決

頗有多是在Page_Load中數據處理時沒有進行Page的IsPostBack屬性判斷

18  請解釋什麼是上下文對象,在什麼狀況下要使用上下文對象

上下文對象是指HttpContext類的Current 屬性,當咱們在一個普通類中要訪問內置對象

(Response,Request,Session,Server,Appliction等)時就要以使用此對象. (它封裝有關HTTP 請求中的全部 HTTP 特定的信息,因爲WEB程序以請求爲基礎的,因此經過這個能夠訪問請求頁面的信息.)

19請解釋轉發與跳轉的區別?

(1)轉發就是服務端的跳轉A頁面提交數據到B頁面,B頁面進行處理而後從服務端跳轉到其它頁面,是服務器端行爲,之前的request中存放的變量不會失效,就像把兩個頁面拼到了一塊兒,asp.net中的Server.Transfer就是,地址欄不會改變內容。速度較快。

(2)跳轉就是指客戶端的跳轉,是客戶端行爲。

 Response.Redirect()就是。

20.請簡述一下用Socket進行同步通信編程的詳細步驟:

一、在應用程序和遠程設備中使用協議和網絡地址初始化套接字 
二、在應用程序中服務器端經過指定端口和地址創建監聽,服務器掛起等待 
三、遠程設備(客戶端)發出鏈接請求 ,服務器激活
四、應用程序接受鏈接產生通訊socket
五、應用程序和遠程設備開始通信(在通信中應用程序將掛起直到通信結束) 
六、通信結束,關閉應用程序和遠程設備的Socket回收資源

21 請解釋web.config文件中的重要節點

appSettings包含自定義應用程序設置。

system.web 系統配置

compilation動態調試編譯設置

customErrors自定義錯誤信息設置

authentication身份驗證,此節設置應用程序的身份驗證策略。

authorization受權,此節設置應用程序的受權策

22請說明在.net中經常使用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。 

(1)使用QueryString; 簡單,易被僞造,長度有限

(2).使用Session(viewstate) 簡單,但易丟失 

(3).使用Server.Transfer

(4).application 全局 簡單,但消耗服務器資源

(5).cookie 簡單,但可能不支持,可能被僞造 

(6).input ttype="hidden" 簡單,可能被僞造 

(7).數據庫穩定,安全,但性能相對弱

23.net的錯誤處理機制是什麼

.net錯誤處理機制採用try->catch->、結構,發生錯誤時,層層上拋,直到找到匹配的Catch爲止。

24C#中接口和類的異同

接口和類都是引用類型,不一樣的是,接口只包含方法或屬性的聲明,不包含具體實現方法的代碼,接口能夠實現多繼承,而類只能是單繼承,繼承接口的類必須實現接口中聲明的方法或屬性。接口主要定義一種規範,統一調用方法,在大型項目中接口正發揮日益重要的做用。

25DataReaderDataSet的異同

(1)DataReader使用時始終佔用SqlConnection,在線操做數據庫..任何對SqlConnection的操做都會引起DataReader的異常..

由於DataReader每次只在內存中加載一條數據,因此佔用的內存是很小的..

由於DataReader的特殊性和高性能.因此 DataReader是隻進的..你讀了第一條後就不能再去讀取第一條了..

(2)DataSet則是將數據一次性加載在內存中.拋棄數據庫鏈接..讀取完畢即放棄數據庫鏈接..由於DataSet將數據所有加載在內存中.因此比較消耗內存...可是確比DataReader要靈活..能夠動態的添加行,列,數據.對數據庫進行回傳更新操做...

 

26.c#usingnew這兩個關鍵字有什麼意義,請寫出你所知道的意義?

Using 引入一個名子空間,或在使用了一個對像後自動調用其IDespose,

New 實例化一個對像,或修飾一個方法,表示此方法重寫父類同名方法

27談談類和結構的區別?

最大區別一個是引用類型,一個是值類型

1)、結構是值類型;  2)、結構不支持繼承;

  3)、結構不能定義默認的構造函數;

  4)、結構不能定義析構函數;

  5)、結構不能使用初始值設置域值。 

28..netC# or vb.net)中如何得到當前窗體或控件的句柄,特別是控件自己的句柄(請列舉)

this(C#) Me(vb.net).

29.netC# or vb.net)中如何用戶自定義消息,並在窗體中處理這些消息。

在form中重載DefWndProc函數來處理消息:

protected override void DefWndProc ( ref System.WinForms.Message m )

{

switch(m.msg)

{

case WM_Lbutton :

 ///string與MFC中的CString的Format函數的使用方法有所不一樣 

 string message = string.Format("收到消息!參數爲:{0},{1}",m.wParam,m.lParam);

 MessageBox.Show(message);///顯示一個消息框 

 break;

case USER:

處理的代碼

default:

 base.DefWndProc(ref m);///調用基類函數處理非自定義消息。 

 break;

}

}

30. .netC# or vb.net)如何啓動另外一個程序。

Process類的靜態方法Start 

31. .netC# or vb.net)中如何取消一個窗體的關閉

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{e.Cancel=true;}

 

32..netC# or vb.net)中,Appplication.Exit 仍是 Form.Close有什麼不一樣?

一個是退出整個應用程序,一個是關閉一個form

33.C#中有一個double型的變量,好比10321.5,好比122235401.21644,做爲貨幣的值如何按各個不一樣國家的習慣來輸出。好比美國用$10,321.50$122235401.22而在英國則爲£10 321.50和£122 235 401.22

System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");

//System.Globalization.CultureInfo MyCulture =new System.Globalization.CultureInfo("en-GB");爲英國貨幣

類型

decimal y = 9999999999999999999999999999m;

string str = String.Format(MyCulture,"My amount = {0:c}",y);

34. 某一密碼僅使用KLMNO5個字母,密碼中的單詞從左向右排列,密碼單詞必須遵循以下規則:

1 密碼單詞的最小長度是兩個字母,能夠相同,也能夠不一樣

2 K不多是單詞的第一個字母

3 若是L出現,則出現次數不止一次

4 M不能使最後一個也不能是倒數第二個字母

5 K出現,則N就必定出現

6 O若是是最後一個字母,則L必定出現

問題一:下列哪個字母能夠放在LO中的O後面,造成一個3個字母的密碼單詞?(B)

A) K   B)L    C) M   D) N

問題二:若是能獲得的字母是KLM,那麼可以造成的兩個字母長的密碼單詞的總數是多少?(A)

A)1個 B)3個 C)6個 D)9個 

問題三:下列哪個是單詞密碼?(C)

A) KLLN B) LOML C) MLLO D)NMKO

35. 62-63=1 等式不成立,請移動一個數字(不能夠移動減號和等於號),使得等式成立,如何移動?

答案:62移動成2的6次方

36.C#中的接口和類有什麼異同。

答:接口是負責功能的定義,項目中經過接口來規範類,操做類以及抽象類的概念,而類是負責功能的具體實現! 

抽象類與接口的區別在於: 

抽象類是一個不徹底的類,類裏面有抽象的方法,屬性,也能夠有具體的方法和屬性,須要進一步的專業化。但接口是一個行爲的規範,裏面的全部東西都是抽象的!一個類只能夠繼承一個基類也就是父類,但能夠實現多個接口

 

 

37.net中讀寫數據庫須要用到哪些類?以及做用

答:這個類自已能夠寫的啊,你是指基類嗎?那configuration 讀取配置文件鏈接字符串

connection鏈接對象

DataReader向前只讀的數據流。

Command 命令對象,執行SQL命令與存儲過程

DataAdapadte功能強大的適配器,支持增刪改查的功能

DataSet是數據集對象,至關與內存中的數據庫,還可存放表這間的關係

38.什麼是SOAP,有哪些應用。

答:SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最經常使用的仍是HTTP協議),能夠容許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通訊。這種相互通訊採用的是XML格式的消息。經常使用在web服務,WCF等應用中.

39.經常使用的調用webservice方法有哪些?

(1)能夠從瀏覽器、ASP頁或其餘WEB服務調用能夠使用HTTP-GET   HTTP-POST訪問WEB服務也能夠從ASP頁或其餘

(2)WEB服務向其餘WEB服務發出SOAP請求HTTP-GET   HTTP-POST  SOAP  使用WEB服務代理

40.私有程序集與共享程序集有什麼區別?

一個私有程序集一般爲單個應用程序所使用,而且存儲於這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。共享程序集一般存儲在全局程序集緩存(Global Assembly Cache)之中,這是一個由.NET運行時所維護的程序集倉庫。共享程序集一般是對許多應用程序都有用的代碼庫,好比.NET Framework類。

41請解釋進程與線程的區別?進程與程序的區別?

通常,一個應用程序對應於一個或多個進程,能夠把進程看做是該應用程序在*做系統中的標識;而一個進程一般由多個線程組成,而線程是*做系統爲該應用程序分配處理時間的最小單元。 

42. CLRIL分別是什麼含義?

CLR:公共語言運行時,相似於Java中的JVM,Java虛擬機;在.Net環境下,各類編程語言使用一種共同的基礎資源環境,這就是CLR,CLR將直接與*做系統進行通訊,而編程語言如C#.NET將盡可能避免直接與*做系統直接通訊,增強了程序代碼的執行安全性,能夠這樣看:CLR就是具體的編程語言,如:C#.NET與*做系統之間的翻譯,同時它爲具體的編程語言提供了許多資源,編程語言第一次編譯會生成IL,IL的運行要依賴CLR。

IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;全部.NET源代碼(無論用哪一種語言編寫)在進行編譯時都被編譯成IL。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成爲機器碼,被解釋及執行。

43.什麼叫作SQL注入,如何防止?請舉例說明。

利用sql關鍵字對網站進行攻擊。過濾關鍵字'等 

所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特色,故意從客戶端提交特殊的代碼,從而收集程序及服務器的信息,從而獲取想獲得的資料。目前防止的主要思路是對輸入的內容進行驗證。

a 產生一個int數組,長度爲100,並向其中隨機插入1-100,而且不能重複。 

int[] intArr=new int[100];

ArrayList myList=new ArrayList();

Random rnd=new Random();

while(myList.Count<100)

{

int num=rnd.Next(1,101);

if(!myList.Contains(num))

myList.Add(num);

}

for(int i=0;i<100;i++)

intArr[i]=(int)myList[i];

44.net身份驗證模式有哪些?

form ,Windows ,passport(護照),none

45.什麼是反射

在運行中獲得程序集的信息(包類型,及成員,反射提供了封裝程序集、模塊和類型的對象。)反射:在運行時找到有關對象、對象的類,方法和變量等信息。 System.Reflection 

ORM  O/R mapping 對象關係映射。

46.能用foreach遍歷訪問的對象須要實現 _ IEnumerable 接口或聲明_ GetEnumerator 方法的類型。

47.c#中的三元運算符是   ? :  

48.類成員有  4  種可訪問形式?

 private   私有的成員類公爲類本身內部使用

Protected  收保護的成員,本身類和繼承類使用

Public  共開類,爲使用類共用

internal   在同一命名空間中使用

49.public static const int A=1;這段代碼有錯誤麼?是什麼? 

const成員都是static,因此應該去掉static

50.float f=-123.567F;  int i=(int)f;

i的值如今是_-123____?

51.利用operator聲明且僅聲明瞭==,有什麼錯誤麼? 要同時修改Equale和GetHash() ? 重載了"==" 就必須重載 "!="

52.委託聲明的關鍵字是___ delegate ___

53.Asp.net中全部的自定義用戶控件都必須繼承自_ System.Web.UI.UserControl

54..Net中全部可序列化的類都被標記爲__[serializable]___.

55..Net託管代碼中咱們不用擔憂內存漏洞,這是由於有了_ gC __?

56.下面的代碼中有什麼錯誤嗎?

using System;

class A

{

public virtual void F(){

Console.WriteLine("A.F");

}

}

abstract class B:A

{

public abstract override void F();

}

abstract 、你 是不能夠一塊兒修飾

57.當類T只聲明瞭私有實例構造函數時,則在T的程序文本外部,_不能夠_(能夠 or 不能夠)從T派生出新的類,_不能夠_(能夠 or 不能夠)直接建立T的任何實例。

58.下面這段代碼有錯誤麼?

switch (i){

case():CaseZero();break;

case 1:CaseOne();break;

case 2:dufault;CaseTwo();break;

}

case():不行 default;

59..Net中,類System.Web.UI.Page 能夠被繼承麼?能夠

60. 不定項選擇:

(1) 如下敘述正確的是: B C

B 一個類能夠實現多個接口;C接口不能被實例化。

(2) 從數據庫讀取記錄你可能用到的方法有:B C D

 B. ExecuteScalar C. Fill

 D. ExecuteReader

61.對於一個實現了IDisposable接口的類,如下哪些項能夠執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選)   (ABC)   

  A.Close     B.Dispose    C.Finalize   

62.如下關於refout的描述哪些項是正確的?(多選)   (ACD)   

A.使用ref參數,傳遞到ref參數的參數必須最早初始化。   

C.使用ref參數,必須將參數做爲ref參數顯式傳遞到方法。   

D.使用out參數,必須將參數做爲out參數顯式傳遞到方法。 

63.在對SQL Server 數據庫操做時應選用(A)。

a)SQL Server .NET Framework 數據提供程序;

64.下列選項中,C是引用類型

a)enum類型 b)struct類型 c)string類型   d)int類型

65.關於ASP.NET中的代碼隱藏文件的描述正確的是(C) 

c)項目中全部的Web窗體頁的代碼隱藏文 件都被編譯成項目動態連接庫(.dll)文件。

66.如下描述錯誤的是(A)

a)在C++中支持抽象類而在C#中不支持抽象類。

b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件而且在同一處聲明和定義類的成員。

c)在C#中可以使用 new 修飾符顯式隱藏從基類繼承的成員。

d)在C#中要在派生類中從新定義基類的虛函數必須在前面加Override。

67.C#的數據類型有(B) b)值類型和引用類型; 

68.下列描述錯誤的是(D)

a)類不能夠多重繼承而接口能夠;

b)抽象類自身能夠定義成員而接口不能夠;

c)抽象類和接口都不能被實例化;

d)一個類能夠有多個基類和多個基接口;

69.DOM中,裝載一個XML文檔的方法(D)

 b)load方法  d) loadXML()方法 

70.下列關於構造函數的描述正確的是(C)

c)構造函數必須與類名相同

71.如下是一些C#中的枚舉型的定義,其中錯誤的用法有(D)

a)public enum var1{ Mike = 100, Nike = 102, Jike }

b)public enum var1{ Mike = 100, Nike, Jike }

c)public enum var1{ Mike=-1 , Nike, Jike }

d)public enum var1{ Mike , Nike , Jike }

72.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(D)。

a)9      b)2   c)6      d)越界

73.接口是一種引用類型,在接口中能夠聲明(A),但不能夠聲明公有的域或私有的成員變量。

a)方法、屬性、索引器和事件;

b)方法、屬性信息、屬性; 

c)索引器和字段;    d)事件和字段;

74.ASP.NET框架中,服務器控件是爲配合Web表單工做而專門設計的。服務器控件有兩種類型,它們是(A )      a)HTML控件和Web控件

75.ASP.NET中,在Web窗體頁上註冊一個用戶控件,指定該控件的名稱爲」Mike」,正確的註冊指令爲( D)

a)<%@Register TagPrefix = 「Mike」 TagName = 「Space2」 Src = 「myX.ascx」%>

b)<%@Register TagPrefix = 「Space2」 TagName = 「Mike」 Src = 「myX.ascx」%>

c)<%@Register TagPrefix = 「SpaceX」 TagName = 「Space2」 Src = 「Mike」%>

d)以上皆非

76.ADO.NET中,對於Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯誤的是(C)。

a)insert、update、delete等操做的Sql語句主要用ExecuteNonQuery()方法來執行;

b)ExecuteNonQuery()方法返回執行Sql語句所影響的行數。

c)Select操做的Sql語句只能由ExecuteReader()方法來執行;

d)ExecuteReader()方法返回一個DataReder對象;

77.下列ASP.NET語句b正確地建立了一個與SQL Server 2000數據庫的鏈接。

b)SqlConnection con1= new SqlConnection(「Data Source = localhost; Integrated Security = SSPI; Initial

Catalog = myDB」);

78.Winform中,關於ToolBar控件的屬性和事件的描述不正確的是(D)。

a)Buttons屬性表示ToolBar控件全部工具欄按鈕

b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小,如高度和寬度

c)DropDownArrows屬性代表工具欄按鈕(按鈕有一列值須要如下拉方式顯示)旁邊是否顯示下箭頭鍵

d)ButtonClick事件在用戶單擊工具欄任何地方時都會觸發

79.ADO.NET中執行一個存儲過程時,若是要設置輸出參數則必須同時設置參數的方向和B ,必要時還要設置參數尺寸。

a)大小;             b)上限;              

c)初始值;            d)類型;

80.若是將窗體的FormBoderStyle設置爲None,則( B)。     

b)窗體沒有邊框但能調整大小; 

81.若是要將窗體設置爲透明的,則( B)

b)要將Opacity屬性設置爲小於100%得值; 

82.下列關於C#中索引器理解正確的是(B/C )

   b)索引器的參數類型必須是整數型

c)索引器沒有名字                

83.下面描述錯誤的是( C/D)

a)窗體也是控件; b)窗體也是類; 

84.要對註冊表進行操做則必須包含( D)。

a)System.ComponentModel命名空間; b)System.Collections命名空間;

c)System.Threading命名空間;      d)Microsoft.Win32命名空間;

85.要建立多文檔應用程序,須要將窗體的(D)屬性設爲true     d)IsMdiContainer;

86.若是設treeView1=new TreeView(),則treeView1.Nodes.Add("根節點")返回的是一個 (a)類型的值

a)TreeNode;b)int;c)string;d)TreeView;

87.下面關於XML的描述錯誤的是(D)。

a)XML提供一種描述結構化數據的方法;

b)XML 是一種簡單與平臺無關並被普遍採用的標準;      c)XML文檔可承載各類信息; 

88.裝箱、拆箱操做發生在: (  C  )

C.引用類型與值類型之間   

89.用戶類若想支持Foreach語句須要實現的接口是: (  A  )

A.IEnumerable         B.IEnumerator

C.ICollection         D.ICollectData

90.Net Framework經過什麼與COM組件進行交互操做?(   C )

A.Side By Side          B.Web Service

C.Interop               D.PInvoke

91.Net依靠如下哪一項技術解決COM存在的Dll Hell問題的?( A   )

A.Side By Side         B.Interop

C.PInvoke              D.COM+

92.裝箱與拆箱操做是不是互逆的操做?(  B  )

A.是        B.否

93.如下哪一個是能夠變長的數組?(  D  )

A.Array                      B.string[]

C.string[N]                  D.ArrayList

94.用戶自定義異常類須要從如下哪一個類繼承:(A )

A.Exception                      

95.如下代碼段中可否編譯經過?請給出理由。

try

{  }

catch(FileNotFoundException e1)

{  }

catch(Exception e2)

{  }

catch(IOException e3)

{  }

catch

{  }

能夠經過,由於try塊中沒有東西,因此直接跳過catch;若是try塊中有東西也沒關係,catch塊一個個執行……

96.對於一個實現了IDisposable接口的類,如下哪些項能夠執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選) (   ABC)

A.Close  B.Dispose  C.Finalize  D.using    

97.Net依賴如下哪項技術實現跨語言互用性?(C )   C.CLS                

98.請問: String類與StringBuilder類有什麼區別?爲何在.Net類庫中要同時存在這2個類?

 若是要操做一個不斷增加的字符串,儘可能不用String類,改用StringBuilder類。兩個類的工做原理不一樣:String類是一種傳統的修改字符串的方式,它確實能夠完成把一個字符串添加到另外一個字符串上的工做沒錯,可是在.NET框架下,這個操做實在是划不來。由於系統先是把兩個字符串寫入內存,接着刪除原來的String對象,而後建立一個String對象,並讀取內存中的數據賦給該對象。這一來二去的,耗了很多時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,可以在已有對象的原地進行字符串的修改,簡單並且直接。固然,通常狀況下覺察不到這兩者效率的差別,但若是你要對某個字符串進行大量的添加操做,那麼StringBuilder類所耗費的時間和String類簡直不是一個數量級的。 

99.如下哪一個類是int的基類?(  A  )

A.Int32         D.Int16

2、C# 部分*

100.如下哪些能夠做爲接口成員?(多選) ( ABDE )

A.方法 B.屬性   C.字段   D.事件   E.索引器

F.構造函數    G.析構函數

101.如下關於refout的描述哪些項是正確的?(多選) (   ACD     )

A.使用ref參數,傳遞到ref參數的參數必須最早初始化。     

C.使用ref參數,必須將參數做爲ref參數顯式傳遞到方法。    

 D.使用out參數,必須將參數做爲out參數顯式傳遞到方法。

102.「訪問範圍限定於此程序或那些由它所屬的類派生的類型是對如下哪一個成員可訪問性含義的正確描述?(  B   )

A.public           B.protected

C.internal         D.protected internal

 

103.class Class1

{

    private static int count = 0;

    static Class1()

    {  count++;  }

    public Class1()

    { count++;  }

}

Class1 o1 = new Class1();

Class1 o2 = new Class1();

請問,o1.Count的值是多少?(  C  )

A.1   B.2       C.3        D.4

104.abstract class BaseClass

{    public virtual void MethodA(){    }

     public virtual void MethodB(){    }

}

class Class1: BaseClass

{   public void MethodA(string arg) {    }

    public override void MethodB(){    }

}

class Class2: Class1

{    new public void MethodB(){    }

}

class MainClass

{    public static void Main(string[] args)

    {

        Class2 o = new Class2();

        Console.WriteLine(o.MethodA());

}}

請問,o.MethodA調用的是: (  A  )

A.BaseClass.MethodA   B.Class2.MethodA

C.Class1.MethodA      D.都不是

105.請敘述屬性與索引器的區別。                   

 屬性:a. 屬性經過名稱標識。b. 屬性經過簡單名稱或成員訪問來訪問。c. 屬性能夠爲靜態成員或實例成員。d.屬性的  get訪問器沒有參數。e. 屬性的 set訪問器包含隱式value參數。

索引器 :a. 索引器經過簽名標識。 b. 索引器經過元素訪問來訪問。  c. 索引器必須爲實例成員。 d.索引器的get訪問器具備與索引器相同的形參表。e.除了value 參數外,索引器的 set訪問器還具備與索引器相同的形參表。 

106.請敘述constreadonly的區別。

const 關鍵字用於修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數聲明引入給定類型的一個或多個常數。const數據成員的聲明式必須包含初值,且初值必須是一個常量表達式。由於它是在編譯時就須要徹底評估。 const成員能夠使用另外一個const成員來初始化,前提是二者之間沒有循環依賴。

   readonly 關鍵字與 const 關鍵字不一樣: const 字段只能在該字段的聲明中初始化。readonly 字段能夠在聲明或構造函數中初始化。所以,根據所使用的構造函數,readonly 字段可能具備不一樣的值。另外,const 字段是編譯時常數,而 readonly 字段可用於運行時常數。  readonly 只能在聲明時或者構造函數裏面初始化,而且不能在 static 修飾的構造函數裏面。 

107.您須要建立一個ASP.NET應用程序,公司考慮使用Windows身份認證。全部的用戶都存在於AllWin這個域中。您想要使用下列認證規則來配置這個應用程序:a 匿名用戶不容許訪問這個應用程序。b 全部僱員除了TessKing都容許訪問這個應用程序。請問您應該使用如下哪個代碼段來配置這個應用程序?(  B  )

A. <authorization>

 <deny users=」allwin\tess, allwin\king」>

 <allow users=」*」>

 <deny users=」?」>

 </authorization>

B. <authorization>

  <allow users=」*」>

  <deny users=」allwin\tess, allwin\king」>

  <deny users=」?」>

 </authorization>

C. <authorization>

<deny users=」allwin\tess, allwin\king」>

   <deny users=」?」>

   <allow users=」*」>

 </authorization>

D. <authorization>

 <allow users=」allwin\tess, allwin\king」>

   <allow users=」*」>

 </authorization>

E.<authorization>

 <allow users=」*」>

 <deny users=」allwin\tess, allwin\king」>

 </authorization>

108.您要建立一個顯示公司員工列表的應用程序。您使用一個DataGrid控件顯示員工的列表。您打算修改這個控件以便在這個GridFooter顯示員工合計數。請問您應該怎麼作?(  C?  )

 C.重寫OnItemDataBound事件,當Grid的Footer行被建立時顯示合計數。

109.您要建立ASP.NET應用程序用於運行AllWin公司內部的Web站點,這個應用程序包含了50個頁面。您想要配置這個應用程序以便當發生一個HTTP代碼錯誤時它能夠顯示一個自定義的錯誤頁面給用戶。您想要花最小的代價完成這些目標,您應該怎麼作?(多選)(  CD   )

C.在這個應用程序的Global.asax文件中建立一個CustomErrors事件去處理HTTP錯誤。

D.在這個應用程序的Web.config文件中建立一個CustomErrors節去處理HTTP錯誤。

110.您的公司有一個DB Server,名爲AllWin,其上裝了MS SQLSERVER 2000。如今須要您寫一個數據庫鏈接字符串,用以鏈接AllWinSQL SERVER中的一個名爲PubBase實例的Test庫。請問,應該選擇下面哪個字符串?(  B  )

B. 「Server= AllWin;Data Source=PubBase;

Database=Test;Integrated Security= SSPI」

111.您爲AllWin公司建立了一個ASP.NET應用程序。這個應用程序調用一個 Xml Web Service。這個 Xml Web Service 將返回一個包含了公司僱員列表的DataSet對象。請問您該如何在這個程序中使用這個 Xml Web Service( B   )

 B.在「Web引用」對話框中輸入這個 XML Web service 的地址。

112.您要建立一個ASP.NET應用程序在DataGrid控件中顯示一個通過排序的列表。產品數據被存放於一個名爲PubBaseMicrosoft SQL Server 數據庫。每一個產品的主鍵是ProductIDNumeric型而且每一個產品有一個字母描述字段,名爲ProductName。您使用一個SqlDataAdapter對象和一個SqlCommand對象經過調用一個存儲過程從數據庫中獲取產品數據。您將SqlCommand對象的CommandType屬性設置爲CommandType.StoredProcedure,並將它的CommandText屬性設置爲procProductList。您成功的獲取了一個DataTable對象,其中是已經按ProductID降序排列的產品列表。您打算顯示以相反的字母順序排列的ProductName,請問該怎麼作? (  B  )

A. 將SqlCommand對象的CommandType屬性修改成CommandType.Text,將CommandText屬性修改成」SELECT * FROM procProductList ORDER BY ProductName DESC」。而後將這個DataTable對象綁定到DataGrid控件。

B. 建立一個基於這個DataTable對象的新的DataView並將這個DataView的Sort屬性設置爲「ProductNameDESC」。而後將這個DataView對象綁定到DataGrid控件。

C. 將DataGrid控件的AllowSorting屬性設置爲True,並將DataGridColumn的SortExpression屬性設置爲「ProductName DESC」.以顯示ProductName。而後將這個DataTable對象綁定到DataGrid控件。

D. 將DataTable對象的DisplayExpression屬性設置爲 「ORDER BY ProductName DESC」.。而後將這個DataTable對象綁定到DataGrid控件。

113.在下面的例子裏

using System;

class A

{

public A(){

PrintFields();

}

public virtual void PrintFields(){}

}

class B:A

{

int x=1;

int y;

public B(){

y=-1;

}

public override void PrintFields(){

Console.WriteLine("x={0},y={1}",x,y);

}

當使用new B()建立B的實例時,產生什麼輸出?X=1,Y=0

114.下面的例子中

using System;

class A

{public static int X;

static A(){

X=B.Y+1;}}

class B{

public static int Y=A.X+1;

static B(){}

static void Main(){

Console.WriteLine("X={0},Y={1}",A.X,B.Y);

}

}

產生的輸出結果是什麼?

x=1,y=2

115.請詳述在dotnet中類(class)與結構(struct)的異同:(10分)   

  Class能夠被實例化,屬於引用類型,是分配在內存的堆上的,Struct屬於值類型,是分配在內存的棧上的.       

116.根據委託(delegate)的知識,請完成如下用戶控件中代碼片斷的填寫:(10)     

  namespace   test   

  {   

  public   delegate   void   OnDBOperate();   

  public class UserControlBase   :   System.Windows.Forms.UserControl     

  {   

  public   event   OnDBOperate   OnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs   e)   

  {   

  if(e.Button.Equals(BtnNew))   

  {  //請在如下補齊代碼用來調用OnDBOperate委託簽名的OnNew事件。                                                        }   

  }   

  }   

  }   

答:if( OnNew != null )

OnNew( this, e );   

117.分析如下代碼,完成填空(10分)   

string   strTmp   =   "abcdefg某某某";   

int i=System.Text.Encoding.Default.GetBytes

 (strTmp).Length; int   j=   strTmp.Length;   

  以上代碼執行完後,i= j= ?                             

i=13,   j=10      

 

118.SQLSERVER服務器中,給定表   table1   中有兩個字段   IDLastUpdateDateID表示更新的事務號,  LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句得到最後更新的事務號。 

  select   top   ID   from   table1   order   by   LastUpdateData   desc  

 

三.Web基礎知識(HTMLXMLCSS基礎語法)

1HTML/XML規範中,元素結束標籤是以尖括號括起來,並以/仍是\開頭再加上元素名稱?即body的結束標籤是</body>仍是<\body>?

</body>   

2、符合XHTML規範的文檔必定符合XML規範嗎?XSLHTML的文檔呢?

XHTML和XSL都必然符合XML規範,HTML不符合。

3XML規範中,第一行必須是<?xml… 仍是<!xml… 開頭?           <?xml

4、一個HTML文檔必須包含三個元素,它們是headbody和哪一個?      html

5HTML中文檔內聯註釋應該是以<!-開頭仍是<!--或者<?-,又以什麼結尾?   <!--和-->

6Javascript腳本必須寫在什麼標籤以內。

<script>

7FireFox瀏覽器是否支持VBScript腳本?

不支持

8、咱們如今使用的IE的版本通常是多少,IE的英文全稱是什麼?   Internet   Explorer

9CSS規範中,每一條樣式的結束符是;(分號)仍是: (冒號) ?樣式名與樣式值之間的分隔符是:(冒號)仍是=(等號) 

;,:和=均可以

10CSS規範中,(句點)後面跟一個名稱表明什麼含義?#(井號)後面跟一個名稱表明什麼含義?若是要對一個元素設置CSS樣式,應將CSS樣式寫在它的什麼屬性內?

後面跟個名稱表示文檔中全部class屬性值包含這個名稱的應用其後樣式,#後面跟個名稱表示文檔中ID爲此名稱的元素應用其後樣式。

4、C#語法考察

1delegate是引用類型仍是值類型?enumint[]string呢(難度係數40%)?

delegate引用類型,enum值類型,int[]引用類型,string引用類型。

2、咱們知道new能夠調用構造函數建立一個對象,那麼new還有什麼別的語法嗎?

隱藏基類相同簽名方法,若是在C# 2.0中則還做爲泛型構造函數約束。

3base這個關鍵字有哪幾種語法?override呢?

base兩個語法,分別是調用基類構造函數和調用基類方法,override用於重寫基類方法。

4、請指出C#中是否有下列關鍵字?virtualsealedabstractimportasingotofinalConstsignedString(提示,僅指出C#中沒有的便可)(難度係數50%)。

沒有的關鍵字:import、final、Const、signed、String

5、在循環:for( int i = 0; i < 100; i++ ) Console.WriteLine( i );中,請指出i++的執行時機。

在Console.WriterLine( i );執行以後

6、試說明continue關鍵字的用處。

立刻開始下一次循環,忽略循環體餘下的語句

7objectC#的關鍵字嗎?請指出C#中有哪些類型關鍵字,如intfloat。(提示,寫得越多越好)。

是,object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、bool,如回答:enum、struct、class、delegate也算對。

8C#XML文檔註釋中(以///開頭的註釋),<summary>標籤用於描述什麼?<param>標籤呢?

<summary>用於某個元素的概要說明,<param>用於某個方法的參數概要說明。

九、咱們知道[]是數組和索引器的訪問操做符,但它還有一個語法,是什麼?

特性(Attribute)

5、Web進階知識(javascriptDOMCSS進階):

1、試圖說明setTimeoutsetInterval的不一樣。

setTimeout在通過指定時間後執行一次,setInterval則是通過指定時間就執行一次。

2、請指出body是什麼元素的屬性,alert是什麼元素的方法。

window.document、window

3onblur事件在什麼時機被觸發?onmouseover事件當鼠標在元素上移動時是僅觸發一次仍是連續觸發?那麼onmouseout呢?

onblur在控件失去焦點時觸發,onmouseover是連續觸發,onmouseout僅觸發一次。

 

4、在CSSa:hovera:link各表示什麼意思?aA是否有不一樣?XHTML規範要求全部標籤名稱必須大寫仍是小寫?屬性名稱呢?

a:hover表示當鼠標放在鏈接上時,鏈接該使用什麼樣式,a:link表示正常狀況下鏈接該使用什麼樣式,在現行的CSS標準中不區分大小寫,因此a與A沒有不一樣。XHTML要求全部的標籤名和屬性名都必須小寫。

5、在<form>中的元素不能在腳本中直接用元素ID來訪問,這個時候咱們通常用document的一個方法來獲取這個元素。這個方法是:

getElementById,getElementByID,getElementById、getNodeById、getNodeByID、GetNodeById。

6、因爲classjavascript中的保留字,因此元素的class屬性在javascript中沒有用class這個名稱,那麼是用什麼名稱來代替的?

className

7、如何簡單的使一個變量的值爲NaN

a = 1/0;

8、試說明parentopener屬性各表明什麼?

parent表明父框架,opener表明打開這個窗口的窗口

9、指出border-style樣式在javascript應如何訪問?

element.style.borderStyle

10、指出divspan的不一樣。

默認的display樣式不一樣,div是block而span是inline;

.NET Framework 2.0/C# 2.0語法知識考察,C#高級語法考察(泛型及泛型技巧、匿名方法及其技巧)

1、看函數代碼,而後回答問題(難度係數80%):

public static T[] SomeMethod<T>( T value, int size )

{

  T[] arr = new T[size];

  for ( int i = 0; i < size, i++ )

    arr[i] = value;

  return arr;

}

試闡述這個函數的做用。

請問,這樣調用這個函數有沒有問題,若有問題,有何問題?

long[] result = SomeMethod( 1, 20 );

2、看代碼,而後指出在各類調用中返回值爲什麼種類型(難度係數85%):

  public class MyClass<K, V>

  {  public V this[K key]

    { get

      {

throw new NotImplementedException();

      }

    }

  }

  

  public class MyClass

  { public static T[] MyMethod1<T>( T arg )

    { throw new NotImplementedException();

    }

    public static K MyMethod2<K, V>( V value, MyClass<K, V> dictionary )

    {throw new NotImplementedException();

    }

  }

MyClass<int, string> instance = new MyClass< int, string >();

??? result = MyClass.MyMethod1 ( MyClass.

MyMethod2( instance[0], instance ) );

//請指出返回類型:  T[]

3、看代碼,而後指出在各類調用中返回值爲什麼種類型(難度係數90%):

public class MyClass<K, V>

{

  public V this[K key]

  {

    get

    {

      throw new NotImplementedException();

    }

  }

}

public class MyClass

{

  public static MyClass<V, K> MethodA<K, V>( MyClass<K, V> dictionary )

  {

    throw new NotImplementedException();

  }

  public static MyClass<MyClass<T, V>, K> MethodB<K, V, T>( MyClass<K, V> dictionary, T[] arg )

  { throw new NotImplementedException();

  }

public static MyClass<K, V[]> MethodC<K, V>( MyClass<K, V> dictionary )

  { throw new NotImplementedException();

  }

}

??? obj = MyClass.MethodA( MyClass.MethodB(

instance, MyClass.MethodC(instance)[0]))[0];

//請指出返回類型。

4.將手機號轉化爲由隨機字母表示?

static void Main(string[] args)

{

String word = "abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < 11; i++)

{

int a= getphone(getphone(i-1));

Console.Write(word.Substring(a,1));

}

}

//create random

static int getphone(int seed)

{Random rand = new Random(seed);

int a = rand.Next(0, 25);

return a;

}

static void Main(string[] args)

{String word = "abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < 11; i++)

{

int a= getphone(getphone(i-1));

Console.Write(word.Substring(a,1));

}

}

//create random

static int getphone(int seed)

{

Random rand = new Random(seed);

int a = rand.Next(0, 25);

return a;

}

5.描述數據適配器中的多表查詢?

6.調用存儲過程及返回值的提取?

7.SQL中游標的定義?

8.ASP.NET,用手工的形式對字段進行數據綁定及分頁方法?

9.有一人事表,計算兩個同時入職的員工的生日的差,用一句 SQL語句 EGTB1中的結果變成EGTB2的結果?

Field_AField_BField_C

User12004-10-261981-01-01

User22004-10-261976-01-01

………

Field_B Name_1Name_2Field_4

2004-10-26User1User21825

…………

10.看如下兩張表,回答下列問題?

產品表

ProductID 產品名 單價

1          name1   110

2          name2   220

3          name3   330

4          name4   440

___________________________________________

銷售計劃表

ProductID 客戶名  定貨數量  銷售單價

2          m            2        250

1          n            3        110

3          n            1        300

4          m            2        400

  1. .是否能刪除產品表中的name2?請說明理由與過程。

1、不能刪除name2的產品。由於數據庫外鍵約束默認狀況:銷售計劃表有name2ProductID=2,是不能刪除的。除非你在銷售計劃表刪除全部產品名爲name2的元組,不然是不能刪除產品表name2的產品。
固然,你在建銷售計劃表時建外鍵有如下聲明:
foreign key(ProductID) references 產品表(ProductID) on  delete cascade on update cascade ,結果是不同的。不過估計你沒有這樣聲明。

 

  1. .將銷售計劃表中m客戶的產品名爲name2的銷售單價更換爲產品表中相應的單價

 update 銷售計劃表 set
 銷售單價=
(select 單價 from 產品表 where 產品 表.ProductID=ProductID limit 1)
 where 客戶名=m and ProductID in(select ProductID from
 產品表  where 產品名=name2);

 

  1. .求銷售計劃表中各客戶各自的銷售總金額的sql語句

select 客戶名,sum(銷售單價*定貨數量) from 銷售計劃表 group by 客戶名

 

(4).求客戶中銷售總量最大的銷售總金額的客戶的sql語句

(5).什麼是事務(transaction)?它有什麼好處。

(6).update table2...數據庫爲默認設置能不能開始事務?爲何。

(7).B/S系統通常分爲幾層?請說明理由.

(8).說說ADO.NET中幾個數據庫處理的核心對象。

 

 

.邏輯選擇題

1.根據線程安全的相關知識,分析如下代碼,當調用test方法時i>10時是否會引發死鎖?

public void test(int i)

{

lock(this)

{

if (i>10)

{

i--;

test(i);

}

}

}

a. 會鎖死

b. 不會鎖死

2.如下描述錯誤的是()

a. 在C++中支持抽象類而在C#中不支持抽象類。

b. C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件而且在同一處聲明和定義類的成員。

c. 在C#中可以使用 new 修飾符顯式隱藏從基類繼承的成員。

d. 在C#中要在派生類中從新定義基類的虛函數必須在前面加Override。

3.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。

  a. 9  b. 2  c. 6  d. 越界

4C#中利用Socket進行網絡通訊編程的通常步驟是:創建Socket偵聽、( B)、利用Socket接收和發送數據。

a. 創建Socket鏈接    b. 得到端口號;

c. 得到IP地址;      d. 得到主機名;

5若是設treeView1=new TreeView(),TreeNode node=new TreeNode("根結點" ),則treeView1.Nodes.Add(node)返回的是一個 (d)類型的值。

a. TreeNode;     b. int;

c. string;     d. TreeView;

6.聲明一個委託public delegate int myCallBack(int x); 則用該委託產生的回調方法的原型應該是b

a.void myCallBack(int x)

b.int receive(int num)

c. string receive(int x)  d. 不肯定的

9.關於ASP.NET中的代碼隱藏文件的描述正確的是c

a. Web窗體頁的程序的邏輯由代碼組成,這些代碼的建立用於與窗體交互。編程邏輯惟一與用戶界面不一樣的文件中。該文件稱做爲「代碼隱藏」文件,若是用C#建立,該文件

  b. 項目中全部Web窗體頁的代碼隱藏文件都被編譯成.EXE文件

  c. 項目中全部的Web窗體頁的代碼隱藏文件都被編譯成項目動態連接庫(.dll)文件

  d. 以上都不正確

10.What compiler switch creates an xml file from the xml comments in the files in an assembly?

  a. /text   b. /doc

  c. /xml    d. /help

11.下面的代碼實現了設計模式中的什麼模式

  public class A {

  private A instance;

  private A() {

  }

  public static A Instance {

  get

  {

  if ( A == null )

  A = new A();

  return instance;  }  }

  }

   1. Factory   2. Abstract Factory

   3. Singleton   4. Builder

12. 看代碼回答問題

class Class1

{

public static int Count = 0;

static Class1()

{

Count++;

}

public Class1()

{

Count++;

}

}

Class1 o1 = new Class1();

Class1 o2 = new Class1();

請問,Class1.Count的值是多少?( )

   a. 1   b. 2   c. 3   d. 4

13.看代碼回答問題

abstract class BaseClass

{public virtual void MethodA()

{Console.WriteLine("BaseClass");

}

public virtual void MethodB()

{}

}

class Class1: BaseClass

{

public void MethodA()

{Console.WriteLine("Class1");

}

public override void MethodB()

{}

}

class Class2: Class1

{

new public void MethodB()

{}

}

class MainClass

{

public static void Main(string[] args)

{Class2 o = new Class2();

o.MethodA();

}

}

  請問,此程序輸出結果是:

   a. BaseClass

   b. BassClass Class1

   c. Class1

   d. Class1 BassClass

14. 看代碼回答問題

public static void Main (string[] args)

{

int i = 2000;

object o = i;

i = 2001;

int j =(int) o;

Console.WriteLine("i={0},o={1}, j={2}",i,o,j);

}

   a. i=2001,o=2000,j=2000

   b. i=2001,o=2001,,j=2001

   c. i=2000,o=2001,,j=2000

   d. i=2001,o=2000,j=2001

15.您要建立ASP.NET應用程序用於運行AllWin公司內部的Web站點,這個應用程序包含了50個頁面。您想要配置這個應用程序以便當發生一個HTTP代碼錯誤時它能夠顯示一個自定義的錯誤頁面給用戶。您想要花最小的代價完成這些目標,您應該怎麼作?(多選)

   a. 在這個應用程序的Global.asax文件中建立一個Application_Error過程去處理ASP.NET代碼錯誤。

   b. 在這個應用程序的Web.config文件中建立一個applicationError節去處理ASP.NET代碼錯誤。

   c. 在這個應用程序的Global.asax文件中建立一個CustomErrors事件去處理HTTP錯誤。

   d. 在這個應用程序的Web.config文件中建立一個CustomErrors節去處理HTTP錯誤。

16.以下程序的運行結果是:

public abstract class A

{

public A()

{

Console.WriteLine('A');

}

public virtual void Fun()

{

Console.WriteLine("A.Fun()"); }

}

 

public class B: A

{

public B()

{ Console.WriteLine('B');

}

public new void Fun()

{ Console.WriteLine("B.Fun()");

}

 

public static void Main()

{

A a = new B();

a.Fun();

}

}

   a. A B A.Fun()    b. A B B.Fun()

   c. B A A.Fun()   d. B A B.Fun()

17.Which of these string definitions will prevent escaping on backslashes in C#?*

   a. string s = #」n Test string」;

   b. string s = 「’n Test string」;

   c. string s = @」n Test string」;

   d. string s = 「n Test string」;

18.Which of the following operations can you NOT perform on an ADO.NET DataSet?

   a. A DataSet can be synchronised with a RecordSet.

   b. A DataSet can be synchronised with the database.

   c. A DataSet can be converted to XML.

   d. You can infer the schema from a DataSet

19.In Object Oriented Programming, how would you describe encapsulation?

   a. The conversion of one type of object to another.

   b. The runtime resolution of method calls.

    c. The exposition of data.

  d. The separation of interface and implementation.

 

20.How does assembly versioning in .NET prevent DLL Hell?

   a. The runtime checks to see that only one version of an assembly is on the machine at any one time.

   b .NET allows assemblies to specify the name AND the version of any assemblies they need to run.

   c. The compiler offers compile time checking for backward compatibility.

   d. It doesn’t.

21.三種經常使用的字符串判空串方法:

   1: bool isEmpty = (str.Length == 0);

   2: bool isEmpty = (str == String.Empty);

   3: bool isEmpty = (str == "");

  哪一種方法最快?

   a. 1   b. 2   c. 3

22. 看代碼回答問題

public sealed class SampleSingleton1

{

private int m_Counter = 0;

  private SampleSingleton1()

{

Console.WriteLine(""初始化SampleSingleton1。"");

}

 

public static readonly SampleSingleton1 Singleton = new SampleSingleton1();

public void Counter()

{m_Counter ++;}

}

以上代碼實現了設計模式中的哪一種模式?

   a. 原型   b. 抽象工廠

   c. 單鍵   d. 生成器

23<%# %>  <% %> 有什麼區別?

<%# %>表示綁定的數據源

<% %>是服務器端代碼塊

24.如下代碼可否經過編譯?若是不能,請改爲正確代碼,並說明緣由。

 

 

 

 

25.經過Web Site Administration Tool (in VS2005) 能夠實現哪些功能?Web Site Administration Tool 會自動對哪些文件進行修改或添加?

 

 

 

26.解釋一下帶 「original_」 前綴的Data Parameter和不帶前綴的Data Parameter有什麼異同。(可用簡單的代碼說明)

 

 

 

27.修改下面的代碼段,使GridViewUpdate數據

窗體頂端

DataSourceID="SqlDataSource1" DataKeyNames="id" AutoGenerateColumns="False">

SelectCommand="SELECT [id], [lname], [fname] FROM [authors]"

ConnectionString="" />

窗體底端

 

 

 

28GridView沒有內置Insert 數據的功能,若是想在GridViewInsert數據,你有什麼想法?

 

 

 

29ASP.NET 2.0 哪一個(些)特性是你以爲最激動人心的?爲何?(也能夠談C2.0

ASP.NET 2.0相對於1.1突出了3大理念,

1,提升生產力

A 一致性(masterpage)    B 會員管理

C 資料存取              D 個性化

2 管理能力的提升(例如WEB.CONFIG)

3 提高效能,知足更多人的訪問

30.你以爲ASP.NET 2.0VS2005)和你之前使用的開發工具(.Net 1.0或其餘)有什麼最大的區別?你在之前的平臺上使用的哪些開發思想(pattern / architecture)能夠移植到ASP.NET 2.0 (或者已經內嵌在ASP.NET 2.0)

1 ASP.NET 2.0 把一些代碼進行了封裝打包,因此相比1.0相同功能減小了不少代碼.

2 同時支持代碼分離和頁面嵌入服務器端代碼兩種模式,之前1.0版本,.NET提示幫助只有在分離的代碼文件,沒法在頁面嵌入服務器端代碼得到幫助提示,

3 代碼和設計界面切換的時候,2.0支持光標定位.這個我比較喜歡

4 在綁定數據,作表的分頁.UPDATE,DELETE,等操做均可以可視化操做,方便了初學者

5, 在ASP.NET中增長了40多個新的控件,減小了工做量

31.重載與覆蓋的區別

一、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的重載是同一個類中方法之間的關係,是水平關係。

二、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的重載是多個方法之間的關係。

三、覆蓋要求參數列表相同;重載要求參數列表不一樣。

四、覆蓋關係中,調用那個方法體,是根據對象的類型(對象對應存儲空間類型)來決定;重載關係,是根據調用時的實參表與形參表來選擇方法體的。

.簡答題

1.c#usingnew這兩個關鍵字有什麼意義,請寫出你所知道的意義?

Using 引入一個名子空間,或在使用了一個對像後自動調用其IDespose,New 實例化一個對

像,或修飾一個方法,表此方法徹底重寫此方法,

2.在下面的例子裏

using System;

class A

{

public A(){

PrintFields();

}

public virtual void PrintFields(){}

}

class B:A

{

int x=1;

int y;

public B(){

y=-1;

}

public override void PrintFields(){

Console.WriteLine("x={0},y={1}",x,y);

}

當使用new B()建立B的實例時,產生什麼輸出?

X=1,Y=0

3.下面的例子中

using System;

class A

{

public static int X;

static A(){

X=B.Y+1;

}

}

class B

{

public static int Y=A.X+1;

static B(){}

static void Main(){

Console.WriteLine("X={0},Y={1}",A.X,B.Y);

}

}

產生的輸出結果是什麼?

x=1,y=2

4.談談類和結構的區別?

5.一個長度爲10000的字符串,經過隨機從a-z中抽取10000個字符組成。請用c#語言編寫主要程

序來實現。

using System.Text;

StringBuilder sb = new StringBuilder(0, 10000);

string strABC ="a,b,c,d,e,f,g,h,i,j,k,l,m,n,

 o,p,q,r,s,t,u,v,w,x,y,z";

 string[] ABC = strABC.Split(',');

int len = ABC.Length;

Random rd = new Random();

for (int i = 0; i < 10000; i++)

{

sb.Append(ABC[rd.Next(len)]);

}

6.對於這樣的一個枚舉類型:

enum Color:byte{Red,Green,Blue,Orange}

試寫一段程序顯示出枚舉類型中定義的全部符號名稱以及它們對應的數值。

usingSystem;enumColor:byte{Red,Green,Blue,Orange}

classProgram

{

staticvoidMain()

{

string[]ss=Enum.GetNames(typeof(Color));

byte[]bb=(byte[])Enum.GetValues(typeof(Color));

for(inti=0;i<ss.Length;i  )

{

Console.WriteLine("{0,10}:{1}",ss[i],bb[i]);

}

}

}

/*程序輸出:Red:0Green:1Blue:2Orange:3*/

7.您瞭解設計模式麼?請列出您所知道的設計模式的名稱。

1.工廠模式    2.建造者模式   3.工廠方法模式

4.原始模型模式  5.單例模式   6.訪問者模式

7.模版方法模式  8.策略模式   9.狀態模式

10.觀察者模式  11.備忘錄模式 12.迭代子模式

…………

8.請在SQL Server中設計表來保存一個樹狀結構的組織結構圖(假設結構圖中只有名稱這一項內容

須要保存),若是我想查詢某一職位下的全部職位,用一個存儲過程來實現,你有什麼思路?

 

 

 

 

 

9.下面這段代碼輸出什麼?爲何?

int i=5;

int j=5;

if (Object.ReferenceEquals(i,j))

Console.WriteLine("Equal");

else

Console.WriteLine("Not Equal");

 

A類題

1. Visual Studio.NET 有幾個集成開發環境?(A)

○ A.一個 ○ B.兩個 ○ C.三個 ○ D.四個

2. 咱們稱.NET編程架構是什麼?(A)

○ A..NET Framework ○ B.VS.NET ○ C.XML Web Service ○ D. 開發工具

3 如下那些標準是與Web Service相關的(AB)

A..SOAP ○ B. WSDL ○ C.UDDI ○ D. 以上都是

4 SOAP標準是誰來制定的?(B)

○ A. Microsoft ○ B. W3C ○ C.IBM ○ D. SUN

5. Visual Studio.NET 會支持多少種開發語言(D)

○ A. 兩種 ○ B. 三種 ○ C.四種 ○ D. 多種

6 ASP.NET 是用來開發何種應用的?(C)

○ A. Windows應用 ○ B. .NET組件類 ○ C. Web應用 ○ D. 命令行應用程序

7 C#編譯器將C#程序編譯成什麼樣的代碼?(C)

A. 彙編語言代碼        B. 機器語言代碼

C. 微軟中間語言代碼    D. 二進制代碼

B 類題

8. 全部的.NET基類庫是用什麼語言編寫的?(B)

○ A. C++ ○ B. C# ○ C. VB.NET ○ D. 彙編

9 什麼語言提供了對XML註釋的支持?(B)

○ A. C++ ○ B. C# ○ C. VB.NET ○ D. Jscript

10. 微軟中間語言,下面什麼說法錯誤?(A)

A. 它是解釋執行的。

B. 在執行時,它被轉化爲機器代碼。 

C. 它是處理器無關的指令集。

D. 它容許真正的跨語言集成。

11.ASP.NETASP相比較下列哪一個是不正確的(B)

A. 支持更多編程語言

B. 能夠同時存在於一個應用程序裏 

C. 用戶界面和代碼分離,大大提升編程質量

D. 都支持頁面級和應用程序級的跟蹤調試

12 關於VB.NET,與C#(發音,C sharp)比較,下列哪項是不正確的?(D)

A. 都是類型安全的編程語言。

B. 都支持自動垃圾收集。

C. 都是面向對象的語言。

D. VB.NET不支持API調用。

13. 微軟在VS.NET默認安裝中提供了幾種編程語言的開發環境?(C)

A. 2 種  B. 3種  C. 4種  D. 5種 

#1  C#面試題之基礎實戰

1.C#中,string str = null  string str = 「」 請儘可能使用文字或圖象說明其中的區別。

回答要點:說明詳細的空間分配。(10)

答:string str = null 是不給他分配內存空間,而string str = "" 給它分配長度爲空字符串的內存空間.

2.請詳述在dotnet中類(class)與結構(struct)的異同:(10)

答:Class能夠被實例化,屬於引用類型,是分配在內存的堆上的,Struct屬於值類型,是分配在內存的棧上的.

3.根據線程安全的相關知識,分析如下代碼,當調用test方法時i>10時是否會引發死鎖?並簡要說明理由。(10分)

public void test(int i)

{  lock(this)

{if (i>10)

{

i--;

test(i);

}

}

}

答:不會發生死鎖,(但有一點int是按值傳遞的,因此每次改變的都只是一個副本,所以不會出現死鎖。但若是把int,換作一個object,那麼死鎖會發生)

4.分析如下代碼。(10)

Public static void test(string ConnectString)

{

System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();

conn.ConnectionString = ConnectString;

try

{conn.Open();

…….

}catch(Exception Ex)

{ MessageBox.Show(Ex.ToString());

}finally

{if(!conn.State.Equals(ConnectionState.Closed))

conn.Close();

}

請問

1)以上代碼能夠正確使用鏈接池嗎?

答:回答:若是傳入的connectionString是如出一轍的話,能夠正確使用鏈接池。不過如出一轍的意思是,連字符的空格數,順序徹底一致。

2)以上代碼所使用的異常處理方法,是否全部在test方法內的異常均可以被捕捉並顯示出來?

答:只能夠捕捉數據庫鏈接中的異常吧. (finally中,catch中,若是有別的可能引起異常的操做,也應該用try,catch。因此理論上並不是全部異常都會被捕捉。)

5.簡要談一下您對微軟.NET 構架下remotingwebservice兩項技術的理解以及實際中的應用。

答:WS主要是可利用HTTP,穿透防火牆。而Remoting能夠利用TCP/IP,二進制傳送提升效率。

6.公司要求開發一個繼承System.Windows.Forms.

ListView類的組件,要求達到如下的特殊功能:點擊ListView各列列頭時,能按照點擊列的每行值進行重排視圖中的全部行 (排序的方式如DataGrid類似)。根據您的知識,請簡要談一下您的思路:(10)

答:根據點擊的列頭,包該列的ID取出,按照該ID排序後,在給綁定到ListView中

7.給定如下XML文件,完成算法流程圖。(10)

<FileSystem>

< DriverC >

<Dir DirName=」MSDOS622」>

<File FileName =」 Command.com」 ></File>

</Dir>

<File FileName =」MSDOS.SYS」 ></File>

<File FileName =」 IO.SYS」 ></File>

</DriverC>

</FileSystem>

請畫出遍歷全部文件名(FileName)的流程圖(請使用遞歸算法)。

答:void FindFile( Directory d )

{  FileOrFolders = d.GetFileOrFolders();

  foreach( FileOrFolder fof in FileOrFolders )

{   if( fof is File )

        You Found a file;

   else if ( fof is Directory )

         FindFile( fof );

    }

}

簡單的說就是從根節點開始遍歷找子節點,在從找到的子節點找它的子節點,一層層下去

 

8.Params是什麼含義?    

Params是C#中的關鍵字,採用此關鍵字能夠指定參數數目爲可變;在方法聲明中的 params 關鍵字以後不容許任何其餘參數,而且在方法聲明中只容許一個 params 關鍵字。

如:

public int fConvert(params int[] iParas)

{   … }

9.C#中有沒有運算符重載?可否使用指針?

有,C#中也有運算符重載,如對運算符「+」進行重載;C#中也能夠使用指針,但要聲明爲unsafe。

10.C#中有不少類被定義爲public有什麼意義?

C#中不少類被定義爲public 表示當前類的外部對於當前類的訪問沒有任何限制。

11. Internal修飾符有什麼含義?

internal數據訪問修飾符,表示對所修飾的成員在當前程序集內能夠進行沒有任何限制的訪問;但在當前程序集外部則不能進行訪問,其可訪問性級別低於public ,高於protected。

12. JAVA的代碼是半編譯半解釋的C#的代碼是否也是這樣?

C#中對於程序代碼的處理很相似於Java中的程序代碼處理機制;也能夠稱做半編譯半解釋,具體爲:全部.NET源代碼(無論用哪一種語言編寫)在進行編譯時都被編譯成IL。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成爲機器碼,被解釋及執行。

13.私有程序集與共享程序集有什麼區別?

一個私有程序集一般爲單個應用程序所使用,而且存儲於這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。共享程序集一般存儲在全局程序集緩存(Global Assembly Cache)之中,這是一個由.NET運行時所維護的程序集倉庫。共享程序集一般是對許多應用程序都有用的代碼庫,好比.NET Framework類。

14.請解釋進程與線程的區別?進程與程序的區別?

通常,一個應用程序對應於一個或多個進程,能夠把進程看做是該應用程序在*做系統中的標識;而一個進程一般由多個線程組成,而線程是*做系統爲該應用程序分配處理時間的最小單元。

15. CLRIL分別是什麼含義?

CLR:公共語言運行時, 

IL到本地代碼(IL-to-native)轉換器和優化器

16. 對象可否調用靜態方法

不能。對於類內部定義的靜態變量及靜態方法,該類的對象均不能調用。 

17.什麼是ASP.net中的用戶控件?

用戶控件就是.ascx擴展名的東西嘍,能夠拖到不一樣的頁面中調用,以節省代碼.好比登錄可能在多個頁面上有,就能夠作成用戶控件,可是有一個問題就是用戶控件拖到不一樣級別的目錄下后里面的圖片等的相對路徑會變得不許確,須要自已寫方法調整.

18.什麼叫應用程序域?什麼是受管制的代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTSCLSCLR分別做何解釋

用程序域:程序代碼的做用範圍,尤爲是變量的,

受管制的代碼:託管代碼是爲面向公共語言運行庫的服務編寫的代碼,

強類型系統:變量類型分得比較多,賦值前就知道類型.

裝箱就是把引用類型(包括int與結構這樣的內置類型)轉換爲object類型,拆箱就是把object類型轉換爲引用類型,裝箱與拆箱實現了,實現了兩種類型的互換.

重載是相同名稱的方法,具備相同的返回值,可是去有不一樣的參數與具體實現.

CTS公共類型系統,.net支持的語言使用相同的數據類,CLS公共語言系統,實現多種語言

CLR公共語言運行時,多種語言程序運行的引擎.

19列舉一下你所瞭解的XML技術及其應用

    1. xml能夠用來作網頁(xslt)

    2. xml能夠看成數據庫 xml能夠用來保存對象的系列化(web服務好象是基於這個的)

      20.值類型和引用類型區別?寫出C#的樣例代碼。

      結構是值類型,類是引用類型,因此傳結構就是值類型的應用啦,傳對象或類就是引用類型的

      21.ADO.net中經常使用的對象有哪些?分別描述一下。

      connection command sqladapter dataset datatable dataview

      22.C#中的接口和類有什麼異同。

      接口,是能夠多繼承,類只有單繼承.接口強調了你必須實現,而沒有具本實現的方法和虛類有點類似

      23.net中讀寫數據庫須要用到哪些類?他們的做用

      configuration,sqlconnection,sqlcommand

      24.UDP鏈接和TCP鏈接的異同。

      UDP 傳輸速度快但不安全

      TCP 傳輸速度相比UDP而言慢一些 可是安全

      25.活動目錄的做用。

      安裝了活動目錄的計算機稱爲「域控制器」,對於用戶而言,只要加入並接受域控制器的管理就能夠在一次登陸以後全網使用,方便地訪問活動目錄提供的網絡資源。對於管理員,則能夠經過對活動目錄的集中管理就可以管理全網的資源。

      若是把網絡看做爲一本書,活動目錄就好像是書的目錄,用戶查詢活動目錄就相似查詢書的目錄,經過目錄就能夠訪問相應的網絡資源。這時的目錄是活動的、動態的,當網絡上的資源變化時,其對應的目錄項就會動態更新。

      26.net中讀寫XML的類都歸屬於哪些命名空間?

      System.Xml

      27.解釋一下UDDIWSDL的意義及其做用。

       UDDI

      統一描述、發現和集成協議(UDDI, Universal Description, Discovery and Integration)是一套基於Web的、分佈式的、爲Web服務提供的信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web服務註冊以使得別的企業可以發現的訪問協議的實現標準。UDDI 提供了一組基於標準的規範用於描述和發現服務,還提供了一組基於因特網的實現。

      做用:用來講明一個Web服務的一些信息類型,以便幫助服務的請求者肯定以下問題:WHO,WHAT,WHERE,HOW(提供的服務質量怎樣)      

       WSDL

      Web Services Description Language的縮寫,是一個用來描述Web服務和說明如何與Web服務通訊的XML語言

      做用:

      1)Types: 定義WSDL定義中所用到的數據類型,即XML Schema Types

      2)Message: 對一組消息的輸入和輸出參數的定義

      3)portType : 定義Web服務的操做

      4)  Binding :描述特定服務接口的協議、數據格式、安全性和其它屬性.

      5)  Services : 制定特定服務的URL和提供的調用接口,包含一組端口元素

      28.如何部署一個ASP.net頁面。

      上傳  或者打包成EXE作成安裝

      29.如何理解.net中的垃圾回收機制。

      在。NET與J2EE中的垃圾回收不一樣,在J2EE中,垃圾回收要寫一大堆代碼來處理,可是。NET中將會自動處理。垃圾回收就是將佔用在內存中用不到的東西回收從而釋放內存。

      30.您要建立ASP.NET應用程序用於運行AllWin公司內部的Web站點,這個應用程序包含了50個頁面。您想要配置這個應用程序以便當發生一個HTTP代碼錯誤時它能夠顯示一個自定義的錯誤頁面給用戶。您想要花最小的代價完成這些目標,您應該怎麼作?(多選)

      1. 在這個應用程序的Global.asax文件中建立一個Application_Error過程去處理ASP.NET代碼錯誤。

      2. 在這個應用程序的Web.config文件中建立一個applicationError節去處理ASP.NET代碼錯誤。

      3. 在這個應用程序的Global.asax文件中建立一個CustomErrors事件去處理HTTP錯誤。

      4. 在這個應用程序的Web.config文件中建立一個CustomErrors節去處理HTTP錯誤。

      九.代碼編寫題

      1、寫一個程序,語言不限,打印出100的階乘(1*2*3*…*100)的精確數值結果(不能是浮點數)。如5的階乘是1*2*3*4*5=120 

       

       

      2、寫一個程序,語言不限,能將人民幣金額從阿拉伯數字轉換爲大寫漢字表示。例如,把1234.56轉換爲壹仟貳佰叄拾肆圓零伍角陸分。 

       

       

      3、在SQL Server 數據庫中,有一個表StudentAchievement(學生成績),它有三個字段:StudentID(varchar(8),學生編號)CourseID(varchar(10),課程編號)Achievement(int ,成績),寫一條SQL語句,篩選出每門課程的前兩名的學生編號,課程編號,成績並排序。 

       

       

       

      4、編程實現求出若干個整數之和爲500的連續整數(如9899100101102),全部組合。

       

       

      十一.數據庫題目

      1.處理幾十萬條併發數據?

      答:用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.
      2.用什麼方法比較2個字符串類似,且在系統運行時長駐內存? 

      比較字符串:生成正則表達式進行比較,使用靜態變量/方法就能夠長駐內存了

      3.SQL SERVER中的表存到多少條記錄時,速度明顯變慢? 

      100W條記錄至關明顯!

      4.Session有什麼重大BUG,微軟提出了什麼方法加以解決?

      在 iis 中因爲有進程回收機制,系統繁忙的話 Session 會丟失,能夠用Sate  server或SQL Server數據庫的方式存儲Session不過這種方式比較慢,並且沒法捕獲Session的END事件。

      十二.代碼編寫題

      Q1:求如下表達式的值,寫出您想到的一種或幾種實現方法:1-2+3-4+……+m

      1:public class MainClass

          {  public static void Main()   

              {

                  Console.WriteLine(Foo(30));

              }

              public static int Foo(int i)

              { if (i <= 0)

                      return 0;

                  else if(i > 0 && i <= 2)

                      return 1;

                  else return Foo(i -1) + Foo(i - 2);

              }

          }

      2:D(int m)

      {  int s;

        if( m % 2 == 0)

          return s = D(m-1) - m  

        else(m % 2 != 0)

          return s = D(m-1) + m

        return s;

       

      }

      Q2:給定如下兩個表:

      部門ID 部門名稱 

      1 部門1    

      2 部門2

      3 部門3

      4 部門4

      -------------------------------------------

      人員ID 人員姓名 部門ID

      1 姓名1 1

      2 姓名2 1

      3 姓名3 2

      4 姓名4 3

      5 姓名5 5

      1)用一條SQL語句顯示全部人員的姓名及所在部門,沒有部門的用未標誌代替。

       

       

      2)用ASPNET中的DATAGRID控件,實現如下顯示,描述你的思路。 

      姓名1

      部門1 姓名2

      部門2 ……

      部門3 ……

      Q3 維護數據庫的完整性、一致性、你喜歡用觸發器仍是自寫業務邏輯?爲何 

      答:儘量用約束(包括CHECK、主鍵、惟一鍵、外鍵、非空字段)實現,這種方式的效率最好;其次用觸發器,這種方式能夠保證不管何種業務系統訪問數據庫都能維持數據庫的完整性、一致性;最後再考慮用自寫業務邏輯實現,但這種方式效率最低、編程最複雜,當爲下下之策。

      Q4ADONET相對於ADO等主要有什麼改進? 

      答:我我的認爲,ADO.NET與ADO相比,優點在於提供了數據集和數據適配器,有利於實現分佈式處理,下降了對數據庫服務器資源的消耗

      Q5ASPNETASP相比,主要有哪些進步?

      答:若是必定要說ASP.NET比ASP進步,仍是有的:在形式上實現了面向對象編程;預編譯的服務器端代碼;更好的安全機制(那些ASPX文件的後臺代碼是以另一個賬號運行的,與啓動IIS的賬號不相同)等。

      Q6C#中的委託是什麼?事件是否是一種委託? 

      答:委託本質上是一種「方法接口」,它至關於C/C 中的函數指針,固然它比函數指針安全,在C#中一般用於事件處理。與JAVA相比,能夠避免使用大量小粒度的匿名類。事件不是委託,不過因爲事件的性質決定了處理它的程序邏輯能訪問的參數,所以,在C#中處理事件的邏輯都包裝爲委託(一種「方法接口」)。實際上,若是你處理自定義的事件,就像JAVA中那樣用接口實現也是能夠的,不過這麼作在C#通常沒有什麼特別的好處

      Q7:描述一下C#中索引器的實現過程,是否只能根據數字進行索引? 

      答:不是。能夠用任意類型。

      Q8C#中要使一個類支持FOREACH遍歷,實現過程怎樣? 

      一個類型要想支持foreach則必須實現IEnumerable,IEnumerator兩個接口。  

      // Namespace: System.Collections, Library: BCL

      public interface IEnumerable...{

          IEnumerator GetEnumerator();

      }

       // Namespace: System.Collections, Library: BCL

      public interface IEnumerator...{

          bool MoveNext();

          void Reset();

          object Current ...{ get; }

      }

      Q9C#中,執行如下代碼後S的結果: 

      string[] a=new string[5];

      aa[0]="33";

      aa[6]="66";

      string s="";

      foreach(string m in aa)

      s+=m;

       

      Q10:寫一個HTML頁面,實現如下功能,左鍵點擊頁面時顯示您好,右鍵點擊時顯示禁止右鍵。並在2分鐘後自動關閉頁面。

       <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title> </title> <style type="text/css"> </style> <script> document.onmousedown = function(e){ e = e || window.event; if(e.button == 1){ document.getElementById("console").innerHTML = "你好"; }else if(e.button == 2){ document.getElementById("console").innerHTML = "禁止右鍵"; } } </script> </head> <body> <div id="console"> </div> </body> </html> <script> setTimeout("window.close()",2*60*1000); </script>

      Q11:你對XMLHTTPWEBSERVICE 瞭解嗎?簡單描述其特色、做用 

      xmlhttp來實現無刷新的從服務器獲取數據

      WebService的最大優勢就是實現異構平臺間的互通。 這也是使用WebService的主要緣由之一。這樣任何兩個應用程序,只要他們能讀寫XML,就能相互通訊。

      Q12:接口和抽象類有什麼區別?你選擇使用接口和抽象類的依據是什麼? 

      接口是一個規範和比抽象類約束更強的類,接口不能擁有實體,而抽象類能夠有實體。在定義規範的時候使用接口,在設計類體系是使用抽象類。

      Q13:自定義控件和通常用戶控件的異同?若是要用這二者之一,你會選擇哪一種?爲何 

      用戶控件模型適合建立內部,應用程序特定的控件,而自定義控件模型更適合建立通用的和可再分發的控件

      Q14:大概描述一下ASPNET服務器控件的生命週期 

      1. 初始化  - Init 事件 (OnInit 方法)

      2. 加載視圖狀態 - LoadViewState 方法

      3. 處理回發數據 - LoadPostData 方法:s對實現 IPostBackDataHandler 接口的控件,便可以自動加載回發數據的控件如:TextBox,DropDownList等

      4. 加載 - Load 事件 (OnLoad 方法)

      5. 發送回發更改通知 - RaisePostDataChangedEvent 方法 :對實現 IPostBackDataHandler 接口的控件,便可以自動加載回發數據的控件。在第 3 步中加載回發數據,若是回發先後數據發生更改,則在這一步觸發相應的服務端事件。

      6. 處理回發事件 - RaisePostBackEvent 方法:對實現 IPostBackEventHandler 接口的控件,即能引發回發的控件,如 Button, LinkButton, Calendar 等

      7. 預呈現 - PreRender 事件(OnPreRender 方法)

      8. 保存視圖狀態 - SaveViewState 方法

      9. 呈現 - Render 方法

      10. 處置 - Dispose 方法

      11. 卸載 - UnLoad 事件 (OnUnLoad 方法)

      Q15UML

      統一建模語言( U M L)是一個通用的可視化建模語言,用於對軟件進行描述、可視化處理、構造和創建軟件系統製品的文檔。它記錄了對必須構造的系統的決定和理解,可用於對系統的理解、設計、瀏覽、配置、維護和信息控制。

      Q16:面向對象的概念,主要特色 

      面向對象的特色就是將程序的基本要素都看作對象來處理,而不是象面向過程同樣,只對數據結構編程。採用對象後就能夠用封裝、繼承和多態特性,提升代碼的可重用性、可維護性

      Q17:類劃分的依據。類粒度問題 

       

      Q18:事物管理問題 

       

      十三.簡答題

      1 aspasp.net區別

      1.開發語言不一樣    ASP僅侷限於使用non-type腳本語言來開發,用戶給WEB頁中添加ASP代碼的方法與客戶端腳本中添加代碼的方法相同,致使代碼雜亂。 ASP.NET容許用戶選擇並使用功能完善的strongly-type編程語言,也容許使用潛力巨大的.NET Framework。

      2.運行機制不一樣    ASP是解釋運行的編程框架,因此執行效率比較低。ASP.NET是編譯性的編程框架,運行是服務器上的編譯好的公共語言運行時庫代碼,能夠利用早期綁定,實施編譯來提升效率。 

      3.開發方式    ASP把界面設計和程序設計混在一塊兒,維護和重用困難。ASP.NET把界面設計和程序設計以不一樣的文件分離開,複用性和維護性獲得了提升。 ASP.NET更好些。   ASP.NET與ASP的主要區別在於前者是編譯(Compile)執行,然後者是解釋(Interpret)執行,前者比後者有更高的效率。實際上咱們能夠把ASP.Net的執行過程看作是編譯後的普通語言運行時代碼充當一個和前端瀏覽器和中間件用戶交互的應用程序,它接受用戶的請求,輸出HTML流到客戶端顯示。除此以外,ASP.Net還能夠利用.Net平臺架構的諸多優越性能,如類型安全,對XML,SOAP, WSDL等Internet標準的強健支持。

      ASP的不足:

      1)它是被解釋執行的,並非被編譯執行的,因此比較慢;

      2)它沒有提供一個很好的開發環境;

      3)不支持類,很難封裝複雜的外理邏輯;

      4)可隨意加入腳本,很靈活,但也致使不可維護性。

      ASP.NET相應的優勢:

      1)它是被編譯後再執行的,因此效率要比ASP高不少;

      2)它有很高的開發環境,如VS.NET 2005,更容易調試程式;

      3)支持類,支持面向對象,能夠使用.NET Framework 更好的進行開發;

      4)它使設計和開發分開過來,如界面設計放在.aspx文件中,開發則放在.cs 或 .vb等文件中。這樣更有利於程式的維護。

      2 C#裏面包含哪些?

       

      3 ADO  ADO.NET區別。

      (1).ADO.NET遵循更通用的原則,不那麼專門面向數據庫。ADO.NET集合了全部容許數據處理的類。這些類表示具備典型數據庫功能(如索引,排序和視圖)的數據容器對象。儘管ADO.NET是.NET數據庫應用程序的權威解決方案,但從整體設計上看,它不像ADO數據模型那樣以數據庫爲中心,這是ADO.NET的一大特色。 

      (2).目前,ADO.NET提供了兩種數據庫訪問類庫:一種用於SQL Server 7.0 或更高版本,另外一種用於其餘全部您可能已經安裝的OLE DB提供程序。在這兩種狀況下,您分別使用不一樣的類,但遵循類似的命名規則。除前綴,名稱都是相同的。前一種狀況前綴爲Sql,後一種狀況則是OleDb。同時,.NET框架還提供了ODBC .NET的數據訪問模式。ODBC .NET Data Provider是 .NET 框架的加強組件,它能夠訪問原始的 ODBC 驅動程序,就像 OLE DB .NET Data Provider 能夠訪問原始的 OLE DB providers 同樣。目前它僅在下列驅動程序中測試過:Microsoft SQL ODBC Driver,Microsoft ODBC Driver for Oracle,Microsoft Jet ODBC Driver。 

      (3).ADO.NET提供了兩個隊形來處理從數據源中抽取數據,它們是DataSet和DataReader對象。前者是記錄在內存中的緩存,您能夠從任何方向隨意訪問和修改。後者是高度優化的對象,專爲以僅向前方式滾動只讀記錄而設計。 

      (4).ADO.NET統一了數據容器類編程接口,不管您打算編寫何種應用程序,Windows窗體,Web窗體仍是Web服務,均可以經過同一組類來處理數據。無論在後端的數據源數SQL Server數據庫,OLE DB,XML文件仍是一個數組,您均可以經過相同的方法和屬性來滾動和處理它們的內容。 

      (5).在ADO中,XML只不過是輸入和輸出格式。然而在ADO.NET中,XML是一種數據格式,提供了操做,組織,共享和傳遞數據的手段。

      4 適配器datadapter的做用 

      表示 SQL 命令集和數據庫鏈接,用來填入 DataSet 並更新數據來源。 

      DataAdapter 是 DataSet 和數據來源之間的橋接器 (Bridge),用來擷取和儲存數據。DataAdapter 藉由對應 Fill (它會變動 DataSet 中的數據來符合數據來源中的數據) 和 Update (它會變動數據來源中的數據來符合 DataSet 中的數據) 來提供這個橋接器。

      5 全部類中最頂層的類是哪一個類 

      System.Object

      6 跳轉頁面有哪幾種方式? 

      Response.Redirect("");

      Server.Transfer("");

      Server.Execute("");

      7 執行存儲過程的方法是哪一個? 

       

8 在哪設置全局變量 

 

9 session的設置

 

10 有哪些集合類?

 

11 arrylist list的區別 

 

12 類包含哪些成員 

1.建構函式 2.解構函式 3.常數 4.字段 5.方法 6.屬性 7.索引子 8.運算子 9.事件 10.委派 11.類別 12.界面 13.結構

13 索引器

索引子 (Indexer) 容許使用與數組相同的方式來索引類別或結構的執行個體。索引子除了其存取子須要使用參數之外,其他特性都與屬性類似。

a.索引子讓對象能以相似數組的方式來索引。

b.get 存取子會傳回一個值。set 存取子會指定一個值。

c.this 關鍵詞的用途爲定義索引子。

d.value 關鍵詞是用來定義 set 索引子所指定的值。

e.索引子不須要以整數值來索引;您能夠決定如何定義特定的查詢機制。

f.索引子能夠多載。

g.索引子能夠具備一個以上的型式參數,例如,在存取二維數組時即是如此。

14 經常使用控件的屬性

 

15 委託 

 

16 TREE控件 

 

17 listbox combox chacedlistbox的區別 

 

18 倆個錶鏈接查詢有什麼修飾 

 

19 asp.net編譯動做在什麼地方第一次裝載是發生?

 

20 在對象樹的頂部是什麼對象,asp.net的每一個控件,應用程序和頁面都是從這個對象中繼承,也就是說每一個頁面都是頁面對象的一個實例 

 

21 HYPERLINK  linkbotton控件的差異 

 

下面是華爲面試題,比較專業。 

1 請你分別劃osi7層網絡結構圖和tcp/ip5層結構圖 

 

2 請你詳細解釋下IP協議的定義,在哪一個層面上面, 主要有什麼做用?

 

3 請問交換機和路由器分別實現的原理是什麼?分別在哪一個層面實現? 

 

4 請問c++c裏面struct有什麼區別? 

 

5 請說說析構函數和虛函數的用法和做用 

 

6 全局變量和局部變量有什麼區別?怎麼實現的?操做系統和編譯器是怎麼知道的? 

 

7 8086是多少位的系統?在數據總線是什麼實現的? 

 

十四.Web 考察面試題 

1.ASP.NET中的身份驗證有那些?你當前項目採用什麼方式驗證請解釋 

 

2.什麼是WEB控件?使用WEB控件有那些優點?

運行在服務器端的控件,只要將HTML控件加上runat=server.

3.請解釋ASPNET中以什麼方式進行數據驗證?

 

4.請談談對正則表達式的見解? 

正則表達式是一種處理文本的有用工具。不管是驗證用戶輸入、搜索字符串內的模式、仍是以各類有效方式從新設置文本格式,正則表達式都很是有用。

5.ASPNET中共有幾種類型的控件?各有什麼區別?

客戶端控件,也就是咱們在HTML中常常用到的

服務端控件,例如: <asp:TextBox ID="txt" runat="server" />

客戶端控件也能夠轉成服務端控件

<input type="text" id="txt" runat="server" />

WEB控件分爲:內部控件, 列表控件, 複雜控件, 驗證控件

內部控件–內部控件的使用方法與 HTML 控件相同,它們映射到 HTML 元素並經過使用 runat = 「server」 屬性在服務器上執行

列表控件–用於在 Web 頁中建立數據列表

複雜控件– ?當但願控件擁有複雜的功能或使用 HTML 元素沒法建立的功能豐富的用戶界面時,能夠使用複雜控件

驗證控件–輸入控件的數據須要進行準確性和取值範圍方面的檢查

6WEB控件能夠激法服務端事件,請談談服務端事件是怎麼發生並解釋其原理?自動傳回是什麼?爲何要使用自動傳回。

要使用自動傳回。

在web控件發生事件時,客戶端採用提交的形式將數據交回服務端,服務端先調用Page_Load事件,而後根據傳回的狀態信息自動調用服務端事件自動傳回是當咱們在點擊客戶端控件時,採用提交表單的形式將數據直接傳回到務端只有經過自動傳回才能實現服務端事件的機制,若是沒有自動回傳機制就只能調用客戶端事件,而不能調用服務端事件

7WEB控件及HTML服務端控件可否調用客戶端方法?若是能,請解釋如何調用? 

能夠調用,例如:

<asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server">

</asp:TextBox><INPUT id="Button2" value="Button" name="Button2"runat="server" onclick="clientfunction();">

8ASPNETASP相比有什麼優點?

 ASP的不足:

1)它是被解釋執行的,並非被編譯執行的,因此比較慢;

2)它沒有提供一個很好的開發環境;

3)不支持類,很難封裝複雜的外理邏輯;

4)可隨意加入腳本,很靈活,但也致使不可維護性。

ASP.NET相應的優勢:

1)它是被編譯後再執行的,因此效率要比ASP高不少;

2)它有很高的開發環境,如VS.NET 2005,更容易調試程式;

3)支持類,支持面向對象,能夠使用.NET Framework 更好的進行開發;

4)它使設計和開發分開過來,如界面設計放在.aspx文件中,開發則放在.cs 或 .vb等文件中。這樣更有利於程式的維護。

9.請解釋web.config文件中的重要節點 

Web.config文件是一個XML文本文件,它用來儲存 ASP.NET Web 應用程序的配置信息(如最經常使用的設置ASP.NET Web 應用程序的身份驗證方式),它能夠出如今應用程序的每個目錄中。當你經過VB.NET新建一個Web應用程序後,默認狀況下會在根目錄自動建立一個默認的Web.config文件,包括默認的配置設置,全部的子目錄都繼承它的配置設置。若是你想修改子目錄的配置設置,你能夠在該子目錄下新建一個Web.config文件。它能夠提供除從父目錄繼承的配置信息之外的配置信息,也能夠重寫或修改父目錄中定義的設置。 一、<authentication> 節做用:配置 ASP.NET 身份驗證支持(爲Windows、Forms、PassPort、None四種)。該元素只能在計算機、站點或應用程序級別聲明。<authentication> 元素必需與<authorization> 節配合使用。示例:如下示例爲基於窗體(Forms)的身份驗證配置站點,當沒有登錄的用戶訪問須要身份驗證的網頁,網頁自動跳轉到登錄網頁。

<authentication mode="Forms" >

<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>

</authentication>

 其中元素loginUrl表示登錄網頁的名稱,name表示Cookie名稱二、<authorization> 節做用:控制對 URL 資源的客戶端訪問(如容許匿名用戶訪問)。此元素能夠在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明。必需與<authentication> 節配合使用。三、<compilation>節做用:配置 ASP.NET 使用的全部編譯設置。默認的debug屬性爲「True」.在程序編譯完成交付使用以後應將其設爲True(Web.config文件中有詳細說明,此處省略示例)四、<customErrors>做用:爲 ASP.NET 應用程序提供有關自定義錯誤信息的信息。它不適用於 XML Web services 中發生的錯誤。五、<httpRuntime>節做用:配置 ASP.NET HTTP 運行庫設置。該節能夠在計算機、站點、應用程序和子目錄級別聲明。 六、 <pages>做用:標識特定於頁的配置設置(如是否啓用會話狀態、視圖狀態,是否檢測用戶的輸入等)。<pages>能夠在計算機、站點、應用程序和子目錄級別聲明。七、<sessionState>  做用:爲當前應用程序配置會話狀態設置(如設置是否啓用會話狀態,會話狀態保存位置)。 八、<trace>  做用:配置 ASP.NET 跟蹤服務,主要用來程序測試判斷哪裏出錯。

10.請解釋ASPNET中的web頁面與其隱藏類之間的關係?

一個ASP.NET頁面通常都對應一個隱藏類,通常都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明以下<%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>Codebehind="Tst1.aspx.cs" 代表經編譯此頁面時使用哪個代碼文件Inherits="T1.Tst1" 表用運行時使用哪個隱藏類

11.什麼是viewstate,可否禁用?是否所用控件均可以禁用?

Viewstate是保存狀態的一種機制,EnableViewState屬性設置爲false便可禁用

ViewState 是由   ASP.NET   頁面框架管理的一個隱藏的窗體字段。當 ASP.NET 執行某個頁面時,該頁面上的 ViewState   值和全部控件將被收集並格式化成一個編碼字符串,而後被分配給隱藏窗體字段的值屬性(即<input   type=hidden>)。因爲隱藏窗體字段是發送到客戶端的頁面的一部分,因此 ViewState 值被臨時存儲在客戶端的瀏覽器中。若是客戶端選擇將該頁面回傳給服務器,則ViewState 字符串也將被回傳。回傳後,ASP.NET 頁面框架將解析ViewState字符串,併爲該頁面和各個控件填充 ViewState屬性。而後,控件再使用 ViewState 數據將本身從新恢復爲之前的狀態

13.當發現不能讀取頁面上的輸入的數據時頗有多是什麼緣由形成的?怎麼解決 

頗有多是在Page_Load中數據處理時沒有進行Page的IsPostBack屬性判斷

14.請解釋一個WEB頁面中代碼執行次序。 

Init,Load,PreRender事件執行順序:

1)控件的Init事件

2)控件所在頁面的Init事件

3)控件所在頁面的Load事件

4)控件的Load事件

5)控件所在頁面的PreRender事件

6)控件的PreRender事件

規律:

1)Init事件從最裏面的控件(包括用戶控件及普通控件)向最外面的控件(頁面)引起,Load及PreRender等其餘事件從最外面的控件向最裏面的控件引起;

2)控件之間相同事件的執行順序依控件在頁面的位置按從左到右,從上到下的前後順序執行。

注意:

1)切記用戶控件也被視爲頁面中的一個控件;

2)把用戶控件做爲單獨的一個特殊頁面來看,它自己及其所包含的控件一樣遵照相同的規律;

3)有時在客戶端程序(如javascript)中會用到客戶端body對像的onload事件,注意這個客戶端事件是最後執行,即在服務器端全部事件執行完後才執行.

15.請解釋什麼是上下文對象,在什麼狀況下要使用上下文對象

上下文對象是指HttpContext類的Current 屬性,當咱們在一個普通類中要訪問內置對象(Response,Request,Session,Server,Appliction等)時就要以使用此對象

16.請解釋轉發與跳轉的區別? 

轉發就是服務端的跳轉A頁面提交數據到B頁面,B頁面進行處理而後從服務端跳轉到其它頁面跳轉就是指客戶端的跳轉

17.請解釋ASP.NET中不一樣頁面之間數據傳遞有那些方式? 

session(viewstate) 簡單,但易丟失,application 全局,cookie 簡單,但可能不支持,可能被僞造input ttype="hidden" 簡單,可能被僞造,url參數 簡單,顯示於地址欄,長度有限,數據庫 穩定,安全,但性能相對弱

18.請解釋ASPNETbutton linkbutton imagebutton hyperlink這四個控件之間的功別

1.Button和ImageButton用於將數據傳遞迴服務器.

2.Hyperlink用於在頁面之間導航

3.LinkButton用於將數據保存到服務器或訪問服務器上的數據

4.LinkButton 控件具備與 HyperLink 控件相同的外觀,不過卻具備與 Button 控件相同的功能

19.請解釋一下。NET多層應用程序中層與層之間以那幾種方式進行數據傳遞。並解釋你本身的項目中採用那種方式進行。

自定義類結構傳數據

20.若是出現ASPNET中的事件不能觸發可能因爲什麼緣由形成? 

後臺的Rowdatabound事件能夠進行綁定,好比這樣

if(數據行)

{

   DropDownList ddl = (DropDownList)e.row.FindControl("DropDownListID");

   ddl.datasource = 數據源;(假定你已經設置了keyvalue綁定字段)

    ddl.databind();

}

21.若是須要在datagride控件中的某一列中添加下拉列表框並綁定數據怎麼解決? 

 

22.請解釋asp.net中的數據綁定與傳統數據綁定有什麼區別? 

傳統的數據綁定是一種「鏈接數據綁定」,即在數據綁按期間,客戶端一直保持與數據庫的鏈接,這種狀態下,數據庫的性能大受影響。asp.net的數據綁定是一種「非鏈接數據綁定」,即只在讀取和更新數據的瞬間,才與數據庫鏈接並交換數據,以後即可釋放與數據庫的鏈接,數據庫的性能所以將大大提升。

23.請解釋.net採用委託實現的事件模型與JAVA中採用接口實現的事件模型有什麼區別,以圖示方式解釋。

事件是對象發送的消息,以發信號通知操做的發生。操做多是由用戶交互(例如鼠標單擊)引發的,也多是由某些其餘的程序邏輯觸發的。引起(觸發)事件的對象叫作事件發送方。捕獲事件並對其做出響應的對象叫作事件接收方。

在事件通訊中,事件發送方類不知道哪一個對象或方法將接收到(處理)它引起的事件。所須要的是在源和接收方之間存在一個媒介(或相似指針的機制)。.NET Framework 定義了一個特殊的類型(Delegate),該類型提供函數指針的功能。

委託是一個能夠對方法進行引用的類。與其餘的類不一樣,委託類具備一個簽名,而且它只能對與其簽名匹配的方法進行引用。這樣,委託就等效於一個類型安全函數指針或一個回調。這裏只討論委託的事件處理功能。

24.請解釋接口的顯式實現有什麼意義? 

接口能夠有靜態成員、嵌套類型、抽象、虛擬成員、屬性和事件。實現接口的任何類都必須提供接口中所聲明的抽象成員的定義。接口能夠要求任何實現類必須實現一個或多個其餘接口。

一、由於顯式接口成員執行體不能經過類的實例進行訪問,這就能夠從公有接口中把接口的實現部分單獨分離開。若是一個類只在內部使用該接口,而類的使用者不會直接使用到該接口,這種顯式接口成員執行體就能夠起到做用。

二、顯式接口成員執行體避免了接口成員之間由於同名而發生混淆。若是一個類但願對名稱和返回類型相同的接口成員採用不一樣的實現方式,這就必需要使用到顯式接口成員執行體。若是沒有顯式接口成員執行體,那麼對於名稱和返回類型不一樣的接口成員,類也沒法進行實現。

25.您在什麼狀況下會用到虛方法?它與接口有什麼不一樣?

一. 在什麼狀況下會使用虛方法:

父類的方法沒有方法體 由每一個子類去繼承這個父類的方法 而在每一個子類中實現這個父類的方法,但每一個子類的實現方式不一樣即方法體不一樣 這時咱們會吧 這個父類的方法定義長虛方法

二. 虛方法與接口有什麼不一樣:

虛方法是子類繼承父類 在子類中實現父類的虛方法(即被定義成虛方法並無方法體的方法)具體的實現時在子類中有不一樣的實現

接口是 類去繼承接口 並重寫接口中的方法

從而在繼承了接口的類中實現了接口的方法

26.怎樣理解靜態變量?

靜態變量(static)是相對自動變量(auto)等而言的,一旦聲明爲靜態變量,在編譯時刻開始永遠存在,不受做用域範圍約束,可是若是是局部靜態變量,則此靜態變量只能在局部做用域內使用,超出範圍不能使用,可是它確實還佔用內存,還存在.自動變量就是通常的變量,在C語言中auto關鍵字能夠省略

27.向服務器發送請求有幾種方式?

Get 方式:字符限制 255個 不安全 在地址欄顯示 提交的部份內容

Post方式:字符限制大概在1M左右 較爲安全 推薦使用此方式

28.DataReaderDataset有什麼區別?

DataReader和DataSet最大的區別在於,DataReader使用時始終佔用SqlConnection,在線操做數據庫.任何對SqlConnection的操做都會引起DataReader的異常.由於DataReader每次只在內存中加載一條數據,因此佔用的內存是很小的..由於DataReader的特殊性和高性能.因此DataReader是隻進的.你讀了第一條後就不能再去讀取第一條了. DataSet則是將數據一次性加載在內存中.拋棄數據庫鏈接.讀取完畢即放棄數據庫鏈接.由於DataSet將數據所有加載在內存中.因此比較消耗內存.可是確比DataReader要靈活.能夠動態的添加行,列,數據.對數據庫進行回傳更新操做

29.若是在一個B/S結構的系統中須要傳遞變量值,可是又不能使用SessionCookieApplication,您有幾種方法進行處理?

使用Request["string"].Request.QueryString[

"flag"]

30..netB/S結構的系統,您是用幾層結構來開發,每一層之間的關係以及爲何要這樣分層?

 

31.軟件開發過程通常有幾個階段?每一個階段的做用

通常爲3層 , 數據訪問層,業務層,表示層。數據訪問層對數據庫進行增刪查改。業務層通常分爲二層,業務表觀層實現與表示層的溝通,業務規則層實現用戶密碼的安全等。表示層爲了與用戶交互例如用戶添加表單。優勢:分工明確,條理清晰,易於調試,並且具備可擴展性。缺點:增長成本。

32.微軟推出了一系列的Application Block,請舉出您所知道的Application Block並說明其做用?

SqlHelper 列如:SqlHelper.ExcuteDataSet()執行存儲過程.

33.請列舉一些您用到過的設計模式以及在什麼狀況下使用該模式?

抽象工廠模式,通常在鏈接多數據庫的時候用到

34.您對WebService的體會?

Web Service 簡單的說就是把之前的整程序分佈式處理,而後後使用接口聯合起來。如能夠從一臺服務器上調用另一臺服務器上的類和資源來使用。達到最佳使用效率。

Web Service  有2個特徵,註冊和接口。能夠使用HTTP-GET 和 HTTP-POST ,SOAP(簡單對象訪問協議,基於XML)訪問Web Service 。

35.您對編程的興趣如何?工做中遇到不懂的問題是怎樣去解決的?您通常怎樣去提升本身的編程水平?

 

36.您離職的緣由是什麼?

 

37.經過超連接怎樣傳遞中文參數?

傳遞時用HttpUtility.UrlEncodeUnicode("中文參數"),獲取時直接用Request.QueryString["參數"]就好了

<%@ import namespace="System.Web.Util"%>

 

 

38請編程遍歷頁面上全部TextBox控件並給它賦值爲string.Empty

foreach (Control a in this.Page.Form.Controls)

{

    string name = a.GetType().Name;

     if (a.GetType().Name == "TextBox")

     {

          TextBox mm = a as TextBox;

          mm.Text = string.Empty;

      }                                  

}

39.請編程實現一個冒泡排序算法

private static int[] Sort(int[] arrayNum)

{    int i, j, k;

    bool exchange;

    for (i = 1; i < arrayNum.Length; i++)

    {

      exchange = false;

      for (j = arrayNum.Length - 1; j >= i; j--)

       {

         if (arrayNum[j - 1] > arrayNum[j])

         {

               k = arrayNum[j];

              arrayNum[j] = arrayNum[j - 1];

               arrayNum[j - 1] = k;

               exchange = true;

          }

        }

        if (!exchange)

         {

           break;

         }

    }

    return arrayNum;

}

第十五部分:C#Asp.netjavascriptsqlserver

1.簡要說出privateprotected的區別 

private 存取只限於包含類別。

protected 存取只限於包含的類別或衍生自包含類別的型別。

2 說出下面幾個函數的區別:

private void test(string str){…}

private void test(ref string str){…}

private void test(out string str){…}

out 關鍵詞會致使以傳址 (By Reference) 方式傳遞自變量。這點與 ref 關鍵詞相相似,除了 ref 須要在傳遞變量以前先初始化變量之外。若要使用 out 參數,方法定義和呼叫方法都必須明確使用 out 關鍵詞。

3 寫代碼:取得服務器時間並顯示(彈出消息框便可),要求徹底在服務器端實現(提示:在C#中使用Response.Write()方法)

Response.Write("<script >alert('當前時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')</script>");

4.說出下面各處正確或錯誤的理由(寫在該行) 

class Test

{

int x;

static int y;

void F() {

x = 1; //ok

y = 1; //ok

}

static void G() {

x = 1; //error 非靜態成員不能在靜態

y = 1; //ok

}

static void Main() {

Test t = new Test();

t .x = 1; // Ok

t .y = 1; // Error

Test.x = 1; // Error

Test.y = 1; // Ok

}

}

4 簡要的談談你對多態的理解,並簡單的實現一個多態的例子 

1.簡化了設計過程,由於組件開始時能夠很小,具備最小功能;以後,組件繼續提供最小功能,同時不斷插入其餘的功能,並經過實際使用那些功能來肯定合適的功能。 

2.簡化了兼容性的維護,由於組件的新版本能夠在添加新接口的同時繼續提供現有接口。客戶端應用程序的後續版本能夠利用這些接口的優勢 

3.在繼承類中實現實例化。它能夠包含已實現的方法和屬性,但也能夠包含未實現的過程,這些未實現過程必須在繼承類中實現。這使您得以在類的某些方法中提供不變級功能,同時爲其餘過程保持靈活性選項打開。抽象類的另外一個好處是:當要求組件的新版本時,可根據須要將附加方法添加到基類,但接口必須保持不變。 

示例:實現多態性的程序 

using System ;

public class DrawingBase

{ public virtual void Draw( )

{Console.WriteLine("I'm just a generic drawing object.") ;

}

}

public class Line : DrawingBase

{public override void Draw( )

{ Console.WriteLine("I'm a Line.") ; }

}

public class Circle : DrawingBase

{ public override void Draw( )

{ Console.WriteLine("I'm a Circle.") ; }

}

public class Square : DrawingBase

{

public override void Draw( )

{ Console.WriteLine("I'm a Square.") ; }

}

public class DrawDemo

{

public static int Main(string[] args)

{

DrawingBase [] dObj = new DrawingBase [4];

dObj[0] = new Line( ) ;

dObj[1] = new Circle( ) ;

dObj[2] = new Square( ) ;

dObj[3] = new DrawingBase( ) ;

foreach (DrawingBase drawObj in dObj)

drawObj.Draw( ) ;

return 0;

}

}

輸出結果是: 

I'm a Line.

I'm a Circle.

I'm a Square.

I'm just a generic drawing object.

 

5 解釋如下語句的含義: 

a. v1=opener.v1;

b. if(100 = = 」100」){…}

c. if(100 = = = 」100」){…}

d.function printBlank(){

var coll=document.all;

if(coll != null){

for(i=0;i<coll.length;i++){

if(coll.item(i).tagName=="INPUT"){

coll.item(i).style.visibility="hidden";

}

}

}

}

6 說出結果 

a. var x=0/0;

if (x !=x){

document.write(「x!=x」);

}else{

document.write(「x==x」);

}

 

b. var i=1;

switch (i)

{

case 1:

case 2: alert(「good」);break;

case 3: alert(「end」);break;

}

7.若是一個頁面與數據庫有頻繁的交互,但又不能讓頁面刷新的太厲害,您有什麼好的方法? 

8.下面關於索引的描述中。哪些是正確的?(A 

A、索引可以加快查詢的速度 

B、索引可能會下降數值的更新速度 

C、應該儘量多的爲表創建索引 

9.用tsql實現: 

a. 若是一個表(table1)存在就刪除,不然就建立(假設表只有一個varcahr(50)的字段) 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Table1]

GO

 

CREATE TABLE [dbo].[Table1] (

[name] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

) ON [PRIMARY]

GO

b. 使用select語句根據表table1(sex bit)中的sex的值返回一張表 (sex char(2)),規則以下: 當sex爲0時返回’男’,爲1時返回’女’。

select case  when  table1.sex=0  then  '男'  else  '女'  end  as  sex from  table1  

10. 現有表 Table1 Table2,其字段相同([姓名] varchar(10)),現要獲得Table1中在Table2中沒有的姓名,請寫出Sql語句。 

select [name] from table1

where  [name] not in( select [name] from table2)

11.寫一個存儲過程,要求傳入一個表名,返回該表的記錄數(假設傳入的表在數據庫中都存在) 

create proc proTable

@tableName Nvarchar(50)

as

declare @sql nvarchar(4000)

set @sql='select count(*) from '+@sql

exec (@sql)

12.SQL的全稱是什麼?

SQL 的全稱是 Structured Query Language,

中文含義是:結構化查詢語言.

它是個關係數據庫的標準語言,功能極強

13.用存儲過程和觸發器如何解決併發? 

 

14.給你兩個8兩個3 用加減乘除算出24來,寫出算法! 

 

15.請描述一下.net的頁面訪問基本過程,以及和普通Web訪問過程的區別(請 描述從web頁面請求到頁面返回的主要事件和過程);

 

16.怎樣理解web應用程序的無狀態編程

WEB的無狀態編程源於HTTP協議自己的無狀態。由於每次HTTP請求的先後,咱們都沒有辦法肯定客戶端(瀏覽器)的具體狀態。

17.請你列舉你最熟悉的WebControl以及他們的主要功能;

 

18.請你列舉你最熟悉的.net名稱空間以及他們的主要內容。

 

19.您常常訪問哪些有關.net的網站?

CSDN:http://www.csdn.net/

博客園 :http://www.cnblogs.com/

20..net中,請描述有哪些辦法能夠防止頁面刷新局部內容閃爍問題(例如某個聊天頁面,每隔幾秒就自動刷新,怎樣防止閃爍)?

使用 .NET中的Ajax功能能夠實訓這個效果 

21.請描述一下在.netForms認證模式下,怎樣用代碼(用戶名單存在數據庫中,而不是WebConfig中)實現一個基於角色的受權?

private void Buttonlogin_Click(object sender, System.EventArgs e)
{

string user = TextBoxUser.Text; //讀取用戶名

string password = TextBoxPassword.Text; //讀取密碼

if(Confirm(user,password) == true) //confirm方法用來驗證用戶合法性的

{

     string userRoles = UserToRole(user); //調用UserToRole方法來獲取role字符串
   FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket (1,user,DateTime.Now,          DateTime.Now.AddMinutes(30), false,userRoles,"/") ; //創建身份驗證票對象

   string HashTicket = FormsAuthentication.Encrypt (Ticket) ; //加密序列化驗證票爲字符串

  HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket) ; //生成Cookie
Context.Response.Cookies.Add (UserCookie) ; //輸出Cookie

  Context.Response.Redirect (Context.Request["ReturnUrl"]) ; // 重定向到用戶申請的初始頁面
}    else
{        // 用戶身份未被確認時的代碼
}

}

具體實現過程代碼如上面:

用戶登陸成功後,找數據據取出該用戶的角色信息,用一個字符串數組存儲起來(多個角色用,分割開來),而後和相對於的用戶名用身份票據加密的方式存儲在Cookie中,輸入到客戶端。在全局應用程序global.asax文件中的HttpApplication事件將角色信息分割出來存放在一個字符串組中,這樣,這任何一個頁面就能夠實現基於角色的身份驗證了(系統有自帶的方法提供判斷該用戶是否輸入某個角色)。

22..net中,怎樣配置數據庫鏈接,能夠使開發環境到應用環境遷移數據庫時不修改程序?

在配置文件web.config文件中配置數據庫鏈接字符串。

23.一個數據庫字段name,須要在網頁中只顯示該字段的姓,而隱藏名 字,相似**」形式,請寫出數據綁定的自定義表達式。

<%#(Eval(「name」).ToString())Substring(0,1)** %>

24.描述一下製做一個用戶控件(UserControl)的過程。

建立一個USERCONTROL,而後把須要的控件放進去,寫須要的代碼。

25.有製做過自定義的webcontrol(注意不是用戶控件)?若是有,請 描述一下自定義控件製做基本過程,主要重載哪些方法?

作過。要重載哪些方法不肯定,視控件的功能和複雜度的不一樣而不一樣。通常的有VIEWSTATE操做方法、CONTROL建立方法、RENDER方法等。

26.構成ADO.net的主要對象以及他們的做用。

COMMAND   

CONNECTION   

DATAADAPTER   

COMMANDBUILDER   

27.向服務器發送請求有幾種方式,是那幾種? 

2種,get和Post

28.寫一段程序來判斷服務器請求是get,仍是post請求? 

string mm=Request.ServerVariables

["REQUEST_METHOD"];

string ll = Request.ServerVariables

["QUERY_STRING"];

29.net framework邏輯上分幾個部分。 

.NET Framework 具備兩個主要組件:公共語言運行庫和 .NET Framework 類庫

30你用觸發器的體會 

 

31.net作系統,你什麼結構來開發(多層架構)

32作系統分析你用什麼工具。 

是Rose,和Powder   Designer

36.你做爲一個項目經理怎麼樣控制項目進度。

制定一個合理的項目計劃,嚴格按照項目計劃執行。 

37.談談您的項目管理經驗。 

 

38.errorexception有什麼區別?

 

39.List, Set, Map是否繼承自Collection接口? 

 

40.abstract classinterface有什麼區別? 

 

41.abstractmethod是否可同時是static,是否可同時是native,是否可同時是synchronized?

 

42.接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concrete class)? 

 

43.啓動一個線程是用run()仍是start()?

 

44. 構造器Constructor是否可被override?

 

45.是否能夠繼承String?

否,沒法繼承自密封類

46. 當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

 

47. try {}裏有一個return語句,那麼緊跟在這個try後的finally {}裏的code會不會被執行,何時被執行,在return前仍是後?

會,在return後.

48. 編程題: 用最有效率的方法算出2乘以8等於幾?

 

49. 兩個對象值相同(x.equals(y) == true),但卻可有不一樣的hash code,這句話對不對?

 

50. 當一個對象被看成參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏究竟是值傳遞仍是引用傳遞?

 

51. swtich是否能做用在byte上,是否能做用在long上,是否能做用在String?

 

52. 寫一個Singleton出來。 數據庫方面 

 

53. 存儲過程和函數的區別 

 

54. 事務是什麼? 

 

55. 遊標的做用?如何知道遊標已經到了最後? 

 

56. 觸發器分爲事前觸發和過後觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。 

 

57. 請列出c#中幾種循環的方法,並指出他們的不一樣 

 

58. SQL SREVER中,向一個表中插入了新數據,如何快捷的獲得自增量字段的當前值 

 

59. 有哪幾種方法能夠實現一個類存取另一個類的成員函數及屬性,並請舉列來加以說明和分析.請給出code

 

60. 若是需記錄類的實例個數,該如何實現,請寫一個簡單的類於以證實.

public class TestA

    {  public static int Count;

        public TestA()

        { Count = Count + 1;  }

        public int CountA

        {get { return Count; }    }

    }

TestA testa = new TestA();

TestA testb = new TestA();

TestA testb1 = new TestA();

TestA testb2 = new TestA();

TestA testb3 = new TestA();

TestA testb4 = new TestA();

TestA testb5 = new TestA();

Console.Write(testb.CountA);

61. A類是B類的基類,而且都有本身的構造,析構函數,請舉例證實B類從實例化到消亡過程當中構造,析構函數的執行過程.

 

62. 寫一個實現對一段字符串翻轉的方法,附加一些條件,如其中包括「.」,對其設計測試用例。

 

63. 什麼是反射? 

 

64. Singleton如何寫設計模式 

 

65. 什麼是Application Pool 

 

66. 鏈表和數組的區別,各有什麼優缺點

 

67. Remoting在客戶端服務器怎麼實現?

 

68. 什麼是內存泄漏,怎樣最簡單的方法判斷被存泄漏 ?

 

69. 使用什麼工具來調用存儲過程 

 

70. 什麼是Web Service 

 

71. Socket怎麼實現?(給出C# code)

 

72.談談final, finally, finalize的區別 

 

73. Anonymous Inner Class (匿名內部類) 是否能夠extends(繼承)其它類,是否能夠implements(實現)interface(接口)?

 

74.Static Nested Class  Inner Class的不一樣,說得越多越好(面試題有的很籠統)

 

75.HashMapHashtable的區別。 

 

76.Collection  Collections的區別。

 

77.何時用assert

 

78.GC是什麼? 爲何要有GC?

GC是垃圾收集器。這個類別中的方法會影響何時對對象執行內存回收,以及何時釋放對象所配置的資源。這個類別的屬性會提供系統中可用內存的總數量以及配置至對象的內存之年齡分類或層代等等相關信息。內存回收行程會追蹤並從新利用在 Managed 內存中配置的對象。內存回收行程會按期執行內存回收來從新利用配置給對象的內存 (該對象並沒有有效的參考)。當沒有可用的內存來因應內存的要求時,會自動發生內存回收。或者,應用程序能夠使用 Collect 方法來強制進行內存回收。

內存回收包含下列步驟: 

a.內存回收行程會搜尋在 Managed 程序代碼中所參考的 Managed 對象。

b.內存回收行程會嘗試最終處理未參考的對象。

c.內存回收行程會釋放未參考而且回收其內存的對象。

79.String s = new String("xyz");建立了幾個String Object?

 

80.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回與參數最接近的長整數,參數加1/2

求其floor

81.short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

 short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,須要強制轉換類型)

short s1 = 1; s1 += 1;(能夠正確編譯)

82. sleep()  wait() 有什麼區別?

18. 數組有沒有length()這個方法? String有沒有length()這個方法?

在c#數組和string只有length屬性,沒有方法

83. Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==仍是equals()? 它們有何區別?

 

84.給我一個你最多見到的runtime exception

 

筆試題 

.NET基礎 

1. 瞭解程序集強簽名嗎? 

 

2. 請解釋應用程序域、程序集、元數據、反射這幾個技術名詞 

 

3. 是否瞭解 URL Rewrite?請簡要說明其原理和在 ASP.NET 中的實現方式。 

URL 重寫是截取傳入 Web 請求並自動將請求重定向到其餘 URL 的過程.

4. 簡單說說 ASP.NET 中基於表單的身份驗證方式的用法 

 

5. ASP.NET 中如何調用 Web Service 的方法? 

添加引用

TestService.Service ts = new TestService.Service();

DataSet ds = ts.GetUserInfo("","");     Response.Write(ds.Tables[0].Rows.Count);

6. View State 的做用和實現方式?

 ViewState 屬性提供 Dictionary 對象來保留對相同網頁的多個要求之間的值。這是網頁用來在來回往返之間保留網頁和控件屬性值的預設方法。處理網頁時,網頁目前的狀態和控件會雜湊至字符串中,而且儲存在網頁中當作一個隱藏字段,或是若是儲存在 ViewState 屬性的數據量超過 MaxPageStateFieldLength 屬性中指定的值時,則會當作多個隱藏字段。網頁回傳到服務器時,網頁會在網頁初始化時剖析檢視狀態字符串,而且還原網頁中的屬性資

7. 如何實現頁面分段緩存?

頁面分段緩存 

頁面分段緩存是用用戶控件實現的。經過爲頁面每一個區域建立單獨的用戶控件來定義頁面的區域。在每一個用戶控件中,能夠使用Output-Cache指令指出如何緩存控件的輸出。 

注意: 

一、注意分段緩存不支持Location特性;緩存頁面分段唯一合法的地方是web服務器。這是由於分段緩存在ASP.NET中是新的功能,因此瀏覽器和代理服務器不支持。 

二、分段緩存有另一個在頁面緩存中沒有的特性——VaryByControl。VaryByControl特性容許指定一個由分號分隔的字符串列表,表明用戶控件內使用的控件的名稱;ASP.NET將針對值的每一個不一樣的組合生成用戶構件的一個緩存版本。 

頁面分段緩存的限制 

一、若是爲用戶控件啓用了緩存,就不能在包含它的頁面中經過程序訪問此控件了; 

   例如:ctlContents.Message = "Hello!"

二、不該該對緩存的用戶控件使用數據綁定語法; 

   不容許:<myControls:PageContents CategoryID='<%# CategoryID%>' Runat='Server'/> 會產生一個錯誤信息; 容許: <myControls:PageContents CategoryID='2' Runat='Server'/>

8. 你是否知道下列名字:.NET Pet ShopIBuySpy StoreDotNetNukeNUnitData Access Application Block?說說它們分別都是什麼。 

數據庫開發 

 

9. 在超過10萬條記錄的頁面顯示時,你如何處理分頁,有多少種替代方案? 

 

10. 請描述DataSet的特色 

 

11.  ADO.NET 操做 SQL Server 2000 數據庫的通常步驟? 

 

12. 數據庫某表主鍵自增,是很常見的情形。在ASP. NetC#程序中,要求向該表插入一條記錄,並立刻從該表查出這條記錄。不能使用時間戳,請問你如何實現? 

 

13. 你會利用那些工具進行數據庫的性能分析及其優化? 

 

14. 列舉你所瞭解的XML技術及其應用 

 

15. 如何實現XML系列化(給出簡單的代碼示例) 

XML 序列化只會將對象的公用字段和屬性值序列化爲 XML 數據流。

XML 序列化不會轉換方法、索引子、私用字段或只讀屬性 (只讀集合則除外)。若要序列化對象的全部字段和屬性 (包括公用和私用的),請使用 BinaryFormatter,而不要使用 XML 序列化。

public class TestXML

{

   public string UserName;

   public string Address;

   public string Company;

   public string Description;

}

XmlSerializer serializer = new XmlSerializer(typeof(TestXML));

string FilePath = Server.MapPath("XML/woody.xml");

TestXML tx = new TestXML();

tx.Address = "MITC";

tx.Company = "MDS";

tx.Description = "WOODY";

tx.UserName = "WU";

Stream writer = new FileStream(FilePath, FileMode.Create);

serializer.Serialize(writer, tx);

writer.Close();

16. 是否瞭解XSD,若是瞭解,請簡述其特性 

 

17. 你知道 AJAX 嗎?說說它的特色和通常實現方式 

 

18. 寫出一段利用XMLHTTP工做的簡單代碼 

 

19. 如何定義嵌套的CSS樣式類 

table.hover { border-right:1px solid #f1f1f1 }

20. 用簡單的JavaScript僞實現面向對象的繼承,封裝,重載 

 

21.NET Remoting的工做原理是什麼?請簡要地寫出一個.NET Remoting的示例 

分佈式處理方式,在Windows操做系統中,是將應用程序分離爲單獨的進程。這個進程造成了應用程序代碼和數據周圍的一道邊界。若是不採用進程間通訊(RPC)機制,則在一個進程中執行的代碼就不能訪問另外一進程。這是一種操做系統對應用程序的保護機制。然而在某些狀況下,咱們須要跨過應用程序域,與另外的應用程序域進行通訊,即穿越邊界.

Remoting的通道主要有兩種:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定義了IChannel接口。IChannel接口包括了TcpChannel通道類型和Http通道類型。它們分別對應Remoting通道的這兩種類型。

TcpChannel類型放在名字空間System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基於Socket的傳輸工具,使用Tcp協議來跨越Remoting邊界傳輸序列化的消息流。TcpChannel類型默認使用二進制格式序列化消息對象,所以它具備更高的傳輸性能。HttpChannel類型放在名字空間System.Runtime.Remoting.Channel.Http中。它提供了一種使用Http協議,使其能在Internet上穿越防火牆傳輸序列化消息流。默認狀況下,HttpChannel類型使用Soap格式序列化消息對象,所以它具備更好的互操做性。一般在局域網內,咱們更多地使用TcpChannel;若是要穿越防火牆,則使用HttpChannel.

22. 從程序請求遠程http站點,有哪些可用的類?

WebRequest request = WebRequest.Create(PageUrl);

WebResponse response = request.GetResponse();

Stream resStream = response.GetResponseStream();

StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);

string KK = sr.ReadToEnd();

resStream.Close();

sr.Close();

23. 請介紹在開發中你如何利用Web Services 

平臺和服務 

 

24 對於Web Services,.NET Remoting,MSMQ

Enterprise Services這四個中接觸過多少?可否簡要的介紹他們的特色 

 

25 簡述COM+/Enterprise Services的關鍵特性和應用場景 

 

26 對於Biztalk ServerSharePoint Portal ServerCMS ServerExchange ServerSQL Server這幾個產品的定位和功能是如何理解的 

協做和質量管理 

27 你用過哪些版本控制工具 

 

28 在開發中你利用那些工具進行單元測試和模塊測試 

 

29 如何進行Bug管理 

 

30 如何生成和管理開發文檔 

 

31 請簡單的描述一下項目開發過程 

 

32 能否簡要的介紹asp.net 2.0 Membership,WebPartC#的匿名函數和泛型,但願能夠簡要地闡述其中的特色 

Membership:

Membership 類別是用在 ASP.NET 應用程序中,以驗證使用者認證,並管理使用者設定,例如密碼和電子郵件地址。Membership 類別能夠單獨使用,也能夠結合 FormsAuthentication 使用,以創建驗證 Web 應用程序或網站使用者的完整系統。Login 控件會封裝 Membership 類別,以提供驗證使用者的便利機制。

Membership 類別提供多項功能,以供進行:創建新使用者。

將成員資格信息 (使用者名稱、密碼、電子郵件地址,以及支持數據) 存放於 Microsoft SQL Server 或替代數據存放區中。

驗證造訪您網站的使用者。您能夠透過程序設計方式驗證使用者,您也能夠使用 Login 控件,創建須要少數或不須要程序代碼的完整驗證系統。

管理密碼,其中包括創建、變動、擷取,及重設等動做。您也能夠選擇設定 ASP.NET 成員資格,向遺忘密碼的使用者要求密碼問題和解答,以驗證密碼重設或擷取要求。

WebPart:

ASP.NET Web 組件是用於創建網站的整合式控件集合,可以讓使用者直接從瀏覽器修改 Web 網頁的內容、外觀和行爲。這些修改能夠套用至網站上的全部使用者或個別使用者。當使用者修改頁面和控件時,能夠儲存這些設定,以保留使用者的我的偏好設定,在將來的瀏覽器工做階段 (Session) 使用,這個功能稱爲我的化。這些 Web 組件能力讓開發人員能夠受權使用者動態地我的化 Web 應用程序,而不須要開發人員或管理員介入。 

藉由使用 Web 組件控件集合,開發人員可以讓使用者執行下列功能:

我的化頁面內容。使用者能夠將新的 Web 組件控件加入至頁面,或是移除、隱藏或最小化控件,如同使用普通窗口同樣。

我的化頁面配置。使用者能夠將 Web 組件控件拖曳至頁面上的不一樣區域,或變動其外觀、屬性和行爲。

匯出和匯入控件。使用者能夠匯入或匯出 Web 組件控件設定以用於其它頁面或網站,並保留控件中的屬性、外觀或甚至數據,如此可以讓使用者減小數據輸入和組態設定的須要。

創建鏈接。使用者能夠在控件間創建鏈接,例如,圖表控件能夠將股票行情實時廣告牌控件中的數據顯示爲圖表。使用者不但能我的化鏈接自己,也能我的化圖表控件顯示數據以外觀和細節的方式。管理和我的化網站層級設定。受權的使用者能夠設定網站層級設定,決定誰能夠存取網站或網頁,以及設用者共享,並防止不是管理員的使用者我的化共享的控件。與區域變量不一樣的是,外部變量的存留期會延續,直到參考匿名方法的委派可進行內存回收爲止。n 的參考是在創建委派時所擷取。 

匿名方法:

將程序代碼區塊當作委派參數傳遞的一種方式

藉由使用匿名方法,您無須另外創建方法,於是能夠減小在執行個體化委派時所須要另外撰寫的程序代碼。

匿名方法不能存取外部範圍的 ref 或 out 參數。

anonymous-method-block 內不能存取 Unsafe 程序代碼。

button1.Click += delegate(System.Object o, System.EventArgs e)                   { System.Windows.Forms.MessageBox.Show("Click!"); };

泛型:

泛型是指一些類別、結構、接口和方法,而它們具備其儲存或使用的一或多個型別之替代符號 (型別參數)。泛型集合類別可能會將型別參數當作它所儲存的對象型別之替代符號;這些型別參數會以其字段型別及其方法的參數型別之形式出現。泛型方法可能會將它的型別參數當作其傳回值的型別或是其中一個正規參數的型別使用。

System.Collections.Generic 和 System.Collections.ObjectModel 命名空間中的泛型集合類別

33 如何理解責任鏈和命令模式的異同?

 

34 你如何學習新知識?有哪些站點或者資源你認爲值得推薦? 

 

不定項選擇:

1. 如下敘述正確的是: B C

A. 接口中能夠有虛方法。B. 一個類能夠實現多個接口。

C. 接口不能被實例化。 D. 接口中能夠包含已實現的方法。 

2.從數據庫讀取記錄,你可能用到的方法有:B C D

A. ExecuteNonQuery            B. ExecuteScalar     

C. Fill                       D. ExecuteReader

3..對於一個實現了IDisposable接口的類,如下哪些項能夠執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選) (ABC)   

  A.Close   B.Dispose   C.Finalize     D.using E.Quit   

4..如下關於refout的描述哪些項是正確的?(多選) ACD)   

  A.使用ref參數,傳遞到ref參數的參數必須最早初始化。   

  B.使用out參數,傳遞到out參數的參數必須最早初始化。   

  C.使用ref參數,必須將參數做爲ref參數顯式傳遞到方法。   

  D.使用out參數,必須將參數做爲out參數顯式傳遞到方法。 

5..在對SQL Server 數據庫操做時應選用(A)。

a)SQL Server .NET Framework 數據提供程序;

b)OLE DB .NET Framework 數據提供程序;

c)ODBC .NET Framework 數據提供程序;

d)Oracle .NET Framework數據提供程序;

6.下列選項中,(C)是引用類型。

a)enum類型   b)struct類型 c)string類型   d)int類型

7.關於ASP.NET中的代碼隱藏文件的描述正確的是(C

a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的建立用於與窗體交互。編程邏輯惟一與用戶界面不一樣的文件中。該文件稱做爲「代碼隱藏」文件,若是用C#建立,該文件將具備「.ascx.cs」擴展名。

b)項目中全部Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。

c)項目中全部的Web窗體頁的代碼隱藏文件都被編譯成項目動態連接庫(.dll)文件。

d)以上都不正確。

8.如下描述錯誤的是(A

a)在C++中支持抽象類而在C#中不支持抽象類。

b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件而且在同一處聲明和定義類的成員。

c)在C#中可以使用 new 修飾符顯式隱藏從基類繼承的成員。

d)在C#中要在派生類中從新定義基類的虛函數必須在前面加Override。

9.C#的數據類型有(A

a)值類型和調用類型; b)值類型和引用類型;

c)引用類型和關係類型;d)關係類型和調用類型;

10.下列描述錯誤的是(D

a)類不能夠多重繼承而接口能夠;

b)抽象類自身能夠定義成員而接口不能夠;

c)抽象類和接口都不能被實例化;

d)一個類能夠有多個基類和多個基接口;

11.DOM中,裝載一個XML文檔的方法(D

a)save方法   b)load方法 c)loadXML方法 d)send方法

12.下列關於構造函數的描述正確的是(C

a)構造函數能夠聲明返回類型。

b)構造函數不能夠用private修飾

c)構造函數必須與類名相同

d)構造函數不能帶參數

13.接口是一種引用類型,在接口中能夠聲明(A),但不能夠聲明公有的域或私有的成員變量。

a)方法、屬性、索引器和事件; b)方法、屬性信息、屬性;

 c)索引器和字段;    d)事件和字段;

14.ASP.NET框架中,服務器控件是爲配合Web表單工做而專門設計的。服務器控件有兩種類型,它們是(A )

a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件    d)HTML控件和IIS控件

15.ADO.NET中,對於Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯誤的是(C)。

a)insert、update、delete等操做的Sql語句主要用ExecuteNonQuery()方法來執行;

b)ExecuteNonQuery()方法返回執行Sql語句所影響的行數。

c)Select操做的Sql語句只能由ExecuteReader()方法來執行;

d)ExecuteReader()方法返回一個DataReder對象;

16.Winform中,關於ToolBar控件的屬性和事件的描述不正確的是(D)

第二種:覆蓋方法

public new XXXX(){}

第三種:new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。

27.如何把一個array複製到arrayList

foreach( object o in array )arrayList.Add(o);

28.datagrid.datasouse能夠鏈接什麼數據源 [dataset,datatable,dataview]

dataset,datatable,dataview , IList

29.概述反射和序列化

反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您能夠使用反射動態地建立類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。而後,能夠調用類型的方法或訪問其字段和屬性

序列化:序列化是將對象轉換爲容易傳輸的格式的過程。例如,能夠序列化一個對象,而後使用 HTTP 經過 Internet 在客戶端和服務器之間傳輸該對象。在另外一端,反序列化將從該流從新構造對象。

30.概述o/r mapping 的原理

利用反射,配置 將類於數據庫表映射

31.sealed修飾的類有什麼特色

sealed 修飾符用於防止從所修飾的類派生出其它類。若是一個密封類被指定爲其它類的基類,則會發生編譯時錯誤。

密封類不能同時爲抽象類。

sealed 修飾符主要用於防止非有意的派生,可是它還能促使某些運行時優化。具體說來,因爲密封類永遠不會有任何派生類,因此對密封類的實例的虛擬函數成員的調用能夠轉換爲非虛擬調用來處理。

32.詳述.NETclassstruct的異同!class:放在 ? struct放在?

struct值傳遞

類與結構有不少類似之處:結構能夠實現接口,而且能夠具備與類相同的成員類型。然而,結構在幾個重要方面不一樣於類:結構爲值類型而不是引用類型,而且結構不支持繼承。結構的值存儲在「在堆棧上」或「內聯」。細心的程序員有時能夠經過聰明地使用結構來加強性能。

33.概述.NET裏對 remoting  webservice 兩項技術的理解和實際中的應用。

遠程邏輯調用,remoing接口只能用在.net中

34.什麼是code-behind技術   aspx and cs

35.概述三層結構體系        web/business/dataaccess

36.asp.net如何實現MVC模式,舉例說明! 

37.列舉一下你所瞭解的XML技術及其應用

答:XML但是好東西,保存配置,站與站之間的交流,WEB SERVICE都要用它.

38.值類型和引用類型的區別?寫出C#的樣例代碼。

答:結構是值類型,類是引用類型,因此傳結構就是值類型的應用啦,傳對象或類就是引用類型的,這個不用多寫了吧.

39.ADO.net中經常使用的對象有哪些?分別描述一下。

答:connection command sqladapter dataset datatable dataview等等.寫不完了.

40.如何理解委託?

答:聽說至關於函數指針,定義了委託就能夠在不調用原方法名稱的狀況下調用那個方法.

msdn2005中是這樣解釋的:

委託具備如下特色:

委託相似於 C++ 函數指針,但它是類型安全的。

委託容許將方法做爲參數進行傳遞。

委託可用於定義回調方法。

委託能夠連接在一塊兒;例如,能夠對一個事件調用多個方法。

方法不須要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。

C# 2.0 版引入了匿名方法的概念,此類方法容許將代碼塊做爲參數傳遞,以代替單獨定義的方法。

41.C#中的接口和類有什麼異同。

答:接口是負責功能的定義,項目中經過接口來規範類,操做類以及抽象類的概念! 

而類是負責功能的具體實現! 

在類中也有抽象類的定義,抽象類與接口的區別在於: 

抽象類是一個不徹底的類,類裏面有抽象的方法,屬性,也能夠有具體的方法和屬性,須要進一步的專業化。 

但接口是一個行爲的規範,裏面的全部東西都是抽象的! 

一個類只能夠繼承一個基類也就是父類,但能夠實現多個接口

42述怎樣區分使用ExecuteNonQueryExecuteScalar方法?

ExecuteNonQuery:

使用 ExecuteNonQuery 以執行數據庫目錄 (Catalog) 做業 (例如,查詢數據庫結構或創建如數據表的數據庫對象),或藉由執行 UPDATEINSERT DELETE 陳述式變動數據庫的數據。

雖然 ExecuteNonQuery 不傳回任何數據列,可是對應至參數的任何輸出參數或傳回值會填入 (Populate) 資料。對 UPDATEINSERT DELETE 陳述式而言,傳回值是受命令影響的數據列數目。對其餘類型的陳述式而言,傳回值爲 -1

ExecuteScalar:

執行查詢,並傳回查詢所傳回的結果集中第一個數據列的第一個資料行。會忽略全部其它的數據行和數據列。

43有關係EMPENOENAMESALARYDNO ),其中各屬性的含義依次爲職工號、姓名、工資和所在部門號,以及關係DEPTDNODNAMEMANAGER),其中各屬性含義依次爲部門號、部門名稱、部門經理的職工號。試用SQL語句完成如下查詢:

a) 列出各部門中工資不低於600元的職工的平均工資。

select dno , avg(salary) as average from emp where salary>=600 group by dno

b) 查詢001號職工所在部門名稱。

select DNAME from dept where DNO = (select DNO from emp where eno=’001’)

或者

select d.dname from dept as d left jon emp as e on e.dno = d.dno where e.eno=’001’

c)請用SQL語句將銷售部的那些工資數額低於600的職工的工資上調10%

update EMP set SALARY =SALARY*(1+0.1) where SALARY<600 and DNO = ( select DNO from dept where dname= ‘銷售部’ )

44.中有幾種元素?

一個類可包含下列成員的聲明:

構造函數、析構函數、常數、字段、方法、屬性 、索引器、運算符、事件、委託、類、接口、結構

類能夠定義對象可執行的操做(方法、事件或屬性),並定義保存對象(字段)狀態的值。儘管類一般同時包含定義和實現,但它也能夠包含沒有實現的一個或多個成員。類的實例是對象。能夠經過調用對象的方法並訪問其屬性、事件和字段,來訪問對象的功能。

 

Porfile配置信息

.net2.0爲每一個用戶存儲配製信息,

他是一個強類型與長期保存  與application session不同呀.長期保存了

支持匿名用戶,他配製存在Provider

<configuration>

<system.web>

<profile>

 <properties>

  <add name="Screennanme">

   <add name="posts" type="System.int32" defaultValue="0"/>

 profile 一段時間能夠清除數據庫中的不房問的數據

成員服務Membership Service

四層結構 Membership Data   Membership Providers數據庫提供都, MeibershipApI 訪問API提供

ConTrols login LoginStatus  LoginView Other Login Controols

if(Mebership.Validateuser(userName.text,Password.Text)) RedirectFromLoginPage(UserName.Text,RememberMe.Check.ed); 用戶認證與受權

 site Navigation  站點導航  模式與樹形式的兩種式樣

相關文章
相關標籤/搜索