C#復習資料


C#期末考試復習題

一、單項選擇題(每小題2分,共20分)

1.在類作用域中能夠通過直接使用該類的(   )成員名進行訪問。

A. 私有      B. 公用      C. 保護      D. 任何

        答案:D

2.小數類型(decimal)和浮點類型都可以表示小數,正確說法:(    )

A. 兩者沒有任何區別

B. 小數類型比浮點類型取值范圍大

C.小數類型比浮點類型精度高

D. 小數類型比浮點類型精度低

答案:C

3.能作為C#程序的基本單位是(    )。

A. 字符       B. 語句       C. 函數      D. 源程序文件

答案:B

4. 可用作C#程序用戶標識符的一組標識符是(    )。

A. void    define    +WORD        B. a3_b3    _123     YN

C. for      -abc      Case          D. 2a      DO      sizeof

答案:B

5.引用類型主要有4種:類類型、數組類型、接口類型和(     )。

A.對象類型 B.字符串類型 C.委托類型 D.整數類型

答 案:C

6.加載窗體時觸發的事件是(    )。

A. Click     B.Load   C.GotFoucs   D.DoubleClick

答案:B

7.改變窗體的標題,需修改的窗體屬性是(     )。

A.  Text   B. Name  C.Title   D.  Index

答案:A

8.在C#中定義接口時,使用的關鍵字是(     )。

A.interface  B.:    C.class    D.overrides

答案:A

9.在類的成員中,用於存儲屬性值的是(     )。

A. 屬性  B. 方法    C. 事件  D.成員變量

答案:成員變量

10.在C#中,定義派生類時,指定其基類應使用的語句是(     )。

A.Inherits   B.:    C.Class  D.Overrides

答案:B

11.類的以下特性中,可以用於方便地重用已有的代碼和數據的是(   ).

A.多態   B.封裝  C.繼承  D.抽象

答案:C

12.在Array類中,可以對一維數組中的元素進行排序的方法是(     )。

A.Sort()    B.Clear()   C.Copy()    D.Reverse()

答案:A

13.將變量從字符串類型轉換為數值類型可以使用的類型轉換方法是(   )。

A.Str()   B.Cchar   C.CStr()   D.int.Parse();

答案:D

14.數據類型轉換的類是(   )。

A.Mod    B.Convert   C. Const   D.  Single

答案:B

15.字符串連接運算符包括&和(  )。

A. +  B. -  C. *   D. /

答案 A

16.先判斷條件的當循環語句是(    )。

A.  do...while   B.  while   C. while...do   D. do ...loop

答案:B

17. C#是一種面向(     )的語言。

A. 機器  B.過程  C.對象  D.事物

答案:C

18. 假定一個10行20列的二維整型數組,下列哪個定義語句是正確的(    )。

A. int[]arr = new int[10,20]

B. int[]arr = int new[10,20]

C. int[,]arr = new int[10,20]

D. int[,]arr = new int[20;10]

答案:C

19. 以下正確的描述是(    )。

A. 函數的定義可以嵌套,函數的調用不可以嵌套

B. 函數的定義不可以嵌套,函數的調用可以嵌套

C. 函數的定義和函數的調用均可以嵌套

D. 函數的定義和函數的調用均不可以嵌套

答案:B

20.小數類型和浮點類型都可以表示小數,正確說法:(    )

A. 兩者沒有任何區別

B. 小數類型比浮點類型取值范圍大

C.小數類型比浮點類型精度高

D. 小數類型比浮點類型精度低

答案:C

21.在C#中,可以標識不同的對象的屬性是(    )。

A.Text   B.Name   C.Title   D.Index

答案:B

22.在VC#.Net中,可以標識不同的對象的屬性是(    )。

A.Text   B.Name   C.Title   D.Index

答案:B

 23.在C#中定義接口時,使用的關鍵字是(     )。

A.interface  B.:    C.class    D.overrides

答案:A

24.屬於C#語言的關鍵字(    )。

A. abstract    B. camel    C. Salary    D. Employ

答案:A

25.C#語言中,值類型包括:基本值類型、結構類型和(    )。

A.小數類型  B.整數類型 C.類類型 D.枚舉類型

        答案:D

