最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C#期末考試題

2022-04-21 08:43 作者:朝顏晚扶桑  | 我要投稿

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

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

A. 私有 ?????B. 公用 ?????C. 保護(hù) ?????D. 任何

答案:D

2.小數(shù)類型(decimal)和浮點(diǎn)類型都可以表示小數(shù),正確說法:( ???)

A. 兩者沒有任何區(qū)別

B. 小數(shù)類型比浮點(diǎn)類型取值范圍大

C.小數(shù)類型比浮點(diǎn)類型精度高

D. 小數(shù)類型比浮點(diǎn)類型精度低

答案:C

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

A. 字符 ?????B. 語(yǔ)句 ?????C. 函數(shù) ?????D. 源程序文件

答案:B

4. 可用作C#程序用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是( ???)。

A. void ???define ???+WORD ???????B. a3_b3 ???_123 ???YN

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

答案:B

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

A.對(duì)象類型 B.字符串類型 C.委托類型 D.整數(shù)類型

答 案:C

6.加載窗體時(shí)觸發(fā)的事件是( ???)。

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

答案:B

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

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

答案:A

8.在C#中定義接口時(shí),使用的關(guān)鍵字是( ???)。

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

答案:A

9.在類的成員中,用于存儲(chǔ)屬性值的是( ???)。

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

答案:成員變量

10.在C#中,定義派生類時(shí),指定其基類應(yīng)使用的語(yǔ)句是( ???)。

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

答案:B

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

A.多態(tài) ?B.封裝 ?C.繼承 ?D.抽象

答案:C

12.在Array類中,可以對(duì)一維數(shù)組中的元素進(jìn)行排序的方法是( ???)。

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

答案:A

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

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

答案:D

14.數(shù)據(jù)類型轉(zhuǎn)換的類是( ?)。

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

答案:B

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

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

答案 A

16.先判斷條件的當(dāng)循環(huán)語(yǔ)句是( ???)。

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

答案:B

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

A. 機(jī)器 ?B.過程 ?C.對(duì)象 ?D.事物

答案:C

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

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. 函數(shù)的定義可以嵌套,函數(shù)的調(diào)用不可以嵌套

B. 函數(shù)的定義不可以嵌套,函數(shù)的調(diào)用可以嵌套

C. 函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

D. 函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

答案:B

20.小數(shù)類型和浮點(diǎn)類型都可以表示小數(shù),正確說法:( ???)

A. 兩者沒有任何區(qū)別

B. 小數(shù)類型比浮點(diǎn)類型取值范圍大

C.小數(shù)類型比浮點(diǎn)類型精度高

D. 小數(shù)類型比浮點(diǎn)類型精度低

答案:C

21.在C#中,可以標(biāo)識(shí)不同的對(duì)象的屬性是( ???)。

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

答案:B

22.在VC#.Net中,可以標(biāo)識(shí)不同的對(duì)象的屬性是( ???)。

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

答案:B

23.在C#中定義接口時(shí),使用的關(guān)鍵字是( ???)。

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

答案:A

24.屬于C#語(yǔ)言的關(guān)鍵字( ???)。

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

答案:A

25.C#語(yǔ)言中,值類型包括:基本值類型、結(jié)構(gòu)類型和( ???)。

A.小數(shù)類型 ?B.整數(shù)類型 C.類類型 D.枚舉類型

答案:D

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

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. 函數(shù)的定義可以嵌套,函數(shù)的調(diào)用不可以嵌套

B. 函數(shù)的定義不可以嵌套,函數(shù)的調(diào)用可以嵌套

C. 函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

D. 函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

答案:B

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

A. 接口可以實(shí)例化 ???????????????????B. 類只能實(shí)現(xiàn)一個(gè)接口

C. 接口的成員都必須是未實(shí)現(xiàn)的 ???????D. 接口的成員前面可以加訪問修飾符

答案:C

29. 下列關(guān)于抽象類的說法錯(cuò)誤的是( ???)。

A. 抽象類可以實(shí)例化 ???????????????B. 抽象類可以包含抽象方法

C. 抽象類可以包含抽象屬性 ???????D. 抽象類可以引用派生類的實(shí)例

答案:A

30. 下列關(guān)于重載的說法,錯(cuò)誤的是( ???)。

A. 方法可以通過指定不同的參數(shù)個(gè)數(shù)重載

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

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

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

答案:D

31. 關(guān)于虛方法實(shí)現(xiàn)多態(tài),下列說法錯(cuò)誤的是( ???)。

