2014最新c題庫(kù)_第1頁(yè)
2014最新c題庫(kù)_第2頁(yè)
2014最新c題庫(kù)_第3頁(yè)
2014最新c題庫(kù)_第4頁(yè)
2014最新c題庫(kù)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余14頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、12345678123456781234567.NET 框架包括【 公共語(yǔ)言運(yùn)行庫(kù) CLR 】和 .NET 類(lèi)庫(kù)。為便于管理多個(gè)項(xiàng)目,在 VS.NET 集成環(huán)境中引入例如【 解決方案資源管理器 】,用來(lái)對(duì)企業(yè)級(jí)解決方案涉及的多個(gè)項(xiàng)目 進(jìn)行管理。C#是作為【Visual J+】語(yǔ)言的替代品種出現(xiàn)的。要使 lable 控件顯示給定的文字“您好。 ”,應(yīng)在設(shè)計(jì)狀態(tài)下設(shè)置它的【 Text 】屬性值。C#要求程序中的每個(gè)元素都要屬于一個(gè)【類(lèi)】,在C#程序中,程序的執(zhí)行總是從【Main()】方法開(kāi)始的。在C#中,進(jìn)行注釋有兩種方法:使用“ /”和使用“ /*/”符號(hào)對(duì),其中【/】只能進(jìn)行單行注釋。要在控制

2、臺(tái)程序運(yùn)行時(shí)輸入信息,可使用Con sole類(lèi)的【Read()】方法。在C#中,使用【 const】關(guān)鍵字來(lái)聲明符號(hào)常量。在C#中,表達(dá)式 Math.Pow(2,-2)的值是【1/4】。為計(jì)算表達(dá)式ex+y的值,應(yīng)使用的C#語(yǔ)言的表達(dá)式是【Exp(x+y)】。C#語(yǔ)言規(guī)定,變量在使用之前必須先【 先定義(聲明)后引用 】下列程序完成的功能是: 從鍵盤(pán)上輸入一個(gè)直角三角形的斜邊長(zhǎng)度和一個(gè)角的度數(shù),計(jì)算出另兩條直角邊的長(zhǎng)度并輸出。請(qǐng)?zhí)羁?。using System; class Program public static void Main(string args) double a, b, c,

3、d, jd;/輸入斜邊的長(zhǎng)度/輸入角的度數(shù)c= Convert.Tosingle(Console.ReadLine(); jd=Convert.Tosingle(Console.ReadLine(); d=【 jd 】 ;a=c*Math.Sin(d);b=【 c*Math.Cos(d) 】 ;Console.WriteLine( “ a=0,b=1 ” ,a,b);/輸出兩直角邊的值設(shè)x為int型變量,請(qǐng)寫(xiě)出描述“ x是奇數(shù)”的C#語(yǔ)言表達(dá)式【X%2!=0】。 請(qǐng)寫(xiě)出描述“ -10W x< 10”的C#語(yǔ)言表達(dá)式【x>=-10&&x<=10】。 在代碼中明確

4、表示將某種數(shù)據(jù)類(lèi)型轉(zhuǎn)換為另一種數(shù)據(jù)類(lèi)型稱(chēng)為【顯示轉(zhuǎn)換 】。在 switch 語(yǔ)句中,在每個(gè)分支的最后應(yīng)有一條【 break 】語(yǔ)句。在C#中,實(shí)現(xiàn)循環(huán)的語(yǔ)句主要有【 while】、dowhile和【for】語(yǔ)句。在循環(huán)執(zhí)行過(guò)程中,希望當(dāng)某個(gè)條件滿足時(shí)強(qiáng)行退出循環(huán),應(yīng)使用【break 】語(yǔ)句。continue 語(yǔ)句的作用是【 結(jié)束本次循環(huán)的執(zhí)行,開(kāi)始下一個(gè)循環(huán) 】。下列程序完成的功能是求出所有的水仙花數(shù)。 (所謂水仙花數(shù)是指這樣的數(shù):該數(shù)是三位數(shù),其各位數(shù)字的立方和等于該。例如:153=13+53+33,所以 1 53是一個(gè)水仙花數(shù)。 )請(qǐng)?zhí)羁铡sing System;class Progra

5、m public static void Main(string args) int a, b, c, t;for(i=100;i<=【999】 ; i+) t=i;a=t%10;t=t/10;b=t%10;c=t/10;if( 【 i=a*a*a+b*b*b+c*c*c】 )Console.WriteLine( “i=0 ” ,i);WriteLine() 方法和 Write() 方法的區(qū)別是【是否逐行顯示】 。 下列程序的功能是:輸出 100以內(nèi)能被 3整除且個(gè)位數(shù)為 6的所有整數(shù)。請(qǐng)?zhí)羁?。using System;class Program public static void M

6、ain(string args) int i, j;for(i=100 ;【】 ; i+)j=i*10+6;if( 【 j%3=0 】 ) continue; Console.WriteLine( “ 0 ” , j);(老師 加 ) 7下列程序的功能是:輸出 200 以內(nèi)的所有素 數(shù)。請(qǐng)?zhí)羁铡sing System;class Program public bool sushu(int x) k=Convert.ToInt32(Math.Sqrt(x) for(i=2;i<=k;i+)if (x%i=0) return false;【 break 】 ;public static v

7、oid Main(string args) int i, j;for(i=3;i<=200; i=i+2)i f( 【 i%2=1 】)Console.WriteLine( “0” ,i);8下列程序的功能是:產(chǎn)生 100 個(gè)兩位隨機(jī)正整數(shù),求這些數(shù)中所有能被 3 整除的數(shù)的和, 各位數(shù)字和。請(qǐng)?zhí)羁?。static void Main(string args) float sum1=0,sum2=0;int i,num;Random randObj1=new Random(); for(i=1;i<=100;i+) num= 【 randObj1.Next(10,100) 】 ;i

