c#試題庫(kù)(包括所有課后題及答案)_第1頁(yè)
c#試題庫(kù)(包括所有課后題及答案)_第2頁(yè)
c#試題庫(kù)(包括所有課后題及答案)_第3頁(yè)
c#試題庫(kù)(包括所有課后題及答案)_第4頁(yè)
c#試題庫(kù)(包括所有課后題及答案)_第5頁(yè)
已閱讀5頁(yè),還剩181頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C#試題庫(kù)(這個(gè)題太多,只是為了方便看前半部分的課后題及解答,貌似有幾個(gè)答案和老師講的不一樣,僅供參考)計(jì)算機(jī)高級(jí)語(yǔ)言部分一 選擇題(1)以下不屬于NET編程語(yǔ)言的是 。(A) AJava BC# CVCNET DVBNET(2)C#語(yǔ)言經(jīng)編譯后得到的是 。(D) A擴(kuò)編指令 B機(jī)器指令 C本機(jī)指令 DMicrosoft中間語(yǔ)言指令(3)C#程序的執(zhí)行過(guò)程是 。(D)A從程序的第一個(gè)方法開(kāi)始,到最后個(gè)方法結(jié)束B(niǎo)從程序的Main方法開(kāi)始,到最后一個(gè)方法結(jié)束C從程序的第一個(gè)方法開(kāi)始,到Main方法結(jié)束D從程序的Main方法開(kāi)始,到Main方法結(jié)束(4)Console標(biāo)準(zhǔn)的輸入和輸出設(shè)備分別是 和

2、。(A C) A鍵盤(pán) B鼠標(biāo) C屏幕 D打印機(jī)(5)以下屬于c#簡(jiǎn)單值數(shù)據(jù)類(lèi)型的有 。 (AC) Aint類(lèi)型 Bint類(lèi)型 Cchar類(lèi)型 D枚舉類(lèi)型(6)要使用變量age來(lái)存儲(chǔ)人的年齡,則將其聲明為 類(lèi)型最為適合。(B) A,sbyte Bbyte Cint Dfloat(7)以下數(shù)組聲明語(yǔ)句中,不正確的有 。(BC) Aint a; Bint a = new int2 Cint a = 1,3; Dint a = int 1,3;(8)以下多維數(shù)組聲明語(yǔ)句中,不正確的有 。(C) Aint,a = new int2,3; Bint, a = 1,2,3; Cint2,3 a = new

3、int2,3; Dint, a = 1,2,3,2,3;(9)若多維數(shù)組a有4行3列,那么數(shù)組中第10個(gè)元素的寫(xiě)法為 。(C) Aa10 Ba2,1 Ca3,0 Da4,1(10)以下賦值語(yǔ)句中,正確的有 。(B) Ashort X = 50000; Bushort Y= 50000; Clong X =1000;int Y=x; Ddouble x=20;decimal Y=x;(11)以下拆箱轉(zhuǎn)換語(yǔ)句中,正確的有 。(D) Aobject o; int i = (int)o; Bobject o=10.5; int i= (int)o; Cobject o=10.5; float f =

4、(float)o; Dobject o=10.5; float f=(float)(double)o;(12)可以作用于結(jié)構(gòu)類(lèi)型的訪問(wèn)限制修飾符有 。(ABCD) Apublic Bprotected Cprivate Dinternal(13)c#程序中,方法的簽名由以下哪幾部分組成 。(AB) A方法名 B參數(shù)列表 C返回類(lèi)型 D方法執(zhí)行體(14)以下屬于合法c#變量名的有 。(AD) AX J23 Bclass C5y Dch(15)設(shè)double型變量x和y的取值分別為12.5和5.0,那么表達(dá)式xy+(int)(xy)-(int)xy的值為 。(C) A2.9 B2.5 C2.1 D

5、2(16)設(shè)bool型變量a和b的取值分別為true和false,那么表達(dá)式a&&(a|!b)和a|(a&&b)的值分別為 。(A) Atrue true Btrue false Cfalse false Dfalse true(17)設(shè)int型變量x的值為9,那么表達(dá)式x- + x- + x-的值為 ,而表達(dá)式-x + -x + -x的值為 。(BC) A27 B24 C21 D18(18)設(shè)int型變量x和y的取值分別為3和2,那么執(zhí)行下面語(yǔ)句后z的值為 。(A) int z = (x+ % y = 0) ? +x : (x / y = 1) ? +y :

6、-y; A 1 B2 C3 D4(19)設(shè)int型變量X的值為-5,那么表達(dá)式X << -(X >> 2)的值為 。(A)A-20 B-10 C-9 D10(20)下列有關(guān)switch語(yǔ)句的描述中,正確的有 。(A) A至少應(yīng)包含一個(gè)case分支 B每個(gè)case分支都必須有break語(yǔ)句 C必須包含default語(yǔ)句 Ddefault語(yǔ)句之后的case分支無(wú)效(21)下面語(yǔ)句執(zhí)行后y的值為 。(C)int x = 0, y = 0;while (x < 10) y += (x += 2);A. 10 B. 20 C. 30 D. 55(22)下面語(yǔ)句執(zhí)行后y的值為

7、 。(D)int x = 1, y = 1;do y <<= (+x);while (x < 4);A. 16 B. 64 C. 138 D. 512(23)以下循環(huán)語(yǔ)句的執(zhí)行次數(shù)為 。(A)for (int i = 0,x = 0; i < 10; i+) for (int j = i; j > 0; j-) x+;A. 45 B. 55 C. 81 D. 100(24)下面語(yǔ)句的輸出結(jié)果的值為 。(B) int x = 1, y = 15; do if (y % x = 0) Console.Write(x); while (x+ < y / 2);A.

