




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#.NET程序設(shè)計(jì)案例教程課后習(xí)題參考答案習(xí)題1一、選擇題A.C#B.PascalC.VBD.VC+2.( A 可以幫助用戶可視化的程序設(shè)計(jì)界面。A.工具箱B. 類視圖C.解決方案資源管理器D.動(dòng)態(tài)幫助3.導(dǎo)入命名空間使用關(guān)鍵字是( B 。A. MainB. usingC. SystemD. Console二、填空題1.在C#程序中,程序的執(zhí)行總是從(Main 方法開始的。2.在C#程序中,單行注釋用(/ 引導(dǎo)。3.在C#程序中,注釋分為單行注釋和(塊注釋。4.關(guān)鍵字class的含義是(類。5. 要添加控件到窗體中,應(yīng)該使用(Windows窗體設(shè)計(jì)器設(shè)計(jì)窗口。6. 要修改項(xiàng)目的屬性,必須在(
2、解決方案資源管理器設(shè)計(jì)窗口中選擇項(xiàng)目。7. 要修改對(duì)象的屬性,應(yīng)該使用(屬性設(shè)計(jì)窗口。三、問答題1.簡(jiǎn)述Visual Studio 2010的安裝過程。答:1、獲取Visual Studio 2010的安裝文件2、啟動(dòng)Visual Studio 2010的安裝程序3、單擊第一個(gè)安裝選項(xiàng)“安裝Visual Studio 2010”,彈出圖1-2所示的“Visual Studio 2010安裝向?qū)А苯缑妗?、單擊“下一步”按鈕,彈出圖1-3所示的“Visual Studio 2010安裝程序起始頁”。5、選中“我已閱讀并接受許可條款”按鈕,單擊“下一步”按鈕,彈出圖1-4所示的“Visual St
3、udio 2010安裝程序選項(xiàng)頁”,用戶可以選擇要安裝的功能及安裝路徑,一般使用默認(rèn)設(shè)置即可。6、選擇好產(chǎn)品安裝路徑后,單擊“安裝”按鈕,進(jìn)入圖1-5所示的“Visual Studio 2010安裝程序安裝頁”界面,顯示正在安裝的組件。7、安裝完畢后,單擊“下一步”按鈕,彈出圖1-6所示的“Visual Studio 2010安裝程序完成頁”界面。8、單擊“安裝文檔”按鈕,可以安裝Visual Studio的本地幫助文檔MSDN,彈出如圖1-7所示的“Help Library管理器庫位置”界面。9、設(shè)置庫位置后,單擊“確定”按鈕,彈出如圖1-8所示的“Help Library管理器安裝內(nèi)容”界
4、面。10、10、根據(jù)需要點(diǎn)擊需要安裝的內(nèi)容后面的“添加”按鈕后,單擊“更新”按鈕,開始“更新本地庫”,更新完成后點(diǎn)擊“完成”按鈕,彈出如圖1-9所示的“Help Library管理器安裝完成頁”界面。11、11、單擊“退出”按鈕完成幫助文檔庫的安裝,彈出如圖1-10所示的“VisualStudio 2010安裝程序主頁面”。12、12、單擊“退出”按鈕,完成Visual Studio開發(fā)環(huán)境和幫助文檔庫的安裝。2. Visual Studio 2010開發(fā)環(huán)境的主要組成部分有哪些?答:Visual Studio 2010開發(fā)環(huán)境的主窗口由標(biāo)題欄、菜單欄、標(biāo)準(zhǔn)工具欄、代碼編輯器/Windows窗
5、體設(shè)計(jì)器以及停靠或自動(dòng)隱藏在左側(cè)、右側(cè)、底部的工具箱、解決方案資源管理器、屬性窗口等共同組成。習(xí)題2一、選擇題1、以下變量命名正確的是(C 。A. 7strB. intC. _stu_idD. integer2.表達(dá)式“100”+”88”=( D A. 88100B. 188C. 100 88D. 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;D. strA.Replace(F,f;5、下列哪個(gè)轉(zhuǎn)換時(shí)屬于隱式
6、轉(zhuǎn)換的( A A. int i=f;B.int j=20FC. int a=100LD. char c=”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*6的結(jié)果是_ 5238三、編程題1.開發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:在一段給定的字符串中,查找出指定字母的位置。比如在字符串中”abcdefg”,查找出字符c的位置是2。編程思路:利用字符串對(duì)象的的IndexOf方法2. 開發(fā)一個(gè)windows窗體應(yīng)用程序
7、,實(shí)現(xiàn)以下功能:輸入2個(gè)數(shù),計(jì)算并顯示出這2個(gè)數(shù)的最大值。編程思路:利用Math類的max方法。3. 開發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:輸入以攝氏溫度,輸出對(duì)應(yīng)的華氏溫度值。攝氏溫度和華氏溫度的轉(zhuǎn)化公式如下:5(tºF- 50=9(tºC-10º ,tºF華氏溫度, tºC攝氏溫度。編程思路:表達(dá)式計(jì)算4. 開發(fā)一個(gè)windows窗體應(yīng)用程序,實(shí)現(xiàn)以下功能:輸入一個(gè)字符,檢查判斷輸入的是數(shù)字還是字母。如果輸入的是字母,則顯示“您輸入的是字母X,其ASCII碼是XX”;如果輸入的是數(shù)字,則顯示“您輸入的是數(shù)字X,其ASCII碼是X
8、X”。如果兩者都不是則顯示“輸入的是既非數(shù)字也非字母!”編程思路:利用if.else語句習(xí)題3一、選擇題1.假設(shè)有三個(gè)文本框textBox1、textBox2和textBox3,其中textBox3.Text值為空, textBox1.Text值為8,textBox2.Text值為10,則執(zhí)行語句:“textBox3.Text=textBox1.Text+textBox2.Text;”后,textBox3.Text的值為:( C 。A.108B.18C.810D.出錯(cuò)2.分析以下程序段的執(zhí)行結(jié)束后,i和j的值分別為:( B int i=1,j=1;for(;j<10;j+ if(j>
9、;5 break;if(j%2!=0j+=3; continue;j-=1;A.2,9B. 1,9C.1,8D.1,103.將命題“z大于x,y中間的一個(gè)”用C#表達(dá)式表示為:( B 。A. z>x and z>yB. z>x or z>yC. z>x && z>yD. z>x | z>y4.以下程序段執(zhí)行后,Label1的顯示結(jié)果為:( A int i,sum;sum=0;for(i=2;i<=10;i=i+1if(i%2!=0 && i%3=0sum=sum+i;Label1.Text=sum.ToStr
10、ing(;A. 12B. 30C. 24D. 185.有以下代碼段:int i=0,s=0;for(;if(i=3|i=5 continue;if(i=6 break;i=i+1;s=s+i;循環(huán)完成后,s的值是( D A. 10B. 7C. 21D. 程序進(jìn)入死循環(huán)6.有以下代碼段:int k=5,n=0;while(k>0switch(kcase 1:n+=k; break;case 2:break;case 3:n+=k; break;default:break;k=k-1;則執(zhí)行代碼段后,n的值是( B A. 0B. 4C. 6D. 7二、填空題1.條件“金額大于等于500,小于
11、1000”的表達(dá)式為(金額>=500 &&金額<1000 。2.在C#程序中,要設(shè)置Label控件的大小不隨著內(nèi)容而改變,應(yīng)修改(AutoSize 屬性的值為False。3.按鍵盤上的(F7 鍵可以進(jìn)入代碼編輯窗口。4.C#中的4種循環(huán)結(jié)構(gòu)是(for 、(while 、(dowhile 和(foreach 。5. 專門用于集合元素訪問的循環(huán)語句是(foreach 。6. Visual Studio提供的(try 方法就是專門用于人為引發(fā)異常的。7. (show 方法用于顯示消息框。8. 關(guān)閉應(yīng)用程序的語句是(this.Close(; 。三、問答題1.簡(jiǎn)述if語句嵌套
12、時(shí),if與else的配對(duì)規(guī)則。答:else總是與其前面最近且尚未配對(duì)的在同一復(fù)合語句中的if2. 多分支條件語句中的控制表達(dá)式可以是哪幾種數(shù)據(jù)類型?答:表達(dá)式的結(jié)果必須是整數(shù)、字符或枚舉量值3. 多分支條件語句中,case子句中在什么情況下可以不使用break語句?答:break語句是用來執(zhí)行完一個(gè)case分支后,然后跳出switch語句;而在一些特殊的情況下,比如多個(gè)不同的case值要執(zhí)行一組相同的操作的時(shí)候,這時(shí)可以省略break語句。4. while語句和dowhile語句有何區(qū)別?答:do-while循環(huán)就是先執(zhí)行再判斷,while循環(huán)是先判斷后執(zhí)行。5. 異常處理有哪幾種常用的語法格
13、式?答:try語句有以下三種可能的形式:(1trycatch語句:一個(gè)try塊后接一個(gè)或多個(gè)catch塊。(2tryfinally語句:一個(gè)try塊后接一個(gè)finally塊。(3trycatchfinally:一個(gè)try塊后接一個(gè)或多個(gè)catch塊,后面再跟一個(gè)finally塊。習(xí)題4一、選擇題1.在關(guān)鍵字public后面定義的成員為類的(B 成員。A.私有B. 公有C.保護(hù)D. 任何2.如果不帶修飾符,C#中類成員被默認(rèn)聲明成( C 。A.publicB. protectedC.privateD. static2.可以在一個(gè)類中定義多個(gè)同名的方法,但只有使用的參數(shù)類型或者參數(shù)個(gè)數(shù)不同,編譯器
14、便知道在何種情況下應(yīng)該調(diào)用哪個(gè)方法,這是( D 。A.虛方法B. 運(yùn)算符重載C.抽象方法D. 方法重載3.關(guān)于構(gòu)造函數(shù),下列說法錯(cuò)誤的是( B 。A. C#中對(duì)對(duì)象進(jìn)行初始化的方法叫構(gòu)造函數(shù)。B. 構(gòu)造函數(shù)可不與類同名,可以用戶自己命名。C. 如果一個(gè)類沒有聲明任何實(shí)例構(gòu)造函數(shù),則系統(tǒng)會(huì)自動(dòng)提供一個(gè)默認(rèn)構(gòu)造函數(shù)。D. 構(gòu)造函數(shù)在類的聲明中,可以有函數(shù)名相同,但參數(shù)個(gè)數(shù)不同的多種形式。4.下列關(guān)于C#中繼承的描述,錯(cuò)誤的是( A 。A.一個(gè)子類可以有多個(gè)父類。B.通過繼承可以實(shí)現(xiàn)代碼重用。C.派生類還可以添加新的特征或者是修改已有的特征以滿足特定的要求。D.繼承是指基于已有類創(chuàng)建新類的語言能力。
15、5.可以在一個(gè)類中定義多個(gè)同名的方法,但只有使用的參數(shù)類型或者參數(shù)個(gè)數(shù)不同,編譯器便知道在何種情況下應(yīng)該調(diào)用哪個(gè)方法,這是( D 。A.虛方法B. 運(yùn)算符重載C.抽象方法D. 方法重載6.關(guān)于構(gòu)造函數(shù),下列說法錯(cuò)誤的是( D 。A. 默認(rèn)構(gòu)造函數(shù)定義了對(duì)象的默認(rèn)狀態(tài)。B. 非默認(rèn)構(gòu)造函數(shù)將根據(jù)傳入的參數(shù)來初始化對(duì)象的數(shù)據(jù)。C. 如果沒有為類定義默認(rèn)構(gòu)造函數(shù),編譯器將自動(dòng)為類創(chuàng)建一個(gè)默認(rèn)構(gòu)造函數(shù)。D. 非默認(rèn)構(gòu)造函數(shù)應(yīng)當(dāng)總是包含對(duì)象的默認(rèn)狀態(tài)。7.接口是一種引用類型,在接口中可以聲明( A ,但不可以聲明公有的域或私有的成員變量。A. 方法、屬性、索引器和事件B. 方法、屬性信息、屬性C. 索引
16、器和字段D. 事件和字段8.聲明一個(gè)委托public delegate int myCallBack(int x;則用該委托產(chǎn)生的回調(diào)方法的原型應(yīng)該是( B 。A. void myCallBack(int xB. int receive(int numC. string receive(int xD. 不確定的二、填空題1.面向?qū)ο蟪绦蛟O(shè)計(jì)具有(封裝、(繼承和(多態(tài)等三個(gè)基本特征。2.(字段是類定義中的數(shù)據(jù),也叫類定義中的變量。3.(方法實(shí)質(zhì)上就是函數(shù),通常用于對(duì)字段進(jìn)行計(jì)算和操作,即對(duì)類中的數(shù)據(jù)進(jìn)行操作。4.方法參數(shù)傳遞按性質(zhì)可以分為(按值傳遞和(按引用傳遞兩種。5. 構(gòu)造函數(shù)是一種特殊的方
17、法成員,其主要作用是在創(chuàng)建對(duì)象時(shí)(初始化新對(duì)象。6. 聲明靜態(tài)成員需要使用(static 修飾符。7. 在進(jìn)行類定義時(shí)不需要編寫代碼就可以包含另一個(gè)類定義的數(shù)據(jù)成員、方法成員等的特征,稱為類的(繼承。8. 委托是一種引用數(shù)據(jù)類型,派生于.NET Framework中的(Delegate 類。三、問答題1.簡(jiǎn)述類與對(duì)象的關(guān)系。答:類是對(duì)象的抽象描述和概括,例如:車是一個(gè)類,自行車、汽車、火車也是類,但是自行車、汽車、火車都屬于車這個(gè)類的子類,因?yàn)樗鼈冇泄餐奶攸c(diǎn)就是都是交通工具,都有輪子,都可以運(yùn)輸。而汽車有顏色、車輪、車門、發(fā)動(dòng)機(jī)等特征,這是和自行車、火車所不同的地方,是汽車類自己的屬性,也是
18、所有汽車共同的屬性,所以汽車也是一個(gè)類,而具體到某一輛汽車,它有具體的顏色、車輪、車門、發(fā)動(dòng)機(jī)等屬性值,因此某輛汽車就是一個(gè)對(duì)象。類是抽象的概念,對(duì)象是具體的概念,在軟件設(shè)計(jì)中很容易區(qū)分類和對(duì)象。假設(shè)軟件中的按鈕是一個(gè)類,按鈕類具有長度、寬度、位置、顏色等屬性,具有單擊、雙擊、移動(dòng)等行為,當(dāng)所設(shè)計(jì)的一個(gè)具體的按鈕具有特定的長度、寬度、位置、顏色等屬性值,具有單擊、雙擊、移動(dòng)時(shí)所發(fā)生的具體行為,那么這時(shí)就構(gòu)成了一個(gè)按鈕對(duì)象。2. 屬性是類的數(shù)據(jù)成員嗎?什么是方法?C#允許在類定義外部聲明方法嗎?答:屬性是類的數(shù)據(jù)成員。方法用來完成類或?qū)ο蟮男袨?在面向?qū)ο缶幊陶Z言中,類或?qū)ο笫峭ㄟ^方法來與外界交
19、互的,所以方法是類與外界交互的基本方式。方法通常是包含解決某一特定問題的語句塊,方法必須放在類定義中,方法同樣遵循先聲明后使用的原則。C#不允許在類定義外部聲明方法3. 在方法的調(diào)用中,基本數(shù)據(jù)類型作為參數(shù)默認(rèn)是按什么方式傳遞?類對(duì)象作為參數(shù)默認(rèn)是按什么方式傳遞的?類對(duì)象可以按值方式傳遞嗎?基本數(shù)據(jù)類型參數(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í)參的值,從而
20、保證了實(shí)參數(shù)據(jù)的安全?;绢愋?包括string與object的參數(shù)在傳遞時(shí)默認(rèn)為按值傳遞。一個(gè)方法只能返回一個(gè)值,但實(shí)際應(yīng)用中常常需要方法能夠修改或返回多個(gè)值,這時(shí)只靠return語句顯然是無能為力的。如果需要方法返回多個(gè)值,就可以使用按引用傳遞參數(shù)的方式實(shí)現(xiàn)這種功能。按引用傳遞是指實(shí)參傳遞給形參時(shí),不是將實(shí)參的值復(fù)制給形參,而是將實(shí)參的引用傳遞給形參,此時(shí),實(shí)參與形參使用的是同一個(gè)內(nèi)存地址中的值。這種參數(shù)傳遞方式的特點(diǎn)是形參的值發(fā)生改變時(shí),同時(shí)也改變實(shí)參的值?;绢愋蛥?shù)按引用傳遞時(shí),形參實(shí)際上是實(shí)參的別名。基本類型參數(shù)按引用傳遞時(shí),實(shí)參與形參前均須使用關(guān)鍵字ref。4. 重載方法的基本要
21、求是什么?C#中的靜態(tài)方法應(yīng)該怎樣調(diào)用?方法重載有兩點(diǎn)要求:(1重載的方法名稱必須相同;(2重載方法的形參個(gè)數(shù)或類型必須不同,否則將出現(xiàn)“已經(jīng)定義了一個(gè)具有相同類型參數(shù)的方法成員”的編譯錯(cuò)誤。靜態(tài)方法屬于類本身,只能使用類調(diào)用,不能使用對(duì)象調(diào)用。5. 什么是類的繼承?怎么定義派生類?繼承就是在已有類的基礎(chǔ)上建立新的類,新的類既具備原有類的功能和特點(diǎn),又可以將這些功能在原有基礎(chǔ)上進(jìn)行拓展。由于新的類是由原來的類發(fā)展而來,所以又被稱為原有類的派生類(子類,而原有類就是新類的基類(父類。定義一個(gè)繼承于基類的派生類的語法格式如下:【訪問修飾符】class 派生類名稱:基類名稱/派生類的類體其中,訪問修
22、飾符可以是public、protected和private,通常都使用public以保證類的開放性,并且public可以省略,因?yàn)轭惗x的訪問控制默認(rèn)是public?!?基類名稱”表示所繼承的類。定義的派生類默認(rèn)繼承了基類的所有成員,包括變量和方法(構(gòu)造函數(shù)和析構(gòu)函數(shù)除外,基類中用private訪問修飾符限制的成員不能被繼承。6. 什么是多態(tài)性?多態(tài)性有何作用?多態(tài)性可以簡(jiǎn)單地概括為“一個(gè)接口,多種方法”,它在程序運(yùn)行的過程中才決定調(diào)用的方法,多態(tài)性是面向?qū)ο缶幊痰暮诵母拍?。多態(tài)使得子類(派生類的實(shí)例可以直接賦予基類的對(duì)象(不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,然后直接就可以通過這個(gè)對(duì)象調(diào)用子類(派生類的方
23、法。多態(tài)則是為了實(shí)現(xiàn)另一個(gè)目的接口重用,因?yàn)榻涌谑亲詈馁M(fèi)時(shí)間的資源,實(shí)質(zhì)上設(shè)計(jì)一個(gè)接口要比設(shè)計(jì)一堆類要顯得更有效率。習(xí)題5一、選擇題1.在C#.Net中,用來創(chuàng)建主菜單的對(duì)象是( C 。A. MenuB.MenuItemC.MenuStripD.Item2.下面所列舉的應(yīng)用程序中,不是多文檔應(yīng)用程序的是( D A.WordB.ExcelC.PowerPointD.記事本3.加載窗體時(shí)觸發(fā)的事件是( B 。A. ClickB. LoadC. GotFoucsD. DoubleClick4. .建立訪問鍵時(shí),需在菜單標(biāo)題的字母前添加的符號(hào)是( D 。A. !B. #C. $D. &5. .
24、使用Dirctory類的下列方法,可以獲取指定文件夾中的文件的是( B .A. Exists(B. GetFiles(C. GetDirectories(D. CreateDirectory(二、填空題1.在C#Net中,窗體父子關(guān)系通過(MDI窗體窗口來創(chuàng)建。2.根據(jù)Windows窗體的顯示狀態(tài),可以分為(模式窗體和(非模式窗體。3.將文本框設(shè)置為只讀,可以通過修改(ReadOnly 屬性實(shí)現(xiàn)。4.(MenuStrip 控件又稱為菜單控件,主要用來設(shè)計(jì)程序的菜單欄。5. 計(jì)時(shí)器控件每隔一定的時(shí)間間隔引發(fā)一次(Tick 事件。6. ProgressBar控件又稱為(進(jìn)度條控件。7. 將文本框控
25、件設(shè)置為密碼文本框,可以通過修改(PassWordChar 屬性實(shí)現(xiàn)。三、問答題1.Windows應(yīng)用程序的菜單通常由哪些部分組成?答:MenuStrip控件,又稱為菜單控件,它主要用來設(shè)計(jì)程序的菜單欄,C#中的MenuStrip 控件支持多文檔界面、菜單合并、工具提示和溢出等功能,開發(fā)人員可以通過添加訪問鍵、快捷鍵、選中標(biāo)記、圖像和分隔條來增強(qiáng)菜單的可用性和可讀性。MenuStrip控件主要用于在程序窗體中顯示菜單,其中菜單標(biāo)題項(xiàng)的快捷鍵是通過其Text屬性中的“&”字符進(jìn)行設(shè)置的,當(dāng)菜單處于打開狀態(tài)時(shí),可以通過按下Alt鍵和相應(yīng)的字母打開相應(yīng)的菜單項(xiàng)。而菜單項(xiàng)的快捷鍵通過設(shè)置菜單項(xiàng)
26、的Shortcut 屬性進(jìn)行設(shè)置,例如“紅”菜單項(xiàng)對(duì)應(yīng)的“Ctrl+D”,用戶無需打開菜單,直接按Ctrl+R鍵時(shí),就相當(dāng)于單擊該菜單項(xiàng)。ContextMenuStrip控件,又稱為快捷菜單控件,它用來表示快捷菜單。2. 在實(shí)際應(yīng)用中,菜單可以分為哪兩種形式?在C#中設(shè)計(jì)菜單使用哪兩種控件?請(qǐng)簡(jiǎn)述其設(shè)計(jì)步驟。答:Windows的菜單主要有下拉式菜單和彈出式快捷菜單兩種類型。在C#中設(shè)計(jì)菜單時(shí)分別使用MenuStrip控件和ContextMenuStrip控件。3. 簡(jiǎn)述工具欄與菜單共享代碼的方法。答:程序中工具欄按鈕的功能與主菜單中的命令項(xiàng)相對(duì)應(yīng),因此在功能實(shí)現(xiàn)上采用直接調(diào)用相應(yīng)主菜單項(xiàng)單擊事
27、件代碼的方式實(shí)現(xiàn),例如“menuOO_Click(sender,e;”即調(diào)用主菜單中的菜單項(xiàng)的單擊事件。4. 簡(jiǎn)述狀態(tài)欄面板StatusStrip的主要屬性及作用。答:StatusStrip控件,又稱為狀態(tài)欄控件,它通常放置在窗體的最底部,用于顯示窗體上一些對(duì)象的相關(guān)信息,或者可以顯示應(yīng)用程序的信息。StatusStrip控件由ToolStripStatusLabel對(duì)象組成,每個(gè)這樣的對(duì)象都可以顯示文本、圖像或同時(shí)顯示這二者,另外,StatusStrip控件還可以包含ToolStripDropDownButton、ToolStripSplitButton和ToolStripProgressB
28、ar等控件。5. 簡(jiǎn)述模式窗體與非模式窗體的區(qū)別。答:模式窗體就是使用ShowDialog方法顯示的窗體,它在顯示時(shí),如果作為激活窗體,則其它窗體不可用。只有在將模式窗體關(guān)閉之后,其它窗體才能恢復(fù)可用狀態(tài)。非模式窗體就是使用Show方法顯示的窗體,一般的窗體都是非模式窗體。非模式窗體在顯示時(shí),如果有多個(gè)窗體,用戶可以單擊任何一個(gè)窗體,單擊的窗體將立即成為激活窗體并顯示在屏幕的最前面。6. 簡(jiǎn)述KeyPress事件與KeyDown、KeyUp事件的主要不同點(diǎn)。答:C#主要為用戶提供了三種鍵盤事件,按下某個(gè)ASCII字符鍵時(shí)發(fā)生KeyPress事件,按下任意鍵時(shí)發(fā)生KeyDown事件和釋放鍵盤上任
29、意鍵時(shí)發(fā)生KeyUp事件。只有獲得焦點(diǎn)的對(duì)象才能夠接受鍵盤事件。只有當(dāng)窗體為活動(dòng)窗體且其上所有控件均未獲得焦點(diǎn)時(shí),窗體才獲得焦點(diǎn)。這種情況只有在空窗體和窗體上的控件都無效時(shí)才發(fā)生。但是,如果將窗體上的KeyPreview屬性設(shè)置為True,則窗體就會(huì)在控件識(shí)別其鍵盤事件之前搶先接受這些鍵盤事件。鍵盤事件彼此之間并不相互排斥,按下一鍵時(shí)產(chǎn)生KeyPress和KeyDown事件,放開該鍵時(shí)產(chǎn)生一個(gè)KeyUp事件,但應(yīng)注意KeyPress事件并不能識(shí)別所有的按鍵。習(xí)題6一、選擇題1.C# Winform 編程對(duì)文件夾操作,通常需要引入命名空間( C 。A.using System.IOB.using
30、 System.IOC.using System.IO實(shí)現(xiàn)遞歸刪除文件夾目錄及文件,下列程序中public static void DeleteFolder(string dirif (Directory._2_ (dir /如果存在這個(gè)文件夾刪除之foreach (string d in _3_.GetFileSystemEntries(dirif (File.Exists(dFile._4_(d; /直接刪除其中的文件else_5_(d; /遞歸刪除子文件夾Directory.Delete(dir; /刪除已空文件夾A、ExistB、ExistsC、DirectoryD、DeleteE、D
31、eleteFolderF、DeleteDirectory2、應(yīng)選擇(B 。3、應(yīng)選擇(C 。4、應(yīng)選擇(D 。5、應(yīng)選擇(E 。二、填空題1.C#文件操作,通常要引入(System.IO 命名空間。2、語句“Directory.Delete("f:bbs2", true;”的作用是( 將f:bbs2及其子目錄刪除.3、語句“string dirs = Directory.GetDirectories("f:", "b*"”的作用是( 獲取f:下以b開頭的目錄存儲(chǔ)到dirs數(shù)組中。4、設(shè)置文件屬性的方法是( File.SetAttrib
32、utes(filename,FileAttributes.ReadOnly; /把filename文件設(shè)置為只讀。5、確定文件是否存在的方法是( File.Exists(filename 。1.6、File.AppendText FileInfo.AppendText的作用是( 創(chuàng)建一個(gè) StreamWriter,它將 UTF-8 編碼文本追加到現(xiàn)有文件。三、問答題1. 請(qǐng)寫出遞歸刪除文件夾及文件的程序片段。private void Delete(string dirforeach (string subdir in Directory.GetDirectories(dirthis.Delet
33、e(subdir;foreach (string files in Directory.GetFiles(dirlabel.Text = string.Format("正在刪除0",files;File.Delete(files;2. 軟件注冊(cè)通常有哪些方法?各自的優(yōu)缺點(diǎn)是什么?軟件注冊(cè)可以通過獲取cpu、硬盤的序列號(hào),進(jìn)行加密,再寫入注冊(cè)表來實(shí)現(xiàn),也可以通過用戶名密碼來注冊(cè)。前者方式注冊(cè)軟件當(dāng)用戶更換計(jì)算機(jī)或者部件時(shí)需重新注冊(cè),但是破解較難;后者往往難以保證注冊(cè)用戶名、序列號(hào)不被惡意擴(kuò)散。3. 閱讀以下程序片段,說明該方法的主要功能。public static void
34、CopyFolder(string strFromPath,string strToPath/如果源文件夾不存在,則創(chuàng)建if (!Directory.Exists(strFromPathDirectory.CreateDirectory(strFromPath;/取得要拷貝的文件夾名string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("" +1,strFromPath.Length - strFromPath.LastIndexOf("" - 1;/如果目標(biāo)文件夾中沒有
35、源文件夾則在目標(biāo)文件夾中創(chuàng)建源文件夾if (!Directory.Exists(strToPath + "" + strFolderNameDirectory.CreateDirectory(strToPath + "" + strFolderName;/創(chuàng)建數(shù)組保存源文件夾下的文件名string strFiles = Directory.GetFiles(strFromPath;/循環(huán)拷貝文件for(int i = 0;i < strFiles.Length;i+/取得拷貝的文件名,只取文件名,地址截掉。string strFileName =
36、strFilesi.Substring(strFilesi.LastIndexOf("" +1,strFilesi.Length - strFilesi.LastIndexOf("" - 1;/開始拷貝文件,true表示覆蓋同名文件File.Copy(strFilesi,strToPath + "" + strFolderName + "" + strFileName,true; /創(chuàng)建DirectoryInfo實(shí)例DirectoryInfo dirInfo = new DirectoryInfo(strFromP
37、ath;/取得源文件夾下的所有子文件夾名稱DirectoryInfo ZiPath = dirInfo.GetDirectories(;for (int j = 0;j < ZiPath.Length;j+/獲取所有子文件夾名string strZiPath = strFromPath + "" + ZiPathj.ToString(;/把得到的子文件夾當(dāng)成新的源文件夾,從頭開始新一輪的拷貝CopyFolder(strZiPath,strToPath + "" + strFolderName;實(shí)現(xiàn)文件夾的拷貝功能。習(xí)題7一、選擇題1、ADO.NET
38、中數(shù)據(jù)庫連接是利用哪個(gè)對(duì)象的是(D 。A. SQLCommandB. SQLDataAdapterC. QLDataReaderD. SQLConnection2. 插入、刪除數(shù)據(jù)可用SqlCommand對(duì)象的(C 方法A. ExecuteReaderB. ExecuteScalarC. ExecuteNonQueryD. EndExecuteNonQuery3、在ADO.NET 中,為訪問DataTable對(duì)象從數(shù)據(jù)源提取的數(shù)據(jù)行??墒褂肈ataTable 對(duì)象的( A 屬性.A. RowsB. ColumnsC. ConstraintsD. DataSet4、SQL Server 的Win
39、dows 身份驗(yàn)證機(jī)制是指,當(dāng)網(wǎng)絡(luò)用戶嘗試連接到SQL Server 數(shù)據(jù)庫時(shí),以下哪個(gè)說法是正確的( C A. Windows 獲取用戶輸入的用戶和密碼,并提交給SQL Server 進(jìn)行身份驗(yàn)證,并決定用戶的數(shù)據(jù)庫訪問權(quán)限B. SQL Server 根據(jù)用戶輸入的用戶和密碼,提交給Windows 進(jìn)行身份驗(yàn)證,并決定用戶的數(shù)據(jù)庫訪問權(quán)限C. SQL Server 根據(jù)已在Windows 網(wǎng)絡(luò)中登錄的用戶的網(wǎng)絡(luò)安全屬性,對(duì)用戶身份進(jìn)行驗(yàn)證,并決定用戶的數(shù)據(jù)庫訪問權(quán)限D(zhuǎn). 登錄到本地Windows 的用戶均可無限制訪問SQL Server 數(shù)據(jù)庫5、參考下列C#語句:SqlConnection
40、 Conn1 = new SqlConnection( ;Conn1.C;Conn1.Open( ;SqlConnection Conn2 = new SqlConnection( ;Conn2.C;Conn2.Open( ;請(qǐng)問:上述語句將創(chuàng)建( B 個(gè)連接池來管理這些SqlConnection 對(duì)象A.1B.2C.0二、填空題1、為了在程序中使用DataSet 類定義數(shù)據(jù)集對(duì)象,應(yīng)在文件開始處添加對(duì)命名空間_System.Data_的引用.2、為創(chuàng)建在SQL Server 2000 中執(zhí)行Select 語句的Command 對(duì)象,可先建立到SQL Server2000 數(shù)據(jù)庫的連接,然后使
41、用連接對(duì)象的_CreateCommand_方法創(chuàng)建SqlCommand 對(duì)象.三、問答題(1采用LINQ技術(shù)訪問數(shù)據(jù)庫與采用ADO.NET訪問數(shù)據(jù)庫,有什么優(yōu)勢(shì)?答:1、無需復(fù)雜學(xué)習(xí)過程即可上手2、編寫更少代碼即可創(chuàng)建完整應(yīng)用。3、更快開發(fā)錯(cuò)誤更少的應(yīng)用程序。4、無需求助奇怪的編程技巧就可合并數(shù)據(jù)源5、讓新開發(fā)者開發(fā)效率更高(2LINQ的語法跟一般SQL語句的語法有哪些區(qū)別?答:LINQ 查詢語法是以from 關(guān)鍵字開頭的,而不是以select 關(guān)鍵字開頭的。簡(jiǎn)單來說,為了IDE的智能感知(Intelisence這個(gè)功能,select 關(guān)鍵字放在后面了。編程語言以select 開頭寫LINQ查
42、詢語法不是沒出現(xiàn)過,你如果使用過2005年的VB9 CTP 版本,那時(shí)候VB9的LINQ查詢語法就是select 關(guān)鍵字在前面,但是select 關(guān)鍵字在前面,在做智能感知(Intelisence時(shí)候就很頭大。經(jīng)過微軟IDE組的權(quán)衡,確定了把from 關(guān)鍵字放在最前面。(3 DataSet與SQLDataReader有哪些區(qū)別?答:檢索數(shù)據(jù)庫的數(shù)據(jù)時(shí),DataSet取得所有的信息,并將其保存在內(nèi)存中。使用這種離線數(shù)據(jù)源,可以完成隨意修改數(shù)據(jù),數(shù)據(jù)轉(zhuǎn)換格式等簡(jiǎn)潔的工作。但如果需要從數(shù)據(jù)庫返回大量的數(shù)據(jù),將受到內(nèi)存的限制,因?yàn)檎麄€(gè)DataSet都保存在內(nèi)存中。特別是用戶很多時(shí),由于每個(gè)用戶都有自己
43、的DataSet,將可能出現(xiàn)問題。OleDbDataReader每次只將一條記錄保存到內(nèi)存中,按要求依次從數(shù)據(jù)源取得數(shù)據(jù),避免了使用大量?jī)?nèi)存而提高了性能,但由于數(shù)據(jù)依次取回,所以O(shè)leDbDataReader功能沒有Da taSet強(qiáng)大。而且,OleDbDataReader 是只讀的,并且不能查看前面的記錄。如果不需要客戶返回值,只需要顯示而不修改,用sqldatareader效率比較高。相反用dataset。sqldatareader提供一種從數(shù)據(jù)庫讀取只進(jìn)的行流的方式. 如果用到分頁或者需要有暫存數(shù)據(jù)的地方,用dataset。習(xí)題8一、選擇題1、在C#中,MS為我們提供了( A 命名空間,
44、里面包含了Socket類。B、System.NeC、System.Threading2、TCP最主要的特點(diǎn)是( A 。A、是一種基于連接的協(xié)議(類似于打電話B、保證數(shù)據(jù)準(zhǔn)確到達(dá)C、保證各數(shù)據(jù)到達(dá)的順序與數(shù)據(jù)發(fā)出的順序相同D、傳輸?shù)臄?shù)據(jù)無消息邊界3、在同步工作方式下,TcpListener類常用的方法( B A、AcceptTcpClient;B、StartC、StopD、Play4、在.NET中,提供異步處理功能的有:(ABCDEFG A、文件I/O、流I/O、套接字I/O。B、網(wǎng)絡(luò)。C、遠(yuǎn)程處理信道(HTTP、TCP和代理。D、使用ASP.NET 創(chuàng)建的XML Web services。E、
45、ASP.NET Web 窗體。F、使用MessageQueue 類的消息隊(duì)列。G、BackgroundWorker等組件二、填空題2、Socket編程中,連接創(chuàng)建完畢,就可以使用其(BeginSend 或(EndSend 方法將數(shù)據(jù)發(fā)送到Socket;同樣使用其(BeginReceive 或(EndReceive 方法從Socket中讀取數(shù)據(jù)。在Socket使用完畢后,應(yīng)使用其(Shutdown 方法禁用Socket,并使用(Close 方法關(guān)閉Socket。System.Net; 。4、UdpClient類是提供用戶數(shù)據(jù)報(bào)UDP網(wǎng)絡(luò)服務(wù)的。UdpClient類提供了一些簡(jiǎn)單的方法,用于在阻塞
46、同步模式下發(fā)送和接收無連接UDP數(shù)據(jù)報(bào)。因?yàn)閁DP是無連接傳輸協(xié)議,所以不需要在發(fā)送和接收數(shù)據(jù)前建立遠(yuǎn)程主機(jī)連接。但可以選擇使用下面兩種方法之一來建立默認(rèn)遠(yuǎn)程主機(jī):(1使用遠(yuǎn)程(主機(jī)名和(端口號(hào)作為參數(shù)創(chuàng)建UdpClient類的實(shí)例。(2創(chuàng)建UdpClient類的實(shí)例,然后調(diào)用(Connect 方法。三、簡(jiǎn)答題1、使用同步TCP編寫服務(wù)器端應(yīng)用程序的一般步驟是什么?使用同步TCP編寫服務(wù)器端應(yīng)用程序的一般步驟是:1、創(chuàng)建一個(gè)socket,用函數(shù)socket(;2、綁定IP地址、端口等信息到socket上,用函數(shù)bind(; 3、開啟監(jiān)聽,用函數(shù)listen(;4、接收客戶端上來的連接,用函數(shù)a
47、ccept(;5、收發(fā)數(shù)據(jù),用函數(shù)send(和recv(,或者read(和write(; 6、關(guān)閉網(wǎng)絡(luò)連接;7、關(guān)閉監(jiān)聽。2、TcpClient類和TcpListener類均封裝了底層的套接字,并分別提供了對(duì)套接字進(jìn)一步封裝后的同步和異步操作的方法,降低了TCP應(yīng)用編程的難度,請(qǐng)寫出它們各自的作用。TcpClient 類提供了一些簡(jiǎn)單的方法,用于在同步阻塞模式下通過網(wǎng)絡(luò)來連接、發(fā)送和接收流數(shù)據(jù)。為使TcpClient 連接并交換數(shù)據(jù),使用TCP ProtocolType 創(chuàng)建的TcpListener 或Socket 必須偵聽是否有傳入的連接請(qǐng)求??梢允褂孟旅鎯煞N方法之一連接到該偵聽器:創(chuàng)建一個(gè)TcpClient,并調(diào)用三個(gè)可用的Connect 方法之一。使用遠(yuǎn)程主機(jī)的主機(jī)名和端口號(hào)創(chuàng)建TcpClient。此構(gòu)造函數(shù)將自動(dòng)嘗試一個(gè)連接。TcpListener 類從TCP 網(wǎng)絡(luò)客戶端偵聽連接。TcpListener 類提供一些簡(jiǎn)單方法,用于在阻塞同步模式下偵聽和接受傳入連接請(qǐng)求??墒褂肨cpClient 或Socket 來連接TcpListener??墒褂肐PEndPoint、本地IP 地址及端口號(hào)或者僅使用端口號(hào),來創(chuàng)建TcpListener??梢?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)器人技術(shù)轉(zhuǎn)讓協(xié)議
- 公司銷售業(yè)務(wù)員合同協(xié)議
- 三農(nóng)村電商供應(yīng)鏈管理與優(yōu)化方案
- 單方面自愿離婚協(xié)議書
- 2025年錢包、座套相關(guān)皮革制品合作協(xié)議書
- 游戲行業(yè)游戲開發(fā)與用戶體驗(yàn)提升策略方案
- 租車協(xié)議終止合同協(xié)議書
- 第3課《我不拖拉》教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
- 全國江西科學(xué)技術(shù)版小學(xué)信息技術(shù)六年級(jí)下冊(cè)第一單元第5課《主題活動(dòng):汽車定速巡航》教學(xué)設(shè)計(jì)
- 植入法嵌巖鋼管樁施工方案
- 中國餐飲供應(yīng)鏈行業(yè)現(xiàn)狀及趨勢(shì)(附市場(chǎng)規(guī)模、產(chǎn)業(yè)鏈及重點(diǎn)企業(yè))
- 深度學(xué)習(xí)視角下“尺規(guī)作圖”教學(xué)策略
- 溫度均勻性測(cè)試報(bào)告
- 會(huì)陰擦洗課件
- 呼吸道疾病的健康宣教
- 2024-2030中國半導(dǎo)體閥門及管接頭市場(chǎng)現(xiàn)狀研究分析與發(fā)展前景預(yù)測(cè)報(bào)告
- 動(dòng)物生產(chǎn)與流通環(huán)節(jié)檢疫(動(dòng)物防疫檢疫課件)
- 公務(wù)員面試考官培訓(xùn)
- 繽紛天地美食街運(yùn)營方案
- 2024年青島港灣職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及答案解析
- 提高留置針規(guī)范使用率
評(píng)論
0/150
提交評(píng)論