8、f(num%3=0) sum1=sum1+num; 【 continue; 】 sum2=sum2+num/10;Console.WriteLine(" 能被 3 整除的數(shù)的和為: 0",sum1);Console.WriteLine(" 不能被 3 整除的所有數(shù)的各位數(shù)字和為: 0",sum2); Console.Read ();四1數(shù)組定義與賦初值語(yǔ)句如下: int a=1,2,3,4,5;則 a2 的值為 【 3 】。 2下列程序段執(zhí)行后, a4 的值為【 4 】。int a=1,2,3,4,5; a4=aa2;3下列數(shù)組定義語(yǔ)句中: int a=

9、new int3; ,定義的數(shù)組 a 占的字節(jié)數(shù)為【 12 】。 4下列數(shù)組定義語(yǔ)句中,數(shù)組將在內(nèi)存中占用 【 160 】個(gè)字節(jié)。double, d=new4.5;5.要定義一個(gè)3行4列的單精度二維數(shù)組f,使用的定義語(yǔ)句為【float, f= new float 3,4;6 要定義一個(gè)int型的參差數(shù)組a,數(shù)組有兩行,第一行一個(gè)元素,第二行兩個(gè)元素并賦初值填空。int a= 【 new int2】 ;a0= 【 new int1 】 ;a1= 【 new int23,4 】 ;五1. C#中的字符串有兩類(lèi):規(guī)則字符串和逐字字符串,定義逐字字符串時(shí),應(yīng)在其前面加上【2. 下列程序的執(zhí)行結(jié)果是【F

10、alse】。class Program public static void Main(string args)以及所有不能被 3 整除的數(shù)的sum2=sum2+num%10;】。3 和 4,使用的語(yǔ)句如下,請(qǐng) 】號(hào)。 string str1,str2;str1= ” abdde ”s;tr2= ” abcdefg ”;Console.WriteLine( “ 0 ” ,str1=str2); 3 .已知str的值為” abcdefgh,則表達(dá)式str.Substring(1,3)的值為【 bed】。4 .若要從字符串str的第3個(gè)字符開(kāi)始取5個(gè)字符作為一個(gè)子串賦給sstr,可以使用語(yǔ)句【st

11、r.Substring(2,5)】實(shí)現(xiàn)。5.以下程序的執(zhí)行結(jié)果是【 1 2 3 】。class Program public static void Main(string args) string str= ” 1a2b3c ”;int i; for(i=0;i<str.Length;i+) if(stri>='0' && stri<=Conso'le.9W'rit)eLine(stri); 6. 所謂裝箱就是將一個(gè)【 值類(lèi)型 】隱式或顯示地轉(zhuǎn)換成一個(gè) object 類(lèi)型。所謂拆箱就是將一個(gè)【 對(duì)象類(lèi)型 】顯式地轉(zhuǎn)換成一 個(gè)值

12、類(lèi)型。7 .聲明一個(gè)委托類(lèi)型MyFun1,該委托類(lèi)型可以與無(wú)參且返回值為int類(lèi)型的方法相關(guān)聯(lián),則該聲明語(yǔ)句應(yīng)為【 delegate intMyFun1(int n) 】。六1. 【 類(lèi)】是面向?qū)ο缶幊痰幕A(chǔ)模塊,在C#中,所有的內(nèi)容都被封裝在其中。2. 聲明類(lèi)之后,通過(guò) new 創(chuàng)建【對(duì)象】,它是一個(gè)引用類(lèi)型的變量。3 .靜態(tài)字段是用【static】修飾符聲明的字段,無(wú)論存在多少個(gè)類(lèi)實(shí)例,它們都共享一個(gè)字段副本。1. 定義方法時(shí)使用的參數(shù)是【形參 】,調(diào)用方法時(shí)使用的參數(shù)是【 實(shí)參】。2. 數(shù)據(jù)類(lèi)型說(shuō)明符用來(lái)說(shuō)明方法返回值的類(lèi)型,如果沒(méi)有返回值,則類(lèi)型說(shuō)明符應(yīng)為【void 】。3. 下列方法

13、的作用是求兩個(gè)數(shù)的較大數(shù),并把較大數(shù)作為返回值,請(qǐng)?zhí)羁铡loat max_v( 【float b】 ) float max;max=a;if(max<b) max=b; 【 return(max )】 ;4. 在調(diào)用方法時(shí),要使參數(shù)按引用方式進(jìn)行傳遞,需要使用關(guān)鍵字【 ref】。5. 在調(diào)用方法時(shí),要使參數(shù)按輸出方式進(jìn)行傳遞,需要使用關(guān)鍵字【out】,此時(shí)并不要求實(shí)參變量已經(jīng)初始化。6. 在類(lèi)的成員聲明時(shí),若使用了【protacted 】 修飾符,則該成員只能在該類(lèi)或其派生類(lèi)中進(jìn)行訪問(wèn)。7. 類(lèi)的靜態(tài)成員屬于【類(lèi)】 所有,非靜態(tài)成員屬于類(lèi)的實(shí)例所有。&已知某類(lèi)的類(lèi)名為Class

14、A,則該類(lèi)的析構(gòu)函數(shù)名為【classA()】。9. C#方法的參數(shù)有四種,分別是:值參數(shù)(對(duì)應(yīng)值傳遞)、引用參數(shù)(對(duì)應(yīng)地址傳遞)、輸出參數(shù)和參數(shù)數(shù)組,在形參中聲明參數(shù)數(shù)組時(shí)應(yīng)使用【 params 】 關(guān)鍵字。10. 要給屬性對(duì)應(yīng)的數(shù)據(jù)成員賦值,通常要使用set訪問(wèn)器,set訪問(wèn)器始終使用【value】來(lái)設(shè)置屬性的值。11. 在C#中有兩種多態(tài)性:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)【方法重載】實(shí)現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)繼承和 【虛函數(shù)】 來(lái)實(shí)現(xiàn)的。12在聲明類(lèi)時(shí),在類(lèi)名前使用【abstract 】 修飾符,則聲明的類(lèi)只能作為其他類(lèi)的基類(lèi),不能被實(shí)例化。13在聲明類(lèi)時(shí),在類(lèi)名前