8、 35 B. 135 C.1357 D. 13515(25)下面的語(yǔ)句中所計(jì)算的數(shù)學(xué)表達(dá)式為 。(D)for (int x = 0, y = 1, z = 1; z < 10; x += y, y *= +z) A. 1+2+4+6+.+20 B. 1+2+22+23+.+210C. 1+1*2+2*3+.+9*10 D. 1!+2!+3!+.+10!(26)以下語(yǔ)句中會(huì)產(chǎn)生死循環(huán)的有 。(BC)A. int x = 1, y = 0; while (true) if (x += (y+) > 100) break;B. for(;);C. for (int x = 100, y

9、= 1; y < 10; ) if (x % y = 0) Console.WriteLine(y+);D. for (int i = 10; i > 0; i-) for (int j = 0; j < i; j+) ;(27)下面有關(guān)構(gòu)造函數(shù)和析構(gòu)函數(shù)的說(shuō)法,不正確的有 。(D) A構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能有返回值 B 可以定義靜態(tài)的構(gòu)造函數(shù) C 一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù) D一個(gè)類(lèi)可以有多個(gè)析構(gòu)函數(shù)(28)下面有關(guān)屬性的說(shuō)法,不正確的有 。(A) A屬件可以有默認(rèn)值 B屬性可以不和任何字段相關(guān)聯(lián)C屬性的get訪問(wèn)函數(shù)是不帶參數(shù)的特殊方法D屬性的set訪問(wèn)函數(shù)是沒(méi)有返回值特

10、殊方法(29)以下不能作為復(fù)合賦值操作符被重載的有 。(D)A+= B*= C&= D =(30)下面有關(guān)事件的說(shuō)法,不正確的有 。(B) Adelegate是所有事件的元類(lèi)型 B事件應(yīng)當(dāng)被定義為public,否則就不能被外部對(duì)象引發(fā)C一個(gè)事件可以關(guān)聯(lián)多個(gè)事件處理方法D多個(gè)事件可以使用一個(gè)事件處理方法(31)類(lèi)的成員中,不能定義為靜態(tài)的有 。(AC)A析構(gòu)函數(shù) B屬性 C索引函數(shù) D事件(32)要從派生類(lèi)中訪問(wèn)基類(lèi)的成員,應(yīng)使用關(guān)鍵字 。(C) Anew Bthis Cbase Doverride(33)下面有關(guān)抽象類(lèi)的說(shuō)法,正確的有 。(C) A抽象類(lèi)中至少應(yīng)有一個(gè)抽象方法 B抽象類(lèi)

11、中的方法不能提供實(shí)現(xiàn)代碼 C抽象類(lèi)的派生類(lèi)必須實(shí)現(xiàn)該抽象類(lèi)的所有抽象方法 D抽象類(lèi)不能被實(shí)例化,因此不能定義公有構(gòu)造函數(shù)(34) 下面有關(guān)虛擬方法和抽象方法的說(shuō)法,正確的有 。(B) A二者都不提供方法的實(shí)現(xiàn)代碼 B二者都不能使用private修飾符 C一個(gè)方法可以同時(shí)使用virtual和abstract修飾符 D虛擬方法可以作為抽象方法的重寫(xiě)實(shí)現(xiàn)(35) 下面有關(guān)密封類(lèi)和密封方法的說(shuō)法,正確的有 。(C) A密封類(lèi)中的所有方法部不能被重載 B密封方法不能被重寫(xiě),也不能重載其他方法 C密封方法不能是靜態(tài)的 D派生類(lèi)中的方法不能與基類(lèi)中的密封方法同名(36)接口中定義的方法,不能使用的修飾符有

12、。(ABD)Apublic Babstract Cnew Dstatic(37) 是獨(dú)立于CPU 的指令集,它可以被高效地轉(zhuǎn)換為特定于某種CPU 的代碼.(C)A. CLR B. CLS C. MSIL Microsoft 中間語(yǔ)言 D. XML Web Service(38)關(guān)于C#語(yǔ)言的基本語(yǔ)法,下列說(shuō)法是正確的有 。(AC)A. C#語(yǔ)言使用using 關(guān)鍵字來(lái)引用.NET 預(yù)定義的名字空間;B. 用C#編寫(xiě)的程序中,Main 函數(shù)是唯一允許的全局函數(shù);C. C#語(yǔ)言中使用的名稱嚴(yán)格區(qū)分大小寫(xiě);D. C#中一條語(yǔ)句必須寫(xiě)在一行內(nèi);(39)C#中每個(gè)int 類(lèi)型的變量占用_個(gè)字節(jié)的內(nèi)存.A

13、. 1 B. 2 C. 4 D. 8 E.12(40)在C#中,表示一個(gè)字符串的變量應(yīng)使用以下 條語(yǔ)句定義。(B)A. CString str; B. string str; C. Dim str as string D. char * str;(41)在C#編制的財(cái)務(wù)程序中, 應(yīng)使用 條語(yǔ)句來(lái)創(chuàng)建一個(gè)存儲(chǔ)流動(dòng)資金金額的臨時(shí)變量。(A)A. decimal theMoney; B. int theMoney; C. string theMoney; D. Dim theMoney as double(42)C#中,新建一字符串變量str,并將字符串”Tom's Living Room”

