1. 程式人生 > WINDOWS開發 >C#.NET重點知識點彙總(二)

C#.NET重點知識點彙總(二)

填空題
1..NET Framework包括(CLR公共語言執行時)(框架類庫)(實用工具)三種技術
2.運算子++X表示(計算完畢後增量X),X++表示(在計算前增量X)。
3.軟體測試方法分為(黑盒測試)(白盒測試)。
4..NET通過對各語言先編譯成(中間語言(IL)),然後再執行時用(JIT(即時編譯器))將其編譯成本地平臺程式碼,來實現異構平臺下物件的互操作
5.在SQL SERVER 中游標的宣告的語句是(Declare Cursor)釋放的語句是(Deallocate cursor)。
6.SQL SERVER的程式語言是(Transact-SQL)語言
7.委託宣告的關鍵字是(Delegate)。

8.在MS SQL Server中,用來顯示資料庫資訊的系統儲存過程是(sp_helpdb)
9.SQL語言中,用於事務回滾的語句是(Rollback)。
10.如果兩個實體之間具有M:N聯絡,則將它們轉換為關係模型的結果是(3)個表。
11.Codebehind主要是通過把(頁面程式碼)和(功能程式碼)放在不同的檔案中來實現程式碼分離的。
12.在C#中由值型別轉換為引用型別稱為(裝箱),有引用型別轉換為值型別稱為(拆箱)
13.SQL SERVER中索引型別包括的三種類型分別是(唯一索引)(簇索引)(非簇索引)。
14.軟體工程的三大文件(系統需求說明書)(系統概要設計說明書)(系統詳細設計說明書)
15.在SQL SERVER2000中的四中約束(主鍵)(唯一性)(外來鍵)(檢查約束)。;

B.簡答題
1.什麼是中間語言(IL)?它的作用?
中間語言代替了COM的呼叫約定和記憶體管理標準,所有其他的NET語言都將編譯為這種語言,結果就是程式設計師不必來確保他們的程式碼將與一種確定的二進位制標準進行互操作,而是由不同。NET語言編譯器將程式碼編譯到IL中來確保這種互操作性。

2.C#中與基類通訊的關鍵字什麼?作用是什麼?
C#允許通過BASE關鍵字訪問最近的基類成員。

3.什麼是元資料?
描述程式集的內容,通過將元資料嵌入每個程式集中,任何程式集都可以實現完全的自我描述,從而簡化了釋出使用較舊技術的元件時所需要的工作。

4.ASP.NET和ASP的主要優勢?
a.ASP.NET具有面向物件性;b.ASP.NET使用ADO.NET,使對資料庫操作更快速更強大;
c.ASP.NET支援多種語言,擺脫了ASP只能使用非結構語言(VBSCRIPT,JSCRIPT)編寫的限制;d.ASP.NET具有程式碼繫結技術,使頁面程式碼和功能程式碼的編寫完全分離,具有更好的重用性.

5.Override與過載有什麼區別?
Override用來重寫父類的方法,過載使用相同名的方法或操作符擁有不同型別的引數。

6.SQL SERVER 中的觸發器的理解?
觸發器是一種特殊的儲存過程,當用戶修改指定表或檢視中的資料時,觸發器將自動執行.

7. ref、out的區別
ref修飾符用來通過引用傳遞引數,從而使得被呼叫方法能夠更新引數的值.
Out修飾某個引數意味著該方法會把一個值從自身回傳給呼叫函式.

8.大概描述下ASP.NET中伺服器控制元件的生命週期?

9.什麼是強型別系統?
中間語言一個重要方面是建立在非常強的型別化功能上.所有的變數都清晰地標記為屬於某個特定資料型別,特別是如果給定的引用表示某個資料型別比較模糊的,那麼中間語言一般不允許對它執行任何操作.

10.觸發器分為事前觸發和事後觸發,有何區別?
事前觸發器就是在語句執行之前啟用的觸發器,而事後觸發器就是在語句執行後啟用的觸發器。

11.談談final,finally,finalize的區別。
final 修飾符用於指定類不能擴充套件或者方法或屬性不能重寫。它將防止其他類通過重寫重要的函式來更改該類的行為。帶有 final 修飾符的方法可以由派生類中的方法來隱藏或過載。
finally 塊用於清除在 try 塊中分配的任何資源。控制總是傳遞給 finally 塊,與 try 塊的存在方式無關。
finalize允許 Object 在“垃圾回收”回收 Object 之前嘗試釋放資源並執行其他清理操作。