15、使用【sealed】 修飾符,則聲明的類(lèi)不能作為其他類(lèi)的基類(lèi),不能再派生新的類(lèi)。17下列程序的運(yùn)行結(jié)果是【3,5】。class program static void Func(int a,out int x,out int y)x=a/10;y=a%10;static void Main()int m=35;int a,b;Func(m,out a,out b); Console.WriteLine("0,1",a,b);18. 下列程序的運(yùn)行結(jié)果是【 AA CC DD DD 】。class A public void F1() Console.Write("A

16、A "); public virtual void F2() Console.Write("BB "); class B : A new public void F1() Console.Write("CC "); public override void F2() Console.Write("DD "); class Test static void Main() B b = new B();A a = b;a.F1(); b.F1(); a.F2(); b.F2(); Console.Read();與 try 塊相關(guān)的

17、【 catch 】塊將一定被執(zhí)行。異常對(duì)象均是從【 Exception 】類(lèi)派生而來(lái)的。try 】 塊封裝了可能引發(fā)異常的代碼。如果方法 Convert.ToInt32 的參數(shù)不是一個(gè)有效的整數(shù)值,可以拋出一個(gè)【 FormatException 】異常。 在整型運(yùn)算中發(fā)生算術(shù)溢出時(shí),為了強(qiáng)制發(fā)生異常,使用運(yùn)算符【 checked 】。 數(shù)組下標(biāo)越界時(shí)產(chǎn)生的異常是【 System.IndexOutOfRangeException 】類(lèi)型的異常。Exception類(lèi)有兩個(gè)重要的屬性:【Message】屬性包含對(duì)異常原因的描述信息。在 catch 語(yǔ)句中列舉異常類(lèi)型時(shí), DivideByZeroEx

18、ception 異常應(yīng)列在 Exception 異常的 【前面】。(填前面或后面) 常用的異常處理關(guān)鍵字包括【 try 】、【 catch 】、【 finally 】、【 throw 】。如果 TextBox 控件中顯示的文本發(fā)生了變化將會(huì)發(fā)生【 TextChanged 】 事件。使用 NumericUpDown 控件時(shí),可通過(guò)它的【Increment 】 屬性來(lái)獲取或設(shè)置單擊向上或向下按鈕時(shí),控件遞增或遞減的值。七123456789八123456789123456789當(dāng)復(fù)選框能夠顯示三種狀態(tài)時(shí),可通過(guò)它的 要使 ListBox 控件能夠顯示多列,應(yīng)把它的【ThreesState 】 屬性來(lái)

19、設(shè)置或返回復(fù)選框的狀態(tài)。 MultiColumn 】 屬性值設(shè)置為 True。在允許 ListBox 控件多選的情況下,可使用它的 【SelectedIndex 】 屬性來(lái)訪問(wèn)選中的列表項(xiàng)。 要使 PictureBox 中顯示的圖片剛好填滿整個(gè)圖片框,應(yīng)把它的【 SizeMode】 屬性值設(shè)置為 StretchImage 。 Timer 控件的 【Interval 】屬性用來(lái)設(shè)置定時(shí)器兩次 Tick 事件發(fā)生的時(shí)間間隔。 滾動(dòng)條、 TrackBar、ProgressBar 等控件的當(dāng)前位置值均可通過(guò)【Value】 屬性來(lái)得到。C#中所有的類(lèi)都繼承【Object】類(lèi),所有的窗體都繼承【Contr

20、ol】類(lèi)。OpenFileDialoge 對(duì)話框執(zhí)行后,用戶選擇文件的文件名保存在它的【 FileName 】 屬性中。 如果希望在 OpenFileDialoge 對(duì)話框控件中選擇多個(gè)文件,應(yīng)把它的【 MultiSelect 】屬性設(shè)置為 True。 要顯示 Visual C# 2008 的標(biāo)準(zhǔn)對(duì)話框,需要調(diào)用標(biāo)準(zhǔn)對(duì)話框的【 ShowDialog 】方法。FontDialog 控件的【 Showeffect 】屬性用來(lái)獲取或設(shè)置一個(gè)值,該值指示對(duì)話框是否包含允許用戶指定刪除線、下劃線和 文本顏色選項(xiàng)的控件。若想讓菜單標(biāo)題顯示為“工具 T ”,應(yīng)把菜單項(xiàng)的Text屬性值設(shè)置為【 工具&

21、F】。 顯示標(biāo)準(zhǔn)對(duì)話框后,如果用戶在對(duì)話框中單擊【 確定 】按鈕,則返回值為【 DialogResult.OK 】。 若要把窗體設(shè)置為 MDI 父窗體,應(yīng)把它的【 IsMdiContainer 】屬性設(shè)置為 True。要制作工具欄,可以使用Visual C# 2008的【ToolStrip】控件。標(biāo)準(zhǔn)窗體應(yīng)用程序有 3種類(lèi)型:【對(duì)話框應(yīng)用程序】、【SDI】和【MDI】。FontDialog 】和【 OpenFileDialog 】。 title 】。10字體對(duì)話框類(lèi)和打開(kāi)文件對(duì)話框類(lèi)分別是【 11控件中用于設(shè)置彈出式對(duì)話框的屬性是【 12菜單可以分為兩種形式: 【主菜單 】和【 彈出式菜單 】

22、。12. 通過(guò)設(shè)置菜單項(xiàng)的【 ShortcutKeys 】屬性,可以為菜單添加快捷鍵。13. 用戶在字體對(duì)話框中選定的字體可以通過(guò)【 Font 】屬性獲得,選中的字體顏色可以通過(guò)【 Color 】屬性獲得。14. 如果已為項(xiàng)目添加了一個(gè)名稱(chēng)為 child 的子窗體,要將此窗體顯示出來(lái),則可以使用下面的代碼段,請(qǐng)將其補(bǔ)充完整。 child c=new child(); 【 c.MdiParent = this;】 c.show();1 Connection 對(duì)象負(fù)責(zé)建立與數(shù)據(jù)庫(kù)的連接,它使用【open 】方法建立連接,使用完畢后,一定要用【 close 】方法關(guān)閉連接。2 Connection

23、對(duì)象的主要屬性是【ConnectionString 】,用于設(shè)置連接字符串。3. 【DataReader】是一個(gè)簡(jiǎn)單數(shù)據(jù)集,用于從數(shù)據(jù)源中檢索只讀、只向前的數(shù)據(jù)流。4 .一個(gè)【DataSet】對(duì)象包含一組 DataTable對(duì)象和 DataRelation對(duì)象,其中每個(gè) DataTable對(duì)象都有 DataColumn、DataRow 組成。5. 在ADO.NET中,從數(shù)據(jù)源向 DataSet中填充數(shù)據(jù)用 DataAdapter對(duì)象的【Fill】方法,從 DataSet中向數(shù)據(jù)源更新數(shù) 據(jù)用 DataAdapter 對(duì)象的【 update 】方法 , 但在調(diào)用該方法之前要先使用【 Comman

24、dBuilder 】對(duì)象設(shè)置更新需要的相 關(guān)命令。6【 DataAdapter 】是 DataSet 對(duì)象和數(shù)據(jù)源之間的一個(gè)橋梁,用于從數(shù)據(jù)源中檢索數(shù)據(jù)、填充DataSet 對(duì)象中的表及將DataSet 對(duì)象做出的更改提交回?cái)?shù)據(jù)源。7可以將數(shù)據(jù)源中的數(shù)據(jù)與控件中的屬性關(guān)聯(lián)起來(lái),這稱(chēng)為【數(shù)據(jù)綁定 】。& OleDb數(shù)據(jù)提供程序類(lèi)位于【System.Data.OleDb】命名空間。9DataSet 可以看作一個(gè)【 內(nèi)存 】中的數(shù)據(jù)庫(kù)。10DataReader 對(duì)象是通過(guò) Command 對(duì)象的【 ExecuteReader 】方法生成的。三、1 請(qǐng)寫(xiě)出下列代碼段的運(yùn)行結(jié)果,并說(shuō)明原因100