26. 假定一個10行20列的二維整型數組,下列哪個定義語句是正確的(    )。

A. int[]arr = new int[10,20]

B. int[]arr = int new[10,20]

C. int[,]arr = new int[10,20]

D. int[,]arr = new int[20;10]

答案:C

27. 以下正確的描述是(    )。

A. 函數的定義可以嵌套,函數的調用不可以嵌套

B. 函數的定義不可以嵌套,函數的調用可以嵌套

C. 函數的定義和函數的調用均可以嵌套

D. 函數的定義和函數的調用均不可以嵌套

答案:B

28. 以下說法正確的是(    )。

A. 接口可以實例化B. 類只能實現一個接口

C. 接口的成員都必須是未實現的D. 接口的成員前面可以加訪問修飾符

答案:C

29. 下列關於抽象類的說法錯誤的是(    )。

A. 抽象類可以實例化B. 抽象類可以包含抽象方法

C. 抽象類可以包含抽象屬性D. 抽象類可以引用派生類的實例

答案:A

30. 下列關於重載的說法,錯誤的是(    )。

A. 方法可以通過指定不同的參數個數重載

B. 方法可以通過指定不同的參數類型重載

C. 方法可以通過指定不同的參數傳遞方式重載

D. 方法可以通過指定不同的返回值類型重載

答案:D

31. 關於虛方法實現多態,下列說法錯誤的是(    )。

A. 定義虛方法使用關鍵字virtual

B. 關鍵字virtual可以與override一起使用

C. 虛方法是實現多態的一種應用形式

D. 派生類是實現多態的一種應用形式

答案:B

32. 以下關於繼承的說法錯誤的是(    )。

A. .NET框架類庫中,object類是所有類的基類

B. 派生類不能直接訪問基類的私有成員

C. protected修飾符既有公有成員的特點,又有私有成員的特點

D. 基類對象不能引用派生類對象

答案:D

33. 繼承具有(    ),即當基類本身也是某一類的派生類時,派生類會自動繼承間接基類的成員。

A. 規律性B. 傳遞性C. 重復性D. 多樣性

答案:B

34. 下列說法中,正確的是(    )。

A. 派生類對象可以強制轉換為基類對象

B. 在任何情況下,基類對象都不能轉換為派生類對象

C. 接口不可以實例化,也不可以引用實現該接口的類的對象

D. 基類對象可以訪問派生類的成員

答案:A

35.使用Dirctory類的下列方法,可以獲取指定文件夾中的文件的是(  ).

   A.Exists()  B.GetFiles()  C.GetDirectories()    D.CreateDirectory()

答案:B

36.StreamWriter對象的下列方法,可以向文本文件寫入一行帶回車和換行的文本的是(  )。

   A.WriteLine()   B.Write()    C.WritetoEnd()   D.Read()

答案:A

37.建立訪問鍵時,需在菜單標題的字母前添加的符號是(    )。

A.!     B.#     C.$    D.&

答案:D

38.在C#.Net中,用來創建主菜單的對象是(   )。

A. Menu     B.MenuItem    C.MenuStrip    D.Item

答案:C

39.下面所列舉的應用程序中,不是多文檔應用程序的是(      )

 A.Word     B.Excel      C.PowerPoint   D.記事本

答案:D

40.下面所列舉的應用程序中,不是多文檔應用程序的是(      )

 A.Word     B.Excel      C.PowerPoint   D.記事本

答案:D

41.在Array類中,可以對一維數組中的元素查找的方法是(     )。

A.Sort()   B.BinarySearch()   C.Convert()   D.Index()

答案:B

 

 

 

二、填空題(每空2分,共20分)

1. 當在程序中執行到              語句時,將結束所在循環語句中循環體的一次執行。

答案:continue

2. 枚舉是從System.          類繼承而來的類型。

答案:Enum

3.類中聲明的屬性往往具有get()和       兩個訪問器。

答案:set()

4.C#提供一個默認的無參構造函數,當我實現了另外一個有一個參數的構造函數時,還想保留這個無參數的構造函數。這樣我應該寫       構造函數。

答:兩個

5.接口(interface)是指:                                                   。