14、保存到串中,則應(yīng)該使用下列 條語(yǔ)句。(A)A. string str = “Tom's Living Room”; B. string str = “Tom's Living Room”;C. string str(“Tom's Living Room”); D. string str(“Tom”s Living Room”);(43)在類(lèi)的定義中,類(lèi)的 描述了該類(lèi)的對(duì)象的行為特征.(B)A. 類(lèi)名 B. 方法 C. 所屬的名字空間 D. 私有字段(44)下列語(yǔ)句中定義的變量屬于引用類(lèi)型變量有 。(AC)A. IInformation info; / IInformat

15、ion 為一接口類(lèi)型名B. MyStruct x; /MyStruct 為一結(jié)構(gòu)類(lèi)型名C. int arr;D. MyEnum y; /MyEnum 為已定義的枚舉類(lèi)型名(45)在下列函數(shù)結(jié)束后,馬上從內(nèi)存中清除的是_.(AB)void Test()int i = 100;int arr = new int10;string str = “this is a test”;object r = new System.DateTime(1999,9,9);A. 變量i B. 數(shù)組變量arrC. 變量str 所引用的字符串對(duì)象 D. 變量r 所引用的DataTime 對(duì)象(46)C#中MyClass

16、 為一自定義類(lèi),其中有以下方法定義public void Hello().使用以下語(yǔ)句創(chuàng)建了該類(lèi)的對(duì)象,并使變量obj 引用該對(duì)象:MyClass obj = new MyClass();那么,訪問(wèn)類(lèi)MyClass 的Hello 方法是 條語(yǔ)句。(A)A. obj.Hello(); B. obj:Hello(); C. MyClass.Hello(); D. MyClass:Hello();(47)分析下列C#語(yǔ)句,注意類(lèi)MyClass 沒(méi)有訪問(wèn)修飾符:namespace ClassLibrary1class MyClasspublic class subClassint i;若必須為類(lèi)MyC

17、lass 添加訪問(wèn)修飾符,并使MyClass 的可訪問(wèn)域保持不變,則應(yīng)選擇_.(C)A. private B. protected C. internal D. public E. protected internal(48)C#可以采用下列哪些技術(shù)來(lái)進(jìn)行對(duì)象內(nèi)部數(shù)據(jù)的隱藏?(BC)A. 靜態(tài)成員 B. 類(lèi)成員的訪問(wèn)控制說(shuō)明C. 屬性 D. 裝箱(boxing)和拆箱(Unboxing)技術(shù)(49)分析下列程序:public class class4private string _sData = ""public string sDataset_sData = value;

18、在Main 函數(shù)中,在成功創(chuàng)建該類(lèi)的對(duì)象,并將其引用保存到變量obj 后,下列合法的語(yǔ)句有_。(A)A. obj.sData = “It is funny!”; B. Console.WriteLine(obj.sData);C. obj._sData = 100; D. obj.set(obj.sData);(50)在定義類(lèi)時(shí),如果希望類(lèi)的某個(gè)方法能夠在派生類(lèi)中進(jìn)一步進(jìn)行改進(jìn),以滿足不同的派生類(lèi)的需要,則應(yīng)將該方法聲明成_.(C)A. sealed 方法 B. public 方法 C. visual 方法 D. override 方法(51)使用下列哪種方法可以減小一個(gè)ArrayList 對(duì)

19、象的容量?(CD)A. 調(diào)用Remove 方法 B. 調(diào)用Clear 方法C. 調(diào)用TrimToSize 方法 D. 設(shè)置Capacity 屬性(52)在C#中,下列哪些語(yǔ)句可以創(chuàng)建一個(gè)具有3 個(gè)初始值為"A"的元素的字符串?dāng)?shù)組?(C)A. string StrList3( "A"); B. string3 StrList = "A","A","A"C. string StrList = "A","A","A" D. string St

20、rList = new string3;(53)當(dāng)創(chuàng)建一個(gè)新類(lèi)時(shí),該類(lèi)將從System.Object 基類(lèi)繼承下列哪些方法?(A)A. ToString B. ToObject C. Equals D. GetClassInfomation(54)關(guān)于結(jié)構(gòu)類(lèi)型,下列說(shuō)法哪些是正確的?(A)A. 結(jié)構(gòu)是值類(lèi)型B. 結(jié)構(gòu)中不允許定義帶參數(shù)的實(shí)例構(gòu)造函數(shù);C. 結(jié)構(gòu)中不允許定義析構(gòu)函數(shù)D. 結(jié)構(gòu)中可以定義成員方法,但是方法內(nèi)不能使用this 指針E. 不能使用new 關(guān)鍵字創(chuàng)建結(jié)構(gòu)類(lèi)型的實(shí)例(55)下列哪些運(yùn)算符是屬于"右結(jié)合"的? (A )A 賦值運(yùn)算符 B 元運(yùn)算符 C 一元

21、運(yùn)算符+ D 移位運(yùn)算符<<和>>(56)在 C#程序中,入中函數(shù)的正確聲明為: (A B )A. static int Main( ) B. static void Main( )C. static void main( ) D. static main( )(57)C#中執(zhí)行下列語(yǔ)句后,n 的值為多少?( A)int n =21; n <<=1;A. n=42 B. n =1 C. n=21 D. n=20(58)在C#中設(shè)計(jì)類(lèi)時(shí),如何將一個(gè)可讀可寫(xiě)的公有屬性Name 修改為只讀屬性?(A C)A 將 Name 的set 塊刪除B將 Name 的set

22、塊置空C將 Name 的set 塊前加修飾符privateD將 Name 添加readonly 修飾符(59)C#中執(zhí)行下列語(yǔ)句后,n 的值為多少?(B)int n=0x00f0; n &=0x0f00;A0x00f0 B0 Cfalse Dtrue二 判斷題(答案:全對(duì))(1) 在一個(gè)程序內(nèi),沒(méi)有任何類(lèi)或結(jié)構(gòu)可以包含一個(gè)以上的名為 Main 的方法,因?yàn)?Main 的定義限定它只能被用作應(yīng)用程序的入口點(diǎn)。但允許使用 Main 的其他重載版本,前提是它們具有一個(gè)以上的參數(shù),或者它們的唯一參數(shù)的類(lèi)型不是 string。(2) 應(yīng)用程序可由多個(gè)類(lèi)或結(jié)構(gòu)組成。在這些類(lèi)或結(jié)構(gòu)中,可能會(huì)有若干個(gè)

23、擁有自己的 Main 方法,因?yàn)?Main 的定義限定它只能被用作應(yīng)用程序的入口點(diǎn)。這樣的情況下,必須利用某種外部機(jī)制(如命令行編譯器的選項(xiàng))來(lái)選擇其中一個(gè) Main 方法用作入口點(diǎn)。(3) 在 C# 中,每個(gè)方法都必須定義為類(lèi)或結(jié)構(gòu)的成員。(4) C# 程序中的聲明定義程序的構(gòu)成元素。C# 程序是用命名空間組織起來(lái)的,一個(gè)命名空間可以包含類(lèi)型聲明和嵌套的命名空間聲明。(5) 一個(gè)聲明在它自已所屬的那個(gè)聲明空間 (declaration space) 中定義一個(gè)名稱。除非是重載成員,否則,在同一個(gè)聲明空間下若有兩個(gè)以上的聲明語(yǔ)句聲明了具有相同名稱的成員,就會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤。(6) 同一個(gè)聲明空

