c#期末考試復(fù)習(xí)題及答案_第1頁
c#期末考試復(fù)習(xí)題及答案_第2頁
c#期末考試復(fù)習(xí)題及答案_第3頁
c#期末考試復(fù)習(xí)題及答案_第4頁
c#期末考試復(fù)習(xí)題及答案_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于C#的OOP技術(shù)課程 復(fù)習(xí)題/一、 判斷題(本大題共10個小題,每小題1分,共10分)1. 在同一行上可以書寫多條語句,每條語句間用分號分隔。(t)2. 在數(shù)據(jù)類型轉(zhuǎn)化時,只能通過類型轉(zhuǎn)換關(guān)鍵字或Convert類實現(xiàn)。(f)3. 接口與類同樣是面向?qū)ο蟪绦蛟O(shè)計的核心,是創(chuàng)建對象的模版。(F)4. 委托是將方法作為參數(shù)傳遞給另一方法的一種數(shù)據(jù)類型。事件與委托沒有關(guān)系。(F)5. 可以重寫私有的虛方法。(T)6. 使用Directory類的Move()方法可以刪除文件。(T)7. 不能指定接口中方法的修飾符。(T)8. 在定義數(shù)組時不允許為數(shù)組中的元素賦值。(F)9. 接口與類同樣是面向?qū)ο蟪?/p>

2、序設(shè)計的核心,是創(chuàng)建對象的模版。()10. 如果要實現(xiàn)重寫,在基類的方法中必須使用virtual關(guān)鍵字,在派生類的方法中必須使用overrides關(guān)鍵字。(T)11. 在C#中,所有類都是直接或間接地繼承System.Object類而得來的。(T)12. 在C#中,任何方法都不能實現(xiàn)多繼承。(F)13. 在C#中,子類不能繼承父類中用private修飾的成員變量和成員方法。(F)14. 可以阻止某一個類被其他類繼承。(T)15. 使用FileInfo類的Copy()方法可以復(fù)制文件。(T)二、選擇題(本大題共20個小題,每小題2分,共40分)1. 在 C#中,表示一個字符串的變量應(yīng)使用以下哪條

3、語句定義? BA.CString str;B.string str;C.Dim str as stringD.char * str;2. C#中 MyClass 為一自定義類,其中有以下方法定義:Apublic void Hello()使用以下語句創(chuàng) 建了該類的對象,并使變量 obj 引用該對象,那么,訪問類MyClass的Hello方法正確的是:MyClass obj = new MyClass();A.obj.Hello();B.obj:Hello();C.MyClass.Hello();D.MyClass:Hello();3. 分析下列程序中類 MyClass 的定義 Dclass Ba

4、seClass public int i; class MyClass:BaseClass public new int i; 則下列語句在 Console 上的輸出為_. MyClass y = new MyClass();BaseClass x = y;x.i = 100;Console.WriteLine("0, 1",x.i,y.i); /(提示:注意類 MyClass 中的 new 關(guān)鍵字)A.0, 0B.100, 100C.0, 100D.100, 04. 在定義類時,如果希望類的某個方法能夠在派生類中進(jìn)一步進(jìn)行改進(jìn),以處理不同的派生類的需要,則應(yīng)將該方法聲明成

5、_C_A.sealed 方法B.public 方法C.virtual 方法D.override 方法5. 為了將字符串 str=“123,456”轉(zhuǎn)換成整數(shù) 123456,應(yīng)該使用以下哪條語句? A A.int Num = int.Parse(str);B.int Num = str.Parse(int);C.int Num = (int)str;D.int Num = int.Parse(str,Globalization.NumberStyles.AllowThousands);6. 在 C#語言中,下列能夠作為變量名的是_C_A.ifB.3abC.a_3bD.a-bc7. 以下程序的輸出