25、 。int i=1,n= -1; if(i=0);n=100;Console.Write(n);(答案 )1002請(qǐng)寫(xiě)出下列代碼段的運(yùn)行結(jié)果,并說(shuō)明原因x=0,y=-1。int x=0;int y=-1;if(x!=0)if(x>0) y=1;else y=0; (答案) x=0,y= -1老師加3下列程序的運(yùn)行結(jié)果是【i=11,s=12】。class Program public static void Main(string args) int i=0,s=1;dos/=s+1;i+;while(i<=10);Console.WriteLine( “ i=0,s=1 ”,i,s

26、);4下列程序的運(yùn)行結(jié)果是【m=51,n=50 】。class Program public static void Main(string args) int i=0,m=0,n=0; while(i<=100) if(i%2=0) m+=1;else n=n+1;i+;Console.WriteLine( “ m =0, n=1 ”,m,n);四、1下面程序的運(yùn)行結(jié)果是【1 4 7 10 13 16 19 22 25 28】。using System;class Program public static void Main( stri ng args) const int SIZE

27、=10;in t y=1,2,3,4,5,6,7,8,9,10;int z=new intSIZE;for (int i = 0; i < z.Le ngth; i+) zi = i * 2 + yi;Co nsole.Write("0 ", zi);Co nsole.Read();2 下面程序的運(yùn)行結(jié)果是【11 11 2 113311 4641】。static void Main(string args) const int M = 5;in t yhsj = new in tM;int i, j;for (i = 0; i < M; i+)yhsji = n

28、ew in ti + 1;for (i = 0; i < M; i+) yhsjiO = 1; yhsjii = 1;for (i = 2; i < M; i+)for (j = 1; j < i; j+)yhsj剛=yhsji- 1j - 1 + yhsji - 1j;for (i = 0; i < M; i+) for (j = 0; j <= i; j+)Con sole.Write("0", yhsjij);Con sole.WriteLi ne();Co nsole.Read();3 .下面程序的運(yùn)行結(jié)果是【string str仁星期

29、一星期二星期三,string str2=星期一星期二星期三 】。class Program public static void Main( stri ng args) string str1="星期一 星期二 星期三"string str2="星期一 星期二 星期三"Co nsole.WriteLi ne("str仁0",str1);Co nsole.WriteLi ne("str2=0",str2);(說(shuō)明:下列程序中部分下劃線的代碼有錯(cuò)誤,請(qǐng)將有錯(cuò)誤的部分改正過(guò)來(lái),并說(shuō)明原因)1. class AA() A

30、a=new A();答:“A() ”應(yīng)改為“ public A() ”。因?yàn)樵谀J(rèn)修飾符的情況下,類(lèi)中的成員被默認(rèn)為私有成員,因此在用A創(chuàng)建a時(shí)試圖調(diào)用此構(gòu)造函數(shù),會(huì)因此構(gòu)造函數(shù)為私有成員而拒絕訪問(wèn)。2. class Apublic A(int x) class B:ApublicB(int x) 答:“public B(int x) ”應(yīng)改為“ public B(int x):base(x) ”。因?yàn)榛?lèi) A中沒(méi)有無(wú)參數(shù)的構(gòu)造函數(shù)。3. class A public int x=100;class B:A new public int x;public B(i nt y, int z) x=

31、y; base.x=z; public int getx1() retur n base.x; public int getx2() retur n x; 執(zhí)行下面的語(yǔ)句后:B b=new B(3,6);int n=b.getx1();int m=b.getx2();n和m的值分別為【6】和【3】。4. class A public static int x=100;public int y=200;class Program static void Main( stri ng args) A a=new A();a.x=10;a.y=20;答:“a.x=10;”應(yīng)改為“ A.x=10; ”。