24、間內(nèi)絕不能包含不同類(lèi)型的同名成員。例如,聲明空間絕不能包含同名的字段和方法。(7)每個(gè)類(lèi)、結(jié)構(gòu)或接口聲明創(chuàng)建一個(gè)新的聲明空間?;?lèi)與派生類(lèi)的聲明空間無(wú)關(guān),基接口與派生接口的聲明空間無(wú)關(guān)。因此,允許在派生類(lèi)或派生接口內(nèi)聲明與所繼承的基類(lèi)或基接口成員同名的成員。(8)除了實(shí)例構(gòu)造函數(shù)聲明和靜態(tài)構(gòu)造函數(shù)聲明外,類(lèi)或結(jié)構(gòu)成員聲明不能引入與該類(lèi)或結(jié)構(gòu)同名的成員。(9)在嵌套聲明空間中不可能聲明與封閉它的聲明空間中的局部變量或常量同名的局部變量或常量。但是,只要兩個(gè)聲明空間彼此互不包含,這兩個(gè)聲明空間就可以包含同名的元素。 (10)當(dāng)類(lèi)型從基類(lèi)繼承時(shí),基類(lèi)的所有成員(實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)除

25、外)都成為派生類(lèi)型的成員。基類(lèi)成員的聲明可訪問(wèn)性并不控制該成員是否可繼承。(11)命名空間沒(méi)有訪問(wèn)限制。不可能把命名空間設(shè)置成私有的、受保護(hù)的或內(nèi)部的,命名空間名稱始終是可公開(kāi)訪問(wèn)的。(12)命名空間隱式地具有 public 已聲明可訪問(wèn)性。在命名空間聲明中不允許使用訪問(wèn)修飾符。(13)編譯單元或命名空間中聲明的類(lèi)型可以具有 public 或 internal 已聲明可訪問(wèn)性,默認(rèn)的已聲明可訪問(wèn)性為 internal。 (14)類(lèi)成員可具有public、protected、internal 、protected internal、private等五種已聲明可訪問(wèn)性中的任何一種,默認(rèn)為 priv

26、ate 已聲明可訪問(wèn)性。(15)聲明為類(lèi)成員的類(lèi)型可具有public、protected、internal 、protected internal、private等五種已聲明可訪問(wèn)性中的任何一種,而聲明為命名空間成員的類(lèi)型只能具有 public 或 internal 已聲明可訪問(wèn)性。(16)結(jié)構(gòu)成員可以具有 public、internal 或 private 已聲明可訪問(wèn)性并默認(rèn)為 private 已聲明可訪問(wèn)性,這是因?yàn)榻Y(jié)構(gòu)是隱式地密封的。(17)枚舉成員隱式地具有 public 已聲明可訪問(wèn)性。在枚舉成員聲明中不允許使用訪問(wèn)修飾符。 (18)方法簽名既不包含返回類(lèi)型和 params 修飾符

27、(它可用于指定最右邊的形參),也不包含可選類(lèi)型形參約束。 (19)雖然 out 和 ref 參數(shù)修飾符被視為簽名的一部分,但是在同一個(gè)類(lèi)型中聲明的成員不能僅通過(guò) ref 和 out 在簽名上加以區(qū)分。在同一類(lèi)型中聲明了兩個(gè)成員時(shí),如果將這兩個(gè)方法中帶有 out 修飾符的所有參數(shù)更改為 ref 修飾符會(huì)使這兩個(gè)成員的簽名相同,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。(20)在命名空間、類(lèi)、結(jié)構(gòu)或枚舉成員的范圍內(nèi),可以在位于該成員的聲明之前的文本位置引用該成員。在局部變量的范圍內(nèi),在位于該局部變量的聲明之前的文本位置引用該局部變量是編譯時(shí)錯(cuò)誤。(21)當(dāng)內(nèi)部范圍中的名稱隱藏外部范圍中的名稱時(shí),它隱藏該名稱的所有重載匹

28、配項(xiàng)。(22)運(yùn)算符聲明的規(guī)則使派生類(lèi)不可能聲明與基類(lèi)中的運(yùn)算符具有相同簽名的運(yùn)算符。因此,派生類(lèi)中的運(yùn)算符從不隱藏基類(lèi)中的運(yùn)算符。(23) 值類(lèi)型的變量直接包含其數(shù)據(jù),而引用類(lèi)型的變量存儲(chǔ)對(duì)其數(shù)據(jù)的引用 (reference),后者稱為對(duì)象 (object)。(24) 一個(gè)值類(lèi)型或是結(jié)構(gòu)類(lèi)型,或是枚舉類(lèi)型。C# 提供稱為簡(jiǎn)單類(lèi)型 (simple type) 的預(yù)定義結(jié)構(gòu)類(lèi)型集。簡(jiǎn)單類(lèi)型通過(guò)保留字標(biāo)識(shí)。(25) 值類(lèi)型的變量賦值會(huì)創(chuàng)建所賦的值的一個(gè)副本,而用類(lèi)型的變量賦值復(fù)制的是引用而不是由引用標(biāo)識(shí)的對(duì)象。(26) 任何類(lèi)型都不可能從值類(lèi)型派生,因此,所有值類(lèi)型都是隱式密封的。(27) 所有值