答:只含有公有抽象方法(public abstract method)的類。這些方法必須在子類中被實現。

6. 在switch語句中,每個語句標號所含關鍵字case后面的表達式必須是                          。

答案:常量表達式

7. 在while循環語句中,一定要有修改循環條件的語句,否則,可能造成          .。

答案:死循環

8.傳入某個屬性的SET方法的隱含參數的名稱是        。

答:value

9.C#的類不支持多重繼承,但可以用          來實現。

答案:接口

10.C#數組類型是一種引用類型,所有的數組都是從System命名空間的      類繼承而來的引用對象。

答案:object

12.一般將類的構造方法聲明為           訪問權限。如果聲明為private,就不能創建該類的對象。

答案:public或公有

13.在方法定義中,virtual含義:                                             。

答案:被virtual修飾的方法可以被子類覆寫

14. C#數組元素的下標從      開始。

答案:0

15. 元素類型為double的2行5列的二維數組共占用                 字節的存儲空間。

答案:80

16.對於方法,參數傳遞分為值傳遞和        兩種。

答案:引用傳遞

 

 

 

 

三、判斷題(每題2分,20分)

1.不能指定接口中方法的修飾符。

答:對

2.DotNet包含兩個部分,即公共語言運行時和框架類庫

答案:對

3.在同一行上可以書寫多條語句,每條語句間用分號分隔。

答案:對

4.在數據類型轉化時,只能通過類型轉換關鍵字或Convert類實現。

答案:錯

5.在定義數組時不允許為數組中的元素賦值。

答案:錯

6.定義枚舉時至少為其中的一個枚舉成員賦值。

答案:錯

7.接口與類同樣是面向對象程序設計的核心,是創建對象的模版。

答案:對

8.委托是將方法作為參數傳遞給另一方法的一種數據類型。事件與委托沒有關系。

答案:錯

9.如果要實現重寫,在基類的方法中必須使用virtual關鍵字,在派生類的方法中必須使用overrides關鍵字。

答案:錯

10.在C#類中,this代表了當前類本身。

答案:錯

11.靜態類和實例類的區別在於:靜態類不需要初始化即可直接使用,實例類需要進行實例化,生成對象才可使用。

答案:對

12.用Interval屬性設置Timer控件Tick事件發生的時間間隔單位為秒。

答案:錯

13.設置圖片框控件的SizeMode屬性為StretchImage時,圖片可以按圖片框的大小比例縮放顯示。

答案:對

14.可以重寫私有的虛方法。

答:錯

15.在C#中,所有類都是直接或間接地繼承System.Object類而得來的。

答案:對

16.在C#中,任何方法都不能實現多繼承。

答案:錯

17.在C#中,子類不能繼承父類中用private修飾的成員變量和成員方法。

答案:對

18.菜單項標題中有含有帶下划線的字符,這是快捷鍵。

答案:錯

 

 

19.可以阻止某一個類被其他類繼承。

答:對

20.一個窗體中可以有多個彈出式菜單。

答案:對

21.在C#Net中,窗體父子關系通過“屬性”窗口來創建。

答案:對

22.使用Directory類的Move()方法可以刪除文件。

答案:錯

23.使用FileInfo類的Copy()方法可以復制文件。

答案:對

24.DataSet對象中的表可以和數據庫中的表同名,也可以不同名。

答案:對

25.Command對象可以執行SQL語句。

答案:對

26.使用Directory類的Move()方法可以刪除文件。

答案:錯

27.使用FileInfo類的Copy()方法可以復制文件。

答案:對

 

 

 

 

 

四、程序閱讀題(每小題5分,共30分)

 

 

1.寫出以下程序的運行結果。

using System;

class Test

{

   public static void Main()

   {

     int x = 5;

     int y = x++;

     Console.WriteLine(y);

     y=++x;

     Console.WriteLine(y);

   }

}

答案: 5

7

 

 

2. 寫出下列函數的功能。

static int SA(int a,int b)

{

      if (a>b)

return 1;

      else if (a==b)

return 0;

       else

return -1;

}

答案:比較兩個整數a和b的大小,若a>b則返回1,若a= =b則返回0,若a<b則返回-1。

 

 

 

