北航軟院2013級C#期末考試部分考題解答

博主注:本渣渣水平有限,文中如有不對的地方敬請指出,謝謝。c#

本文中大部分圖片來自老師的PPT,感謝邵老師,想要的能夠點擊右邊QQ聯繫我:)數組

 

1、選擇題

2.Wrong statement?app

A.double a = 2E15;   B. long b = 0x10Cl;   C. string c = @」」」」;   D.int d = 2014;less

解答:原本一眼看過去是沒什麼問題的(事實也確實沒有問題),若是說我把C選項複製到VS裏顯示的是中文引號也算錯誤的話,也只能是這個錯誤了(開玩笑的。大霧)ide

這道題惟一的看點,那就是C選項中的字符串c是什麼呢?答案是一個<">。@能夠無論轉義,符特殊狀況,兩個<">表明一個<">。函數

C#中@的做用:ui

1.用@能夠不用寫轉義字符。如文件路徑,能夠不用寫兩個反斜槓,即忽略轉義idea

2.可讓字符串跨行。spa

3.c#中是不容許用關鍵字做爲標識符的,可是在關鍵字前加上@,就打破了這個界限。@int是能夠存在,當作變量的。.net


3.有這樣一個類List,class List : IList, 如下正確的是:

1)IList a=new IList()    2) List b= new List()

A 1)   B 1)2)  C 2)  D neither 1) nor 2)

解答:這裏的IList咱們默認是接口(接口的命名是這樣的),接口是不能實例化的,因此1)是錯的,2)固然對啦~~~

還有一種操做,那就是IList ex=new List();

邵老師告訴咱們:

 


4.right answer

A Structs cannot have a parameterless constructor.

B Structs can have a destructor.

C

解答:A看起來怪怪的,不論何時,編譯器都會給結構體一個默認無參構造器,也會拒絕你給它的無參構造器,因此這裏說結構體無參構造器沒有不太好,意思懂了就行。類就不同了,你不給它它就本身造一個無參構造器,你給它一個構造器(不論有參無參),它就無論了,不給你默認無參構造器了。


5. right answer

One file could have multiple namespaces.(說法正確)

File name ,directory,的關係

解答:這裏講一下有關於namespace方面的小知識點吧。

  1. 程序若是不指定namespace,它是有默認的namespace的。
  2. namespace能夠嵌套名字空間、結構體、接口、代理、類、枚舉
  3. namespace是能夠在多個文件中定義的,編譯時會合爲一體。
  4. namespace容許別名操做:using F = System.Windows.Forms;F.Button b;
  5. 在一個namespace裏面能夠using其餘名字空間


6. In C#, which of the types is value types?

A Enums B delegates C interfaces D class

解答:最後一次複習值類型:Primitive Types(bool、int等)、Enums、Structs。


 7.Which of the statements is correct to declare a two-dimensional array in C#?

A int[,] myArray B int myArray[][]

C int[2] myArray DSystem.Array[2] myArray

解答:

//一維
            int[] a = new int[3];
            int[] b = new int[] { 3, 4, 5 };
            int[] c = { 3, 4, 5 };

            //非矩陣二維數組
            //int wrong1[1][2];//錯誤
            
            int[][] aa = new int[2][];// array of references to other arrays
            aa[0] = new int[] { 1, 2, 3 };// cannot be initialized directly
            aa[1] = new int[] { 4, 5, 6 };

            //矩陣二維數組
            int[,] aaa = new int[2, 3];// block matrix
            int[,] bbb = { { 1, 2, 3 }, { 4, 5, 6 } };// can be initialized directly
            int[,,] ccc = new int[2, 4, 2];
View Code

10. The statement f = delegate(int x){return x + 1;}; is equivalent to which of the following statements?

A.f(x) =>x + 1;

B.f(x) = x + 1;

C.f => x + 1;

D.f = x => x + 1;(見上一篇博客原題)


11. 11級的12題 關於線程 Resume

12. 11級的13題 泛型

13. In C#,__is a set of types that are compiled together and it is the smallest unit for deployment and dynamic loading.

A assembly B class C namespace D package

解答:我的認爲程序集是一個挺難懂的問題,至今沒弄會。只知道.exe和.dll是程序集。


 14.把declarationPPT的最後一頁弄明白就會了(PPT75~83,重點看77以及其餘每頁的最後一句話。)