29、類(lèi)型都隱式聲明一個(gè)稱為默認(rèn)構(gòu)造函數(shù) (default constructor) 的公共無(wú)參數(shù)實(shí)例構(gòu)造函數(shù)。默認(rèn)構(gòu)造函數(shù)返回一個(gè)零初始化實(shí)例,它就是該值類(lèi)型的默認(rèn)值 (default value) 。(28) 與任何其他實(shí)例構(gòu)造函數(shù)一樣,值類(lèi)型的默認(rèn)構(gòu)造函數(shù)也是用 new 運(yùn)算符調(diào)用的。出于效率原因,實(shí)際上,不必故意調(diào)用它的構(gòu)造函數(shù)。(29) 由于每個(gè)值類(lèi)型都隱式地具有一個(gè)公共無(wú)參數(shù)實(shí)例構(gòu)造函數(shù),因此,一個(gè)結(jié)構(gòu)類(lèi)型中不可能包含一個(gè)關(guān)于無(wú)參數(shù)構(gòu)造函數(shù)的顯式聲明。但允許結(jié)構(gòu)類(lèi)型聲明參數(shù)化實(shí)例構(gòu)造函數(shù)。(30) char 類(lèi)型按分類(lèi)歸屬為整型類(lèi)型,但不存在從其他類(lèi)型到 char 類(lèi)型的隱式轉(zhuǎn)換。(31

30、) 在浮點(diǎn)型和 decimal 之間不存在隱式轉(zhuǎn)換,如果沒(méi)有顯式地標(biāo)出強(qiáng)制轉(zhuǎn)換,就不可能在同一表達(dá)式中同時(shí)使用浮點(diǎn)操作數(shù)和 decimal 操作數(shù)。(32) bool 和其他類(lèi)型之間不存在標(biāo)準(zhǔn)轉(zhuǎn)換。具體而言,bool 類(lèi)型與整型截然不同,不能用 bool 值代替整數(shù)值,反之亦然。(33) 枚舉類(lèi)型是具有命名常量的獨(dú)特的類(lèi)型。每個(gè)枚舉類(lèi)型都有一個(gè)基礎(chǔ)類(lèi)型,該基礎(chǔ)類(lèi)型必須為 byte、sbyte、short、ushort、int、uint、long 或 ulong。枚舉類(lèi)型的值集和它的基礎(chǔ)類(lèi)型的值集相同。枚舉類(lèi)型的值并不只限于那些命名常量的值。(34) 類(lèi)類(lèi)型定義包含數(shù)據(jù)成員、函數(shù)成員和嵌套類(lèi)型的

31、數(shù)據(jù)結(jié)構(gòu),其中數(shù)據(jù)成員包括常量和字段,函數(shù)成員包括方法、屬性、事件、索引器、運(yùn)算符、實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)。類(lèi)類(lèi)型支持繼承,繼承是派生類(lèi)可用來(lái)擴(kuò)展和專(zhuān)門(mén)化基類(lèi)的一種機(jī)制。(35) 變量表示存儲(chǔ)位置。每個(gè)變量都具有一個(gè)類(lèi)型,它確定哪些值可以存儲(chǔ)在該變量中。(36) 在可以獲取變量的值之前,變量必須已明確賦值 (definitely assigned) 。(37) 初始已賦值的變量有一個(gè)正確定義了的初始值,并且總是被視為已明確賦值。初始未賦值的變量沒(méi)有初始值。(38) C# 定義了 7 類(lèi)變量:靜態(tài)變量、實(shí)例變量、數(shù)組元素、值參數(shù)、引用參數(shù)、輸出參數(shù)和局部變量。(39) 用 stat

32、ic 修飾符聲明的字段稱為靜態(tài)變量 (static variable)。靜態(tài)變量在包含了它的那個(gè)類(lèi)型的靜態(tài)構(gòu)造函數(shù)執(zhí)行之前就存在了,在退出關(guān)聯(lián)的應(yīng)用程序域時(shí)不復(fù)存在。(40) 類(lèi)的實(shí)例變量在創(chuàng)建該類(lèi)的新實(shí)例時(shí)開(kāi)始存在,在所有對(duì)該實(shí)例的引用都已終止,并且已執(zhí)行了該實(shí)例的析構(gòu)函數(shù)(若有)時(shí)終止。(41) 出于明確賦值檢查的目的,類(lèi)的實(shí)例變量被視為初始已賦值,(42) 用 ref 修飾符聲明的形參是引用形參 (reference parameter)。(43)用 out 修飾符聲明的形參是輸出形參 (output parameter)。(44) 由 local-variable-declaratio

33、n 引入的局部變量不自動(dòng)初始化,因此沒(méi)有默認(rèn)值。(45) 從 int、uint、long 或 ulong 到 float 以及從 long 或 ulong 到 double 的轉(zhuǎn)換可能導(dǎo)致精度損失,但決不會(huì)影響到它的數(shù)量級(jí)。其他的隱式數(shù)值轉(zhuǎn)換決不會(huì)丟失任何信息。(46) 引用轉(zhuǎn)換無(wú)論是隱式的還是顯式的,都不會(huì)更改被轉(zhuǎn)換的對(duì)象的引用標(biāo)識(shí)。換言之,雖然引用轉(zhuǎn)換可能更改引用的類(lèi)型,但決不會(huì)更改所引用對(duì)象的類(lèi)型或值。(47) int 類(lèi)型的常量表達(dá)式(constant-expression)可以轉(zhuǎn)換為 sbyte、byte、short、ushort、uint 或 ulong 類(lèi)型(前提是常量表達(dá)式的值

34、位于目標(biāo)類(lèi)型的范圍內(nèi))。 (48) long 類(lèi)型的常量表達(dá)式可以轉(zhuǎn)換為 ulong 類(lèi)型(前提是常量表達(dá)式的值非負(fù))。 (49) 當(dāng)重載一個(gè)二元運(yùn)算符時(shí),也會(huì)隱式重載相應(yīng)的賦值運(yùn)算符(若有)。例如,運(yùn)算符 * 的重載也是運(yùn)算符 *= 的重載。請(qǐng)注意,賦值運(yùn)算符本身 (=) 不能重載。(50) 函數(shù)成員是包含可執(zhí)行語(yǔ)句的成員。函數(shù)成員總是類(lèi)型的成員,不能是命名空間的成員。(51) 不能被顯式調(diào)用的函數(shù)成員是析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)。(52) 當(dāng)在要求有語(yǔ)句的上下文中不執(zhí)行任何操作時(shí),應(yīng)該使用空語(yǔ)句。(53) 命名空間隱式地為 public,而且在命名空間的聲明中不能包含任何訪問(wèn)修飾符。(54)命