A. 定義虛方法使用關(guān)鍵字virtual

B. 關(guān)鍵字virtual可以與override一起使用

C. 虛方法是實(shí)現(xiàn)多態(tài)的一種應(yīng)用形式

D. 派生類是實(shí)現(xiàn)多態(tài)的一種應(yīng)用形式

答案:B

32. 以下關(guān)于繼承的說法錯(cuò)誤的是( ???)。

A. .NET框架類庫(kù)中,object類是所有類的基類

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

C. protected修飾符既有公有成員的特點(diǎn),又有私有成員的特點(diǎn)

D. 基類對(duì)象不能引用派生類對(duì)象

答案:D

33. 繼承具有( ???),即當(dāng)基類本身也是某一類的派生類時(shí),派生類會(huì)自動(dòng)繼承間接基類的成員。

A. 規(guī)律性 ???????B. 傳遞性 ???????C. 重復(fù)性 ???????D. 多樣性

答案:B

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

A. 派生類對(duì)象可以強(qiáng)制轉(zhuǎn)換為基類對(duì)象

B. 在任何情況下,基類對(duì)象都不能轉(zhuǎn)換為派生類對(duì)象

C. 接口不可以實(shí)例化,也不可以引用實(shí)現(xiàn)該接口的類的對(duì)象

D. 基類對(duì)象可以訪問派生類的成員

答案:A

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

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

答案:B

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

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

答案:A

3.建立訪問鍵時(shí),需在菜單標(biāo)題的字母前添加的符號(hào)是( ???)。

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

答案:D

4.在C#.Net中,用來創(chuàng)建主菜單的對(duì)象是( ?)。

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

答案:C

5.下面所列舉的應(yīng)用程序中,不是多文檔應(yīng)用程序的是( ?????)

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

答案:D

7.下面所列舉的應(yīng)用程序中,不是多文檔應(yīng)用程序的是( ?????)

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

答案:D

5.在Array類中,可以對(duì)一維數(shù)組中的元素查找的方法是( ???)。

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

答案:B

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

1. 當(dāng)在程序中執(zhí)行到 ?????????????語(yǔ)句時(shí),將結(jié)束所在循環(huán)語(yǔ)句中循環(huán)體的一次執(zhí)行。

答案:continue

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

答案:Enum

3.類中聲明的屬性往往具有g(shù)et()和 ?????兩個(gè)訪問器。

答案:set()

4.C#提供一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù),當(dāng)我實(shí)現(xiàn)了另外一個(gè)有一個(gè)參數(shù)的構(gòu)造函數(shù)時(shí),還想保留這個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。這樣我應(yīng)該寫 ?????構(gòu)造函數(shù)。

答:兩個(gè)

5.接口(interface)是指: ?????????????????????????????????????????????????。

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

6. 在switch語(yǔ)句中,每個(gè)語(yǔ)句標(biāo)號(hào)所含關(guān)鍵字case后面的表達(dá)式必須是 ?????????????????????????。

答案:常量表達(dá)式

7. 在while循環(huán)語(yǔ)句中,一定要有修改循環(huán)條件的語(yǔ)句,否則,可能造成 ?????????.。

答案:死循環(huán)

8.傳入某個(gè)屬性的SET方法的隱含參數(shù)的名稱是 ???????。

答:value

9.C#的類不支持多重繼承,但可以用 ?????????來實(shí)現(xiàn)。

答案:接口

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

答案:object

12.一般將類的構(gòu)造方法聲明為 ?????????訪問權(quán)限。如果聲明為private,就不能創(chuàng)建該類的對(duì)象。

答案:public或公有

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

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

14. C#數(shù)組元素的下標(biāo)從 ?????開始。

答案:0

15. 元素類型為double的2行5列的二維數(shù)組共占用 ???????????????字節(jié)的存儲(chǔ)空間。

答案:80

16.對(duì)于方法,參數(shù)傳遞分為值傳遞和 ???????兩種。

答案:引用傳遞

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

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

答:對(duì)

2.DotNet包含兩個(gè)部分,即公共語(yǔ)言運(yùn)行時(shí)和框架類庫(kù)

答案:對(duì)

3.在同一行上可以書寫多條語(yǔ)句,每條語(yǔ)句間用分號(hào)分隔。

答案:對(duì)

4.在數(shù)據(jù)類型轉(zhuǎn)化時(shí),只能通過類型轉(zhuǎn)換關(guān)鍵字或Convert類實(shí)現(xiàn)。