15. right answer

A overflow can be detected by default.

B sizeof can be applied to reference types

解答:A是錯的,兩個大int相加他是不會出現什麼意外的。B是錯的,sizeof只能用於值類型。


2、判斷題

1. Constants can be declared static

解答:F),系統報錯,在C#中const與static不能同時修飾變量;

你問我爲何?邵老師表示C#有的事情就是這麼沒有理由:)


2. All types are compatible with object.

解答:T),


3.Enumerations cannot be assigned to int. 

解答:T


4.In C#, converting a value type to a reference type is called unboxing and converting a reference type to a value type is called boxing.

解答:F)反了gg


 5 nested types can be interfaces and delegates

解答:T

 


 7 operand types can only be numeric or char

解答:F


 8 Identifier can be Chinese characters

解答:(T),只要是Unicode就能夠了~C#很棒吧!


3、填空

4. An interface member is _implemented __or _inherited__from a base class

解答:接口的成員要麼本身定義要麼繼承自父類。

接口不能包含常量、字段、操做符、構造函數、析構函數、任何靜態成員、方法的實現


5 The visibility of an interface member is __public____.


 6.In C#, all exception classes are derived from _System.Exception___class.


7. 題目見代碼,應該是問輸出什麼。

using System;
class A
{
    public int x;
    public void F()
    {
        Console.WriteLine("AFx"+x);
    }
    public virtual void G()
    {
        Console.WriteLine("AGx"+x);
    }
}
class B : A
{
    public new int x;
    public new void F()
    {
        Console.WriteLine("BFx"+x);
    }
    public new void G()
    {
        Console.WriteLine("BGx"+x);
    }
}

class Test
{
    public static void Main()
    {
        B b = new B();
        b.x = 1;      // accesses B.x
        b.F();
        b.G();
        ((A)b).x = 2;
        ((A)b).F();
        ((A)b).G();

        Console.ReadKey();
    }
}
View Code

解答:考查的是new的用法,new就是從新開始,打斷繼承。

運行結果:


4、解答題

1.why are properties often a good idea? Explain the reason why we use properties(屬性)

解答:使用屬性的好處:容許只讀或者只寫字段;能夠在訪問時驗證字段;接口和實現的數據能夠不一樣;替換接口中的數據。


2.What is the difference between value type and reference type?

解答:值類型直接存儲其值,而引用類型存儲對其值的引用。

值類型部署在棧上,引用類型部署在託管堆上。

具體詳解:http://blog.csdn.net/qiaoquan3/article/details/51202926

 


3.What is the difference between private assembly and public assembly?

解答:咱用中文回答應該沒問題:)

private assembly只能被一個應用程序使用、保存在應用程序目錄中、不要求強命名、沒法簽名;

public assembly能夠被所用應用程序使用、保存在全局程序集中、必須有一個強命名、能夠簽名

另外強命名包括四個部分:Assembly的命名、Assembly的版本號、Assembly的文化屬性、Assembly的公鑰。


4.What is the difference between class and struct?

解答:我的又總結了一遍。

1.結構體實值類型的,而類是引用類型的。

2.結構體的實例部署在棧上,而類的實例部署在堆上。

3.結構體和類都有構造器,可是不能爲結構體聲明無參數的構造器,而類能夠。

4.若是聲明有參數構造器,對於結構體來講編譯器仍然會生成默認無參構造器,而類不會。

5.若是構造器中不初始化字段,對於結構體,編譯器不會自動初始化,而類會。

6.結構體聲明字段時不能夠初始化,而類能夠。

7.結構體不能夠從另外一個結構體或類繼承而來,也不能夠被繼承;而類能夠從另外一個類繼承而來,也能夠被繼承(除非爲sealed類)。

8.結構體和類均可以繼承多個接口。

9.結構體沒有析構函數,而類能夠有(通常不用)。

 

最後,你們加油呀,祝明天考試順利~

 

做者: AlvinZH

出處: http://www.cnblogs.com/AlvinZH/

本文版權歸做者AlvinZH和博客園全部,歡迎轉載和商用,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。

相關文章
相關標籤/搜索