深刻.NET平臺和C#編程 錯題錄

1.在C#中,關於文件操做相關的類說法正確的是(AB) <選擇二項>數組

  A:FileInfo類提供了用於操做文件的實例方法安全

  B:File類提供了用於操做文件的靜態方法app

  C:Directory類提供操做目錄的實例方法 框架

  D:DirectoryInfo類提供了操做目錄的靜態方法 ide

解析:函數

  DirectoryInfo類提供操做目錄的實例方法ui

  Directory類提供了操做目錄的靜態方法編碼

2 .NET框架的核心組件包括(BD)(選擇兩項)spa

  A.CTS   (通用類型系統)對象

  B.CLR   (公共語言運行時,.NET的基礎

  C.CLS   (公共語言規範)

  D.FCL   (框架類庫,.NET一個綜合性的面向對象集合

3.下面的選項(AD)能夠致使下面的代碼出現錯誤。<選擇二項>

  Student s=new Student();

  s.Name="Marry";

  A:將Student類中的Name屬性設置爲只讀屬性

  B:將Student類中的Name屬性設置爲只寫屬性

  C:向Student類中添加無參數的構造函數

  D:向Student類中添加有參數的構造函數

4.在C#中下列選項說法正確的是(B)。

     A.一個類容許有一個以上的父類(單根性

   B.父類包含公開屬性A,則子類構造函數內部能夠訪問A

   C.一個類的繼承層次不容許超過3層(傳遞性

     D.若是X是Y的子類,Z是Y的父類,則Z是X的子類 (X是子類,Y是父類,Y是Z的子類,X是Z的子類

 

5.在.NET中建立文件流的時候,須要指定文件模式FileMode的值,下面對FileMode的值解釋正確的是(AC) <選擇二項>

 

  A:Create:用指定的名稱新建文件。若是文件存在,則覆蓋原有的

 

  B:CreateNew:新建一個文件。若是已存在,則不作處理 (CreateNew 新建一個文件。若是文件存在會發生異常,提示文件已經存在 

 

  C:Open:打開一個文件。文件必須存在,不然報錯

 

  D:OpenOrCreate:打開或新建一個文件。若是文件不存在,則新建但不打開它 (OpenOrCreate:若是文件不存在,則用指定的名稱新建一個文件並打開它

6.在C#中,關於文件操做相關的類說法正確的是(AB)(選擇兩項)。

  A. FileInfo類提供了用於操做文件的實例方法

  B. File類提供了用於操做文件的靜態方法

  C. Directory類提供了操做目錄的實例方法  ( Directory類提供了操做目錄的靜態方法 )

  D. DirectoryInfo類提供了操做目錄的靜態方法  ( DirectoryInfo類提供操做目錄的實例方法 )

7.下列關於List<T> 的說法錯誤的是(D)。

  A.List<T>類的用法相似於ArrayList

  B.List<T>要比ArrayList有更大程度的類型安全性

  C.訪問List<T>中的元素是無須作類型轉換

    D.List<T>中的T只能是值類型 (string也能夠)

8.在C#中,若是要實現父類的成員在父類及其子類中能夠訪問,並且他類中沒法訪問,應使用(D)修飾符修飾該成員。

  A.public

  B.private

  C.base

  D.protected (受保護的)

9.在C#中,如下Teacher類中的構造函數的寫法正確的是(AC)(選擇兩項)。

  A. public Teacher(){}

  B. private void Teacher(){}(一個私有的Teacher方法,返回值爲空

  C. private Teacher (int id,string name){}

  D. public int Teacher (int id,string name){} (返回值爲int類型的帶參方法

10.在.NET中建立文件流的時候,須要指定文件模式FileMode的值,下面對FileMode的值解釋正確的是(AC)(選擇兩項) 

  A:Create:用指定的名稱新建文件。若是文件存在,則覆蓋原有的

  B:CreateNew:新建一個文件。若是已存在,則不作處理(CreateNew 新建一個文件。若是文件存在會發生異常,提示文件已經存在。

    C:Open:打開一個文件。文件必須存在,不然報錯

    D:OpenOrCreate:打開或新建一個文件。若是文件不存在,則新建但不打開它(OpenOrCreate:若是文件不存在,則用指定的名稱新建一個文件並打開它

11.在如下C#代碼中,橫線處填寫(BD)不會出錯。<選擇二項>

  Dictionary<int,string>dic=new Dictionary<int,string>();

  dic.Add(1,"C#OOP");

  Console.WriteLine(_____________);

  A:dic["C#OOP"]

  B:dic[dic.Count]

  C:dic[0]

  D:dic[1]

12.在C#中,關於泛型集合和ArrayList的說法正確的是 (C)   <選擇一項>

  A:向ArrayList中添加元素時,只能添加一種類型的元素 (可添加多種類型元素

  B:從ArrayList中讀取元素時不須要作類型轉換  (須要進行類型轉換

  C:使用泛型集合需引用System.Collections.Generic命名空間

  D:ArrayList添加、讀取時無須裝箱、拆箱  (若是向ArrayList中添加的元素是值類型,這些元素就都會裝箱處理轉換爲Object引用類型,而後保存

13.在C#中,使用集合初始化器初始化集合的用法正確的是(BC)<選擇二項>

  A://SE類爲已經定義好的類

    List<SE>list=new List<SE>(new SE(),new SE());

  B://SE類爲已經定義好的類

    List<SE>list=new List<SE>{new SE(),new SE()};

  C:ArrayList list=new ArrayList{1,2};

  D:ArrayList list=new ArrayList(){1;2};

解析:

  初始化多個元素用{}而不是(),因此A錯誤,多個元素用逗號而不是分號分割,因此D錯,至於集合類型後面能夠加括號也能夠不加括號,因此BC均可以

14.在C#中,定義Apple類爲Fruits類的子類,下列語句不能用於將Fruits類型轉換爲Apple類型的是(AD)<選擇二項>

  A:Fruits fru=new Apple();

       Apple app=fru is Apple;

   (is 用於斷定

  B: Fruits fru=new Apple();

      Apple app=fru as Apple;

  C: Fruits fru=new Apple();

    Apple app=(Apple)fru;

  D: Fruits fru=new Apple();

       fru.Convert(Apple);

   (沒有Convert這個語法

15.在.NET中使用文件的時候,會常常遇到亂碼的問題,下面選項中關於亂碼說法正確的是(C)

  A:處理亂碼使用Encoding,Encoding是一個枚舉類型

  B:在寫入文件內容的時候指定其編碼格式,能夠避免出現亂碼

  C:在讀取文件的時候,指定解析文件的編碼格式,能夠解決亂碼問題

  D:Encoding位於System.Data命名空間

解析:

  使用文件出現亂碼本質是文件保存的編碼和讀取時使用的編碼方式不一致。寫入文件指定編碼格式,不能解決問題,在讀取文件時,指定和文本保存時一致的編碼格式,則不會出現亂碼;Encoding位於System.Text命名空間

16.在.NET中,下列關於Directory類和DirectoryInfo類說法正確的是(A)

  A:Directory類的方法都是靜態的,能夠直接調用

  B:DirectoryInfo類的方法都是靜態的,能夠直接調用

  C:Directory類和DirectoryInfo類均可以用Exist()方法檢驗指定目錄是否存在

  D:Directory類的GetFile()方法返回的是指定目錄下的FileInfo對象數組

解析:

  Directory類的方法都是靜態的,能夠直接調用。

  DirectoryInfo類的方法不是靜態的,因此要經過實例化調用。

  Directory包含Exist()方法,DirectoryInfo包含Exist屬性。

  Directory類的GetFiles()方法返回指定目錄下的文件名字字符串數組

17.在C#代碼中,如下代碼輸出的結果爲(C)

  class Program

  {

  int num=10;

  static void Main(string[]args)

  {

  Console.WriteLine(num++);

  }

  A:11

  B:10

  C:編譯報錯

  D:運行報錯

解析:

  靜態成員只能經過類名調用,在靜態方法中通常只能調用靜態的成員,

  非靜態成員必須經過對象去調用。所以程序編譯不經過

18.在C#中,如下代碼執行的結果是(B)。

  public struct Test

  {

   public int num;

  }

 

  public class Test1

  {

  public static void Change(Test t1,ref Test t2)

  {

  t1.num++;

  t2.num++;

  }

  public static void Main()

  {

  Test t1;

  t1.num=1;

  Test t2;

  t2.num=2;

  Change(t1,ref t2);

  Console.Write(t1.num+","+t2.num);

  }

  }

  A:1,1

  B:1,3

  C:2,2

  D:2,1

解析:

  ref修飾的值類型按照引用類型傳遞,結構屬於值類型;

  題目中t1沒有用ref修飾,值不改變,t2使用了ref修飾,值會改變

19.下面的C#代碼運行的時候會出現錯誤的是(BC)<選擇二項>

  A:ArrayList a1=new ArrayList();

      a1.Add(100);

      a1.Add(100);

  B: Hashtable ht=new Hashtable();

      ht.Add("張三",new object());(Hashtable 鍵  出現重複

      ht.Add("張三",new object());

  C: List<string>list=new List<string>();

      string name=list[0]; (無下標0

  D: Dictionary<string,object>dict=new Dictionary<string,object>();

       foreach(onject p in dict.Values){}

20.在C#中,選項中的方法跟下面的方法屬於重載的是(D)。

  public void Add(int a,int b)

  A.public int Add(int a,int b)

  B.public void AddNum(double a,double b)

  C.public void Add(int b,int a)

  D.public void Add(int a,double b)

解析:

  方法重載是指方法名相同,而參數類型和參數個數不一樣,在同一個類中,構造函數和普通方法均可以重載

21.在C#中,下面代碼的運行結果是(A)

  public class Fruit

  {

  public virtual void Show()

  {

  Console.WriteLine("水果的味道不一樣");

  }

  }

  public class Lemon:Fruit

  {

  public override void Show()

  {

  Console.WriteLine("檸檬是酸的!");

  }

  }

  class Program

  {

  static void Main(string[]args)

  {

  Fruit lemon =new Fruit();  <new的是父類對象,所以輸出的是父類的方法>

  lemon.Show();

  }

  }

  A:輸出「水果的味道不一樣」

  B:輸出「檸檬是酸的!」

  C:程序不出錯,但什麼也不輸出

  D:程序出錯,提示對象類型不一致

22.運行如下C#代碼,則輸出結果是(D)

  public class Child

  {

  public virtual void Like()

  {

  Console.WriteLine("孩子喜歡玩具");

  }

  }

  public class Boy:Child

  {

  public override void Like(string toys)

  {

  Console.WriteLine("男孩喜歡"+toys);

  }

  }

  class Program

  {

  static void Main(string[]args)

  {

  Child child=new Child();

  child.Like("玩具手槍");

  }

  }

  A:孩子喜歡玩具

  B:男孩喜歡玩具手槍

  C:孩子喜歡玩具

      男孩喜歡玩具手槍

  D:程序編譯錯誤,什麼也不輸出

解析:

  Boy.Like(string)沒有找到適合的方法來重寫

23.在。NET使用文件的時候,會常常遇到亂碼問題,下面選項中關於亂碼的說法正確的是(C)

  A.處理亂碼使用Encoding,Encoding是一個枚舉類型

  B.在寫入文件內容的時候指定其編碼格式,能夠避免出現亂碼

  C.在讀取文件的時候,指定解析文件的編碼格式,能夠解決亂碼問題

  D.Encoding位於System.Data命名空間

解析:

  使用文件出現亂碼本質是文件保存的編碼和讀取時使用的編碼方式不一致。寫入文件指定編碼格式,不能解決問題,在讀取文件時指定文件和文本保存時不一致的編碼格式,則不會出現亂碼;Encoding位於System.Text命名空間。

24.下面的選項(AD)能夠致使下面代碼出現錯誤。

  Student s=new Student();

  s.Name="Marry";

  A.將Student類中的Name屬性設置爲只讀屬性

  B.將Student類中的Name屬性設置爲只寫屬性

  C.向Student類中添加無參數的構造函數

  D.向Student類中添加有參數的構造函數

25.在C#中,如下代碼輸出的結果爲(B)

 class Program

  {

    static int num=10;

    static void Main(string[] args)

    {

      Console.WriteLine(num++);

    }

  }

  A.11

  B.10

  C.編譯報錯

  D.運行報錯

解析:

  考點爲靜態成員的定義和使用,靜態變量只能經過類名調用,在靜態方法中通常只能調用靜態的成員,非靜態成員必須經過對象去調用,所以代碼編譯運行都沒有錯誤。num=10,num++=10,因此輸出10。

26.下面關於XML的描述錯誤的是(AB)

  A.XML和HTML同樣都是用來描述數據

  B.XML文件中的節點不區分大小寫

  C.XML節點是成對出現的

  D.XML節點是可擴展的

相關文章
相關標籤/搜索