32、因?yàn)閤是類(lèi)A中的靜態(tài)成員。5. class AA()void A() private A(i nt x) private A(i nt y) 答:“void A() ”應(yīng)改為“ A() ”,因?yàn)闃?gòu)造函數(shù)不能帶任何返回類(lèi)型修飾符?!皃rivate A(int x) ”和“ private A(int y) 實(shí)際上是同一個(gè)構(gòu)造函數(shù),應(yīng)刪除其中一個(gè)。6. in terface I int x;public void f(int x):void g(i nt x):int h(i nt x) return 1; class A:I public void f(int x)public int h(i

33、nt x) 答:“int x; ”應(yīng)予以刪除,因?yàn)榻涌谥胁辉试S存在成員變量?!皃ublic void f(int x); ”中的修飾符“ public ”應(yīng)予以刪除,因?yàn)榻涌诘姆椒ㄇ安辉试S存在任何修飾符;“int h(int x) return 1; ”應(yīng)改為“ int h(int x)因?yàn)椴荒茉诮涌诼暶鞯暮瘮?shù)中編寫(xiě)實(shí)現(xiàn)代碼;應(yīng)該在類(lèi)A中添加函數(shù)“ void g(int x); ”的實(shí)現(xiàn)代碼。7. class A class B class C: A, B 答:必須將“ class C:A,B ”中的“ A”或“ B”其中之一去掉,因?yàn)镃#中不允許類(lèi)進(jìn)行多重繼承。8. class A int

34、f() return 1;void f()_void g(int x) void g(i nt y) 答:類(lèi)A中試圖重載函數(shù)f()和函數(shù)g(),但函數(shù)的重載是通過(guò)定義不同的參數(shù)個(gè)數(shù)和類(lèi)型來(lái)實(shí)現(xiàn)的,其返回類(lèi)型不能說(shuō)明函 數(shù)的重載特性,因此應(yīng)刪除其中的一個(gè)f()函數(shù);類(lèi)似的原因,函數(shù)g()中的形參名不同也不能說(shuō)明函數(shù)的重載特性,實(shí)際上這兩個(gè)g()函數(shù)是一樣的,因此也需去掉其中之一。class A protected static void f()protected void g()class B:A new public static void f() new public void g()pub

35、lic void h() base.f();base.g();f();g();答:“base.f();”應(yīng)改為“ A.f(); ”,原因是類(lèi)A中的方法“ f() ”是靜態(tài)方法,它不能被實(shí)例化,只能通過(guò)類(lèi)名來(lái)訪問(wèn)。 七、填空題和改錯(cuò)題1 對(duì)于下列代碼段,執(zhí)行后輸出結(jié)果是【】。int n,m;in t a=new in t5;n=10;m=10;tryfor(i nt i=0; i<=a.Le ngth; i+)ai=i;n=1/( n -m);catch(DivideByZeroExcepti on e1) Console.WriteLine( “產(chǎn)生零除異常!”); catch(I nd

36、exOutOfRa ngeExcepti on e2)Console.WriteLine( “產(chǎn)生數(shù)組訪問(wèn)越界異常!”); 答:輸出“產(chǎn)生數(shù)組訪問(wèn)越界異常!”。2 .下列代碼段中試圖用try-catch-catch結(jié)構(gòu)捕獲和處理異常,其中有的地方是錯(cuò)誤的,請(qǐng)將錯(cuò)誤的地方糾正過(guò)來(lái)。int m;in t a=new in t5;n=10;m=10;trym=int.Parse( “ 2000$”);for(i nt i=0; i<=a.Le ngth; i+)ai=i;catch(Excepti on e1) Console.WriteLine( “產(chǎn)生異常:0” ,e1.Message);

37、 catch(I ndexOutOfRa ngeExcepti on e2) Console.WriteLine( “產(chǎn)生異常:0 ” ,e2.Message);答:需要將兩個(gè) catch塊的位置順序?qū)φ{(diào)過(guò)來(lái)。3 對(duì)于下列代碼段,執(zhí)行后輸出結(jié)果是【】。int n,m;n=10;m=10;tryn=1/( n- m);catch(Excepti on e) Console.WriteLine( “產(chǎn)生零除異常!”);return;fin ally Con sole.WriteLi ne( “在執(zhí)行 fin ally 塊中的語(yǔ)句”);答:輸出結(jié)果如下:產(chǎn)生零除異常!在執(zhí)行fin ally塊中的語(yǔ)句

38、4對(duì)于下面程序:using systemnamespace ThrowtExceptionclass testException public void g() try int n=Convert.ToInt16( “ 200$ ” );catch(Exception e) throw new Exception( “產(chǎn)生異常!” );class Program static void Main(string args) testException te=new testException();try te.g(); catch(Exception ex) Console.WriteLine(

39、ex.InnerException.Message); 程序中有的地方在運(yùn)行時(shí)會(huì)產(chǎn)生沒(méi)有被捕獲的異常,應(yīng)該如何糾正以保證程序的穩(wěn)定性?為什么? 答:類(lèi) testException 中在拋出異常時(shí)并沒(méi)有將捕獲到的異常“嵌入”新創(chuàng)建的異常中,因而導(dǎo)致ex.InnerException 屬性值為 null ,從而導(dǎo)致下列語(yǔ)句產(chǎn)生新的異常。Console.WriteLine(ex.InnerException.Message);一種糾正方法是,將下列語(yǔ)句:throw new Exception( “產(chǎn)生異常!” );改為: throw new Exception( “產(chǎn)生異常!” ,e);5對(duì)于下面定

40、義的類(lèi) A:class A public void g() try int n=Convert.ToInt16( “ 200$” );catch(Exception e)執(zhí)行下列語(yǔ)句時(shí)是否會(huì)出現(xiàn)異常?為什么?A a=new A();a.g();答:不會(huì)出現(xiàn)異常,因?yàn)樵陬?lèi)A的方法g()中雖然捕獲了一個(gè)異常,但捕獲后并沒(méi)有對(duì)異常進(jìn)行處理。6閱讀下列程序,寫(xiě)出程序的運(yùn)行結(jié)果。using systemnamespace ThrowtExceptionclass myException: Exception public myException(string ms):base(ms) public my

