c#net程序設(shè)計(jì)案例教程課后習(xí)題參考答案_第1頁(yè)
c#net程序設(shè)計(jì)案例教程課后習(xí)題參考答案_第2頁(yè)
c#net程序設(shè)計(jì)案例教程課后習(xí)題參考答案_第3頁(yè)
c#net程序設(shè)計(jì)案例教程課后習(xí)題參考答案_第4頁(yè)
c#net程序設(shè)計(jì)案例教程課后習(xí)題參考答案_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《C#.NET程序設(shè)計(jì)案例教程》課后習(xí)題參考答案習(xí)題1一、選擇題1.在.NET中不能使用的語(yǔ)言是(B)。A.C#C.VBB.PascalD.VC++2.(A)可以幫助用戶可視化的程序設(shè)計(jì)界面。A.工具箱B.類(lèi)視圖C.解決方案資源管理器D.動(dòng)態(tài)幫助3.導(dǎo)入命名空間使用關(guān)鍵字是(B)。A.MainB.usingC.SystemD.Console二、填空題1.在C#程序中,程序的執(zhí)行總是從(Main)方法開(kāi)始的。2.在C#程序中,單行注釋用(//)引導(dǎo)。3.在C#程序中,注釋分為單行注釋和(塊注釋?zhuān)?.關(guān)鍵字class的含義是(類(lèi))。5.要添加控件到窗體中,應(yīng)該使用(Windows窗體設(shè)計(jì)器)設(shè)計(jì)窗口。6.要修改項(xiàng)目的屬性,必須在(解決方案資源管理器7.要修改對(duì)象的屬性,應(yīng)該使用(屬性)設(shè)計(jì)窗口。)設(shè)計(jì)窗口中選擇項(xiàng)目。三、問(wèn)答題1.簡(jiǎn)述VisualStudio2010的安裝過(guò)程。答:1、獲取VisualStudio2010的安裝文件2、啟動(dòng)VisualStudio2010的安裝程序3、單擊第一個(gè)安裝選項(xiàng)“安裝VisualStudio2010”,彈出圖1-2所示的“VisualStudio2010安裝向?qū)А苯缑妗?、單擊“下一步”按鈕,彈出圖1-3所示的“VisualStudio2010安裝程序起始頁(yè)”。5、選中“我已閱讀并接受許可條款”按鈕,單擊“下一步”按鈕,彈出圖1-4所示的“VisualStudio2010安裝程序選項(xiàng)頁(yè)”,用戶可以選擇要安裝的功能及安裝路徑,一般使用默認(rèn)設(shè)置即可。6、選擇好產(chǎn)品安裝路徑后,單擊“安裝”按鈕,進(jìn)入圖1-5所示的“VisualStudio2010安裝程序安裝頁(yè)”界面,顯示正在安裝的組件。7、安裝完畢后,單擊“下一步”按鈕,彈出圖1-6所示的“VisualStudio2010安裝程序完成頁(yè)”界面。,彈出如MSDN的本地幫助文檔StudioVisual單擊“安裝文檔”按鈕,可以安裝、8.圖1-7所示的“HelpLibrary管理器—庫(kù)位置”界面。9、設(shè)置庫(kù)位置后,單擊“確定”按鈕,彈出如圖1-8所示的“HelpLibrary管理器—安裝內(nèi)容”界面。10、10、根據(jù)需要點(diǎn)擊需要安裝的內(nèi)容后面的“添加”按鈕后,單擊“更新”按鈕,開(kāi)始“更新本地庫(kù)”,更新完成后點(diǎn)擊“完成”按鈕,彈出如圖1-9所示的“HelpLibrary管理器安裝完成頁(yè)”界面。11、11、單擊“退出”按鈕完成幫助文檔庫(kù)的安裝,彈出如圖1-10所示的“VisualStudio2010安裝程序主頁(yè)面”。12、12、單擊“退出”按鈕,完成VisualStudio開(kāi)發(fā)環(huán)境和幫助文檔庫(kù)的安裝。2.VisualStudio2010開(kāi)發(fā)環(huán)境的主要組成部分有哪些?答:VisualStudio2010開(kāi)發(fā)環(huán)境的主窗口由標(biāo)題欄、菜單欄、標(biāo)準(zhǔn)工具欄、代碼編輯器/Windows窗體設(shè)計(jì)器以及停靠或自動(dòng)隱藏在左側(cè)、右側(cè)、底部的工具箱、解決方案資源管理器、屬性窗口等共同組成。習(xí)題2一、選擇題1、以下變量命名正確的是(C)。A.7strB.intC._stu_idD.integer2.表達(dá)式“100”+”88”=(D)A.88100C.10088B.188D.100883、Math.Sqrt(9)的結(jié)果是(B)A.9B.3C.09D.9.04、把字符串strA中的字符'f',都替換成'F',正確的代碼是(C)A.string.replace(‘f','F');C.strA.Replace(‘f','F');B.strA.replace(‘f','F');D.strA.Replace(‘F','f');5、下列哪個(gè)轉(zhuǎn)換時(shí)屬于隱式轉(zhuǎn)換的(A)A.inti='f';B.intj=20FC.inta=100LD.charc=”H”;二、計(jì)算題.1.表達(dá)式100%3的結(jié)果是____________12.表達(dá)式a=5*(b=3)的值是____________153.表達(dá)式5>8||8>5的值是____________true4.表達(dá)式18.9%2.4的結(jié)果是____________2.15.表達(dá)式‘a(chǎn)'*'6'的結(jié)果是____________5238三、編程題1.開(kāi)發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:在一段給定的字符串中,查找出指定字母的位置。比如在字符串中”abcdefg”,查找出字符'c'的位置是2。編程思路:利用字符串對(duì)象的的IndexOf方法2.開(kāi)發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:輸入2個(gè)數(shù),計(jì)算并顯示出這2個(gè)數(shù)的最大值。編程思路:利用Math類(lèi)的max方法。3.開(kāi)發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:輸入以攝氏溫度,輸出對(duì)應(yīng)的華氏溫度值。攝氏溫度和華氏溫度的轉(zhuǎn)化公式如下:5(toF-50)=9(toC-10o),toF——華氏溫度,toC——攝氏溫度。編程思路:表達(dá)式計(jì)算4.開(kāi)發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:輸入一個(gè)字符,檢查判斷輸入的是數(shù)字還是字母。如果輸入的是字母,則顯示“您輸入的是字母X,其ASCII碼是XX”;如果輸入的是數(shù)字,則顯示“您輸入的是數(shù)字X,,其ASCII碼是XX”。如果兩者都不是則顯示“輸入的是既非數(shù)字也非字母!”編程思路:利用if..else語(yǔ)句習(xí)題3一、選擇題1.假設(shè)有三個(gè)文本框textBox1、textBox2和textBox3,其中textBox3.Text值為空,textBox1.Text值為8,textBox2.Text值為10,則執(zhí)行語(yǔ)句:“textBox3.Text=textBox1.Text+textBox2.Text;”后,textBox3.Text的值為:(C)。A.108C.810B.18D.出錯(cuò)2.分析以下程序段的執(zhí)行結(jié)束后,i和j的值分別為:(B)inti=1,j=1;for(;j<10;j++){if(j>5)break;if(j%2!=0){j+=3;continue;}j-=1;}A.2,9C.1,8B.1,9D.1,103.將命題“z大于x,y中間的一個(gè)”用C#表達(dá)式表示為:(B)。A.z>xandz>yC.z>x&&z>yB.z>xorz>yD.z>x||z>y4.以下程序段執(zhí)行后,Label1的顯示結(jié)果為:(A)inti,sum;sum=0;for(i=2;i<=10;i=i+1){if(i%2!=0&&i%3==0)sum=sum+i;}Label1.Text=sum.ToString();A.12B.30C.24D.185.有以下代碼段:i=0,s=0;intfor(;;){if(i==3||i==5)continue;if(i==6)break;i=i+1;s=s+i;})循環(huán)完成后,s的值是(D7B.程序進(jìn)入死循環(huán)D.C.21A.106.有以下代碼段:intk=5,n=0;while(k>0){switch(k){case1:n+=k;break;case2:break;case3:n+=k;break;default:break;}k=k-1;}B)則執(zhí)行代碼段后,n的值是(D.7C.6A.0B.4二、填空題金額金額>=500&&1.條件“金額大于等于500,小于1000”的表達(dá)式為()。<1000)控件的大小不隨著內(nèi)容而改變,應(yīng)修改(AutoSize2.在C#程序中,要設(shè)置LabelFalse。屬性的值為)鍵可以進(jìn)入代碼編輯窗口。.按鍵盤(pán)上的(F73)和do…while4C#中的4種循環(huán)結(jié)構(gòu)是(for)、(while)、(.)。(foreach)。5.專(zhuān)門(mén)用于集合元素訪問(wèn)的循環(huán)語(yǔ)句是(foreach)方法就是專(zhuān)門(mén)用于人為引發(fā)異常的。。6.VisualStudio提供的(try)方法用于顯示消息框。7.(show)。8.關(guān)閉應(yīng)用程序的語(yǔ)句是(this.Close();三、問(wèn)答題else的配對(duì)規(guī)則。1.簡(jiǎn)述if語(yǔ)句嵌套時(shí),if與總是與其前面最近且尚未配對(duì)的在同一復(fù)合語(yǔ)句中的if答:else2.多分支條件語(yǔ)句中的控制表達(dá)式可以是哪幾種數(shù)據(jù)類(lèi)型?答:表達(dá)式的結(jié)果必須是整數(shù)、字符或枚舉量值子句中在什么情況下可以不使用break語(yǔ)句?3.多分支條件語(yǔ)句中,case語(yǔ)句;而在一些特殊switchcase分支后,然后跳出答:break語(yǔ)句是用來(lái)執(zhí)行完一個(gè)break語(yǔ)case值要執(zhí)行一組相同的操作的時(shí)候,這時(shí)可以省略的情況下,比如多個(gè)不同的句。4.while語(yǔ)句和do…while語(yǔ)句有何區(qū)別?答:do-while循環(huán)就是先執(zhí)行再判斷,while循環(huán)是先判斷后執(zhí)行。5.異常處理有哪幾種常用的語(yǔ)法格式?答:try語(yǔ)句有以下三種可能的形式:(1)try…catch語(yǔ)句:一個(gè)try塊后接一個(gè)或多個(gè)catch塊。(2)try…finally語(yǔ)句:一個(gè)try塊后接一個(gè)finally塊。(3)try…catch…finally:一個(gè)try塊后接一個(gè)或多個(gè)catch塊,后面再跟一個(gè)finally塊。習(xí)題4一、選擇題1.在關(guān)鍵字public后面定義的成員為類(lèi)的(B)成員。A.私有B.公有2.如果不帶修飾符,C#中類(lèi)成員被默認(rèn)聲明成(C)。A.publicB.protectedC.privateD.staticC.保護(hù)D.任何2.可以在一個(gè)類(lèi)中定義多個(gè)同名的方法,但只有使用的參數(shù)類(lèi)型或者參數(shù)個(gè)數(shù)不同,編譯器便知道在何種情況下應(yīng)該調(diào)用哪個(gè)方法,這是(D)。A.虛方法B.運(yùn)算符重載C.抽象方法D.方法重載3.關(guān)于構(gòu)造函數(shù),下列說(shuō)法錯(cuò)誤的是(B)。A.C#中對(duì)對(duì)象進(jìn)行初始化的方法叫構(gòu)造函數(shù)。B.構(gòu)造函數(shù)可不與類(lèi)同名,可以用戶自己命名。C.如果一個(gè)類(lèi)沒(méi)有聲明任何實(shí)例構(gòu)造函數(shù),則系統(tǒng)會(huì)自動(dòng)提供一個(gè)默認(rèn)構(gòu)造函數(shù)。D.構(gòu)造函數(shù)在類(lèi)的聲明中,可以有函數(shù)名相同,但參數(shù)個(gè)數(shù)不同的多種形式。4.下列關(guān)于C#中繼承的描述,錯(cuò)誤的是(A)。A.一個(gè)子類(lèi)可以有多個(gè)父類(lèi)。B.通過(guò)繼承可以實(shí)現(xiàn)代碼重用。C.派生類(lèi)還可以添加新的特征或者是修改已有的特征以滿足特定的要求。D.繼承是指基于已有類(lèi)創(chuàng)建新類(lèi)的語(yǔ)言能力。5.可以在一個(gè)類(lèi)中定義多個(gè)同名的方法,但只有使用的參數(shù)類(lèi)型或者參數(shù)個(gè)數(shù)不同,編譯器便知道在何種情況下應(yīng)該調(diào)用哪個(gè)方法,這是(D)。A.虛方法B.運(yùn)算符重載C.抽象方法D.方法重載6.關(guān)于構(gòu)造函數(shù),下列說(shuō)法錯(cuò)誤的是(D)。A.默認(rèn)構(gòu)造函數(shù)定義了對(duì)象的默認(rèn)狀態(tài)。B.非默認(rèn)構(gòu)造函數(shù)將根據(jù)傳入的參數(shù)來(lái)初始化對(duì)象的數(shù)據(jù)。C.如果沒(méi)有為類(lèi)定義默認(rèn)構(gòu)造函數(shù),編譯器將自動(dòng)為類(lèi)創(chuàng)建一個(gè)默認(rèn)構(gòu)造函數(shù)。D.非默認(rèn)構(gòu)造函數(shù)應(yīng)當(dāng)總是包含對(duì)象的默認(rèn)狀態(tài)。7.接口是一種引用類(lèi)型,在接口中可以聲明(A),但不可以聲明公有的域或私有的成員變量。A.方法、屬性、索引器和事件B.方法、屬性信息、屬性C.索引器和字段D.事件和字段8.聲明一個(gè)委托publicdelegateintmyCallBack(intx);則用該委托產(chǎn)生的回調(diào)方法的原型應(yīng)該是(B)。A.voidmyCallBack(intx)B.intreceive(intnum)C.stringreceive(intx)D.不確定的二、填空題1.面向?qū)ο蟪绦蛟O(shè)計(jì)具有(封裝)、(繼承)和(多態(tài))等三個(gè)基本特征。2.(字段)是類(lèi)定義中的數(shù)據(jù),也叫類(lèi)定義中的變量。3.(方法)實(shí)質(zhì)上就是函數(shù),通常用于對(duì)字段進(jìn)行計(jì)算和操作,即對(duì)類(lèi)中的數(shù)據(jù)進(jìn)行操作。4.方法參數(shù)傳遞按性質(zhì)可以分為(按值傳遞)兩種。5.構(gòu)造函數(shù)是一種特殊的方法成員,其主要作用是在創(chuàng)建對(duì)象時(shí)(初始化新對(duì)象6.聲明靜態(tài)成員需要使用(static)和(按引用傳遞)。)修飾符。7.在進(jìn)行類(lèi)定義時(shí)不需要編寫(xiě)代碼就可以包含另一個(gè)類(lèi)定義的數(shù)據(jù)成員、方法成員等的特征,稱(chēng)為類(lèi)的(繼承)。8.委托是一種引用數(shù)據(jù)類(lèi)型,派生于.NETFramework中的(Delegate)類(lèi)。三、問(wèn)答題1.簡(jiǎn)述類(lèi)與對(duì)象的關(guān)系。答:類(lèi)是對(duì)象的抽象描述和概括,例如:車(chē)是一個(gè)類(lèi),自行車(chē)、汽車(chē)、火車(chē)也是類(lèi),但是自行車(chē)、汽車(chē)、火車(chē)都屬于車(chē)這個(gè)類(lèi)的子類(lèi),因?yàn)樗鼈冇泄餐奶攸c(diǎn)就是都是交通工具,都有輪子,都可以運(yùn)輸。而汽車(chē)有顏色、車(chē)輪、車(chē)門(mén)、發(fā)動(dòng)機(jī)等特征,這是和自行車(chē)、火車(chē)所不同的地方,是汽車(chē)類(lèi)自己的屬性,也是所有汽車(chē)共同的屬性,所以汽車(chē)也是一個(gè)類(lèi),而具體到某一輛汽車(chē),它有具體的顏色、車(chē)輪、車(chē)門(mén)、發(fā)動(dòng)機(jī)等屬性值,因此某輛汽車(chē)就是一個(gè)對(duì)象。類(lèi)是抽象的概念,對(duì)象是具體的概念,在軟件設(shè)計(jì)中很容易區(qū)分類(lèi)和對(duì)象。假設(shè)軟件中的按鈕是一個(gè)類(lèi),按鈕類(lèi)具有長(zhǎng)度、寬度、位置、顏色等屬性,具有單擊、雙擊、移動(dòng)等行為,當(dāng)所設(shè)計(jì)的一個(gè)具體的按鈕具有特定的長(zhǎng)度、寬度、位置、顏色等屬性值,具有單擊、雙擊、移動(dòng)時(shí)所發(fā)生的具體行為,那么這時(shí)就構(gòu)成了一個(gè)按鈕對(duì)象。2.屬性是類(lèi)的數(shù)據(jù)成員嗎?什么是方法?C#允許在類(lèi)定義外部聲明方法嗎?答:屬性是類(lèi)的數(shù)據(jù)成員。方法用來(lái)完成類(lèi)或?qū)ο蟮男袨?,在面向?qū)ο缶幊陶Z(yǔ)言中,類(lèi)或?qū)ο笫峭ㄟ^(guò)方法來(lái)與外界交互的,所以方法是類(lèi)與外界交互的基本方式。方法通常是包含解決某一特定問(wèn)題的語(yǔ)句塊,方法必須放在類(lèi)定義中,方法同樣遵循先聲明后使用的原則。C#不允許在類(lèi)定義外部聲明方法3.在方法的調(diào)用中,基本數(shù)據(jù)類(lèi)型作為參數(shù)默認(rèn)是按什么方式傳遞?類(lèi)對(duì)象作為參數(shù)默認(rèn)是按什么方式傳遞的?類(lèi)對(duì)象可以按值方式傳遞嗎?基本數(shù)據(jù)類(lèi)型參數(shù)按引用傳遞時(shí),應(yīng)該怎么做?參數(shù)按值傳遞與按引用傳遞的區(qū)別是什么?方法的參數(shù)傳遞按照性質(zhì)可分為按值傳遞與按引用傳遞。參數(shù)按值的方式傳遞是指當(dāng)把實(shí)參傳遞給形參時(shí),是把實(shí)參的值復(fù)制給形參,實(shí)參和形參使用的是內(nèi)存中兩個(gè)不同的值,所以這種參數(shù)傳遞方式的特點(diǎn)是形參的值發(fā)生改變時(shí),不會(huì)影響到實(shí)參的值,從而保證了實(shí)參數(shù)據(jù)的安全。基本類(lèi)型(包括string與object)的參數(shù)在傳遞時(shí)默認(rèn)為按值傳遞。一個(gè)方法只能返回一個(gè)值,但實(shí)際應(yīng)用中常常需要方法能夠修改或返回多個(gè)值,這時(shí)只就可以使用按引用傳遞參數(shù)的如果需要方法返回多個(gè)值,語(yǔ)句顯然是無(wú)能為力的。return靠.而是不是將實(shí)參的值復(fù)制給形參,方式實(shí)現(xiàn)這種功能。按引用傳遞是指實(shí)參傳遞給形參時(shí),這種參數(shù)傳實(shí)參與形參使用的是同一個(gè)內(nèi)存地址中的值。將實(shí)參的引用傳遞給形參,此時(shí),遞方式的特點(diǎn)是形參的值發(fā)生改變時(shí),同時(shí)也改變實(shí)參的值?;绢?lèi)型參數(shù)按引用傳遞時(shí),形參實(shí)際上是實(shí)參的別名?;绢?lèi)型參數(shù)按引用傳遞時(shí),ref。實(shí)參與形參前均須使用關(guān)鍵字C#中的靜態(tài)方法應(yīng)該怎樣調(diào)用?4.重載方法的基本要求是什么?方法重載有兩點(diǎn)要求:)重載的方法名稱(chēng)必須相同;(1)重載方法的形參個(gè)數(shù)或類(lèi)型必須不同,否則將出現(xiàn)“已經(jīng)定義了一個(gè)具有相同類(lèi)(2型參數(shù)的方法成員”的編譯錯(cuò)誤。,不能使用對(duì)象調(diào)用。靜態(tài)方法屬于類(lèi)本身,只能使用類(lèi)調(diào)用5.什么是類(lèi)的繼承?怎么定義派生類(lèi)?又可以將新的類(lèi)既具備原有類(lèi)的功能和特點(diǎn),繼承就是在已有類(lèi)的基礎(chǔ)上建立新的類(lèi),所以又被稱(chēng)為原有類(lèi)由于新的類(lèi)是由原來(lái)的類(lèi)發(fā)展而來(lái),這些功能在原有基礎(chǔ)上進(jìn)行拓展。的派生類(lèi)(子類(lèi)),而原有類(lèi)就是新類(lèi)的基類(lèi)(父類(lèi))。定義一個(gè)繼承于基類(lèi)的派生類(lèi)的語(yǔ)法格式如下:【訪問(wèn)修飾符】class派生類(lèi)名稱(chēng):基類(lèi)名稱(chēng){//派生類(lèi)的類(lèi)體}其中,訪問(wèn)修飾符可以是public、protected和private,通常都使用public以保證類(lèi)的開(kāi)放性,并且public可以省略,因?yàn)轭?lèi)定義的訪問(wèn)控制默認(rèn)是public?!埃夯?lèi)名稱(chēng)”表示所繼承的類(lèi)。定義的派生類(lèi)默認(rèn)繼承了基類(lèi)的所有成員,包括變量和方法(構(gòu)造函數(shù)和析構(gòu)函數(shù)除外),基類(lèi)中用private訪問(wèn)修飾符限制的成員不能被繼承。6.什么是多態(tài)性?多態(tài)性有何作用?多態(tài)性可以簡(jiǎn)單地概括為“一個(gè)接口,多種方法”,它在程序運(yùn)行的過(guò)程中才決定調(diào)用的方法,多態(tài)性是面向?qū)ο缶幊痰暮诵母拍?。多態(tài)使得子類(lèi)(派生類(lèi))的實(shí)例可以直接賦予基類(lèi)的對(duì)象(不需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換),然后直接就可以通過(guò)這個(gè)對(duì)象調(diào)用子類(lèi)(派生類(lèi))的方法。多態(tài)則是為了實(shí)現(xiàn)另一個(gè)目的——接口重用,因?yàn)榻涌谑亲詈馁M(fèi)時(shí)間的資源,實(shí)質(zhì)上設(shè)計(jì)一個(gè)接口要比設(shè)計(jì)一堆類(lèi)要顯得更有效率。習(xí)題5一、選擇題1.在C#.Net中,用來(lái)創(chuàng)建主菜單的對(duì)象是(C)。D.ItemC.MenuStripB.MenuItemA.Menu2.下面所列舉的應(yīng)用程序中,不是多文檔應(yīng)用程序的是(D)A.WordB.ExcelC.PowerPointD.記事本3.加載窗體時(shí)觸發(fā)的事件是(B)。A.ClickB.LoadC.GotFoucsD.DoubleClick4..建立訪問(wèn)鍵時(shí),需在菜單標(biāo)題的字母前添加的符號(hào)是(D)。A.!B.#C.$D.&5..使用Dirctory類(lèi)的下列方法,可以獲取指定文件夾中的文件的是(B).A.Exists()B.GetFiles()C.GetDirectories()D.CreateDirectory()二、填空題1.在C#Net中,窗體父子關(guān)系通過(guò)(MDI窗體)窗口來(lái)創(chuàng)建。2.根據(jù)Windows窗體的顯示狀態(tài),可以分為(模式)窗體和(非模式)窗體。3.將文本框設(shè)置為只讀,可以通過(guò)修改(ReadOnly)屬性實(shí)現(xiàn)。4.(MenuStrip)控件又稱(chēng)為菜單控件,主要用來(lái)設(shè)計(jì)程序的菜單欄。5.計(jì)時(shí)器控件每隔一定的時(shí)間間隔引發(fā)一次(Tick)事件。6.ProgressBar控件又稱(chēng)為(進(jìn)度條)控件。7.將文本框控件設(shè)置為密碼文本框,可以通過(guò)修改(PassWordChar)屬性實(shí)現(xiàn)。三、問(wèn)答題1.Windows應(yīng)用程序的菜單通常由哪些部分組成?答:MenuStrip控件,又稱(chēng)為菜單控件,它主要用來(lái)設(shè)計(jì)程序的菜單欄,C#中的MenuStrip控件支持多文檔界面、菜單合并、工具提示和溢出等功能,開(kāi)發(fā)人員可以通過(guò)添加訪問(wèn)鍵、快捷鍵、選中標(biāo)記、圖像和分隔條來(lái)增強(qiáng)菜單的可用性和可讀性。MenuStrip控件主要用于在程序窗體中顯示菜單,其中菜單標(biāo)題項(xiàng)的快捷鍵是通過(guò)其Text屬性中的“&”字符進(jìn)行設(shè)置的,當(dāng)菜單處于打開(kāi)狀態(tài)時(shí),可以通過(guò)按下Alt鍵和相應(yīng)的字母打開(kāi)相應(yīng)的菜單項(xiàng)。而菜單項(xiàng)的快捷鍵通過(guò)設(shè)置菜單項(xiàng)的Shortcut屬性進(jìn)行設(shè)置,例如“紅”菜單項(xiàng)對(duì)應(yīng)的“Ctrl+D”,用戶無(wú)需打開(kāi)菜單,直接按Ctrl+R鍵時(shí),就相當(dāng)于單擊該菜單項(xiàng)。ContextMenuStrip控件,又稱(chēng)為快捷菜單控件,它用來(lái)表示快捷菜單。2.在實(shí)際應(yīng)用中,菜單可以分為哪兩種形式?在C#中設(shè)計(jì)菜單使用哪兩種控件?請(qǐng)簡(jiǎn)述其設(shè)計(jì)步驟。答:Windows的菜單主要有下拉式菜單和彈出式快捷菜單兩種類(lèi)型。在C#中設(shè)計(jì)菜單時(shí)分別使用MenuStrip控件和ContextMenuStrip控件。3.簡(jiǎn)述工具欄與菜單共享代碼的方法。答:程序中工具欄按鈕的功能與主菜單中的命令項(xiàng)相對(duì)應(yīng),因此在功能實(shí)現(xiàn)上采用直接調(diào)用相應(yīng)主菜單項(xiàng)單擊事件代碼的方式實(shí)現(xiàn),例如“menuOO_Click(sender,e);”即調(diào)用主菜單中的菜單項(xiàng)的單擊事件。4.簡(jiǎn)述狀態(tài)欄面板StatusStrip的主要屬性及作用。答:StatusStrip控件,又稱(chēng)為狀態(tài)欄控件,它通常放置在窗體的最底部,用于顯示窗體由件控StatusStrip。息信的序程用應(yīng)示顯以可者或,息信關(guān)相的象對(duì)些一上對(duì)象組成,每個(gè)這樣的對(duì)象都可以顯示文本、圖像或同時(shí)顯示這二者,ToolStripStatusLabel和ToolStripSplitButton含ToolStripDropDownButton、控件還可以包另外,StatusStrip等控件。ToolStripProgressBar簡(jiǎn)述模式窗體與非模式窗體的區(qū)別。5.如果作為激活窗體,它在顯示時(shí),模式窗體就是使用ShowDialog方法顯示的窗體,答:則其它窗體不可用。只有在將模式窗體關(guān)閉之后,其它窗體才能恢復(fù)可用狀態(tài)。非模式窗體方法顯示的窗體,一般的窗體都是非模式窗體。非模式窗體就是使用Show單擊的窗體將立即成為激活窗體用戶可以單擊任何一個(gè)窗體,在顯示時(shí),如果有多個(gè)窗體,并顯示在屏幕的最前面。事件的主要不同點(diǎn)。、KeyUp6.簡(jiǎn)述KeyPress事件與KeyDown事件,KeyPressASCII字符鍵時(shí)發(fā)生答:C#主要為用戶提供了三種鍵盤(pán)事件,按下某個(gè)KeyUp事件和釋放鍵盤(pán)上任意鍵時(shí)發(fā)生事件。按下任意鍵時(shí)發(fā)生KeyDown只有當(dāng)窗體為活動(dòng)窗體且其上所有控件均未只有獲得焦點(diǎn)的對(duì)象才能夠接受鍵盤(pán)事件。但窗體才獲得焦點(diǎn)。這種情況只有在空窗體和窗體上的控件都無(wú)效時(shí)才發(fā)生。獲得焦點(diǎn)時(shí),,則窗體就會(huì)在控件識(shí)別其鍵盤(pán)事件之前屬性設(shè)置為T(mén)rue是,如果將窗體上的KeyPreview搶先接受這些鍵盤(pán)事件。放開(kāi)該KeyDown事件,按下一鍵時(shí)產(chǎn)生KeyPress和鍵盤(pán)事件彼此之間并不相互排斥,KeyPress事件并不能識(shí)別所有的按鍵。鍵時(shí)產(chǎn)生一個(gè)KeyUp事件,但應(yīng)注意6習(xí)題一、選擇題。C)1.C#Winform編程對(duì)文件夾操作,通常需要引入命名空間(B.A.usingSystem.IOusingSystem.IOD.System.Data.OleDbC.usingSystem.IO實(shí)現(xiàn)遞歸刪除文件夾目錄及文件,下列程序中publicstaticvoidDeleteFolder(stringdir){if(Directory.___2____(dir))//如果存在這個(gè)文件夾刪除之{foreach(stringdin__3___.GetFileSystemEntries(dir)){if(File.Exists(d))File.____4_____(d);//直接刪除其中的文件else______5_____(d);//遞歸刪除子文件夾}刪除已空文件夾Directory.Delete(dir);//}}、DirectoryCB、ExistsA、Exist、DeleteDirectoryFE、DeleteFolder、DDelete)。2、應(yīng)選擇(B)。3、應(yīng)選擇(C)。、應(yīng)選擇(D4)。、應(yīng)選擇(E5二、填空題)命名空間。System.IO1.C#文件操作,通常要引入(及其子目錄刪f:\bbs2將Directory.Delete(@:\bbs2,true);”的作用是(2、語(yǔ)句“).除下以f:\獲取、語(yǔ)句“string[]dirs=Directory.GetDirectories(@:\,*);”的作用是(3)。b開(kāi)頭的目錄存儲(chǔ)到dirs數(shù)組中把,F(xiàn)ileAttributes.ReadOnly);//(File.SetAttributes(filename4、設(shè)置文件屬性的方法是)。filename文件設(shè)置為只讀。),它創(chuàng)建一個(gè)StreamWriterFileInfo.AppendText1.6、File.AppendText的作用是(。)UTF-8將編碼文本追加到現(xiàn)有文件。5、確定文件是否存在的方法是(File.Exists(filename)三、問(wèn)答題請(qǐng)寫(xiě)出遞歸刪除文件夾及文件的程序片段。1.privatevoidDelete(stringdir){foreach(stringsubdirinDirectory.GetDirectories(dir)){this.Delete(subdir);}foreach(stringfilesinDirectory.GetFiles(dir)){{0},files);慬敢?敔瑸?猠牴湩?瀠浲瑡尨正在刪除File.Delete(files);}}軟件注冊(cè)通常有哪些方法?各自的優(yōu)缺點(diǎn)是什么?2.、硬盤(pán)的序列號(hào),進(jìn)行加密,再寫(xiě)入注冊(cè)表來(lái)實(shí)現(xiàn),也可以軟件注冊(cè)可以通過(guò)獲取cpu但是前者方式注冊(cè)軟件當(dāng)用戶更換計(jì)算機(jī)或者部件時(shí)需重新注冊(cè),通過(guò)用戶名密碼來(lái)注冊(cè)。破解較難;后者往往難以保證注冊(cè)用戶名、序列號(hào)不被惡意擴(kuò)散。3.閱讀以下程序片段,說(shuō)明該方法的主要功能。publicstaticvoidCopyFolder(stringstrFromPath,stringstrToPath){//如果源文件夾不存在,則創(chuàng)建if(!Directory.Exists(strFromPath)){Directory.CreateDirectory(strFromPath);}//取得要拷貝的文件夾名stringstrFolderName=strFromPath.Substring(strFromPath.LastIndexOf(\\\)+1,strFromPath.Length-strFromPath.LastIndexOf(\\\)-1);//如果目標(biāo)文件夾中沒(méi)有源文件夾則在目標(biāo)文件夾中創(chuàng)建源文件夾if(!Directory.Exists(strToPath+\\\+strFolderName)){Directory.CreateDirectory(strToPath+\\\+strFolderName);}//創(chuàng)建數(shù)組保存源文件夾下的文件名string[]strFiles=Directory.GetFiles(strFromPath);//循環(huán)拷貝文件for(inti=0;i<strFiles.Length;i++){//取得拷貝的文件名,只取文件名,地址截掉。stringstrFileName=strFiles[i].Substring(strFiles[i].LastIndexOf(\\\)+1,strFiles[i].Length-strFiles[i].LastIndexOf(\\\)-1);//開(kāi)始拷貝文件,true表示覆蓋同名文件File.Copy(strFiles[i],strToPath+\\\+strFolderName+\\\+strFileName,true);}//創(chuàng)建DirectoryInfo實(shí)例DirectoryInfodirInfo=newDirectoryInfo(strFromPath);//取得源文件夾下的所有子文件夾名稱(chēng)DirectoryInfo[]ZiPath=dirInfo.GetDirectories();for(intj=0;j<ZiPath.Length;j++){//獲取所有子文件夾名stringstrZiPath=strFromPath+\\\+ZiPath[j].ToString();//把得到的子文件夾當(dāng)成新的源文件夾,從頭開(kāi)始新一輪的拷貝CopyFolder(strZiPath,strToPath+\\\+strFolderName);}}實(shí)現(xiàn)文件夾的拷貝功能。習(xí)題7一、選擇題)。D中數(shù)據(jù)庫(kù)連接是利用哪個(gè)對(duì)象的是(ADO.NET、1.A.SQLCommandC.QLDataReaderB.SQLDataAdapterD.SQLConnection2.插入、刪除數(shù)據(jù)可用SqlCommand對(duì)象的(C)方法A.ExecuteReaderB.ExecuteScalarD.EndExecuteNonQueryC.ExecuteNonQuery3、在ADO.NET中,為訪問(wèn)DataTable對(duì)象從數(shù)據(jù)源提取的數(shù)據(jù)行。可使用DataTable對(duì)象的(A)屬性.A.RowsB.ColumnsC.ConstraintsD.DataSet4、SQLServer的Windows身份驗(yàn)證機(jī)制是指,當(dāng)網(wǎng)絡(luò)用戶嘗試連接到SQLServer數(shù)據(jù)庫(kù)時(shí),以下哪個(gè)說(shuō)法是正確的(C)A.Windows獲取用戶輸入的用戶和密碼,并提交給SQLServer進(jìn)行身份驗(yàn)證,并決定用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限B.SQLServer根據(jù)用戶輸入的用戶和密碼,提交給Windows進(jìn)行身份驗(yàn)證,并決定用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限C.SQLServer根據(jù)已在Windows網(wǎng)絡(luò)中登錄的用戶的網(wǎng)絡(luò)安全屬性,對(duì)用戶身份進(jìn)行驗(yàn)證,并決定用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限D(zhuǎn).登錄到本地Windows的用戶均可無(wú)限制訪問(wèn)SQLServer數(shù)據(jù)庫(kù)5、參考下列C#語(yǔ)句:SqlConnectionConn1=newSqlConnection();Conn1.C;Conn1.Open();SqlConnectionConn2=newSqlConnection();Conn2.C;Conn2.Open();請(qǐng)問(wèn):上述語(yǔ)句將創(chuàng)建(B)個(gè)連接池來(lái)管理這些SqlConnection對(duì)象A.1B.2C.0D.0.5二、填空題1、為了在程序中使用DataSet類(lèi)定義數(shù)據(jù)集對(duì)象,應(yīng)在文件開(kāi)始處添加對(duì)命名空間__System.Data_____的引用.2、為創(chuàng)建在SQLServer2000中執(zhí)行Select語(yǔ)句的Command對(duì)象,可先建立到SQLServer2000數(shù)據(jù)庫(kù)的連接,然后使用連接對(duì)象的__CreateCommand_____方法創(chuàng)建SqlCommand對(duì)象.三、問(wèn)答題(1)采用LINQ技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)與采用ADO.NET訪問(wèn)數(shù)據(jù)庫(kù),有什么優(yōu)勢(shì)?、無(wú)需復(fù)雜學(xué)習(xí)過(guò)程即可上手1答:2、編寫(xiě)更少代碼即可創(chuàng)建完整應(yīng)用。3、更快開(kāi)發(fā)錯(cuò)誤更少的應(yīng)用程序。4、無(wú)需求助奇怪的編程技巧就可合并數(shù)據(jù)源5、讓新開(kāi)發(fā)者開(kāi)發(fā)效率更高(2)LINQ的語(yǔ)法跟一般SQL語(yǔ)句的語(yǔ)法有哪些區(qū)別?答:LINQ查詢(xún)語(yǔ)法是以from關(guān)鍵字開(kāi)頭的,而不是以select關(guān)鍵字開(kāi)頭的。簡(jiǎn)單來(lái)說(shuō),為了IDE的智能感知(Intelisence)這個(gè)功能,select關(guān)鍵字放在后面了。編程語(yǔ)言以select開(kāi)頭寫(xiě)LINQ查詢(xún)語(yǔ)法不是沒(méi)出現(xiàn)過(guò),你如果使用過(guò)2005年的VB9CTP版本,那時(shí)候VB9的LINQ查詢(xún)語(yǔ)法就是select關(guān)鍵字在前面,但是select關(guān)鍵字在前面,在做智能感知(Intelisence)時(shí)候就很頭大。經(jīng)過(guò)微軟IDE組的權(quán)衡,確定了把from關(guān)鍵字放在最前面。(3)DataSet與SQLDataReader有哪些區(qū)別?答:檢索數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),DataSet取得所有的信息,并將其保存在內(nèi)存中。使用這種離線數(shù)據(jù)源,可以完成隨意修改數(shù)據(jù),數(shù)據(jù)轉(zhuǎn)換格式等簡(jiǎn)潔的工作。但如果需要從數(shù)據(jù)庫(kù)返回大量的數(shù)據(jù),將受到內(nèi)存的限制,因?yàn)檎麄€(gè)DataSet都保存在內(nèi)存中。特別是用戶很多時(shí),由于每個(gè)用戶都有自己的DataSet,將可能出現(xiàn)問(wèn)題。OleDbDataReader每次只將一條記錄保存到內(nèi)存中,按要求依次從數(shù)據(jù)源取得數(shù)據(jù),避免了使用大量?jī)?nèi)存而提高了性能,但由于數(shù)據(jù)依次取回,所以O(shè)leDbDataReader功能沒(méi)有DataSet強(qiáng)大。而且,OleDbDataReader是只讀的,并且不能查看前面的記錄。如果不需要客戶返回值,只需要顯示而不修改,用sqldatareader效率比較高。相反用dataset。sqldatareader提供一種從數(shù)據(jù)庫(kù)讀取只進(jìn)的行流的方式.如果用到分頁(yè)或者需要有暫存數(shù)據(jù)的地方,用dataset。習(xí)題8一、選擇題1、在C#中,MS為我們提供了(A)命名空間,里面包含了Socket類(lèi)。A、System.Net.SocketsC、System.ThreadingB、System.NeD、System.Collections.Specialized2、TCP最主要的特點(diǎn)是(A)。A、是一種基于連接的協(xié)議(類(lèi)似于打電話)B、保證數(shù)據(jù)準(zhǔn)確到達(dá)C、保證各數(shù)據(jù)到達(dá)的順序與數(shù)據(jù)發(fā)出的順序相同D、傳輸?shù)臄?shù)據(jù)無(wú)消息邊界3、在同步工作方式下,TcpListener類(lèi)常用的方法(B)A、AcceptTcpClient;B、StartC、StopD、PlayABCDEFG)中,提供異步處理功能的有:(在4、.NET。I/O、套接字I/O、流I/O文件、A.B、網(wǎng)絡(luò)。C、遠(yuǎn)程處理信道(HTTP、TCP)和代理。D、使用ASP.NET創(chuàng)建的XMLWebservices。E、ASP.NETWeb窗體。F、使用MessageQueue類(lèi)的消息隊(duì)列。G、BackgroundWorker等組件二、填空題1、System.Net.Sockets命名空間主要有(TcpClient)(TcpListener)(UdpClient)(Socket)(MulticastOption)等類(lèi)。2、Socket編程中,連接創(chuàng)建完畢,就可以使用其(BeginSend)或(EndSend)方法將數(shù)據(jù)發(fā)送到Socket;同樣使用其(BeginReceive)或(EndReceive)方法從Socket中讀取數(shù)據(jù)。在Socket使用完畢后,應(yīng)使用其(Shutdown)方法禁用Socket,并使用(Close)方法關(guān)閉Socket。3、Socket編程需要引入的命名空間有:(usingSystem.Net.Sockets;)和(usingSystem.Net;)。4、UdpClient類(lèi)是提供用戶數(shù)據(jù)報(bào)UDP網(wǎng)絡(luò)服務(wù)的。UdpClient類(lèi)提供了一些簡(jiǎn)單的方法,用于在阻塞同步模式下發(fā)送和接收無(wú)連接UDP數(shù)據(jù)報(bào)。因?yàn)閁DP是無(wú)連接傳輸協(xié)議,所以不需要在發(fā)送和接收數(shù)據(jù)前建立遠(yuǎn)程主機(jī)連接。但可以選擇使用下面兩種方法之一來(lái)建立默認(rèn)遠(yuǎn)程主機(jī):(1)使用遠(yuǎn)程(主機(jī)名)和(端口號(hào))作為參數(shù)創(chuàng)建UdpClient類(lèi)的實(shí)例。(2)創(chuàng)建UdpClient類(lèi)的實(shí)例,然后調(diào)用(Connect)方法。三、簡(jiǎn)答題1、使用同步TCP編寫(xiě)服務(wù)器端應(yīng)用程序的一般步驟是什么?使用同步TCP編寫(xiě)服務(wù)器端應(yīng)用程序的一般步驟是:1、創(chuàng)建一個(gè)socket,用函數(shù)socket();2、綁定IP地址、端口等信息到socket上,用函數(shù)bind();3、開(kāi)啟監(jiān)聽(tīng),用函數(shù)listen();4、接收客戶端上來(lái)的連接,用函數(shù)accept();5、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write();6、關(guān)閉網(wǎng)絡(luò)連接;7、關(guān)閉監(jiān)聽(tīng)。2、TcpClient類(lèi)和TcpListener類(lèi)均封裝了底層的套接字,并分別提供了對(duì)套接字進(jìn)一步封裝后的同步和異步操作的方法,降低了TCP應(yīng)用編程的難度,請(qǐng)寫(xiě)出它們各自的作用。TcpClient類(lèi)提供了一些簡(jiǎn)單的方法,用于在同步阻塞模式下通過(guò)網(wǎng)絡(luò)來(lái)連接、發(fā)送和接收流數(shù)據(jù)。為使TcpClient連接并交換數(shù)據(jù),使用TCPProtocolType創(chuàng)建的TcpListener或Socket必須偵聽(tīng)是否有傳入的連接請(qǐng)求??梢允褂孟旅鎯煞N方法之一連接到該偵聽(tīng)器:創(chuàng)建一個(gè)TcpClient,并調(diào)用三個(gè)可用的Connect方法之一。使用遠(yuǎn)程主機(jī)的主機(jī)名和端口號(hào)創(chuàng)建TcpClient。此構(gòu)造函數(shù)將自動(dòng)嘗試一個(gè)連接。TcpListener類(lèi)從TCP網(wǎng)

溫馨提示

  • 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)論