.NET筆試題集(二)

來源:互聯網
上載者:User

標籤:導航   迴圈   表達   靜態   產生   修改   delete   bsp   筆試   

 

1.using關鍵字有什麼用?什麼是IDisposable?

using可以聲明namespace的引入,還可以實現非託管資源的釋放,實現了IDisposiable的類在using中建立,using結束後會自動調用該對象的Dispose方法,釋放資源。using其實等價於try……finally,用起來更方便。

 

2.Assembly.Load("foo.dll"); 這句話是否正確?

錯誤,正確的應該是Assembly.Load("foo"); 或者Assembly.LoadFrom("foo.dll");

 

3.XML 與 HTML 的主要區別

(1)XML是區分大小寫字母的,HTML不區分。

(2)在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結尾,那麼你可以省略</p>或者</li>之類的結束 標記。在XML中,絕對不能省略掉結束標記。

HTML:<img src="1.jpg"><br><br>

XML:<img src="1.jpg"></img><br/><br/>

(3)在XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個 / 字元作為結尾。這樣分析器就知道不用 尋找結束標記了。

(4)在XML中,屬性值必須分裝在引號中。在HTML中,引號是可用可不用的。

(5)在HTML中,可以擁有不帶值的屬性名稱。在XML中,所有的屬性都必須帶有相應的值。

XML是用來儲存和傳輸資料的,HTML是用來顯示資料的

 

4.string str = null 與 string str = “”說明其中的區別。

答:string str = null 是不給他分配記憶體空間,而string str = \"\" 給它分配長度為空白字串的記憶體空間。 string str = null沒有string對象,string str = “”有一個字串對象。

 

5.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動成長的id作為主鍵,注意:id可能不是連續的。)

答:解1: select top 10 * from A where id not in (select top 30 id from A)

解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

解3:select id,row_number() over (order by id) as rowNum from A where rowNum between 31 and 40(推薦)

 

6.物件導向的語言具有________性._________性.________性

答:封裝.繼承.多態。

 

7.在.Net中所有可序列化的類都被標記為_____?

答:[serializable]

 

8.在.NetManaged 程式碼中我們不用擔心記憶體漏洞,這是因為有了______?

答:GC。

 

9.什麼叫應用程式定義域?什麼是受管制的代碼?什麼是Managed 程式碼?什麼是強型別系統?什麼是裝箱和拆箱?什麼是重載?CTS.CLS和CLR分別作何解釋?

應用程式定義域為安全性.可靠性.版本控制以及卸載程式集提供了隔離邊界。應用程式定義域通常由運行庫宿主建立,運行庫宿主負責在運行應用程式之前引導公用語言運行庫。應用程式定義域提供了一個更安全.用途更廣的處理單元,公用語言運行庫可使用該單元提供應用程式之間的隔離。

受管制的代碼:在.Net環境中啟動並執行任何代碼都是受管制的代碼(managed code),.Net外部的代碼也運行在windows上,這些代碼稱為未受管制的代碼(unmanaged code)。

使用基於公用語言運行庫的語言編譯器開發的代碼稱為Managed 程式碼;Managed 程式碼具有許多優點,例如:跨語言整合.跨語言異常處理.增強的安全性.版本控制和部署支援.簡化的組件互動模型.調試和分析服務等。

強型別語言是能夠禁止任何違反類型系統的代碼的語言,或者說是能夠捕獲所有違反類型系統的錯誤的語言。我們說C++相對於C是強型別的,是因為C++禁止了一些C中的隱式轉換,比如將void*轉換為任意的指標類型。

裝箱和拆箱使實值型別能夠被視為對象。對實值型別裝箱將把該實值型別打包到 Object 參考型別的一個執行個體中。這使得實值型別可以儲存於記憶體回收堆中。拆箱將從對象中提取實值型別。

每個類型成員都有一個唯一的簽名。方法簽名由方法名稱和一個參數列表(方法的參數的順序和類型)組成。只要簽名不同,就可以在一種類型內定義具有相同名稱的多種方法。當定義兩種或多種具有相同名稱的方法時,就稱作重載。

CTS一般型別系統 (common type system)

一種確定公用語言運行庫如何定義.使用和管理類型的規範。

CLR公用語言運行庫