41、Exception(string ms, Exception e):base(ms,e) class A public void f() int n,m=0;if(m=0) throw new myException(" 在函數(shù) f() 中拋出零除異常! ")else n=1/m;class B public void g() try A a=new A();a.f();catch(myException e) throw new myException(" 在函數(shù) g() 中拋出的異常! ",e); class Program static void

42、Main(string args)B b=new B();try b.g(); catch(myException e) Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message);答:程序的輸出結(jié)果如下:在函數(shù)g()中拋出的異常!在函數(shù)f()中拋出零除異常!一、1. C#語(yǔ)言的特點(diǎn)是什么?語(yǔ)法簡(jiǎn)潔 、支持跨平臺(tái) 、完全的面向?qū)ο蟪绦蛟O(shè)計(jì)功能 、強(qiáng)大的 Web 應(yīng)用支持 、靈活性和兼容性對(duì) XML 的高度支持 、 快速應(yīng)用開(kāi)發(fā)功能2. 說(shuō)明 Visual Studio.NET、.NET Framework

43、和 C#之間的聯(lián)系。Visual Studio.NET 的核心是.NET Framework,而 C#是.NET 的一個(gè)開(kāi)發(fā)工具3. Visual Studio 2008 包含哪幾種開(kāi)發(fā)語(yǔ)言?Visual Basic 、 Visual C+ 和新的 Visual C# 等4. 控制臺(tái)應(yīng)用程序有哪些輸入輸出方法?Console.ReadLine();Console.WriteLine();5. 簡(jiǎn)述命名空間的作用。命名空間(namespace)是組織類(lèi)的一種機(jī)制。通過(guò)命名空間可以將系統(tǒng)中的大量類(lèi)庫(kù),有序地組織起來(lái),使得類(lèi)更容易被使用和管理。6. 什么是解決方案?什么是項(xiàng)目?解決方案與項(xiàng)目有什么關(guān)

44、系? 解決方案是管理項(xiàng)目的管理器。項(xiàng)目可以視為編譯后的一個(gè)可執(zhí)行單元,可以是應(yīng)用程序、動(dòng)態(tài)鏈接庫(kù)等。它們之間是管理與被管理的關(guān)系。二、1 .什么是字符類(lèi)型和字符串類(lèi)型??jī)烧哂泻螀^(qū)別和聯(lián)系? 字符常量是用單括號(hào)括起來(lái)的單個(gè)字符,字符串常量是用一對(duì)雙引號(hào)引起來(lái)的零個(gè)或者多個(gè)字符序列。字符串和字符常量?jī)?chǔ)存格式不同。字符串 儲(chǔ)存時(shí),系統(tǒng)會(huì)自動(dòng)在字符串的末尾加一個(gè)字符串結(jié)束的表示,即轉(zhuǎn)義字符3. 變量與常量有何區(qū)別?常量中字面常量可以直接應(yīng)用,而符號(hào)常量必須先聲明。變量必須先定義(聲明)后引用,變量修飾符中有static。4. 什么是數(shù)據(jù)類(lèi)型轉(zhuǎn)換?有哪幾種方法?將不同數(shù)據(jù)類(lèi)型的字符進(jìn)行相互轉(zhuǎn)化。 Par

45、se 方法、 ToString() 方法、 Convert 類(lèi)的共享方法6. 除( /)運(yùn)算對(duì)整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)有何不同?對(duì)于“ /”運(yùn)算符,若運(yùn)算對(duì)象中有實(shí)數(shù),則運(yùn)算結(jié)果為雙精度數(shù),若運(yùn)算對(duì)象均為整數(shù),則運(yùn)算結(jié)果為整數(shù)。如:3.0/2的值為 1.5, 3/2 的結(jié)果為整數(shù) 1&說(shuō)明C#值類(lèi)型與引用類(lèi)型數(shù)據(jù)的區(qū)別。引用類(lèi)型可以派生出新的類(lèi)型,而值類(lèi)型不能;引用類(lèi)型可以包含 null 值,值類(lèi)型不能(可空類(lèi)型功能允許將 null 賦給值類(lèi)型);引用類(lèi) 型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象本身。而將一個(gè)值類(lèi)型變量賦給另一個(gè)值類(lèi)型變量時(shí),將復(fù)制包含的值9. 什么是裝箱和拆箱?所謂裝

46、箱就是將一個(gè)值隱式或顯示地轉(zhuǎn)換成一個(gè)object類(lèi)型。所謂拆箱就是將一個(gè) object顯式地轉(zhuǎn)換成一個(gè)值類(lèi)型。六、1 .簡(jiǎn)述類(lèi)和對(duì)象的關(guān)系。將數(shù)據(jù)及處理這些數(shù)據(jù)的操作都封裝到一個(gè)稱(chēng)為類(lèi)的數(shù)據(jù)結(jié)構(gòu)中。 類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,是對(duì)具有相同屬性與行為的一組事物的抽象描述。 利用類(lèi)可以把數(shù)據(jù)和對(duì)數(shù)據(jù)所做的操作組合成一個(gè)整體,實(shí)現(xiàn)對(duì)數(shù)據(jù)的封裝和隱藏。在程序中使用的是類(lèi)的實(shí)例對(duì)象。 對(duì)象是代碼與數(shù)據(jù)的集合,是封裝好的一個(gè)整體,具有一定的功能。2.簡(jiǎn)述面向?qū)ο蟮幕咎卣鳌7庋b性 將描述對(duì)象的數(shù)據(jù)及處理這些數(shù)據(jù)的代碼組裝在一起,形成一個(gè)不可分割的獨(dú)立單位(類(lèi)),并盡可能地隱藏對(duì)象的內(nèi)部細(xì)節(jié),只保留有限的