35、名空間是可擴(kuò)充的,兩個(gè)具有相同的完全限定名的命名空間聲明是在為同一聲明空間提供成員。(55) 可用于類(lèi)類(lèi)型的修飾符有:new、public、protected、internal、private、abstract、sealed、 static、partial。(56)實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)是不可繼承的,但所有其他成員是可繼承的,無(wú)論它們所聲明的可訪問(wèn)性如何。但是,根據(jù)它們所聲明的可訪問(wèn)性,有些繼承成員在派生類(lèi)中可能是無(wú)法訪問(wèn)的。 (57)可以將對(duì)某個(gè)派生類(lèi)實(shí)例的引用視為對(duì)它的任一個(gè)基類(lèi)實(shí)例的引用。 (58)雖然常量被認(rèn)為是靜態(tài)成員,但在常量聲明中既不要求也不允許使用 static

36、修飾符。(59)在類(lèi)的常量聲明中允許使用的修飾符有:new、public、protected、internal、private。(60)在類(lèi)的字段聲明中允許使用的修飾符有:new、public、protected、internal、private、static、readonly、volatile。(61)給只讀字段的直接賦值只能作為聲明的組成部分出現(xiàn),或在同一類(lèi)中的實(shí)例構(gòu)造函數(shù)或靜態(tài)構(gòu)造函數(shù)中出現(xiàn)。(62)字段(無(wú)論是靜態(tài)字段還是實(shí)例字段)的初始值都是字段的類(lèi)型的默認(rèn)值。在此默認(rèn)初始化發(fā)生之前不可能看到字段的值,因此字段永遠(yuǎn)不會(huì)是“未初始化的”。(63)當(dāng)初始化一個(gè)類(lèi)時(shí),首先將該類(lèi)中的所有靜態(tài)

37、字段初始化為它們的默認(rèn)值,然后以文本順序執(zhí)行各個(gè)靜態(tài)字段初始值設(shè)定項(xiàng)。(64)創(chuàng)建類(lèi)的一個(gè)實(shí)例時(shí),首先將該實(shí)例中的所有實(shí)例字段初始化為它們的默認(rèn)值,然后以文本順序執(zhí)行各個(gè)實(shí)例字段初始值設(shè)定項(xiàng)。(65)如果類(lèi)中存在靜態(tài)構(gòu)造函數(shù),則靜態(tài)字段初始值設(shè)定項(xiàng)的執(zhí)行在該靜態(tài)構(gòu)造函數(shù)即將執(zhí)行前發(fā)生。否則,靜態(tài)字段初始值設(shè)定項(xiàng)在第一次使用該類(lèi)的靜態(tài)字段之前先被執(zhí)行,但實(shí)際執(zhí)行時(shí)間依賴于具體的實(shí)現(xiàn)。(66)類(lèi)的實(shí)例字段變量初始值設(shè)定項(xiàng)對(duì)應(yīng)于一個(gè)賦值序列,它在當(dāng)控制進(jìn)入該類(lèi)的任一個(gè)實(shí)例構(gòu)造函數(shù)時(shí)立即執(zhí)行。這些變量初始值設(shè)定項(xiàng)按它們出現(xiàn)在類(lèi)聲明中的文本順序執(zhí)行。(67)實(shí)例字段的變量初始值設(shè)定項(xiàng)不能引用正在創(chuàng)建的實(shí)

38、例。因此,在變量初始值設(shè)定項(xiàng)中引用 this 是編譯時(shí)錯(cuò)誤,同樣,在變量初始值設(shè)定項(xiàng)中引用正在創(chuàng)建實(shí)例的任何一個(gè)實(shí)例成員也是一個(gè)編譯時(shí)錯(cuò)誤。(68)在類(lèi)的方法聲明中允許使用的修飾符有:new、public、protected、internal、private、static、virtual、sealed、override、abstract、extern、partial。(69)在類(lèi)的方法聲明中,static、virtual 和 override 修飾符不能同時(shí)出現(xiàn)。(70)在類(lèi)的方法聲明中,new 和 override 修飾符不能同時(shí)出現(xiàn)。(71)在類(lèi)的方法聲明中,如果包含 abstract 修

39、飾符,則該聲明不包含下列任何修飾符:static、virtual、sealed 或 extern。 (72)在類(lèi)的方法聲明中,如果包含 private修飾符,則該聲明不包含下列任何修飾符:virtual、override 或 abstract。 (73)在類(lèi)的方法聲明中,如果包含 sealed 修飾符,則該聲明還包含 override 修飾符。 (74)一個(gè)方法的簽名由它的名稱、類(lèi)型形參的數(shù)目以及它的形參的數(shù)目、修飾符和類(lèi)型組成。返回類(lèi)型不是方法簽名的一部分,類(lèi)型形參或形參的名稱也不是。(75)方法的名稱必須不同于在同一個(gè)類(lèi)中聲明的所有其他非方法的名稱。此外,必須不同于在同一類(lèi)中聲明的所有其他