3.寫出下列函數的功能。

static float FH() {

    float y=0,n=0;

    int x = Convert.ToInt32(Console.ReadLine()); //從鍵盤讀入整型數據賦給x

    while (x!=-1) {

           n++; y+=x;

           x = Convert.ToInt32(Console.ReadLine());

    }

if (n==0)

return y;

else

return y/n;

}

答案:求出從鍵盤上輸入的一批常數的平均值,以-1作為結束輸入的標志。

 

 

4.寫出以下程序運行結果。

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 (a[i] % 3)

            {

                case 0: s0 += Test.a[i]; break;

                case 1: s1 += Test.a[i]; break;

                case 2: s2 += Test.a[i]; break;

            }

        }

        Console.WriteLine(s0 + " " + s1 + " " + s2);

    }

}

答案:9  12  15

 

 

5.寫出以下程序的功能。

static void f2(ref double[] a, int n)

{        int i; double sum=0;

        for(i=0;i<n;i++) sum+=a[i];

        sum/=n;

        for(i=0;i<n;i++)

        if(a[i]>=sum)

Console.write( a[i] + “  “ );

        Console.writeLine ();

}

答案:顯示輸出數組a中大於等於平均值的所有元素值。

 

 

 

 

6.寫出以下程序運行結果。

using System;

class Test

{

const 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 + “  “ );

}  }

答案:5 8 11 14

 

 

 

 

 

7. 寫出以下程序運行結果。

using System;

class Test

{

static void LE(ref int a, ref 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);

}

}

答案:25  10

      25  10

 

 

8.寫出以下程序的功能。

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(a[j]<a[k]) k=j;

       int x=a[i]; a[i]=a[k]; a[k]=x;    }

}

答案:采用選擇排序的方法對數組a中的n個整數按照從小到大的次序重新排列。

 

 

 

9. 寫出以下程序的運行結果。

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(“   ”+a[i]);

                 if ((i+1)%3==0) Console.writeLine();

           }  }

}

答案:2   4   6

8  10  12

14  16  18

 

 

10. 寫出以下程序運行結果。

using System;

class Test

{

   public static void Main ()

{

          int s=0;

          for (int i=1;  ; i++) {

                  if (s>50)  break;

                if (i%2==0)  s+=i;

         }

         Console.writeLine ("i, s=" + i + "," + s);

}  }

答案:i,s = 15, 56

 

 

 

 

 

五、簡答題(10分,每題5分)

 

1.如何區別重載方法?

不同的參數類型,不同的參數個數,不同的參數順序

 

 

 

2.C#用多種修飾符來表達類的不同性質。根據其保護級C#的類有五種不同的限制修飾符,請寫出並指出它們之間的區別是什么?

答:

public 可以被任意存取

protected只可以被本類和其繼承子類存取

internal只可以被本組合體(Assembly)內所有的類存取,組合體是C#語言中類被組合后的邏輯單位和物理單位,其編譯后的文件擴展名往往是“.DLL”或“.EXE”。

protected internal唯一的一種組合限制修飾符,它只可以被本組合體內所有的類和這些類的繼承子類所存取。

private只可以被本類所存取。

 

 

3.接口和抽象類的區別是什么?

答:接口用於規范,抽象類用於共性。接口中只能聲明方法,屬性,事件,索引器。而抽象類中可以有方法的實現,也可以定義非靜態的類變量。抽象類是類,所以只能被單繼承,但是接口卻可以一次實現多個。抽象類可以提供某些方法的部分實現,接口不可以.抽象類的實例是它的子類給出的。接口的實例是實現接口的類給出的。在抽象類中加入一個方法,那么它的子類就同時有了這個方法。而在接口中加入新的方法,那么實現它的類就要重新編寫(這就是為什么說接口是一個類的規范了)。接口成員被定義為公共的,但抽象類的成員也可以是私有的、受保護的、內部的或受保護的內部成員(其中受保護的內部成員只能在應用程序的代碼或派生類中訪問)。此外接口不能包含字段、構造函數、析構函數、靜態成員或常量。

 

 

4.什么是抽象類?

答案:抽象類是含有一個或多個抽象方法的類,抽象類不能實例化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM