.net軟體工程師面試題一. 填空題:
1. 類的三大特性是(封裝)(繼承)(多態)。
2. 在SELECT語句的FROM子句中最多可以指定(256)個表或視圖,相互之間要用(逗號)分隔,當所查詢的表不在當前資料庫時,可用(資料庫名.所有者名.表名)格式來指出表或視圖對象。
3. 建立預存程序的命令是(create proc 預存程序名)刪除表的命令是(drop 表名)。
4. 計算欄位的累加和的函數是:(sum),統計項目數的函數是:(count)。
5. 關聯式資料庫中,主鍵是(外鍵)。
6. 聲明抽象類別的關鍵字是(abstract),抽象類別不能(sealed)。
7. .NET運行庫支援被稱為(委託)的參考型別,其作用類似於C++中函數指標的用途。
8. XML的全稱是(Extensible Markup Language)。
9. C#中所有的類型實質上都是從(Object)類派生而來的。
10. 聲明靜態變數的關鍵字是(static),聲明常量的關鍵字是(const)。
11. C#中處理記憶體管理功能的是(Managed 程式碼)。
12. 在C#中用於顯式地將一個值或引用轉換為另一種不同的類型稱為(拆箱)。
13. 在ADO。NET中,command對象是用(ExcuteNonQuery)(ExcuteScalar)(ExcuteDataReader)方法執行命令。
14. B/S通常使用的結構設計模型分為(模型)(視圖)(控制)。
15. SQL SERVER中索引類型包括的三種類型分別是(主鍵索引)(唯一索引)(叢集索引)。
.net軟體工程師面試題二. 簡答題:
1.什麼是中繼語言(IL)?它的作用?
答:代碼在執行前都要被編譯為Managed 程式碼,與CPU無關的指令集。
其作用:支援平台無關性,還支援語言的互通性。
2.什麼是裝箱和拆箱?
答:實值型別轉換成參考型別是裝箱,參考型別轉換成實值型別是拆箱。
3. 出ADO。NET中讀寫資料庫的主要的幾個類?它們的作用?
答:Connection資料庫連接;Command執行SQL語句或預存程序;DataAdapter用於填充DataSet和更新資料庫的一組資料命令和資料庫連接,斷開模式;DataReader,讀取資料庫資訊,是唯讀向前的;DataSet資料在記憶體中的緩衝。
4. C#中介面和類有什麼異同?
答:類是參考型別,可以繼承類、介面和被繼承,有預設的建構函式,有解構函式,可以使用abstract和sealed,有protected修飾符,必須使用new初始化。
結構是實值型別,只能繼承介面,不能被繼承,沒有預設的建構函式,可以建立,沒有解構函式,不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。
如何選擇使用結構還是類:
1.堆棧的空間有限,對於大量的邏輯的對象,建立類要比建立結構好一些
2.結構表示如點、矩形和顏色這樣的輕量對象,例如,如果聲明一個含有 1000 個點對象的數組,則將為引用每個對象分配附加的記憶體。在此情況下,結構的成本較低。
3.在表現抽象和多層級的對象層次時,類是最好的選擇
4.大多數情況下該類型只是一些資料時,結構是最佳的選擇
5. 解釋ASP。NET中的code-behind?
答:程式碼後置,顯示邏輯的代碼和處理邏輯的代碼分離
6. 什麼是ASP。NET中的使用者控制項?
答:是asp.net代碼建立的控制項,就像在標準的ASP.NET Web頁面中建立控制項一樣,可以在多個ASP.NET頁面中重用它們。
7. 在C#中,string str = null 與 string str = “” 請盡量說明其中的區別。
答:string str=null沒有分配空間,string str=“”分配了空間
8. 什麼是受管制代碼?
答:由公用語言運行環境進行管理的代碼,它主要負責記憶體管理。在.net平台上啟動並執行代碼都是受管制代碼
9 C#中常用的訪問形式?它們各自的範圍?
答:public 不受限制的訪問。
private 只能在本類中訪問
protected 本類和繼承他的類中訪問
internel表示在同一個應用程式(application)或類庫(library)中都能使用
10. SQL SERVER 中的預存程序的理解?
答:預存程序是 SQL 陳述式和可選控制流程語句的先行編譯集合,以一個名稱儲存並作為一個單元處理。預存程序儲存在資料庫內,可由應用程式通過一個調用執行,而且允許使用者聲明變數、有條件執行以及其它強大的編程功能。
11.CTS,CLS,CLR分別作何解釋?
答: CTS:公用類型系統.主要是為了語言之間的進行標準化處理.
CLS:Common Language Specification.主要是確保代碼可以在任何語言中訪問的最小標準集體
CLR:通用語言執行平台.主要是管理代碼..處理,載入代碼,以及所有服務的代碼
12. ASP。NET和ASP的主要優勢?
答:ASP.Net的優勢:
ASP.Net擺脫了以前ASP使用指令碼語言來編程的缺點,理論上可以使用任何程式設計語言包括C++ , VB , JS等等,當然,最合適的程式設計語言還是MS為.Net Frmaework專門推出的C(讀c sharp),它可以看作是VC和Java的混合體吧,儘管MS自己講C#核心中更多的象VC,但實際上我還是認為它和Java更象一些吧。首先它是物件導向的程式設計語言,而不是一種指令碼,所以它具有物件導向程式設計語言的一切特性,比如封裝性、繼承性、多態性等等,這就解決了剛才談到的ASP的那些弱點。封裝性使得代碼邏輯清晰,易於管理,並且應用到ASP.Net上就可以使商務邏輯和Html頁面分離,這樣無論頁面原型如何改變,商務邏輯代碼都不必做任何改動;繼承性和多態性使得代碼的可重用性大大提高,你可以通過繼承已有的對象最大限度保護你以前的投資。並且C#和C++、Java一樣提供了完善的調試/ 錯誤修正體系。
13. NET的錯誤處理機制是什麼?
答:try{可能要出錯的代碼}
catch{撲捉到錯誤後的處理}
finally{不論代碼是否出錯都要執行}
14. 解釋Page.IsPostBack屬性?
答:使用者第一次瀏覽這個網頁時Page.IsPostBack 會傳回False,不是第一次瀏覽這個網頁時就傳回True
15..net framework包含哪幾種技術?
答:Application Framework,Domain Framework
16.觸發器分為事前觸發和事後觸發,有何區別?
答:事前觸發器運行於觸發事件發生之前,而事後觸發器運行於觸發事件發生之後。通常事前觸發器可以擷取事件之前和新的欄位值
17.解釋SQL SERVER2000中HAVING的用法?]
答:在分組時篩選資料
18.解釋SQL SERVER2000中GROUP BY的用法?
答:分組
19.解釋下C#中的方法的重載?
答:重載方法:是指使用相同的方法名,但指定不同的參數(個數,類型)。
20.事務是什麼?
答:在許多大型、關鍵的應用程式中,電腦每秒鐘都在執行大量的任務。更為經常的不是這些任務本身,而是將這些任務結合在一起完成一個業務要求,稱為事務。當某一個任務失敗時,就恢複到指定的復原點,這個叫復原。
21.描述下ASP。NET中使用DataReader對象 和DataSet對象的區別?
答:dataset是儲存資料的資料結構,斷開模式,而DataReader不承擔儲存資料的責任,需要自己手動關閉串連資料庫,它只負責從資料來源讀取資料到本地而已,是唯讀向前的,它不是資料結構,而是網路通訊群組件的高層封裝。
22.分析類和結構的異同?
答:類是參考型別,可以繼承類、介面和被繼承,有預設的建構函式,有解構函式,可以使用abstract和sealed,有protected修飾符,必須使用new初始化。
結構是實值型別,只能繼承介面,不能被繼承,沒有預設的建構函式,可以建立,沒有解構函式,不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。
如何選擇使用結構還是類:
1.堆棧的空間有限,對於大量的邏輯的對象,建立類要比建立結構好一些
2.結構表示如點、矩形和顏色這樣的輕量對象,例如,如果聲明一個含有 1000 個點對象的數組,則將為引用每個對象分配附加的記憶體。在此情況下,結構的成本較低。
3.在表現抽象和多層級的對象層次時,類是最好的選擇
4.大多數情況下該類型只是一些資料時,結構是最佳的選擇
23.解釋ADO。NET中的使用Connection 類的CLOSE()和DISPOSE()的區別?
答:close只是關閉,dispose是釋放資源。
24.敘述ADO。NET中的DataAdapte類的作用?
答:斷開模式串連資料庫,並且填充DataSet。
25.什麼是WEBSERVICE ?
答:web服務,是利用SOAP(簡易物件存取通訊協定 (SOAP),Simple Object Access Protocol)在HTTP上執行遠程方法調用的一種方法,也可以使用WSDL(Web Service Description Language,Web服務描述語言)來完整的描述Web服務,基於XML標準。
26.行下面代碼後:
String strTemp ="abcdefg 某某某";
int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
int j = strTemp.Length;
問:i=( 14) ;j=( 11)
原因是什麼?
答:漢字佔2個位元組,所以i=14
27..敘述ASP。NET中的幾種驗證控制項(equiredFieldValidato, CompareValidator, RangeValidator, RegularExpressionValitor, CustomValidator, ValidationSummary)及作用?
答:
a) RequiredFieldValidator(必須欄位驗證);
b) CompareValidator(比較驗證);
c) RangeValidator (範圍驗證);
d) RegularExpresionValidator(Regex);
e) ValidationSummary(驗證總結);
f) CustomValidator(自訂驗證)
.net軟體工程師面試題三. 編程題:
1.有三個表,結構如下:
STUDENT(學生證號,姓名,性別,出生年月)
COURSE(課程號,課程名,授課教師)
SC(學生證號,課程號,成績,授課教師)
用標準SQL 陳述式完成下列操作
1. 查詢女生的基本情況,並按照學生證號降序排列
答:select * from STUDENT where性別=’女’order by 學生證號 desc
2. 查詢成績在90分以上的學生的姓名
答:select 姓名from STUDENT,SC where STUDENT.學生證號 = SC.學生證號 and SC.成績 > 90
3. 查詢數學類課程的課程號和課程名(模糊查詢,以S開頭)
答:select 課程號,課程名 from COURSE where 課程名 like ‘S%’
4. 查詢選課學生所選課程的課程號和成績,以及該學生的姓名和性別
答:select 課程號,成績,姓名,性別 from SC,STUDENT,COURSE
where SC.學生證號 = STUDENT.學生證號
and COURSE.課程號 = SC.課程號 group by 學生證號
5. 查詢03號課程的平均成績
答:select avg(成績) from SC where 課程號 = ‘03’
6. 刪除成績不及格的學生姓名
答:delete from STUDENT where學生證號 in (select學生證號 from SC where 成績 < 60);
delete from SC where成績 < 60;
注意:刪除的順序不能反
7. 把學生證號為90876的學生所選的01號課程成績改為80分
答:update SC set 成績 = ’80’where 學生證號=’90876’ and課程號 = ‘01’
2.SQLSERVER伺服器中,給定表 table1 中有兩個欄位 ID、LastUpdateDate,ID表示更新的事務號, LastUpdateDate表示更新時的伺服器時間,請使用一句SQL語句獲得最後更新的事務號。(10)
答:select ID from table1 where LastUpdateDate = (select max(LastUpdateDate) from table1)
以上面試資料.net軟體工程師面試題精華集錦中的一部分,經過一段時間的工作經驗的積累後,可發展成為進階軟體工程師、演算法應用開發工程師和需求工程師,但需要具有豐富的軟體開發經驗和相關工作的技術背景。如果想成為技術精英、專案經理,則還需要具有較強的管理和組織等方面的能力。
原文地址