47、對(duì)外接口使之與外界發(fā)生聯(lián)系。繼承性就是指不需要編寫(xiě)相同的代碼,一個(gè)類(lèi)(子類(lèi))可以從另一個(gè)類(lèi)(基類(lèi))中繼承其全部屬性和方法。多態(tài)性 所謂多態(tài)性就是指同一個(gè)名字可以代表不同、但相似的功能。程序運(yùn)行時(shí),面向?qū)ο蟮恼Z(yǔ)言會(huì)自動(dòng)判斷對(duì)象的派生類(lèi)型,并調(diào)用相應(yīng) 的方法。3 類(lèi)的聲明格式中包含哪些部分?各有什么意義?格式:訪問(wèn)修飾符class類(lèi)名:基類(lèi)類(lèi)名成員定義列表;訪問(wèn)修飾符的作用是對(duì)類(lèi)的數(shù)據(jù)成員進(jìn)行保護(hù),提高數(shù)據(jù)的安全性?!盎?lèi)類(lèi)名”用來(lái)定義派生該類(lèi)的基類(lèi)。隱含為 object“成員定義列表”聲明該類(lèi)包含的成員,如字段、屬性、方法等。4 .什么是實(shí)例方法?什么是靜態(tài)方法?類(lèi)的成員又可以分成靜態(tài)成員和非靜

48、態(tài)成員。在聲明成員時(shí),如果在語(yǔ)句前加上static保留字,則該成員是靜態(tài)成員。如果沒(méi)有static保留字,則成員是非靜態(tài)成員(也稱(chēng)實(shí)例成員)。靜態(tài)成員屬于類(lèi)所有,又稱(chēng)共享成員非靜態(tài)成員屬于類(lèi)的實(shí)例所有,又稱(chēng)實(shí)例成員。訪問(wèn)靜態(tài)成員只能通 過(guò)類(lèi)名來(lái)進(jìn)行。訪問(wèn)非靜態(tài)成員只能通過(guò)類(lèi)的實(shí)例對(duì)象來(lái)進(jìn)行。5 .類(lèi)可以使用哪些修飾符?各代表什么含義?Public、protected、private、internal、new、abstract、sealedpt>k'莊示離E望軀垃個(gè)甜捷厲飆*匚嵐為謁 *冋杯賽錄觀護(hù)逮薇毎蝕哥布詢單*默認(rèn)訪jfl類(lèi)別f配祚審花除g耳中,f荒元所耗rt的吝諭櫛 弋亍的

49、耳壬葩巴畫(huà)"6 簡(jiǎn)述構(gòu)造函數(shù)和析構(gòu)函數(shù)的作用。構(gòu)造函數(shù):用類(lèi)創(chuàng)建對(duì)象自動(dòng)執(zhí)行。構(gòu)造函數(shù)僅被執(zhí)行一次,它通常用于對(duì)成員變量進(jìn)行初始化。析構(gòu)函數(shù):在對(duì)象被撤銷(xiāo)(從內(nèi)存中消除)時(shí)自動(dòng)執(zhí)行。析構(gòu)函數(shù)也僅僅執(zhí)行一次,通常用于對(duì)象被銷(xiāo)毀前的“掃尾"工作。7 什么是類(lèi)的繼承?怎樣定義派生類(lèi)?是面向?qū)ο笳Z(yǔ)言的基本特征,是實(shí)現(xiàn)代碼復(fù)用的手段。繼承是指一個(gè)類(lèi)可以繼承另一個(gè)類(lèi)中的相關(guān)成員,被繼承的類(lèi)稱(chēng)為基類(lèi)、超類(lèi)或父類(lèi),繼承而形成的類(lèi)稱(chēng)為派生類(lèi)或子類(lèi)。訪問(wèn)修飾符class派生類(lèi)類(lèi)名:基類(lèi)類(lèi)名成員聲明列表;&簡(jiǎn)述創(chuàng)建派生類(lèi)時(shí),構(gòu)造函數(shù)的調(diào)用。如果基類(lèi)中定義了帶參數(shù)的一個(gè)或者多個(gè)構(gòu)造函數(shù),則

50、派生類(lèi)中也必須定義至少一個(gè)構(gòu)造函數(shù),且派生類(lèi)中的構(gòu)造函數(shù)都必須通過(guò)base()函數(shù)“調(diào)用"基類(lèi)中的某一個(gè)構(gòu)造函數(shù)。傳遞給基類(lèi)構(gòu)造函數(shù)的“實(shí)參列表"通常包含在派生類(lèi)構(gòu)造函數(shù)的“形參列表”中。9 怎樣定義基類(lèi)虛方法,并在派生類(lèi)中重寫(xiě)基類(lèi)虛方法?基類(lèi)中虛方法的定義:virtual方法名(參數(shù)列表) 語(yǔ)句序列 派生類(lèi)中重寫(xiě)方法的定義:override方法名(參數(shù)列表) 語(yǔ)句序列 派生類(lèi)中重寫(xiě)方法的名稱(chēng)、參數(shù)個(gè)數(shù)、類(lèi)型以及返回值類(lèi)型必須和基類(lèi)中的虛擬方法一致虛擬方法不能聲明為靜態(tài)的。virtual不能和private 一起使用,即虛擬方法不能是私有的。10抽象方法和虛方法有什么異同?

