C#筆試題CSDN
C#所開發(fā)的程序源代碼并不是編譯成能夠直接在操作系統(tǒng)上執(zhí)行的二進制本地代碼。下面就由學習啦小編為大家介紹一下的C#筆試題CSDN文章,歡迎閱讀。
C#筆試題CSDN篇1
1.什么是中間語言(IL)?它的作用?
中間語言代替了COM的調(diào)用約定和內(nèi)存管理標準,所有其他的NET語言都將編譯為這種語言,結(jié)果就是程序員不必來確保他們的代碼將與一種確定的二進制標準進行互操作,而是由不同.NET語言編譯器將代碼編譯到IL中來確保這種互操作性.
2.C#中與基類通信的關(guān)鍵字什么?作用是什么?
C#允許通過BASE關(guān)鍵字訪問最近的基類成員
3.什么是元數(shù)據(jù)?
描述程序集的內(nèi)容,通過將元數(shù)據(jù)嵌入每個程序集中,任何程序集都可以實現(xiàn)完全的自我描述, 從而簡化了發(fā)布使用較舊技術(shù)的組件時所需要的工作.
4.ASP.NET和ASP的主要優(yōu)勢?
1.ASP.NET具有面向?qū)ο笮?2.ASP.NET使用ADO.NET,使對數(shù)據(jù)庫操作更快速更強大. 3.ASP.NET支持多種語言,擺脫了ASP只能使用非結(jié)構(gòu)語言(VBSCRIPT,JSCRIPT)編寫的限制. 4.ASP.NET具有代碼綁定技術(shù),使頁面代碼和功能代碼的編寫完全分離,具有更好的重用性.
5.Override與重載有什么區(qū)別?
Override用來重寫父類的方法,重載使用相同名的方法或操作符擁有不同類型的參數(shù)
6.SQL SERVER 中的觸發(fā)器的理解?
觸發(fā)器是一種特殊的存儲過程,當用戶修改指定表或視圖中的數(shù)據(jù)時,觸發(fā)器將自動執(zhí)行.
8.大概描述下ASP.NET中服務(wù)器控件的生命周期?
大概描述下ASP.NET中服務(wù)器控件的生命周期?
9.什么是強類型系統(tǒng)?
中間語言一個重要方面是建立在非常強的類型化功能上.所有的變量都清晰地標記為屬于某個特定數(shù)據(jù)類型,特別是如果給定的引用表示某個數(shù)據(jù)類型比較模糊的,那么中間語言一般不允許對它執(zhí)行任何操作.
10.觸發(fā)器分為事前觸發(fā)和事后觸發(fā),有何區(qū)別?
事前觸發(fā)器就是在語句執(zhí)行之前激活的觸發(fā)器,而后觸發(fā)器就是在語句執(zhí)行后激活的觸發(fā)器.
C#筆試題CSDN篇2
1.談?wù)刦inal, finally, finalize的區(qū)別.
final 修飾符用于指定類不能擴展或者方法或?qū)傩圆荒苤貙?它將防止其他類通過重寫重要的函數(shù)來更改該類的行為.帶有 final 修飾符的方法可以由派生類中的方法來隱藏或重載.
finally 塊用于清除在 try 塊中分配的任何資源.控制總是傳遞給 finally 塊,與 try 塊的存在方式無關(guān).
finalize允許 Object 在“垃圾回收”回收 Object 之前嘗試釋放資源并執(zhí)行其他清理操作.
2.在.net(C# or vb.net)中,Appplication.Exit 還是 Form.Close有什么不同?
一個是退出整個應(yīng)用程序,一個是關(guān)閉其中一個form.
3.C#中的委托是什么?事件是不是一種委托?
委托是一個可以對方法進行引用的類.與其他的類不同,委托類具有一個簽名,并且它只能對與其簽名匹配的方法進行引用.這樣,委托就等效于一個類型安全函數(shù)指針或一個回調(diào).事件是一種委托.
4.值類型和引用類型的區(qū)別?
值類型的變量總是一個值,當聲明時編譯器分配與此類型相關(guān)聯(lián)的字節(jié)數(shù),而且你將直接操
已經(jīng)分配的內(nèi)存,另外在傳遞值類型的變量時,是在傳遞變量的值而不是它的底層對象的引用.
而聲明一個引用類型的變量時,是在操作對此對象的引用,而不是象值類型那樣直接操作數(shù)據(jù).主要的引用類型有:類,數(shù)組,接口,委托.
5.解釋下C#中的方法的重載?
C#中允許在一個類中定義方法的不同版本,編譯器會自動根據(jù)提供的參數(shù)選擇最合適的版本.
6.分析類和結(jié)構(gòu)的異同?
1.結(jié)構(gòu)可以繼承接口,但不允許繼承類和其他結(jié)構(gòu); 2.結(jié)構(gòu)是值類型,類是引用類型 3.結(jié)構(gòu)不允許聲明析構(gòu)函數(shù) 4,結(jié)構(gòu)是從堆棧分配內(nèi)存,而類是從堆上分配內(nèi)存
7. &和&&的區(qū)別.
&是位運算符.&&是布爾邏輯運算符
8.描述怎樣區(qū)分ExcuteNonQuery 和ExcuteScalar方法?
ExecuteNonQuery;用于查詢不返回結(jié)果集或者不返回除了所影響的行數(shù)之外的任何值.
ExecuteScalar:用于執(zhí)行返回一個值的命令.
9.解釋文件系統(tǒng)為什么會存在數(shù)據(jù)冗余?這種數(shù)據(jù)冗余會導致哪兩類典型的問題?
由于文件系統(tǒng)難于實現(xiàn)數(shù)據(jù)共享,因此,相同的數(shù)據(jù)可能會在多個文件中重復出現(xiàn),即產(chǎn)生數(shù)據(jù)冗余.數(shù)據(jù)冗余會導致數(shù)據(jù)(或更新)異常和數(shù)據(jù)不一致性.
10.什么是WEBSERVICE ?
從表面上看,Web Service就是一個應(yīng)用程序,它向外界暴露出一個能夠通過Web進行調(diào)用的API.這就是說,你能夠用編程的方法通過Web調(diào)用來實現(xiàn)某個功能的應(yīng)用程序.從深層次上看,Web Service是一種新的Web應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)(通常為Web)中被描述、發(fā)布、查找以及通過Web來調(diào)用.
C#筆試題CSDN篇3
1.接口和抽象類有什么區(qū)別?
聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況.不能創(chuàng)建abstract 類的實例.然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例.不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法.Abstract 類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為.取而代之,在子類中實現(xiàn)該方法.知道其行為的其它類可以在類中實現(xiàn)這些方法.
接口(interface)是抽象類的變體.在接口中,所有方法都是抽象的.多繼承性可通過實現(xiàn)這樣的接口而獲得.接口中的所有方法都是抽象的,沒有一個有程序體.接口只可以定義static final成員變量.接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為.當類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法.然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法.由于有抽象類,它允許使用接口名作為引用變量的類型.通常的動態(tài)聯(lián)編將生效.引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口.
2.描述類中的構(gòu)造函數(shù)和析構(gòu)函數(shù)?
構(gòu)造函數(shù)用于在使用對象之前,對對象中的成員數(shù)據(jù)進行初始化.一般與類同名.
析構(gòu)函數(shù)用在撤消對象時,承擔善后處理工作,比如收回對象中的成員數(shù)據(jù)所占有的存儲空間.
3.解釋下C#中的程序集?
用于代替DLL和可執(zhí)行文件(EXE)概念的自我描述.程序集由中間語言和元數(shù)據(jù)組成
4.try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行, 在return前執(zhí)行
5.SQL SERVER的兩種索引是何形式?索引的作用?索引的優(yōu)缺點?
SQL SERVER 提供了兩中索引形式:簇集索引和非簇集索引.索引是SQL SERVER在列上建立的一種數(shù)據(jù)庫對象.它對表中的數(shù)據(jù)提供邏輯排序,可以提高數(shù)據(jù)的訪問速度.建立索引也有缺點,它可以提高查詢速度,但過多的建立索引會占據(jù)大量的磁盤空間.
6.談?wù)凜/S和B/S的特點
1.C/S結(jié)構(gòu) 是客戶端和服務(wù)器機構(gòu) ;B/S是瀏覽器和服務(wù)器結(jié)構(gòu) 2.C/S結(jié)構(gòu)應(yīng)用服務(wù)器運行數(shù)據(jù)負荷較輕,數(shù)據(jù)存儲管理較為透明,C/S架構(gòu)的劣勢是高昂的維護成本. 3.B/S結(jié)構(gòu)維護和升級方式簡單,成本降低,選擇很多,應(yīng)用服務(wù)器運行數(shù)據(jù)負荷較輕 4.C/S多建立在局域網(wǎng)基礎(chǔ)上,B/S是建立在廣域網(wǎng)基礎(chǔ)上.
1.描述下C#中的程序集?程序集是有哪兩部分組成?
用于代替DLL和可執(zhí)行文件(EXE)概念的自我描述.程序集由中間語言和元數(shù)據(jù)組成
2.什么是元數(shù)據(jù)?
描述程序集的內(nèi)容,通過將元數(shù)據(jù)嵌入每個程序集中,任何程序集都可以實現(xiàn)完全的自我描述,
從而簡化了發(fā)布使用較舊技術(shù)的組件時所需要的工作.
3.請寫出 BOOL flag 與“零值”比較的 if 語句?請寫出 char p 與“零值”比較的 if 語句?
if(flag) if(flag==null)
4.說出下面幾個函數(shù)的區(qū)別:
private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}
被調(diào)用函數(shù)不更新參數(shù)的值,因為傳遞的是參數(shù)的副本
關(guān)鍵字REF用來引用傳遞參數(shù),從而使得被調(diào)用方法能夠更新參數(shù)的值.
OUT修飾參數(shù),是該方法會把一個值從自身回傳給調(diào)用函數(shù).
5.什么是強類型系統(tǒng)?
中間語言一個重要方面是建立在非常強的類型化功能上.所有的變量都清晰地標記為屬于某個特定數(shù)據(jù)類型,特別是如果給定的引用表示某個數(shù)據(jù)類型比較模糊的,那么中間語言一般不允許對它執(zhí)行任何操作.
6.值類型和引用類型的區(qū)別?
值類型的變量總是一個值,當聲明時編譯器分配與此類型相關(guān)聯(lián)的字節(jié)數(shù),而且你將直接操
已經(jīng)分配的內(nèi)存,另外在傳遞值類型的變量時,是在傳遞變量的值而不是它的底層對象的引用.
而聲明一個引用類型的變量時,是在操作對此對象的引用,而不是象值類型那樣直接操作數(shù)據(jù).主要的引用類型有:類,數(shù)組,接口,委托.
7.如何理解委托?
委托是一個可以對方法進行引用的類.與其他的類不同,委托類具有一個簽名,并且它只能對與其簽名匹配的方法進行引用.這樣,委托就等效于一個類型安全函數(shù)指針或一個回調(diào).事件是一種委托.
8. 事務(wù)是什么?
事務(wù)的所有操作必須完成,否則事務(wù)將被撤消.也就是說,事務(wù)是作為一個整體的單位處理,不可以被分割,事務(wù)中操作失敗回滾,處理成功時提交.
9. 解釋重載函數(shù)、虛擬函數(shù)的概念?
重載:
重載分為函數(shù)重載和運算符重載.通過使用重載機制,可以對一個函數(shù)名(或運算符)定義多個函數(shù)(或運算功能),只不過要求這些函數(shù)的參數(shù)(或參加運算的操作數(shù))的類型有所不同.
函數(shù)重載:指一組功能類似但函數(shù)參數(shù)類型(個數(shù))不同的函數(shù)可以共用一個函數(shù)名.當編譯器遇到重載函數(shù)的調(diào)用語句時,它能夠根據(jù)不同的參數(shù)類型或不同的參數(shù)個數(shù)選擇一個合適的函數(shù).
運算符重載:指對于不同數(shù)據(jù)類型的操作數(shù),同一個運算符所代表的運算功能可以不同.
虛函數(shù):
虛函數(shù)是用于實現(xiàn)多態(tài)的機制.就是通過基類訪問派生類定義的函數(shù).虛函數(shù)一般是在派生類中使用同基類相同的函數(shù)的時候用的,為了正確的區(qū)分你要調(diào)用的函數(shù)是基類的還是派生類的函數(shù).若在派生類中聲明了一個虛函數(shù),則調(diào)用的是派生類中的函數(shù),而非基類中的函數(shù).
11.描述描述怎樣區(qū)分ExcuteNonQuery ,ExcuteDataReader和ExcuteScalar方法?
ExecuteNonQuery;用于查詢不返回結(jié)果集或者不返回除了所影響的行數(shù)之外的任何值.
ExecuteScalar:用于執(zhí)行返回一個值的命令.
ExecuteReader:用于執(zhí)行命令,并將結(jié)果集作為DataReader對象返回.
12. 列出ADO.NET中讀寫數(shù)據(jù)庫的主要的幾個類?它們的作用?
SqlConnection OleDbConnection ---連接數(shù)據(jù)庫
SqlCommand OleDbCommand----SQL語句的包裝或存儲過程的調(diào)用
SqlDataAdapter OleDbDataAdapter---用于存儲選擇,插入,更新和刪除語句的類,填充DataSet
SqlDataReader OleDbDataReader---只向前的連接數(shù)據(jù)庫讀取器
DataSet----用于數(shù)據(jù)庫操作的數(shù)據(jù)集.
13. 什么是中間語言(IL)?它的作用?
中間語言代替了COM的調(diào)用約定和內(nèi)存管理標準,所有其他的NET語言都將編譯為這種語言,結(jié)果就是程序員不必來確保他們的代碼將與一種確定的二進制標準進行互操作,而是由不同.NET語言編譯器將代碼編譯到IL中來確保這種互操作性.
14. 在SQL SERVER2000中存儲過程和觸發(fā)器的區(qū)別?
1.存儲過程是一段預(yù)先編譯好的T-SQL代碼,可以被重復調(diào)用,觸發(fā)器是在進行表更改操作時才執(zhí)行功能.
2.觸發(fā)器執(zhí)行的時間較長,性能較低;存儲過程重用性好,執(zhí)行性能較高.
3.觸發(fā)器多用在完善表的數(shù)據(jù)完整性和約束;存儲過程多用在方便重復使用數(shù)據(jù)庫操作.
15.在ASP.NET中頁面之間傳遞值的方式?(盡可能敘述)
Session;Cookie;Server.Transfer;QueryString
16.分析類和結(jié)構(gòu)的異同?
1.結(jié)構(gòu)可以繼承接口,但不允許繼承類和其他結(jié)構(gòu);
2.結(jié)構(gòu)是值類型,類是引用類型
3.結(jié)構(gòu)不允許聲明析構(gòu)函數(shù)
4,結(jié)構(gòu)是從棧分配內(nèi)存,而類是從堆上分配內(nèi)存
17.short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型.可修改為s1 =(short)(s1 + 1) .short s1 = 1; s1 += 1正確
18.敘述ASP.NET中的equiredFieldValidator和RegularExpressionValitor驗證控件及作用?
RequiredFieldValidator 如果指定的文本控件空白,產(chǎn)生錯誤
RegularExpressionValitor 文本域的值與使用常規(guī)表達式指定的模式不匹配是,產(chǎn)生錯誤
19.敘述下Using 的用法?
Using語句用來確保即使發(fā)生異常,也會調(diào)用DISPOSE方法,來釋放系統(tǒng)空閑的資源
20.C#中接口和類有什么異同?
接口類似于類,但它們有區(qū)別:
.接口中的方法沒有訪問限制符
.在接口中不執(zhí)行任何方法
.接口中的方法不能如抽象方法那樣定義為虛擬和顯式的,由實現(xiàn)接口的類來決定如何實現(xiàn)方法
.接口不能示例化,沒有構(gòu)造函數(shù),也沒有字段,在接口中不允許進行操作符的重載.
21.什么是裝箱和拆箱?
裝箱是將值類型轉(zhuǎn)換為引用類型的過程,相反的過程(即將引用類型轉(zhuǎn)換為值類型)被稱為拆箱.在裝箱是不需要顯示的類型轉(zhuǎn)換,但在拆箱是需要類型轉(zhuǎn)換,這是因為在拆箱是對象可以被轉(zhuǎn)換為任何類型.
22.什么是WEBSERVICE ?
從表面上看,Web Service就是一個應(yīng)用程序,它向外界暴露出一個能夠通過Web進行調(diào)用的API.這就是說,你能夠用編程的方法通過Web調(diào)用來實現(xiàn)某個功能的應(yīng)用程序.從深層次上看,Web Service是一種新的Web應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)(通常為Web)中被描述、發(fā)布、查找以及通過Web來調(diào)用.
23.軟件開發(fā)過程一般有幾個階段?
系統(tǒng)需求分析,系統(tǒng)概要設(shè)計,系統(tǒng)詳細設(shè)計,編碼,系統(tǒng)測試,安裝調(diào)試
24.在ASP.NET中自定義控件是什么?
用戶控件是用ASP.NET代碼所創(chuàng)建的控件,它的創(chuàng)建如同在標準的ASP.NET WEB頁中創(chuàng)建控件一樣,不同之處在于一旦創(chuàng)建了用戶控件,就可以在多個ASP.NET頁面中重復使用他們.
25.ASP.NET的Application、Session、Cookie、ViewState和Cache等變量的區(qū)別是什么?
property和attribute漢語都稱之為屬性.不過property是指類向外提供的數(shù)據(jù)區(qū)域.而attribute則是描述對象在編譯時或運行時屬性的.這兩者是有本質(zhì)區(qū)別的.
26.解釋下在ASP.NET中Response的作用?
與Request獲取客戶端HTTP信息相反, Response用來控制發(fā)送給用戶的信息,包括直接發(fā)送信息給瀏覽器,重定向到另一個ULR或設(shè)置COOKIE值
27.解釋下在ASP.NET中Request的作用?
Request訪問任何基于HTTP請求傳遞的所有信息,包括從HTML表格用POST方法和GET方法傳遞的參數(shù),COOKIE和用戶人證.
28. C#中能夠使用指針嗎?如果不能使用說明理由,如果能使用說出使用方法?
C#中能夠使用指針,因為在.NET框架內(nèi)使用無用單元回收器,隱藏了內(nèi)存的管理工作.所以C#只允許在特定的代碼塊內(nèi)使用指針,標記所用的關(guān)鍵字是UNSAFE