.NET Framework 提供了一個稱為公用語言運行庫的運行時環境,它運行代碼並提供使開發過程更輕鬆的服務。

CLSCommon Language Specification

要和其他對象完全互動,而不管這些對象是以何種語言實現的,對象必須只向調用方公開那些它們必須與之互用的所有語言的通用功能。為此定義了Common Language Specification (CLS),它是許多應用程式所需的一套基礎語言功能。

 

10.什麼是code-Behind技術。

就是程式碼後置,在ASP.NET中通過ASPX頁面指向CS檔案的方法實現顯示邏輯和處理邏輯的分離,這樣有助於web應用程式的建立。比如分工,美工和編程的可以個幹各的,不用再像以前asp那樣都代碼和html代碼混在一起,難以維護。

 

11.介面是一種參考型別,在介面中可以聲明方法.屬性.索引器和事件,但不可以聲明公有的域或私人的成員變數。

 

 

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

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

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

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

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

解答:ExecuteScalar→select getdate()。

 

 

13.下列關於C#中索引器理解正確的是(c )

 a) 索引器的參數必須是兩個或兩個以上

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

 c) 索引器沒有名字

 d) 以上皆非

 

14. 要建立多文檔應用程式,需要將表單的(d )屬性設為true。

a) DrawGrid;

b) ShowInTaskbar;

c) Enabled;

d) IsMdiContainer;

 

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

a) TreeNode;

b) int;

c) string;

d) TreeView;

 

16.下面關於XML的描述錯誤的是(d)。

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

b) XML 是一種簡單.與平台無關並被廣泛採用的標準;

c) XML文檔可承載各種資訊;

d) XML只是為了產生結構化文檔;

 

17.以下的C#代碼,試圖用來定義一個介面:

public interface IFile{int A;int delFile(){   A = 3;}void disFile();}

關於以上的代碼,以下描述錯誤的是(d )。

a) 以上的代碼中存在的錯誤包括:不能在介面中定義變數,所以int A程式碼將出現錯誤;

b) 以上的代碼中存在的錯誤包括:介面方法delFile是不允許實現的,所以不能編寫具體的實現函數;

c) 代碼void disFile();聲明無錯誤,介面可以沒有傳回值;

d) 代碼void disFile();應該編寫為void disFile(){};空和null不一樣。

 

18.在ASP.NET中有Button控制項myButton,要是單擊控制項時,導航到其他頁面http://www.abc.com, 正確的代碼為( c)。