6、結(jié)果是_C_ Using system;Class Example1 Public Static void main() Int a=5,b=4,c=6,d; Console.Writeline(“0”,d=a>b?(a>c?a:c):b); A.5 B.4 C.6 D.不確定8. 能正確表示邏輯關(guān)系“a>=10 或 a<=0”的 C#語言表達(dá)式是_D_A.a>=10 or a<=0B.a>=10|a<=0C.a>=10&&a<=0D.a>=10|a<=09. 以下關(guān)于 for 循環(huán)的說法不正確的是_A_A

7、.for 循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B.for 循環(huán)是先判定表達(dá)式,后執(zhí)行循環(huán)體語句C.for 循環(huán)中,可以用 break語句跳出循環(huán)體D.for 循環(huán)體語句中,可以包含多條語句,但要用花括號括起來10. 有如下程序 Using system; C Class Example1 Public Static void main() Int x=1,a=0,b=0; Switch(x) Case 0:b+,break; Case 1:a+,break; Case 2:a+,b+;break; Console.Writeline(“a=0,b=1”,a,b); 的輸出結(jié)果是 A.a=2,b=

8、1B.a=1,b=1C.a=1,b=0D.a=2,b=211. 關(guān)于 C#語言的方法,下列敘述中正確的是_A_A.方法的定義不能嵌套,但方法調(diào)用可以嵌套B.方法的定義可以嵌套,但方法調(diào)用不能嵌套C.方法的定義和調(diào)用都不能嵌套D.方法的定義和調(diào)用都可以嵌套12. 下列程序的結(jié)果是: B Using system; Class Example1 Static long fib(int n) If(n>2) return(fib(n-1)+fib(n-2); Else rerurn(2); Public Static void main() Console.Writeline(“0”,fib(

9、3); A.2 B.4 C.6 D.813. 調(diào)用重載方法時,系統(tǒng)根據(jù)_B_來選擇具體的方法A.方法名B.參數(shù)的個數(shù)和類型C.參數(shù)名及參數(shù)個數(shù)D.方法的返回值類型14. 下列的_D_不是構(gòu)造函數(shù)的特征A.構(gòu)造函數(shù)的函數(shù)名和類名相同B.構(gòu)造函數(shù)可以重載C.構(gòu)造函數(shù)可以帶有參數(shù)D.可以指定構(gòu)造函數(shù)的返回值15. 已知類 B 是由類 A繼承而來,類 A 中有一個為 M 的非虛方法,現(xiàn)在希望在類 B 中也 定義一個名為 M 的方法,若希望編譯時不出現(xiàn)警告信息,則在類 B中聲明該方法時,應(yīng)使 用_B_方法A.staticB.newC.overrideD.virtual16. 下列關(guān)于 trycatchf

10、inaly語句的說明中,不正確的是_D_A.catch塊可以有多個B.finalyC.catch塊也是可選的D.可以只有 try塊17. 以下標(biāo)識符中,正確的是_A_A._nNameB.typeofC.6bD.x5# 18. 下面有關(guān)運算符的說法正確的是_D_A.算術(shù)運算符不能對布爾類型,String*(字符串類型)和 Object*(對象類型) 進(jìn)行算術(shù)運算B.關(guān)系運算中的”= =”和賦值運算符中的”=”是相同的C.sizeof 運算符用來查詢某種數(shù)據(jù)類型或表達(dá)式的值在內(nèi)存中所占懂得內(nèi)存空間大小(字 節(jié)數(shù))D.括號在運算符中的優(yōu)先級中是最高的,它可以改變表達(dá)式的運算順序19. 下面對抽象類描

11、述不正確的是_C_A.抽象類只能作為基類使用B.抽象類不能定義對象C.抽象類可以實例對象D.可以實現(xiàn)多態(tài)20. 下面對異常說法不正確的是_D_A.try/catch塊為基本引發(fā)異常的組合B.在捕獲異常時,可以有多個 catch塊C.無論異常是否發(fā)生,finally塊總會執(zhí)行D.try塊和 finally 不能連用1. C#中,新建一字符串變量 str,并將字符串"Tom's Living Room"保存到串中,則應(yīng)該使用下列哪條語句? AA.string str = "Tom's Living Room"B.string str = &q