答案:錯(cuò)

5.在定義數(shù)組時(shí)不允許為數(shù)組中的元素賦值。

答案:錯(cuò)

6.定義枚舉時(shí)至少為其中的一個(gè)枚舉成員賦值。

答案:錯(cuò)

7.接口與類同樣是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,是創(chuàng)建對(duì)象的模版。

答案:對(duì)

8.委托是將方法作為參數(shù)傳遞給另一方法的一種數(shù)據(jù)類型。事件與委托沒有關(guān)系。

答案:錯(cuò)

9.如果要實(shí)現(xiàn)重寫,在基類的方法中必須使用virtual關(guān)鍵字,在派生類的方法中必須使用overrides關(guān)鍵字。

答案:錯(cuò)

10.在C#類中,this代表了當(dāng)前類本身。

答案:錯(cuò)

11.靜態(tài)類和實(shí)例類的區(qū)別在于:靜態(tài)類不需要初始化即可直接使用,實(shí)例類需要進(jìn)行實(shí)例化,生成對(duì)象才可使用。

答案:對(duì)

12.用Interval屬性設(shè)置Timer控件Tick事件發(fā)生的時(shí)間間隔單位為秒。

答案:錯(cuò)

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

答案:對(duì)

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

答:錯(cuò)

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

答案:對(duì)

16.在C#中,任何方法都不能實(shí)現(xiàn)多繼承。

答案:錯(cuò)

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

答案:對(duì)

18.菜單項(xiàng)標(biāo)題中有含有帶下劃線的字符,這是快捷鍵。

答案:錯(cuò)

2.可以阻止某一個(gè)類被其他類繼承。

答:對(duì)

14.一個(gè)窗體中可以有多個(gè)彈出式菜單。

答案:對(duì)

5.在C#Net中,窗體父子關(guān)系通過“屬性”窗口來創(chuàng)建。

答案:對(duì)

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

答案:錯(cuò)

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

答案:對(duì)

9.DataSet對(duì)象中的表可以和數(shù)據(jù)庫(kù)中的表同名,也可以不同名。

答案:對(duì)

10.Command對(duì)象可以執(zhí)行SQL語(yǔ)句。

答案:對(duì)

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

答案:錯(cuò)

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

答案:對(duì)

