版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C.1模擬考試試卷(一)XXXX學(xué)院《程序設(shè)計(jì)基礎(chǔ)(C#)》課程考試卷(A卷)一、單項(xiàng)選擇題(每題2分,共20分)1.short類(lèi)型的變量在內(nèi)存中占據(jù)的位數(shù)是()。A.8 B.16 C.32 D.642.對(duì)于int[4,5]型的數(shù)組a,數(shù)組元素a[2,3]存在于數(shù)組的第()個(gè)位置上。A.11 B.12 C.14 D.153.假設(shè)int類(lèi)型的變量x、y、z的值分別為2、3、6,那么執(zhí)行語(yǔ)句“z=y=x=z”結(jié)束后它們的值分別為()。A.3、1、-4 B.3、1、-1 C.-4、7、-1 D.4、7、-44.下列說(shuō)法中不正確的是()。A.構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能有返回值B.構(gòu)造函數(shù)可以是靜態(tài)的C.一個(gè)類(lèi)只能有一個(gè)構(gòu)造函數(shù)D.一個(gè)類(lèi)只能有一個(gè)析構(gòu)函數(shù)5.下列不屬于object類(lèi)型的成員方法是()。A.ToString() B、Dispose() C.Finalize() D.GetType()6.假設(shè)double類(lèi)型的變量x表示一個(gè)角度,那么將其轉(zhuǎn)化為弧度的表達(dá)式為()。A.x*180/Math.Pl B.x*360/Math.PlC.x*Math.Pl/180 D.x*Math.Pl/3607.令objectx=100,那么下列表達(dá)式會(huì)引發(fā)異常的是()。A.inti=x; B.strings=(string)x;C.boolb=xisstring; D.objecto=xasstring;8.下列能夠被創(chuàng)建對(duì)象的是()。A.接口 B.抽象類(lèi)C.委托 D.只有私有構(gòu)造函數(shù)的類(lèi)9.關(guān)于接口和抽象類(lèi),下列說(shuō)法中正確的是()。A.接口不能創(chuàng)建對(duì)象,而抽象類(lèi)可以B.接口不能包含字段,而抽象類(lèi)可以C.抽象類(lèi)中的方法必須是抽象方法D.接口中的方法可以有實(shí)現(xiàn)代碼10.關(guān)于finally代碼段,下列說(shuō)法正確的是()。A.僅在程序正常時(shí)執(zhí)行B.僅在程序發(fā)生異常時(shí)執(zhí)行C.在程序發(fā)生異常時(shí)會(huì)被跳過(guò)D.無(wú)論程序是否發(fā)生異常都會(huì)被執(zhí)行二、填空題(每空2分,共20分)1.一般將類(lèi)的構(gòu)造方法聲明為_(kāi)_________訪問(wèn)權(quán)限。如果聲明為private,則不能創(chuàng)建該類(lèi)的對(duì)象。2.在方法定義中,virtual的含義是__________。3.C#數(shù)組元素的下標(biāo)從__________開(kāi)始。4.元素類(lèi)型為double的2行5列的二維數(shù)組共占用__________字節(jié)的存儲(chǔ)空間。5.對(duì)于方法,參數(shù)傳遞分為值傳遞和__________。6.傳入某個(gè)屬性的SET方法的隱含參數(shù)的名稱(chēng)是__________。7.yield語(yǔ)句常常與__________語(yǔ)句組合使用8.委托聲明的關(guān)鍵字是__________。9.C#的類(lèi)不支持多重繼承,但可以用__________來(lái)實(shí)現(xiàn)。10.C#中所有的類(lèi)型實(shí)質(zhì)上都是從__________類(lèi)派生而來(lái)的。三、判斷題(正確打√,錯(cuò)誤打×;每題2分,共20分)1.不能指定接口中方法的修飾符。 ()2.DotNet包含兩部分,即公共語(yǔ)言運(yùn)行時(shí)和框架類(lèi)庫(kù)。 ()3.在同一行中可以書(shū)寫(xiě)多條語(yǔ)句,每條語(yǔ)句間用分號(hào)分隔。 ()4.在數(shù)據(jù)類(lèi)型轉(zhuǎn)化時(shí),只能通過(guò)類(lèi)型轉(zhuǎn)換關(guān)鍵字或Convert類(lèi)實(shí)現(xiàn)。 ()5.在定義數(shù)組時(shí)不允許為數(shù)組中的元素賦值。 ()6.在定義枚舉時(shí)至少為其中的一個(gè)枚舉成員賦值。 ()7.接口與類(lèi)同樣是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,是創(chuàng)建對(duì)象的模板。 ()8.委托是將方法作為參數(shù)傳遞給另一個(gè)方法的一種數(shù)據(jù)類(lèi)型,事件與委托沒(méi)有關(guān)系。 ()9.如果要實(shí)現(xiàn)重寫(xiě),則必須在基類(lèi)的方法中使用virtual關(guān)鍵字,在派生類(lèi)的方法中使用overrides關(guān)鍵字。 ()10.在C#類(lèi)中,this代表了當(dāng)前類(lèi)本身。 ()四、簡(jiǎn)答題(每題8分,共40分)1.怎樣使一個(gè)類(lèi)不能被外部創(chuàng)建對(duì)象?2.請(qǐng)簡(jiǎn)述C#對(duì)接口方法的兩種實(shí)現(xiàn)方式。3.什么叫作匿名方法,其作用是什么?4.簡(jiǎn)述C#13.0主要的新功能和新特點(diǎn)。5.在C#中,事件和委托的關(guān)系是什么?類(lèi)的事件成員和一般的委托型成員有什么不同?C.2模擬考試試卷(二)XXXX學(xué)院《程序設(shè)計(jì)基礎(chǔ)(C#)》課程考試卷(B卷)一、單項(xiàng)選擇題(每題2分,共20分)1.下列類(lèi)型中,不支持IEnumerable<T>接口的是()。A.T[] B.List<T>C.Queue<T> D.Dictionary<K,T>2.structStudent{}是聲明()的語(yǔ)句。A.類(lèi) B.結(jié)構(gòu) C.接口 D.以上都不是3.單擊一個(gè)CheckBox控件,下列事件的引發(fā)順序?yàn)椋ǎ?。A.Click、MouseDown、MouseUp、CheckedChangedB.MouseDown、Click、MouseUp、CheckedChangedC.MouseDown、Click、CheckedChanged、MouseUpD.MouseDown、CheckedChanged、Click、MouseUp4.CLR是指()。A.公共類(lèi)型系統(tǒng) B.公共語(yǔ)言規(guī)范C.公共語(yǔ)言運(yùn)行 D.動(dòng)態(tài)語(yǔ)言運(yùn)行5.關(guān)于C#的基本語(yǔ)法,下列說(shuō)法正確的是()。A.C#使用using關(guān)鍵字來(lái)引用.NET預(yù)定義的名字空間B.在用C#編寫(xiě)的程序中,Main()函數(shù)是唯一允許的全局函數(shù)C.C#中使用的名稱(chēng)嚴(yán)格區(qū)分大小寫(xiě)D.C#中一條語(yǔ)句必須寫(xiě)在一行內(nèi)6.C#中每個(gè)int類(lèi)型的變量占用()個(gè)字節(jié)的內(nèi)存。A.1btye(0~255)sbtye(-128~127)bool(ture,false)B.2short(-32768~32767)unshort(0~32767)charC.4intuintfloatD.8longulongdouble12decimal精確的十進(jìn)制值7.在C#中,表示一個(gè)字符串的變量應(yīng)使用()語(yǔ)句定義。A.CStringstr B.stringstrC.Dimstrasstring D.char*str8.要在Web應(yīng)用程序中訪問(wèn)URL地址中的參數(shù)字符串,()可訪問(wèn)對(duì)象的QueryString屬性。A.HttpApplication B.HttpRequestC.HttpReqsponse D.HttpBrowserCapability9.以下可在Client端緩存網(wǎng)頁(yè)數(shù)據(jù)的是()。A.ApplicationState B.SessionStateC.Cache D.Cookie10.在WebService中定義的方法,能夠在網(wǎng)絡(luò)上訪問(wèn)的是()。A.非私有方法 B.公有方法C.?dāng)U展方法 D.使用[WebMethod]特性修飾的方法二、填空題(每空2分,共20分)1.當(dāng)在程序中執(zhí)行到__________語(yǔ)句時(shí),將結(jié)束所在循環(huán)語(yǔ)句中循環(huán)體的一次執(zhí)行。2.枚舉是從System.__________類(lèi)繼承而來(lái)的類(lèi)型。3.類(lèi)中聲明的屬性往往具有g(shù)et和__________兩個(gè)訪問(wèn)器。4.C#提供一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù),當(dāng)實(shí)現(xiàn)了另外一個(gè)具有一個(gè)參數(shù)的構(gòu)造函數(shù)時(shí),如果想繼續(xù)保留這個(gè)無(wú)參數(shù)的構(gòu)造函數(shù),那么應(yīng)該寫(xiě)__________構(gòu)造函數(shù)。5.接口(interface)是指__________(publicabstractmethod)的類(lèi)。這些方法必須在子類(lèi)中被實(shí)現(xiàn)。6.在switch語(yǔ)句中,每個(gè)語(yǔ)句標(biāo)號(hào)所包含的case關(guān)鍵字后面的表達(dá)式必須是__________。7.在while循環(huán)語(yǔ)句中,一定要有修改循環(huán)條件的語(yǔ)句,否則可能造成__________。8.傳入某個(gè)屬性的SET方法的隱含參數(shù)的名稱(chēng)是__________。9.C#的類(lèi)不支持多重繼承,但可以用__________來(lái)實(shí)現(xiàn)。10.C#數(shù)組類(lèi)型是一種引用類(lèi)型,所有的數(shù)組都是從System命名空間的__________類(lèi)繼承而來(lái)的引用對(duì)象。三、判斷題(正確打√,錯(cuò)誤打×;每題2分,共20分)1.靜態(tài)類(lèi)和實(shí)例類(lèi)的區(qū)別在于,靜態(tài)類(lèi)不需要初始化即可直接使用,而實(shí)例類(lèi)需要實(shí)例化且生成對(duì)象后才可以使用。 ()2.用Interval屬性設(shè)置Timer控件的Tick事件發(fā)生的時(shí)間間隔單位為秒。 ()3.設(shè)置圖形框控件的SizeMode屬性值為StretchImage后,圖片可以按圖形框的大小比例縮放顯示。 ()4.C#可以重寫(xiě)私有的虛方法。 ()5.在C#中,所有類(lèi)都是直接或間接繼承System.Object類(lèi)而來(lái)的。 ()6.在C#中,任何方法都不能實(shí)現(xiàn)多繼承。 ()7.在C#中,子類(lèi)不能繼承父類(lèi)中用private修飾的成員變量和成員方法。 ()8.菜單項(xiàng)標(biāo)題中含有帶下畫(huà)線的字符是快捷鍵。 ()9.在C#中,可以阻止某一個(gè)類(lèi)被其他類(lèi)繼承。 ()10.一個(gè)窗體中可以有多個(gè)彈出式菜單。 ()四、簡(jiǎn)答題(每題8分,共40分)1.請(qǐng)簡(jiǎn)述抽象方法和虛擬方法的相同點(diǎn)與不同點(diǎn)?2.采用new修飾符和override修飾符修飾的方法,二者有什么區(qū)別?3.編寫(xiě)程序,輸入一個(gè)字符串,求輸入的字符串中包含字符串str的個(gè)數(shù)。4.簡(jiǎn)述使用SqlConnection對(duì)象、MySqlConnection對(duì)象、OdbcConnection對(duì)象的區(qū)別和聯(lián)系。5.簡(jiǎn)述“代碼編輯”窗口的作用,以及其“對(duì)象”列表框和“事件、方法”列表框的位置。C.1模擬考試試卷(一)答案一、單項(xiàng)選擇題(每題2分,共20分)B解析:short類(lèi)型是16位有符號(hào)整數(shù),在內(nèi)存中占據(jù)16位。A解析:二維數(shù)組int[4,5]的元素按“行優(yōu)先”存儲(chǔ),第1行(索引0)有5個(gè)元素,第2行(索引1)有5個(gè)元素,第3行(索引2)的前4個(gè)元素(索引0-3)為第11個(gè)元素(5+5+3=13?修正:a[2,3]的位置計(jì)算為“行索引×列數(shù)+列索引+1”,即2×5+3+1=14?原解析有誤,正確計(jì)算:數(shù)組下標(biāo)從0開(kāi)始,a[0,0]是第1個(gè)元素,a[2,3]的位置為2×5+3+1=14?但選項(xiàng)中無(wú)14?重新核對(duì):題目中數(shù)組聲明應(yīng)為int[4,5](4行5列),a[2,3]的存儲(chǔ)順序?yàn)椤暗?行(5個(gè))+第1行(5個(gè))+第2行前4個(gè)(索引0-3)”,共5+5+4=14,但選項(xiàng)C為14,原答案可能有誤,正確應(yīng)為C。(注:若題目中數(shù)組為int[5,4],則結(jié)果為2×4+3+1=12,選B,需以題目數(shù)組維度為準(zhǔn),此處按題目“int[4,5]”(4行5列)修正答案為C)無(wú)正確選項(xiàng)解析:賦值語(yǔ)句z=y=x=z是右向左結(jié)合,初始x=2、y=3、z=6,執(zhí)行后x=6、y=6、z=6,選項(xiàng)均不匹配,可能題目參數(shù)有誤(如原變量值應(yīng)為其他數(shù)值)。C解析:一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù)(重載),C錯(cuò)誤;A(構(gòu)造/析構(gòu)無(wú)返回值)、B(構(gòu)造函數(shù)可靜態(tài))、D(一個(gè)類(lèi)一個(gè)析構(gòu)函數(shù))均正確。B解析:object類(lèi)的成員方法包括ToString()、Finalize()、GetType(),Dispose()是IDisposable接口的方法,不屬于object類(lèi)。C解析:角度轉(zhuǎn)弧度公式為“弧度=角度×π/180”,Math.PI表示π,故表達(dá)式為x*Math.PI/180。B解析:objectx=100是裝箱為int類(lèi)型,(string)x是強(qiáng)制類(lèi)型轉(zhuǎn)換,int無(wú)法直接轉(zhuǎn)為string,會(huì)引發(fā)InvalidCastException;A(隱式轉(zhuǎn)換,需inti=(int)x,但選項(xiàng)A寫(xiě)法錯(cuò)誤,原選項(xiàng)A應(yīng)為inti=(int)x,若按題目選項(xiàng),B必引發(fā)異常)。無(wú)正確選項(xiàng)解析:A(接口不能創(chuàng)建對(duì)象)、B(抽象類(lèi)不能創(chuàng)建對(duì)象)、C(委托需實(shí)例化但不是“對(duì)象”,是方法引用)、D(只有私有構(gòu)造函數(shù)的類(lèi)不能創(chuàng)建對(duì)象),可能題目選項(xiàng)有誤,若D為“有公有構(gòu)造函數(shù)的類(lèi)”則正確,此處按題目選項(xiàng),無(wú)正確答案。B解析:A(抽象類(lèi)也不能創(chuàng)建對(duì)象)、B(接口無(wú)字段,抽象類(lèi)可有字段)、C(抽象類(lèi)可包含非抽象方法)、D(接口方法無(wú)實(shí)現(xiàn)代碼),故B正確。D解析:finally代碼段無(wú)論程序正?;虍惓6紩?huì)執(zhí)行,用于釋放資源。二、填空題(每空2分,共20分)public解析:構(gòu)造方法通常聲明為public,允許外部創(chuàng)建對(duì)象;若為private,則只能在類(lèi)內(nèi)部創(chuàng)建對(duì)象。虛擬方法解析:virtual修飾的方法為虛方法,允許派生類(lèi)用override重寫(xiě)。0解析:C#數(shù)組下標(biāo)從0開(kāi)始,如int[5]的下標(biāo)為0-4。80解析:double類(lèi)型占8字節(jié),2行5列共10個(gè)元素,總字節(jié)數(shù)=10×8=80。引用傳遞解析:參數(shù)傳遞分為值傳遞(ref無(wú),值拷貝)和引用傳遞(ref/out,傳遞地址)。value解析:屬性的set訪問(wèn)器中,隱含參數(shù)value代表外部傳入的值。foreach解析:yield語(yǔ)句用于迭代塊,常與foreach配合,實(shí)現(xiàn)“按需生成”集合元素。delegate解析:委托聲明的關(guān)鍵字為delegate,如delegatevoidMyDelegate();。接口解析:C#類(lèi)僅支持單繼承,可通過(guò)實(shí)現(xiàn)多個(gè)接口間接實(shí)現(xiàn)“多重繼承”的效果。System.Object解析:C#中所有類(lèi)型(值類(lèi)型、引用類(lèi)型)均直接或間接繼承自System.Object類(lèi)。三、判斷題(每題2分,共20分)√解析:接口方法默認(rèn)publicabstract,不能指定修飾符(如private/protected)?!探馕觯?NET框架核心包含“公共語(yǔ)言運(yùn)行時(shí)(CLR)”和“框架類(lèi)庫(kù)(FCL)”?!探馕觯篊#允許同一行寫(xiě)多條語(yǔ)句,用分號(hào)分隔,如inta=1;intb=2;?!两馕觯簲?shù)據(jù)類(lèi)型轉(zhuǎn)換還可通過(guò)“隱式轉(zhuǎn)換”(如int→double)、as運(yùn)算符等實(shí)現(xiàn),并非只能通過(guò)關(guān)鍵字或Convert類(lèi)?!两馕觯憾x數(shù)組時(shí)可通過(guò)靜態(tài)初始化賦值,如int[]arr={1,2,3};?!两馕觯憾x枚舉時(shí)可不為任何成員賦值,默認(rèn)第1個(gè)成員為0,后續(xù)依次加1。×解析:接口不能創(chuàng)建對(duì)象,不是“創(chuàng)建對(duì)象的模板”;類(lèi)是創(chuàng)建對(duì)象的模板?!两馕觯菏录腔谖械奶厥獬蓡T,事件的本質(zhì)是封裝的委托,二者緊密相關(guān)?!探馕觯褐貙?xiě)需基類(lèi)方法用virtual,派生類(lèi)方法用override,否則為隱藏(new)。×解析:this代表當(dāng)前類(lèi)的“實(shí)例對(duì)象”,而非“類(lèi)本身”;“類(lèi)本身”用typeof(類(lèi)名)表示。四、簡(jiǎn)答題(每題8分,共40分)怎樣使一個(gè)類(lèi)不能被外部創(chuàng)建對(duì)象?答:有兩種核心方法:(1)將類(lèi)的所有構(gòu)造函數(shù)聲明為private:外部無(wú)法調(diào)用構(gòu)造函數(shù)創(chuàng)建對(duì)象,僅能在類(lèi)內(nèi)部創(chuàng)建(如單例模式);示例:csharpclassSingleton{privateSingleton(){}//私有構(gòu)造函數(shù)publicstaticSingletonInstance=newSingleton();}(2)將類(lèi)聲明為abstract(抽象類(lèi)):抽象類(lèi)不能直接創(chuàng)建對(duì)象,需通過(guò)派生類(lèi)實(shí)例化;示例:csharpabstractclassBaseClass{}classDerivedClass:BaseClass{}//BaseClassobj=newBaseClass();//錯(cuò)誤,抽象類(lèi)不能創(chuàng)建對(duì)象DerivedClassobj=newDerivedClass();//正確請(qǐng)簡(jiǎn)述C#對(duì)接口方法的兩種實(shí)現(xiàn)方式。答:C#中接口方法的實(shí)現(xiàn)分為“顯式實(shí)現(xiàn)”和“隱式實(shí)現(xiàn)”:(1)隱式實(shí)現(xiàn):實(shí)現(xiàn)類(lèi)用public修飾接口方法,直接匹配接口方法簽名,外部可通過(guò)類(lèi)對(duì)象或接口對(duì)象調(diào)用;示例:csharpinterfaceITest{voidShow();}classTest:ITest{publicvoidShow()//隱式實(shí)現(xiàn){Console.WriteLine("隱式實(shí)現(xiàn)接口方法");}}//調(diào)用:Testt=newTest();t.Show();ITestit=t;it.Show();(2)顯式實(shí)現(xiàn):實(shí)現(xiàn)類(lèi)用“接口名。方法名”修飾方法,無(wú)訪問(wèn)修飾符,僅能通過(guò)接口對(duì)象調(diào)用,避免多接口同名方法沖突;示例:csharpinterfaceITest{voidShow();}classTest:ITest{voidITest.Show()//顯式實(shí)現(xiàn){Console.WriteLine("顯式實(shí)現(xiàn)接口方法");}}//調(diào)用:ITestit=newTest();it.Show();//正確;Testt=newTest();t.Show();//錯(cuò)誤什么叫作匿名方法,其作用是什么?答:(1)匿名方法:沒(méi)有顯式名稱(chēng)的方法,通過(guò)delegate關(guān)鍵字聲明,直接作為參數(shù)傳遞給委托,常用于簡(jiǎn)化代碼(如事件處理、LINQ查詢(xún));(2)作用:①減少代碼冗余:無(wú)需單獨(dú)定義命名方法,直接在委托賦值處編寫(xiě)邏輯;②增強(qiáng)代碼可讀性:方法邏輯與調(diào)用位置緊密結(jié)合,便于理解;③支持捕獲外部變量:可訪問(wèn)定義匿名方法時(shí)所在作用域的變量(閉包);示例:csharpdelegatevoidMyDelegate(stringmsg);staticvoidMain(){//匿名方法作為委托參數(shù)MyDelegatedel=delegate(stringmsg){Console.WriteLine("匿名方法:"+msg);};del("HelloC#");}簡(jiǎn)述C#13.0主要的新功能和新特點(diǎn)。答:C#13.0(隨.NET9發(fā)布)的核心新功能包括:(1)擴(kuò)展類(lèi)型(ExtensionTypes):允許擴(kuò)展現(xiàn)有類(lèi)型的實(shí)例成員、靜態(tài)成員,打破傳統(tǒng)擴(kuò)展方法僅能擴(kuò)展方法的限制,提升代碼復(fù)用性;(2)params關(guān)鍵字?jǐn)U展:params支持Span<T>、ReadOnlySpan<T>等可枚舉類(lèi)型,不再局限于數(shù)組,使方法接收可變參數(shù)更靈活;(3)轉(zhuǎn)義序列“\e”:在Unicode字符串中代表ESCAPE字符(等同于\u001b),避免與十六進(jìn)制轉(zhuǎn)義序列混淆;(4)部分屬性(PartialProperties):允許屬性的定義和實(shí)現(xiàn)分布在不同文件,便于與源代碼生成器配合,提高代碼組織性;(5)線程同步優(yōu)化:引入System.Threading.Lock類(lèi)型,提供更高效的線程同步API,替代傳統(tǒng)lock語(yǔ)句的底層實(shí)現(xiàn);(6)性能提升:異常處理速度提升2-4倍,環(huán)路性能優(yōu)化(感應(yīng)變量加寬),動(dòng)態(tài)PGO(Profile-GuidedOptimization)降低類(lèi)型檢查成本。在C#中,事件和委托的關(guān)系是什么?類(lèi)的事件成員和一般的委托型成員有什么不同?答:(1)事件與委托的關(guān)系:事件是基于委托的特殊成員,委托是事件的“底層支撐”。事件本質(zhì)上是封裝的委托,它限制了外部對(duì)委托的直接操作(如僅允許+=/-=添加/移除方法,禁止直接賦值=),確保委托調(diào)用列表的安全性;事件的觸發(fā)本質(zhì)是調(diào)用委托的調(diào)用列表。(2)事件成員與一般委托型成員的不同:對(duì)比維度事件成員(event)一般委托型成員(delegate變量)訪問(wèn)權(quán)限外部?jī)H允許+=/-=(添加/移除方法)外部可直接賦值=、調(diào)用、清空列表安全性高(避免外部誤改委托列表)低(外部可隨意修改委托列表)設(shè)計(jì)意圖用于“發(fā)布-訂閱”模式(如事件通知)用于傳遞方法引用(如回調(diào)函數(shù))調(diào)用限制僅能在類(lèi)內(nèi)部觸發(fā)(調(diào)用)外部可直接調(diào)用(如del())示例:csharp//一般委托成員delegatevoidMyDelegate();classTest{publicMyDelegateDel;//一般委托成員,外部可Del=null;publiceventMyDelegateMyEvent;//事件成員,外部?jī)H能MyEvent+=...publicvoidTriggerEvent(){MyEvent?.Invoke();//僅類(lèi)內(nèi)部可觸發(fā)事件}}C.2模擬考試試卷(二)答案一、單項(xiàng)選擇題(每題2分,共20分)D解析:Dictionary<K,T>實(shí)現(xiàn)IEnumerable<KeyValuePair<K,T>>,但不直接支持IEnumerable<T>(需通過(guò)Values/Keys屬性間接支持);A(數(shù)組)、B(List<T>)、C(Queue<T>)均直接實(shí)現(xiàn)IEnumerable<T>。B解析:struct關(guān)鍵字用于聲明結(jié)構(gòu)類(lèi)型,class聲明類(lèi),interface聲明接口,故structStudent{}是聲明結(jié)構(gòu)。B解析:?jiǎn)螕鬋heckBox的事件順序?yàn)椋篗ouseDown(鼠標(biāo)按下)→Click(點(diǎn)擊)→MouseUp(鼠標(biāo)抬起)→CheckedChanged(選中狀態(tài)變化)。C解析:CLR是“CommonLanguageRuntime”的縮寫(xiě),即“公共語(yǔ)言運(yùn)行時(shí)”,是.NET的核心執(zhí)行環(huán)境。C解析:A(using導(dǎo)入命名空間,非“引用”)、B(C#無(wú)全局函數(shù),Main是類(lèi)的靜態(tài)方法)、C(C#嚴(yán)格區(qū)分大小寫(xiě),如int與Int不同)、D(一條語(yǔ)句可跨多行,用空格/換行分隔),故C正確。C解析:int類(lèi)型是32位整數(shù),在C#中占4字節(jié),對(duì)應(yīng)選項(xiàng)C。B解析:C#中字符串類(lèi)型為string,聲明語(yǔ)句為stringstr;A(C++的CString)、C(VB的語(yǔ)法)、D(C++的指針語(yǔ)法)均錯(cuò)誤。B解析:HttpRequest對(duì)象的QueryString屬性用于獲取URL中的查詢(xún)字符串(如?id=1),HttpApplication是應(yīng)用程序?qū)ο螅琀ttpResponse是響應(yīng)對(duì)象,HttpBrowserCapability是瀏覽器信息對(duì)象,故B正確。D解析:A(ApplicationState是應(yīng)用程序級(jí)緩存,服務(wù)器端)、B(SessionState是會(huì)話級(jí)緩存,服務(wù)器端)、C(Cache是服務(wù)器端緩存)、D(Cookie是客戶端緩存,存儲(chǔ)在瀏覽器),故D正確。D解析:WebService中,僅用[WebMethod]特性修飾的公有方法可被網(wǎng)絡(luò)訪問(wèn),非私有方法、公有方法、擴(kuò)展方法若無(wú)此特性均無(wú)法訪問(wèn),故D正確。二、填空題(每空2分,共20分)continue解析:continue語(yǔ)句結(jié)束當(dāng)前循環(huán)的一次執(zhí)行,直接進(jìn)入下一次循環(huán)條件判斷;break是跳出整個(gè)循環(huán)。Enum解析:所有枚舉類(lèi)型均繼承自System.Enum類(lèi),System.Enum又繼承自System.ValueType。set解析:類(lèi)的屬性通常包含get(讀取)和set(寫(xiě)入)訪問(wèn)器,只讀屬性?xún)H含get,只寫(xiě)屬性?xún)H含set。顯式定義無(wú)參解析:C#默認(rèn)提供無(wú)參構(gòu)造函數(shù),若顯式定義了帶參構(gòu)造函數(shù),默認(rèn)無(wú)參構(gòu)造函數(shù)會(huì)消失,需手動(dòng)顯式定義無(wú)參構(gòu)造函數(shù)(如publicClassName(){})。僅包含抽象方法解析:接口是僅包含抽象方法(無(wú)實(shí)現(xiàn))的“契約”,子類(lèi)必須實(shí)現(xiàn)所有接口方法。常量表達(dá)式解析:switch語(yǔ)句中,case后的表達(dá)式必須是常量(如case1:、case"abc":),不能是變量或表達(dá)式(如casei:)。死循環(huán)解析:while循環(huán)若缺少修改循環(huán)條件的語(yǔ)句(如i++),則條件永遠(yuǎn)為true,導(dǎo)致循環(huán)無(wú)限執(zhí)行(死循環(huán))。value解析:屬性set訪問(wèn)器的隱含參數(shù)名為value,代表外部傳入的賦值,如publicintAge{set{_age=value;}}。接口解析:C#類(lèi)不支持多重繼承,可通過(guò)實(shí)現(xiàn)多個(gè)接口(如classA:I1,I2)實(shí)現(xiàn)類(lèi)似多重繼承的功能。Array解析:所有C#數(shù)組均繼承自System.Array類(lèi),System.Array提供數(shù)組操作的基礎(chǔ)方法(如Sort()、Length)。三、判斷題(每題2分,共20分)√解析:靜態(tài)類(lèi)用static修飾,無(wú)需實(shí)例化即可通過(guò)類(lèi)名調(diào)用(如Math.Abs());實(shí)例類(lèi)需new實(shí)例化后才能調(diào)用成員?!两馕觯篢imer控件的Interval屬性單位為“毫秒”(ms),如Interval=1000代表1秒觸發(fā)一次Tick事件?!探馕觯篜ictureBox的SizeMode=StretchImage時(shí),圖片會(huì)按控件大小比例縮放,填充整個(gè)控件區(qū)域?!两馕觯核接刑摲椒▋H能在類(lèi)內(nèi)部訪問(wèn),派生類(lèi)無(wú)法重寫(xiě)(重寫(xiě)需基類(lèi)方法為public/protected)?!探馕觯篊#中所有類(lèi)(包括自定義類(lèi))均直接或間接繼承自System.Object類(lèi),System.Object是所有類(lèi)型的根類(lèi)。×解析:C#中“接口”可以實(shí)現(xiàn)多繼承(一個(gè)接口繼承多個(gè)接口),如interfaceI3:I1,I2;類(lèi)僅不支持多繼承?!探馕觯簆rivate修飾的成員僅能在類(lèi)內(nèi)部訪問(wèn),派生類(lèi)無(wú)法繼承(即無(wú)法直接訪問(wèn))?!两馕觯翰藛雾?xiàng)標(biāo)題中帶下畫(huà)線的字符是“訪問(wèn)鍵”(如&File代表Alt+F打開(kāi)文件菜單),快捷鍵是Ctrl+字母(如Ctrl+S保存)。√解析:將類(lèi)聲明為sealed(密封類(lèi)),可阻止該類(lèi)被其他類(lèi)繼承,如sealedclassSealedClass{}?!探馕觯阂粋€(gè)窗體可創(chuàng)建多個(gè)ContextMenuStrip(彈出式菜單),通過(guò)Control.ContextMenuStrip屬性為不同控件綁定不同彈出式菜單。四、簡(jiǎn)答題(每題8分,共40分)請(qǐng)簡(jiǎn)述抽象方法和虛擬方法的相同點(diǎn)與不同點(diǎn)?答:(1)相同點(diǎn):①均用于實(shí)現(xiàn)多態(tài):允許派生類(lèi)提供不同的實(shí)現(xiàn);②均需在派生類(lèi)中用override重寫(xiě)(抽象方法必須重寫(xiě),虛擬方法可選);③均不能是靜態(tài)方法(static),僅能是實(shí)例方法。(2)不同點(diǎn):對(duì)比維度抽象方法(abstract)虛擬方法(virtual)定義位置僅能在抽象類(lèi)中定義可在非抽象類(lèi)、抽象類(lèi)中定義方法體無(wú)方法體(僅聲明)有默認(rèn)方法體重寫(xiě)要求派生類(lèi)必須重寫(xiě)(否則派生類(lèi)為抽象類(lèi))派生類(lèi)可選重寫(xiě)(不重寫(xiě)則使用基類(lèi)實(shí)現(xiàn))訪問(wèn)修飾符不能是private(需被派生類(lèi)訪問(wèn))可是public/protected(不能是private)示例:csharpabstractclassBase//抽象類(lèi){publicabstractvoidAbsMethod();//抽象方法(無(wú)體)publicvirtualvoidVirMethod()//虛擬方法(有體){Console.WriteLine("基類(lèi)虛擬方法");}}classDerived:Base{publicoverridevoidAbsMethod()//必須重寫(xiě)抽象方法{Console.WriteLine("派生類(lèi)抽象方法實(shí)現(xiàn)");}publicoverridevoidVirMethod()//可選重寫(xiě)虛擬方法{Console.WriteLine("派生類(lèi)虛擬方法實(shí)現(xiàn)");}}采用new修飾符和override修飾符修飾的方法,二者有什么區(qū)別?答:new和override均用于處理基類(lèi)與派生類(lèi)的同名方法,但本質(zhì)不同:(1)override修飾符:①作用:重寫(xiě)基類(lèi)的virtual/abstract方法,實(shí)現(xiàn)多態(tài);②前提:基類(lèi)方法必須用virtual/abstract修飾,派生類(lèi)方法簽名(名稱(chēng)、參數(shù)、返回值)與基類(lèi)完全一致;③調(diào)用:通過(guò)基類(lèi)引用指向派生類(lèi)對(duì)象時(shí),調(diào)用派生類(lèi)的重寫(xiě)方法(多態(tài));示例:csharpclassBase{publicvirtualvoidShow(){Console.WriteLine("Base");}}classDerived:Base{publicoverridevoidShow(){Console.WriteLine("Derived");}}//調(diào)用:Baseb=newDerived();b.Show();//輸出Derived(多態(tài))(2)new修飾符:①作用:隱藏基類(lèi)的方法(無(wú)論基類(lèi)方法是否為virtual),不實(shí)現(xiàn)多態(tài);②前提:派生類(lèi)方法與基類(lèi)方法簽名相同,無(wú)其他限制;③調(diào)用:通過(guò)基類(lèi)引用指向派生類(lèi)對(duì)象時(shí),調(diào)用基類(lèi)的方法;通過(guò)派生類(lèi)引用調(diào)用時(shí),調(diào)用派生類(lèi)的方法;示例:csharpclassBase{publicvoidShow(){Console.WriteLine("Base");}}classDerived:Base{publicnewvoidShow(){Console.WriteLine("Derived");}}//調(diào)用:Baseb=newDerived();b.Show();//輸出Base;Derivedd=newDerived();d.Show();//輸出Derived(3)核心區(qū)別:override是“重寫(xiě)”,支持多態(tài);new是“隱藏”,不支持多態(tài)。編寫(xiě)程序,輸入一個(gè)字符串,求輸入的字符串中包含字符串str的個(gè)數(shù)。答:思路:通過(guò)循環(huán)查找子串str在輸入字符串中的位置,每找到一次則計(jì)數(shù)+1,并從下一個(gè)位置繼續(xù)查找,直到字符串末尾。完整代碼:csharpusingSystem;classSubstringCount{staticvoidMain(){//輸入原始字符串和目標(biāo)子串Console.Write("請(qǐng)輸入原始字符串:");stringinput=Console.ReadLine();Console.Write("請(qǐng)輸入要查找的子串str:");stringstr=Console.ReadLine();//邊界判斷if(string.IsNullOrEmpty(input)||string.IsNullOrEmpty(str)||str.Length>input.Length){Console.WriteLine("輸入無(wú)效或子串長(zhǎng)度大于原始字符串,個(gè)數(shù)為0");return;}intcount=0;//計(jì)數(shù)intindex=0;//當(dāng)前查找位置//循環(huán)查找子串while((index=input.IndexOf(str,index))!=-1){count++;index+=str.Length;//從下一個(gè)位置繼續(xù)查找,避免重疊(如"aaa"找"aa",按非重疊計(jì)數(shù))}//輸出結(jié)果Console.WriteLine($"原始字符串中包含子串\"{str}\"的個(gè)數(shù)為:{count}");}}示例運(yùn)行:輸入原始字符串:ababaab輸入子串str:aba輸出:原始字符串中包含子串"aba"的個(gè)數(shù)為:2(匹配位置0-2、2-4)簡(jiǎn)述使用SqlConnection
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北京協(xié)和醫(yī)院變態(tài)(過(guò)敏)反應(yīng)科合同制體外診斷試劑研發(fā)專(zhuān)員招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 2026年教育類(lèi)電子競(jìng)技賽事教育內(nèi)容植入合同
- 項(xiàng)目指揮部經(jīng)驗(yàn)交流材料
- 甘肅電器科學(xué)研究院2025年度聘用制工作人員招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2025年深圳市優(yōu)才人力資源有限公司公開(kāi)招聘聘員(派遣至深圳市龍崗區(qū)工信局)的備考題庫(kù)及一套答案詳解
- js項(xiàng)目課程設(shè)計(jì)
- protel課程設(shè)計(jì)的意義
- 2025年永康市農(nóng)業(yè)行政執(zhí)法隊(duì)招聘編外用工人員的備考題庫(kù)及1套完整答案詳解
- 2025年中國(guó)科學(xué)院力學(xué)研究所SKZ專(zhuān)項(xiàng)辦公室人員招聘?jìng)淇碱}庫(kù)及完整答案詳解一套
- 2025阿克蘇市招聘警務(wù)輔助人員(117人)備考核心題庫(kù)及答案解析
- 中考勵(lì)志講座課件
- 各部門(mén)環(huán)境因素識(shí)別評(píng)價(jià)表-塑膠公司
- 律所解除聘用協(xié)議書(shū)
- 海爾集團(tuán)預(yù)算管理實(shí)踐分析
- 永輝超市存貨管理
- 10kV環(huán)網(wǎng)柜(箱)標(biāo)準(zhǔn)化設(shè)計(jì)方案(2023版)
- 余熱發(fā)電崗前培訓(xùn)
- 變壓器性能測(cè)試的實(shí)施方案
- 科技研發(fā)項(xiàng)目管理辦法
- 重癥胰腺炎個(gè)案護(hù)理
- (2025年標(biāo)準(zhǔn))無(wú)租用車(chē)協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論