12、uot;Tom's Living Room"C.string str("Tom's Living Room");D.string str("Tom"s Living Room");2. 分析下列程序: A public class class4 private string _sData = "" public string sDataset_sData = value; 在 Main 函數(shù)中,在成功創(chuàng)建該類的對象 obj 后,下列哪些語句是合法的? A.obj.sData = "It i

13、s funny!"B.Console.WriteLine(obj.sData);C.obj._sData = 100;D.obj.set(obj.sData);3. 分析下列程序中類 MyClass 的定義 class BaseClass public int i; class MyClass:BaseClass public new int i; 則下列語句在 Console 上的輸出為_D_. MyClass y = new MyClass();BaseClass x = y;x.i = 100;Console.WriteLine("0, 1",x.i,y.i

14、); /(提示:注意類 MyClass 中的 new 關(guān)鍵字)A.0, 0B.100, 100C.0, 100D.100, 04. 在類的定義中,類的_B_描述了該類的對象的行為特征A.類名B.方法C.所屬的名字空間D.私有域5. 關(guān)于 C#程序的書寫,下列不正確的說法是_D_A.區(qū)分大小寫B(tài).一行可以寫多條語句C.一條語句可寫成多行D.一個類中只能有一個 Main()方法,因此多個類中可以有多個 Main()方法6. 能正確表示邏輯關(guān)系“a>=10 或 a<=0”的 C#語言表達(dá)式是_D_A.a>=10 or a<=0B.a>=10|a<=0C.a>

15、=10&&a<=0D.a>=10|a<=07. if語句后面的表達(dá)式應(yīng)該是_B_A.邏輯表達(dá)式B.條件表達(dá)式C.算術(shù)表達(dá)式D.任意表達(dá)式8. 以下敘述正確的是_D_A.do.while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替B.do.while語句構(gòu)成的循環(huán)只能用 break語句退出C.用 do.while語句構(gòu)成的循環(huán),在 while后的表達(dá)式為 true時結(jié)束循環(huán)D.用 do.while語句構(gòu)成的循環(huán),在 while后的表達(dá)式應(yīng)為關(guān)系表達(dá)式或邏輯表達(dá)式9. 以下程序的輸出結(jié)果是: CClass Example1 Public Static void m

16、ain() Int I; Int a=new int10; For(i=9;i>=0;i-) ai=10-I;Console.Writeline(“0,12”,a2,a5,a8); A.258 B.741 C.852 D.36910. 關(guān)于 C#語言的方法,下列敘述中正確的是_A_A.方法的定義不能嵌套,但方法調(diào)用可以嵌套B.方法的定義可以嵌套,但方法調(diào)用不能嵌套C.方法的定義和調(diào)用都不能嵌套D.方法的定義和調(diào)用都可以嵌套11. 下列程序的結(jié)果是: BUsing system;Class Example1 Static long fib(int n) If(n>2) return(