`

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

1.寫出以下程序的運(yùn)行結(jié)果。

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. 寫出下列函數(shù)的功能。

static int SA(int a,int b)

{

if (a>b)

return 1;

else if (a==b)

return 0;

else

return -1;

}

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

3.寫出下列函數(shù)的功能。

static float FH() {

float y=0,n=0;

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

while (x!=-1) {

n++; y+=x;

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

}

if (n==0)

return y;

else

return y/n;

}

答案:求出從鍵盤上輸入的一批常數(shù)的平均值,以-1作為結(jié)束輸入的標(biāo)志。

4.寫出以下程序運(yùn)行結(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 (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 ();

}

答案:顯示輸出數(shù)組a中大于等于平均值的所有元素值。

6.寫出以下程序運(yùn)行結(jié)果。

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. 寫出以下程序運(yùn)行結(jié)果。

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; ???}

}

答案:采用選擇排序的方法對(duì)數(shù)組a中的n個(gè)整數(shù)按照從小到大的次序重新排列。

9. 寫出以下程序的運(yùn)行結(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(“ ?”+a[i]);

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

} ?}

}

答案:2 ??4 ??6

8 ?10 ?12

14 ?16 ?18

10. 寫出以下程序運(yùn)行結(jié)果。

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

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

1.如何區(qū)別重載方法?

不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序

2.C#用多種修飾符來表達(dá)類的不同性質(zhì)。根據(jù)其保護(hù)級(jí)C#的類有五種不同的限制修飾符,請(qǐng)寫出并指出它們之間的區(qū)別是什么?

答:

public 可以被任意存取

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

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

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

private只可以被本類所存取。

3.接口和抽象類的區(qū)別是什么?

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

4.什么是抽象類?

答案:抽象類是含有一個(gè)或多個(gè)抽象方法的類,抽象類不能實(shí)例化。

基于C#的OOP技術(shù)課程 復(fù)習(xí)題

一、 判斷題(本大題共10個(gè)小題,每小題1分,共10分)

1. 在同一行上可以書寫多條語(yǔ)句,每條語(yǔ)句間用分號(hào)分隔。(t )

2. 在數(shù)據(jù)類型轉(zhuǎn)化時(shí),只能通過類型轉(zhuǎn)換關(guān)鍵字或Convert類實(shí)現(xiàn)。(f )

3. 接口與類同樣是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,是創(chuàng)建對(duì)象的模版。(F )

4. 委托是將方法作為參數(shù)傳遞給另一方法的一種數(shù)據(jù)類型。事件與委托沒有關(guān)系。(F )

5. 可以重寫私有的虛方法。(T )

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

7. 不能指定接口中方法的修飾符。(T )

8. 在定義數(shù)組時(shí)不允許為數(shù)組中的元素賦值。(F )

9. 接口與類同樣是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,是創(chuàng)建對(duì)象的模版。( )

10. 如果要實(shí)現(xiàn)重寫,在基類的方法中必須使用virtual關(guān)鍵字,在派生類的方法中必須使用overrides關(guān)鍵字。(T )

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

12. 在C#中,任何方法都不能實(shí)現(xiàn)多繼承。(F )

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

14. 可以阻止某一個(gè)類被其他類繼承。(T )

15. 使用FileInfo類的Copy()方法可以復(fù)制文件。(T )

二、選擇題(本大題共20個(gè)小題,每小題2分,共40分)

1. 在 C#中,表示一個(gè)字符串的變量應(yīng)使用以下哪條語(yǔ)句定義? B

A.CString str;

B.string str;

C.Dim str as string

D.char * str;

2. C#中 MyClass 為一自定義類,其中有以下方法定義:A

public void Hello(){…}

使用以下語(yǔ)句創(chuàng) 建了該類的對(duì)象,并使變量 obj 引用該對(duì)象,那么,訪問類MyClass的Hello方法正確的是:

MyClass obj = new MyClass();

A.obj.Hello();

B.obj::Hello();

C.MyClass.Hello();

D.MyClass::Hello();

3. 分析下列程序中類 MyClass 的定義 D

class BaseClass

{ public int i; }

class MyClass:BaseClass

{ public new int i;}

則下列語(yǔ)句在 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, 0

B.100, 100

C.0, 100

D.100, 0

4. 在定義類時(shí),如果希望類的某個(gè)方法能夠在派生類中進(jìn)一步進(jìn)行改進(jìn),以處理不同的派生類的需要,則應(yīng)將該方法聲明成_C___?

A.sealed 方法

B.public 方法

C.virtual 方法

D.override 方法

5. 為了將字符串 str=“123,456”轉(zhuǎn)換成整數(shù) 123456,應(yīng)該使用以下哪條語(yǔ)句? ???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#語(yǔ)言中,下列能夠作為變量名的是_C___?

A.if

B.3ab

C.a_3b

D.a-bc

7. 以下程序的輸出結(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#語(yǔ)言表達(dá)式是_D___?

A.a>=10 or a<=0

B.a>=10|a<=0

C.a>=10&&a<=0

D.a>=10||a<=0

9. 以下關(guān)于 for 循環(huán)的說法不正確的是__A__?

A.for 循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況

B.for 循環(huán)是先判定表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句

C.for 循環(huán)中,可以用 break語(yǔ)句跳出循環(huán)體

D.for 循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但要用花括號(hào)括起來?

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=1

B.a=1,b=1

C.a=1,b=0

D.a=2,b=2

11. 關(guān)于 C#語(yǔ)言的方法,下列敘述中正確的是_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(3));

} }

A.2

B.4

C.6

D.8

13. 調(diào)用重載方法時(shí),系統(tǒng)根據(jù)___B_____來選擇具體的方法?

A.方法名

B.參數(shù)的個(gè)數(shù)和類型

C.參數(shù)名及參數(shù)個(gè)數(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 中有一個(gè)為 M 的非虛方法,現(xiàn)在希望在類 B 中也 定義一個(gè)名為 M 的方法,若希望編譯時(shí)不出現(xiàn)警告信息,則在類 B中聲明該方法時(shí),應(yīng)使 用____B____方法?

A.static

B.new

C.override

D.virtual

16. 下列關(guān)于 try…catch…finaly語(yǔ)句的說明中,不正確的是____D_____?

A.catch塊可以有多個(gè)

B.finaly

C.catch塊也是可選的

D.可以只有 try塊

17. 以下標(biāo)識(shí)符中,正確的是_A___?

A._nName

B.typeof

C.6b

D.x5#

18. 下面有關(guān)運(yùn)算符的說法正確的是_D___

A.算術(shù)運(yùn)算符不能對(duì)布爾類型,String*(字符串類型)和 Object*(對(duì)象類型) 進(jìn)行算術(shù)運(yùn)算

B.關(guān)系運(yùn)算中的”= =”和賦值運(yùn)算符中的”=”是相同的

C.sizeof 運(yùn)算符用來查詢某種數(shù)據(jù)類型或表達(dá)式的值在內(nèi)存中所占懂得內(nèi)存空間大小(字 節(jié)數(shù))

D.括號(hào)在運(yùn)算符中的優(yōu)先級(jí)中是最高的,它可以改變表達(dá)式的運(yùn)算順序

19. 下面對(duì)抽象類描述不正確的是__C____?

A.抽象類只能作為基類使用

B.抽象類不能定義對(duì)象

C.抽象類可以實(shí)例對(duì)象

D.可以實(shí)現(xiàn)多態(tài)

20. 下面對(duì)異常說法不正確的是_D__

A.try/catch塊為基本引發(fā)異常的組合

B.在捕獲異常時(shí),可以有多個(gè) catch塊

C.無(wú)論異常是否發(fā)生,finally塊總會(huì)執(zhí)行

D.try塊和 finally 不能連用

1. C#中,新建一字符串變量 str,并將字符串"Tom's Living Room"保存到串中,則應(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");

2. 分析下列程序: A

public class class4

{

private string _sData = "";

public string sData{set{_sData = value;}}

}

在 Main 函數(shù)中,在成功創(chuàng)建該類的對(duì)象 ?obj 后,下列哪些語(yǔ)句是合法的?

A.obj.sData = "It is 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;}

則下列語(yǔ)句在 Console 上的輸出為___D____.

MyClass y = new MyClass();

BaseClass x = y;

x.i = 100;

Console.WriteLine("{0}, {1}",x.i,y.i); //(提示:注意類 MyClass 中的 new 關(guān)鍵字)

A.0, 0

B.100, 100

C.0, 100

D.100, 0

4. 在類的定義中,類的___B_______描述了該類的對(duì)象的行為特征?

A.類名

B.方法

C.所屬的名字空間

D.私有域

5. 關(guān)于 C#程序的書寫,下列不正確的說法是__D__?

A.區(qū)分大小寫

B.一行可以寫多條語(yǔ)句

C.一條語(yǔ)句可寫成多行

D.一個(gè)類中只能有一個(gè) Main()方法,因此多個(gè)類中可以有多個(gè) Main()方法

6. 能正確表示邏輯關(guān)系“a>=10 或 ?a<=0”的 C#語(yǔ)言表達(dá)式是_D___?

A.a>=10 or a<=0

B.a>=10|a<=0

C.a>=10&&a<=0

D.a>=10||a<=0

7. if語(yǔ)句后面的表達(dá)式應(yīng)該是_B___?

A.邏輯表達(dá)式

B.條件表達(dá)式

C.算術(shù)表達(dá)式

D.任意表達(dá)式

8. 以下敘述正確的是__D__?

A.do….while語(yǔ)句構(gòu)成的循環(huán)不能用其他語(yǔ)句構(gòu)成的循環(huán)來代替

B.do….while語(yǔ)句構(gòu)成的循環(huán)只能用 ?break語(yǔ)句退出

C.用 do….while語(yǔ)句構(gòu)成的循環(huán),在 while后的表達(dá)式為 true時(shí)結(jié)束循環(huán)

D.用 do….while語(yǔ)句構(gòu)成的循環(huán),在 ?while后的表達(dá)式應(yīng)為關(guān)系表達(dá)式或邏輯表達(dá)式

9. 以下程序的輸出結(jié)果是: C

Class Example1

{

Public Static void main()

{

Int I;

Int []a=new int[10];

For(i=9;i>=0;i--) a[i]=10-I;

Console.Writeline(“{0},{1}{2}”,a[2],a[5],a[8]);

}}

A.258

B.741

C.852

D.369

10. 關(guān)于 C#語(yǔ)言的方法,下列敘述中正確的是_A___?

A.方法的定義不能嵌套,但方法調(diào)用可以嵌套

B.方法的定義可以嵌套,但方法調(diào)用不能嵌套

C.方法的定義和調(diào)用都不能嵌套

D.方法的定義和調(diào)用都可以嵌套

11. 下列程序的結(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(3));

} }

A.2

B.4

C.6

D.8

12. 調(diào)用重載方法時(shí),系統(tǒng)根據(jù)___B_____來選擇具體的方法?

A.方法名

B.參數(shù)的個(gè)數(shù)和類型

C.參數(shù)名及參數(shù)個(gè)數(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有一個(gè)名為M1 的方法,在程序中有如下一段代碼,假設(shè)該段代碼是可以執(zhí) 行的,則修飾 M1 方法時(shí)一定使用了___B_____修飾符? ClassA obj=new Class A();

ClassA.M1();

A.public

B.static

C.private

D.virtual

15. 為了能夠在程序中捕獲所有的異常,在 ?catch語(yǔ)句的括號(hào)中使用的類名為_____A____?

A.Exception

B.DivideByZeroException

C.FormatException

D.以上三個(gè)均可

16. 關(guān)于異常,下列的說法中不正確的是___D______?

A.用戶可以根據(jù)需要拋出異常

B.在被調(diào)用方法可通過 throw語(yǔ)句把異常傳回給調(diào)用方法

C.用戶可以自己定義異常

D.在 C#中有的異常不能被捕獲

17. 以下類型中,不屬于值類型的是__D__?

A.整數(shù)類型

B.布爾類型

C.字符類型

D.類類型

18. 下列給出的變量名正確的是_A____.

A.int ?NO.1

B.char use

C.float Main

D.char @use

19. 在定義類時(shí),如果希望類的某個(gè)方法能夠在派生類中進(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)該使用以下哪條語(yǔ)句?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);

三、程序閱讀題(本大題共5個(gè)小題,每小題5,共25

1. 寫出以下程序的運(yùn)行結(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() {

float y=0,n=0;

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

while (x!=-1) {

n++; y+=x;

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

}

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+=a[i];

sum/=n;

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

if(a[i]>=sum)

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

Console.writeLine ();

}

4. 寫出以下程序運(yùn)行結(jié)果。

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);

}

}

5. 寫出以下程序的運(yùn)行結(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(“ ?”+a[i]);

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;

else

return -1;

}

7.寫出以下程序運(yùn)行結(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 (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);

}

}

8.寫出以下程序運(yùn)行結(jié)果。

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

} ?}

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

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

}

10. 寫出以下程序運(yùn)行結(jié)果。

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);

} ?}

四、編程題(本大題共2個(gè)小題,第一小題10分,第二小題15分,共25分)

1. 編寫一個(gè)程序,定義三個(gè)float類型的變量,分別從鍵盤上輸入值給它們, ?然后用if ?else選擇語(yǔ)句找出它們中的最小數(shù),最后輸出結(jié)果。

2. 編一個(gè)程序,輸入一個(gè)整數(shù),使用if ?else語(yǔ)句,如果該數(shù)大于0,則加上100,否則加上500,輸出結(jié)果。

3. 編一個(gè)程序,定義一個(gè)類,該類中定義二個(gè)非靜態(tài)方法,一個(gè)方法用來求出這個(gè)三角形的周長(zhǎng),另一個(gè)方法用來求出這個(gè)三角形的面積。已知三角形三條邊a,b,c,計(jì)算其面積可以用Math類中的Sqrt()方法,有表達(dá)式Math.Sqrt(s*(s-a)*(s-b)*(s-c)),可以利用它計(jì)算指定數(shù)的開方,其中s=(a+b+c)/2。在主方法中輸入一個(gè)三角形三條邊a,b,c,要求調(diào)用這二個(gè)非靜態(tài)方法計(jì)算三角形的周長(zhǎng)和面積。注意:在輸入三角形三條邊時(shí),必須檢查它們的數(shù)據(jù)合法性。

4. 編一個(gè)程序,定義類student和它的成員(學(xué)號(hào),姓名,年齡和c_sharp程序設(shè)計(jì)成績(jī)),用類student生成對(duì)象s,分別對(duì)對(duì)象s的成員賦值,然后輸出對(duì)象s。


C#期末考試題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
当雄县| 西昌市| 农安县| 社会| 新闻| 大余县| 莱州市| 普格县| 万荣县| 靖江市| 泉州市| 上虞市| 浪卡子县| 阳泉市| 成武县| 阿拉善左旗| 库车县| 望都县| 石河子市| 肥乡县| 连山| 理塘县| 永兴县| 芜湖市| 乌兰县| 噶尔县| 嘉峪关市| 梓潼县| 布拖县| 凤凰县| 海宁市| 宜丰县| 富顺县| 嘉荫县| 平果县| 潞城市| 南华县| 虹口区| 云霄县| 乐平市| 龙口市|