12.在.net(C# or vb.net)中,Appplication.Exit 還是 Form.Close有什麼不同?
一個是退出整個應用程式,一個是關閉其中一個form。

13.C#中的委託是什麼?事件是不是一種委託?
委託是一個可以對方法進行引用的類。與其他的類不同,委託類具有一個簽名,並且它只能對與其簽名匹配的方法進行引用。這樣,委託就等效於一個型別安全函式指標或一個回撥。事件是一種委託.

14.值型別和引用型別的區別?
值型別的變數總是一個值,當宣告時編譯器分配與此型別相關聯的位元組數,而且你將直接操
已經分配的記憶體,另外在傳遞值型別的變數時,是在傳遞變數的值而不是它的底層物件的引用。而宣告一個引用型別的變數時,是在操作對此物件的引用,而不是象值型別那樣直接操作資料。主要的引用型別有:類,陣列,介面,委託。

15.解釋下C#中的方法的過載?
C#中允許在一個類中定義方法的不同版本,編譯器會自動根據提供的引數選擇最合適的版本。
16.分析類和結構的異同?
1.結構可以繼承介面,但不允許繼承類和其他結構;2.結構是值型別,類是引用型別;
3.結構不允許宣告解構函式;4,結構是從堆疊分配記憶體,而類是從堆上分配記憶體。

17. &和&&的區別。
&是位運算子。&&是布林邏輯運算子。

18.描述怎樣區分ExcuteNonQuery 和ExcuteScalar方法?
ExecuteNonQuery;用於查詢不返回結果集或者不返回除了所影響的行數之外的任何值.
ExecuteScalar:用於執行返回一個值的命令。

19.解釋檔案系統為什麼會存在資料冗餘?這種資料冗餘會導致哪兩類典型的問題?
由於檔案系統難於實現資料共享,因此,相同的資料可能會在多個檔案中重複出現,即產生資料冗餘。資料冗餘會導致資料(或更新)異常和資料不一致性。

20.什麼是WEBSERVICE?
從表面上看,Web Service就是一個應用程式,它向外界暴露出一個能夠通過Web進行呼叫的API。這就是說,你能夠用程式設計的方法通過Web呼叫來實現某個功能的應用程式。從深層次上看,Web Service是一種新的Web應用程式分支,它們是自包含、自描述、模組化的應用,可以在網路(通常為Web)中被描述、釋出、查詢以及通過Web來呼叫。

21.介面和抽象類有什麼區別?
宣告方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要建立一個體現某些基本行為的類,併為該類宣告方法,但不能在該類中實現該類的情況。不能建立abstract 類的例項。然而可以建立一個變數,其型別是一個抽象類,並讓它指向具體子類的一個例項。不能有抽象建構函式或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程式體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程式體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何物件上呼叫介面的方法。由於有抽象類,它允許使用介面名作為引用變數的型別。通常的動態聯編將生效。引用可以轉換到介面型別或從介面型別轉換,instanceof 運算子可以用來決定某物件的類是否實現了介面。

22.描述類中的建構函式和解構函式?
建構函式用於在使用物件之前,對物件中的成員資料進行初始化.一般與類同名; 解構函式用在撤消物件時,承擔善後處理工作,比如收回物件中的成員資料所佔有的儲存空間.

23.解釋下C#中的程式集?
用於代替DLL和可執行檔案(EXE)概念的自我描述.程式集由中間語言和元資料組成。


24.try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?
會執行,在return前執行。

25.SQL SERVER的兩種索引是何形式?索引的作用?索引的優缺點?
SQL SERVER 提供了兩中索引形式:簇集索引和非簇集索引.索引是SQL SERVER在列上建立的一種資料庫物件.它對錶中的資料提供邏輯排序,可以提高資料的訪問速度.建立索引也有缺點,它可以提高查詢速度,但過多的建立索引會佔據大量的磁碟空間.

26.談談C/S和B/S的特點
C/S結構 是客戶端和伺服器機構 ;B/S是瀏覽器和伺服器結構;
C/S結構應用伺服器執行資料負荷較輕,資料儲存管理較為透明,C/S架構的劣勢是高昂的維護成本;.B/S結構維護和升級方式簡單,成本降低,選擇很多,應用伺服器執行資料負荷較輕;.C/S多建立在區域網基礎上,B/S是建立在廣域網基礎上。

C.程式設計題:
1.設有如下關係表
供應者 SUPPLIER(SNO,SNAME,CITY) SNO供應者編號,SNAME為供應者姓名,CITY所在城市
零件 PART(PNO,PNAME,WEIGHT)PNO零件號,PNAME零件名稱,WEIGHT重量
工程 JOB(JNO,JNAME,CITY) JNO工程號,JNAME工程名,CITY所在城市
聯絡關係 SPJ(SNO,PNO,JNO,QTY) QTY為數量
1.查詢給工程J1提供零件P1的供應者號SNO
SELECT SNO FROM SPJ WHERE PNO=“P1”AND JNO=“J1”
2.查詢在北京的供應者給武漢的工程提供零件的零件號
SELECT PNO FROM SPJ WHERE JNO IN(SELECT JNO FROM JOB WHERE CITY=“武漢”)
AND SNO IN (SELECT SNO FROM SUPPLIER WHERE CITY=“北京”)
3.查詢由供應者S1提供的零件名PNAME
SELECT PNAME FROM PART WHERE PNO IN(SELECT PNO FROM SPJ WHERE SNO=“S1”)
4.查詢CITY值為上海的工程號和名稱
SELECT 工程號,名稱 FROM JOB WHERE CITY=“上海“
5.將工程J3的城市改為廣州
UPDATE JOB SET CITY=“廣州“ WHERE JNO=”13“
6.將所有重20公斤的零件改為重10公斤
UPDATE JOB SET CITY=“廣州“ WHERE JNO=”13“
7.將給工程J1提供零件P1的供應者S1改為S2
UPDATE SPJ SET SNO=“S2”
WHERE(JNO=“J1” AND PNO=“P1” AND SNO=“S1”)
8.將值(S3,凌濤,武漢)加到SUPPLIER中
INSERT INTO SUPPLIER(SNO,SNAME,CITY)
9.刪除所有上海工程的資料
DELETE FROM JIB WHERE CITY=“上海”


2.有個表USERS如下
Number(int) Name(char)
1 a
2 b
3 b
4 a
5 c
6 c
要求:當Name列上有相同時,只保留Number這列上值小的那一行,結果應如下:
Number(int) Name(char)
1 a
2 b
5 c
問:用SQL語句的Delete來實現.(記住,是一個SQL語句)
DELETE * FROM Users WHERE Number NOT IN (Select Min(Number) FROM Users
GROUP BY Name)