17、fib(n-1)+fib(n-2); Else rerurn(2); Public Static void main() Console.Writeline(“0”,fib(3); A.2 B.4 C.6 D.812. 調(diào)用重載方法時,系統(tǒng)根據(jù)_B_來選擇具體的方法A.方法名B.參數(shù)的個數(shù)和類型C.參數(shù)名及參數(shù)個數(shù)D.方法的返回值類型13. 下列的_D_不是構(gòu)造函數(shù)的特征A.構(gòu)造函數(shù)的函數(shù)名和類名相同B.構(gòu)造函數(shù)可以重載C.構(gòu)造函數(shù)可以帶有參數(shù)D.可以指定構(gòu)造函數(shù)的返回值14. 類 Class A有一個名為M1 的方法,在程序中有如下一段代碼,假設(shè)該段代碼是可以執(zhí) 行的,則修飾 M1 方法時一

18、定使用了_B_修飾符 ClassA obj=new Class A(); ClassA.M1();A.publicB.staticC.privateD.virtual15. 為了能夠在程序中捕獲所有的異常,在 catch語句的括號中使用的類名為_A_A.ExceptionB.DivideByZeroExceptionC.FormatExceptionD.以上三個均可16. 關(guān)于異常,下列的說法中不正確的是_D_A.用戶可以根據(jù)需要拋出異常B.在被調(diào)用方法可通過 throw語句把異常傳回給調(diào)用方法C.用戶可以自己定義異常D.在 C#中有的異常不能被捕獲17. 以下類型中,不屬于值類型的是_D_A

19、.整數(shù)類型B.布爾類型C.字符類型D.類類型18. 下列給出的變量名正確的是_A_.A.int NO.1B.char useC.float MainD.char use19. 在定義類時,如果希望類的某個方法能夠在派生類中進(jìn)一步進(jìn)行改進(jìn),以處理不同的派生類的需要,則應(yīng)將該方法聲明成_C_A.sealed 方法B.public 方法C.virtual 方法D.override 方法20. 為了將字符串 str=“123,456”轉(zhuǎn)換成整數(shù) 123456,應(yīng)該使用以下哪條語句?A A.int Num = int.Parse(str);B.int Num = str.Parse(int);C.int

20、 Num = (int)str;D.int Num = int.Parse(str,Globalization.NumberStyles.AllowThousands);三、程序閱讀題(本大題共5個小題,每小題5,共251. 寫出以下程序的運行結(jié)果。using System;class Test public static void Main() int x = 5; int y = x+; Console.WriteLine(y); y=+x; Console.WriteLine(y); 2. 寫出下列函數(shù)的功能。static float FH()     fl

21、oat y=0,n=0;    int x = Convert.ToInt32(Console.ReadLine(); /從鍵盤讀入整型數(shù)據(jù)賦給x    while (x!=-1)            n+; y+=x;           x = Convert.ToInt32(Console.ReadLine(); 

22、60;  if (n=0) return y; else return y/n;3. 寫出以下程序的功能。static void f2(ref double a, int n) int i; double sum=0; for(i=0;i<n;i+) sum+=ai; sum/=n; for(i=0;i<n;i+) if(ai>=sum) Console.write( ai + “ “ ); Console.writeLine ();4. 寫出以下程序運行結(jié)果。using System;class Teststatic void LE(ref int a, ref

23、int b)        int x = a;       a = b;  b = x;       Console.writeLine (a + “ “ +b);public static void Main ()    int x=10, y=25;LE(ref x, ref y);   Console.writeLine (x + “ “ +y);5. 寫出以

24、下程序的運行結(jié)果。using System;class Test public static void Main ()       int a =2,4,6,8,10,12,14,16,18;       for (int i=0; i<9; i+)               Console.write(“ ”+ai); 

25、0;            if (i+1)%3=0) Console.writeLine();       6. 寫出下列函數(shù)的功能。static int SA(int a,int b)       if (a>b) return 1;      else if (a=b) return 0; 

26、60;     else return -1;7寫出以下程序運行結(jié)果。using System;class Test static int a = 1, 2, 3, 4, 5, 6, 7, 8 ; public static void Main() int s0, s1, s2; s0 = s1 = s2 = 0; for (int i = 0; i < 8; i+) switch (ai % 3) case 0: s0 += Test.ai; break; case 1: s1 += Test.ai; break; case 2: s2 += T

27、est.ai; break; Console.WriteLine(s0 + " " + s1 + " " + s2); 8寫出以下程序運行結(jié)果。using System;class Testconst int N=5;public static void Main () int a = 0;for(int i=1; i<N; i+) int c=0, b=2; a+=3; c=a+b; Console.write (c + “ “ ); 9寫出以下程序的功能。static void WA(ref int a, int n) for(int i=0;i<n-1;i+) int k=i; for(int j=i+1;j<n;j+) if(aj<ak) k=j; int x=ai; ai=ak; ak=x; 10. 寫出以下程序運行結(jié)果。using System;class Test public static void Main () &#

溫馨提示

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

評論

0/150

提交評論