a) private void myButton_Click(object sender, System.EventArgs e){Redirect(“http://www.abc.com”);}

b) private void myButton_Click(object sender, System.EventArgs e){Request.Redirect(“http://www.abc.com”);}

c) private void myButton_Click(object sender, System.EventArgs e){Reponse.Redirect(“http://www.abc.com”);}

d) private void myButton_Click(object sender, System.EventArgs e){Request.Redirect(“http://www.abc.com”);return true;}

 

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

a) void myCallBack(int x) ;

b) int receive(int num) ;

c) string receive(int x) ;

d) 不確定的;

 

20.StringBuilder 和 String 的區別?

答:String 在進行運算時(如賦值.拼接等)會產生一個新的執行個體,而 StringBuilder 則不會。所以在大量字串拼接或頻繁對某一字串進行操作時最好使用 StringBuilder,不要使用 String

如果要操作一個不斷增長的字串,盡量不用String類,改用StringBuilder類。兩個類的工作原理不同:String類是一種傳統的修改字串的方式,它確實可以完成把一個字串添加到另一個字串上的工作沒錯,但是在.NET架構下,這個操作實在是划不來。因為系統先是把兩個字串寫入記憶體,接著刪除原來的String對象,然後建立一個String對象,並讀取記憶體中的資料賦給該對象。這一來二去的,耗了不少時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字串進行大量的添加操作,那麼StringBuilder類所耗費的時間和String類簡直不是一個數量級的。

 

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

屬性 索引器

通過名稱標識。 通過簽名標識。

通過簡單名稱或成員訪問來訪問。 通過元素訪問來訪問。

可以為靜態成員或執行個體成員。 必須為執行個體成員。

屬性的 get 訪問器沒有參數。 索引器的 get 訪問器具有與索引器相同的形參表。

屬性的 set 訪問器包含隱式 value 參數。 除了 value 參數外,索引器的 set 訪問器還具有與索引器相同的形參表。

 

22.請敘述const與readonly的區別。

const 關鍵字用於修改欄位或局部變數的聲明。它指定欄位或局部變數的值不能被修改。常數聲明引入給定類型的一個或多個常數。

const資料成員的聲明式必須包含初值,且初值必須是一個常量運算式。因為它是在編譯時間就需要完全評估。

const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環相依性。

readonly在運行期評估賦值,使我們得以在確保“唯讀訪問”的前提下,把object的初始化動作延遲到運行期進行。

readonly 關鍵字與 const 關鍵字不同: const 欄位只能在該欄位的聲明中初始化。readonly 欄位可以在聲明或建構函式中初始化。因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。另外,const 欄位是編譯時間常數,而 readonly 欄位可用於運行時常數。

readonly 只能在聲明時或者建構函式裡面初始化,並且不能在 static 修飾的建構函式裡面。

參考資料:

http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html

http://www.cnblogs.com/jams742003/archive/2010/03/23/1692913.html

http://www.cnblogs.com/wayfarer/archive/2006/04/27/386658.html

 

23.請解釋ASP。NET中的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" 表用運行時使用哪一個隱藏類

 

24.什麼是viewstate,能否禁用?是否所用控制項都可以禁用?

Viewstate是儲存狀態的一種機制,EnableViewState屬性設定為false即可禁用。最有力的舉例子:Label.TextBox在禁用ViewState後不同的表現來說明。

 

25.你對web service的體會?

答:如果自己寫的一些程式也希望別人可以通過Web服務來使用,也可以把自己編寫的方法貼上標籤[WebMethed]來實現Web 服務。[是當編寫程式時,希望實現一些別的網站已經實現過的,也用Web服務可視成XML語言的編碼。可以使用別人的編碼產生的XML找到自己需要的資訊,來實現自己編寫的程式的一些功能。

 

26.您在什麼情況下會用到虛方法?它與介面有什麼不同?

答案:子類重新定義父類的某一個方法時,必須把父類的方法定義為virtual

在定義介面中不能有方法體,虛方法可以。

實現時,子類可以不重新定義虛方法,但如果一個類繼承介面,那必須實現這個介面。

 

27.不定項選擇:

(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)以下關於ref和out的描述哪些項是正確的?(多選) ( ACD )

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

B.使用out參數,傳遞到out參數的參數必須最先初始化。

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

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

 

28.單項選擇:

(1)下列選項中,(C)是參考型別。

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

 

(2).關於ASP.NET中的程式碼後置檔案的描述正確的是(C)

a)Web表單頁的程式的邏輯由程式碼群組成,這些代碼的建立用於與表單互動。編程邏輯唯一與使用者介面不同的檔案中。該檔案稱作為“程式碼後置”檔案,如果用C#建立,該檔案將具有“.ascx.cs”副檔名。

b)項目中所有Web表單頁的程式碼後置檔案都被編譯成.EXE檔案。

c)項目中所有的Web表單頁的程式碼後置檔案都被編譯成項目動態連結程式庫(.dll)檔案。

d)以上都不正確。

 

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

a)類不可以多重繼承而介面可以;

b)抽象類別自身可以定義成員而介面不可以;

c)抽象類別和介面都不能被執行個體化;

d)一個類可以有多個基類和多個基底介面;

 

29.DataReader和DataSet的異同?

DataReader使用時始終佔用SqlConnection,線上操作資料庫,每次只在記憶體中載入一條資料,所以佔用的記憶體是很小的,是只進的. 唯讀

DataSet則是將資料一次性載入在記憶體中.拋棄資料庫連接..讀取完畢即放棄資料庫連接(非串連模式),將資料全部載入在記憶體中.所以比較消耗記憶體...但是確比DataReader要靈活..可以動態添加行,列,資料.對資料庫進行 回傳更新操作(動態操作讀入到記憶體的資料)

 

30.public static const; int A = 1;這段代碼有錯誤嗎?

錯誤:const不能被修飾為static ;因為定義為常量 (const )後就是靜態(static )。

.NET筆試題集(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.