51、虛方法必須有實(shí)現(xiàn)部分,并為派生類(lèi)提供了覆蓋該方法的選項(xiàng);抽象方法沒(méi)有提供實(shí)現(xiàn)部分,抽象方法是一種強(qiáng)制派生類(lèi)覆蓋的方法,否則派生類(lèi)將不能被實(shí)例化。抽象方法只能在抽象類(lèi)中聲明,抽象方法必須在派生類(lèi)中重寫(xiě);虛方法不是 也不必要重寫(xiě)。其實(shí)如果類(lèi)包含抽象方法,那么該類(lèi)也是抽象的,也必須聲明為抽象的。抽象方法必須在派生類(lèi)中重寫(xiě),這一點(diǎn)跟接口類(lèi)似,虛方法不必。抽象方法不能聲明方法實(shí)體,而虛方法可以包含抽象方法的類(lèi)不能實(shí)例化,而包含虛方法的類(lèi)可以實(shí)例化!11 什么是抽象類(lèi)?它有什么特點(diǎn)?它和接口有何異同?在聲明類(lèi)時(shí),在類(lèi)名前使用 abstract修飾符則表示該類(lèi)為抽象類(lèi)。抽象類(lèi)不能被實(shí)例化,只能作為其他類(lèi)的基

52、類(lèi)。抽象類(lèi)可以包含抽象成員(有abstract修飾符的成員)和非抽象成員。必須在派生類(lèi)中實(shí)現(xiàn)抽象類(lèi)的每一個(gè)抽象方法,而且實(shí)現(xiàn)的方法必須和抽象類(lèi)中指定的方法一樣(即參數(shù)個(gè)數(shù)、類(lèi)型、返回值完全相同)。12. 什么是方法重載?重載的方法有何特點(diǎn)?方法重載是指同樣的一個(gè)方法名有多種不同的實(shí)現(xiàn)方法。方法重載的實(shí)施是在一個(gè)類(lèi)中兩次或多次定義同名的方法,但每個(gè)方法的參數(shù)類(lèi)型或個(gè)數(shù)不同,從而便于用戶在調(diào)用方法時(shí)系統(tǒng)能夠自動(dòng)識(shí)別應(yīng) 調(diào)用的方法。僅返回值類(lèi)型不同的同名函數(shù)以及僅參數(shù)名不同的同名函數(shù)都不是方法重載。靜態(tài)成員方法不能重載。在調(diào)用重載的方法時(shí),具體要調(diào)用哪個(gè)方法,由實(shí)際參數(shù)與形式參數(shù)的匹配來(lái)決定,參數(shù)匹

53、配得上的方法即為被調(diào)用的方法。13簡(jiǎn)述抽象類(lèi)和接口有何異同。相同點(diǎn):(1)都可以被繼承(2)都不能被實(shí)例化(3)都可以包含方法聲明(4)派生類(lèi)必須實(shí)現(xiàn)未實(shí)現(xiàn)的方法區(qū)另(1)抽象基類(lèi)可以定義字段、屬性、方法實(shí)現(xiàn)。接口只能定義屬性、索引器、事件、和方法聲明,不能包含字段。(2)抽象類(lèi)是一個(gè)不完整的類(lèi),需要進(jìn)一步細(xì)化,而接口是一個(gè)行為規(guī)范。微軟的自定義接口總是后帶able字段,證明其是表述一類(lèi)“我能做?!保?)接口可以被多重實(shí)現(xiàn),抽象類(lèi)只能被單一繼承(4)抽象類(lèi)更多的是定義在一系列緊密相關(guān)的類(lèi)間,而接口大多數(shù)是關(guān)系疏松但都實(shí)現(xiàn)某一功能的類(lèi)中(5)抽象類(lèi)是從一系列相關(guān)對(duì)象中抽象出來(lái)的概念,因此反映的是

54、事物的內(nèi)部共性;接口是為了滿足外部調(diào)用而定義的一個(gè)功能約定,因此反映的是事物的外部特性 (6)接口基本上不具備繼承的任何具體特點(diǎn) ,它僅僅承諾了能夠調(diào)用的方法(7)接口可以用于支持回調(diào),而繼承并不具備這個(gè)特點(diǎn)(8)抽象類(lèi)實(shí)現(xiàn)的具體方法默認(rèn)為虛的,但實(shí)現(xiàn)接口的類(lèi)中的接口方法卻默認(rèn)為非虛的,當(dāng)然您也可以聲明為虛的(9)如果抽象類(lèi)實(shí)現(xiàn)接口,則可以把接口中方法映射到抽象類(lèi)中作為抽象方法而不必實(shí)現(xiàn),而在抽象類(lèi)的子類(lèi)中實(shí)現(xiàn)接口中方法1 程序錯(cuò)誤有哪幾類(lèi)?程序錯(cuò)誤分為三類(lèi):語(yǔ)法錯(cuò)誤:指不符合C#語(yǔ)法規(guī)則的程序代碼。編譯時(shí)VS能夠自動(dòng)指岀這類(lèi)錯(cuò)誤,并告知錯(cuò)誤的位置和原因。一般通過(guò)簡(jiǎn)單的調(diào)試處理即可解決;邏輯錯(cuò)誤:由于人為因素導(dǎo)致的錯(cuò)誤(如算法設(shè)計(jì)錯(cuò)誤、輸入錯(cuò)誤等),編譯時(shí)不會(huì)岀錯(cuò),但結(jié)果不對(duì)。一般需要重新檢查程序的執(zhí)行流程以及算法是否符合要求來(lái)解決。運(yùn)行錯(cuò)誤:往往是由于在程序執(zhí)行時(shí)遇到了一些非法操作引起的。這類(lèi)錯(cuò)誤在程序編 輯和編譯時(shí)不會(huì)被發(fā)現(xiàn),只有在運(yùn)行時(shí)才會(huì)發(fā)現(xiàn)。程序在運(yùn)行時(shí)發(fā)生錯(cuò)誤,系統(tǒng)通常會(huì)給岀一個(gè)錯(cuò)誤提示信息,然后終止程序的運(yùn)行。2 什么是異常?所有異常類(lèi)型都派生于什么類(lèi)?異常:指反常程序事

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論