40、方法的簽名,并且在同一類(lèi)中聲明的兩種方法的簽名不能只有 ref 和 out 不同。(76)ref 和 out 修飾符是方法簽名的組成部分,但 params 修飾符不是。(77)允許方法將新值賦給值形參。這樣的賦值只影響由該值形參表示的局部存儲(chǔ)位置,而不會(huì)影響在方法調(diào)用時(shí)由調(diào)用方給出的實(shí)參。(78)用 ref 修飾符聲明的形參是引用形參。與值形參不同,引用形參并不創(chuàng)建新的存儲(chǔ)位置。相反,引用形參表示的存儲(chǔ)位置恰是在方法調(diào)用中作為實(shí)參給出的那個(gè)變量所表示的存儲(chǔ)位置。(79)用 out 修飾符聲明的形參是輸出形參。類(lèi)似于引用形參,輸出形參不創(chuàng)建新的存儲(chǔ)位置。相反,輸出形參表示的存儲(chǔ)位置恰是在該方法調(diào)

41、用中作為實(shí)參給出的那個(gè)變量所表示的存儲(chǔ)位置。(80)用 params 修飾符聲明的形參是形參數(shù)組。如果形參表包含一個(gè)形參數(shù)組,則該形參數(shù)組必須位于該列表的最后而且它必須是一維數(shù)組類(lèi)型。(81)不可能將 params 修飾符與 ref 和 out 修飾符組合起來(lái)使用。(82)虛方法的實(shí)現(xiàn)可以由派生類(lèi)取代。取代所繼承的虛方法的實(shí)現(xiàn)的過(guò)程稱為重寫(xiě) (overriding) 該方法。(83)在虛方法調(diào)用中,該調(diào)用所涉及的那個(gè)實(shí)例的運(yùn)行時(shí)類(lèi)型 (run-time type) 確定要調(diào)用該方法的哪一個(gè)實(shí)現(xiàn)。(84)與字段不同,屬性不表示存儲(chǔ)位置。相反,屬性有訪問(wèn)器 (accessor),這些訪問(wèn)器指定在它

42、們的值被讀取或?qū)懭霑r(shí)需執(zhí)行的語(yǔ)句。(85)在類(lèi)的屬性 (property)聲明中,允許使用的修飾符有:new、public、protected、internal、private、static、virtual、sealed、override、abstract、extern。 (86)雖然訪問(wèn)屬性的語(yǔ)法與訪問(wèn)字段的語(yǔ)法相同,但是屬性并不歸類(lèi)為變量。因此,不能將屬性作為 ref 或 out 實(shí)參傳遞。(87)在類(lèi)的屬性 (property)聲明中,其訪問(wèn)器允許使用的修飾符有: protected、internal、private。 (88)get 訪問(wèn)器相當(dāng)于一個(gè)具有屬性類(lèi)型返回值的無(wú)形參方法。(8

43、9)set 訪問(wèn)器相當(dāng)于一個(gè)具有單個(gè)屬性類(lèi)型值形參和 void 返回類(lèi)型的方法。set 訪問(wèn)器的隱式形參始終命名為 value。(90)當(dāng)在一個(gè)派生類(lèi)中用與某個(gè)所繼承的屬性相同的名稱聲明一個(gè)新屬性時(shí),該派生屬性將會(huì)隱藏所繼承的屬性(同時(shí)在讀取和寫(xiě)入方面)。(91)事件 (event) 是一種使對(duì)象或類(lèi)能夠提供通知的成員??蛻舳丝梢酝ㄟ^(guò)提供事件處理程序 (event handler) 為相應(yīng)的事件添加可執(zhí)行代碼的方式來(lái)獲得通知。(92)事件可用作 += 和 -= 運(yùn)算符左邊的操作數(shù)。這些運(yùn)算符分別用于將事件處理程序添加到所涉及的事件或從該事件中移除事件處理程序(93)索引器 (indexer)使

44、對(duì)象能夠用與數(shù)組相同的方式進(jìn)行訪問(wèn)。(94)雖然訪問(wèn)索引器元素的語(yǔ)法與訪問(wèn)數(shù)組元素的語(yǔ)法相同,但是索引器元素并不屬于變量。因此,不可能將索引器元素作為 ref 或 out 實(shí)參傳遞。(95)索引器的簽名由其形參的數(shù)量和類(lèi)型組成。但索引器元素的類(lèi)型和形參的名稱都不是索引器簽名的組成部分。(96)在運(yùn)算符 (operator)聲明中允許使用的修飾符有:public、static、extern。(97)運(yùn)算符聲明必須同時(shí)包含一個(gè) public 和一個(gè) static 修飾符。 (98)運(yùn)算符的形參必須是值形參。在運(yùn)算符聲明中指定 ref 或 out 形參會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤。 (99)實(shí)例構(gòu)造函數(shù) (in

45、stance constructor) 是實(shí)現(xiàn)初始化類(lèi)實(shí)例所需操作的成員。(100)實(shí)例構(gòu)造函數(shù)是不能繼承的。因此,一個(gè)類(lèi)除了自已聲明的實(shí)例構(gòu)造函數(shù)外,不可能有其他的實(shí)例構(gòu)造函數(shù)。如果一個(gè)類(lèi)不包含任何實(shí)例構(gòu)造函數(shù)聲明,則會(huì)自動(dòng)地為該類(lèi)提供一個(gè)默認(rèn)實(shí)例構(gòu)造函數(shù)。(101)除了類(lèi) object 的實(shí)例構(gòu)造函數(shù)以外,所有其他的實(shí)例構(gòu)造函數(shù)都隱式地包含一個(gè)對(duì)另一個(gè)實(shí)例構(gòu)造函數(shù)的調(diào)用,該調(diào)用緊靠在 constructor-body 的前面。(102)在類(lèi)的靜態(tài)構(gòu)造函數(shù) (static constructor)聲明中允許使用的修飾符有: static、extern。(103)靜態(tài)構(gòu)造函數(shù)是不可繼承的,而且

