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

下載本文檔

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

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論