46、不能被直接調(diào)用。(104)析構(gòu)函數(shù) (destructor) 是一種用于實(shí)現(xiàn)銷(xiāo)毀類(lèi)實(shí)例所需操作的成員。(105)在類(lèi)的析構(gòu)函數(shù) (destructor)聲明中允許使用的修飾符有:extern。(106)析構(gòu)函數(shù)是不可繼承的。因此,除了自已所聲明的析構(gòu)函數(shù)外,一個(gè)類(lèi)不具有其他析構(gòu)函數(shù)。(107)由于析構(gòu)函數(shù)要求不能帶有形參,因此它不能被重載,所以一個(gè)類(lèi)至多只能有一個(gè)析構(gòu)函數(shù)。(108)析構(gòu)函數(shù)是自動(dòng)調(diào)用的,它不能被顯式調(diào)用。(109)在結(jié)構(gòu)聲明中,不允許聲明析構(gòu)函數(shù)和無(wú)形參的實(shí)例構(gòu)造函數(shù)。(110)在結(jié)構(gòu)中,實(shí)例字段聲明中不能含有變量初始值設(shè)定項(xiàng)(111)所有結(jié)構(gòu)類(lèi)型都隱式地從類(lèi) System.

47、ValueType 繼承,而后者則從類(lèi) object 繼承。一個(gè)結(jié)構(gòu)聲明可以指定實(shí)現(xiàn)的接口列表,但是不能指定基類(lèi)。(112)結(jié)構(gòu)類(lèi)型永遠(yuǎn)不會(huì)是抽象的,并且始終是隱式密封的。因此在結(jié)構(gòu)聲明中不允許使用 abstract 和 sealed 修飾符。(113)由于對(duì)結(jié)構(gòu)不支持繼承,所以結(jié)構(gòu)成員的聲明可訪問(wèn)性不能是 protected 或 protected internal。(114)結(jié)構(gòu)中的函數(shù)成員不能是 abstract 或 virtual,因而 override 修飾符只適用于重寫(xiě)從 System.ValueType 繼承的方法。(115)結(jié)構(gòu)可通過(guò) ref 或 out 形參以引用方式傳遞給函

48、數(shù)成員。(116)結(jié)構(gòu)的默認(rèn)值是通過(guò)將所有值類(lèi)型字段設(shè)置為它們的默認(rèn)值,并將所有引用類(lèi)型字段設(shè)置為 null 而產(chǎn)生的值。(117)每個(gè)結(jié)構(gòu)隱式地具有一個(gè)無(wú)形參實(shí)例構(gòu)造函數(shù),該構(gòu)造函數(shù)始終返回相同的值,即通過(guò)將所有的值類(lèi)型字段設(shè)置為它們的默認(rèn)值,并將所有引用類(lèi)型字段設(shè)置為 null 而得到的值。(118)結(jié)構(gòu)可以聲明具有形參的實(shí)例構(gòu)造函數(shù)。(119)創(chuàng)建結(jié)構(gòu)類(lèi)型的默認(rèn)值不會(huì)觸發(fā)靜態(tài)構(gòu)造函數(shù)。(120)當(dāng)數(shù)組創(chuàng)建表達(dá)式同時(shí)包含顯式維度長(zhǎng)度和一個(gè)數(shù)組初始值設(shè)定項(xiàng)時(shí),長(zhǎng)度必須是常量表達(dá)式(121)枚舉聲明可以顯式地聲明 byte、sbyte、short、ushort、int、uint、long 或

49、ulong 類(lèi)型作為對(duì)應(yīng)的基礎(chǔ)類(lèi)型。請(qǐng)注意 char 不能用作基礎(chǔ)類(lèi)型。沒(méi)有顯式地聲明基礎(chǔ)類(lèi)型的枚舉聲明意味著所對(duì)應(yīng)的基礎(chǔ)類(lèi)型是 int。(122)在枚舉聲明中,允許使用的修飾符有:new、 public、 protected、 internal 、private。(123)在枚舉聲明中不允許使用 abstract 和 sealed 修飾符。枚舉不能是抽象的,也不允許派生。(124)枚舉類(lèi)型聲明體用于定義零個(gè)或多個(gè)枚舉成員,這些成員是該枚舉類(lèi)型的命名常量。任意兩個(gè)枚舉成員不能具有相同的名稱。(125)每個(gè)枚舉成員均具有相關(guān)聯(lián)的常量值。此值的類(lèi)型就是包含了它的那個(gè)枚舉的基礎(chǔ)類(lèi)型。每個(gè)枚舉成員的常

50、量值必須在該枚舉的基礎(chǔ)類(lèi)型的范圍之內(nèi)。(126)多個(gè)枚舉成員可以共享同一個(gè)關(guān)聯(lián)值。(127)一個(gè)枚舉的基礎(chǔ)類(lèi)型的任何一個(gè)值都可以被強(qiáng)制轉(zhuǎn)換為該枚舉類(lèi)型,成為該枚舉類(lèi)型的一個(gè)獨(dú)特的有效值。三 寫(xiě)出運(yùn)行結(jié)果題(1)using System;class Program static void Main() int x = 3; Console.Write("星期:"); Console.WriteLine(Weekday)x); Console.Write("月份:"); Console.WriteLine(Month)x); Console.Write(&q

51、uot;季節(jié):"); Console.WriteLine(Season)x); enum Weekday 未知 = -1, 星期天, 星期一, 星期二, 星期三, 星期四,星期五,星期六 enum Month 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月, 未知 = -1星期: 星期三月份: 四月季節(jié):3 enum Season 春, 夏 = 2, 秋 = 4, 冬 = 8 (2)using System;class Program static void Main() class1 c1 = new class1(); class1.y = 5; c1.Outp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論