C#開發(fā)基礎(chǔ)(習(xí)題卷6)_第1頁
C#開發(fā)基礎(chǔ)(習(xí)題卷6)_第2頁
C#開發(fā)基礎(chǔ)(習(xí)題卷6)_第3頁
C#開發(fā)基礎(chǔ)(習(xí)題卷6)_第4頁
C#開發(fā)基礎(chǔ)(習(xí)題卷6)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

試卷科目:C#開發(fā)基礎(chǔ)C#開發(fā)基礎(chǔ)(習(xí)題卷6)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC#開發(fā)基礎(chǔ)第1部分:單項選擇題,共52題,每題只有一個正確答案,多選或少選均不得分。[單選題]1.異常是在什么時候發(fā)生的?A)編寫程序時B)編譯時C)運行時D)最終用戶發(fā)出請求時答案:C解析:異常是在程序執(zhí)行期間出現(xiàn)的問題。C#中的異常是對程序運行時出現(xiàn)的特殊情況的一種響應(yīng),比如嘗試除以零。異常提供了一種把程序控制權(quán)從某個部分轉(zhuǎn)移到另一個部分的方式。C#異常處理時建立在四個關(guān)鍵詞之上的:try、catch、finally和throw。try:一個try塊標(biāo)識了一個將被激活的特定的異常的代碼塊。后跟一個或多個catch塊。catch:程序通過異常處理程序捕獲異常。catch關(guān)鍵字表示異常的捕獲。finally:finally塊用于執(zhí)行給定的語句,不管異常是否被拋出都會執(zhí)行。例如,如果您打開一個文件,不管是否出現(xiàn)異常文件都要被關(guān)閉。throw:當(dāng)問題出現(xiàn)時,程序拋出一個異常。使用throw關(guān)鍵字來完成[單選題]2.把文本框textBox1內(nèi)選中的文本清除的語句為______。A)this.textBox1.Focus();B)this.textBox1.SelectionStart=0;C)this.textBox1.SelectionLength=0;D)this.textBox1.SelectedText=??;答案:D解析:[單選題]3.下列關(guān)于while語句的描述中,正確的是()。A)while語句和do-while語句功能一樣B)while語句將循環(huán)條件放在了循環(huán)體的后面C)while循環(huán)語句循環(huán)條件可是true,表示一直循環(huán)D)while循環(huán)中無論循環(huán)條件是否成立,循環(huán)體都會被執(zhí)行一次答案:C解析:[單選題]4.以下()屬性可以得到ArrayList的容量A)CountB)CapacityC)IsSynchronizedD)Length答案:B解析:count是指集合中實際包含的元素數(shù),而capacity是指集合可以包含的元素數(shù)可以理解為capacity>=count;如果超過了capacity,容量就會翻倍例如這個代碼ArrayListarr=newArrayList();for(inti=0;i<3;i++){arr.add(i);}arr.RemoveAt(1);Console.WriteLine(arr.Count);Console.WriteLine(arr.Capacity);輸出結(jié)果為24[單選題]5.在C#中,要在Winforms窗體中使用DataGridView控件來綁定并顯示一張表的數(shù)據(jù),需要設(shè)置其()屬性來指定數(shù)據(jù)源A)DataBindB)IDC)StyleD)DataSource答案:D解析:[單選題]6.在控制臺應(yīng)用程序中,如果在程序開頭使用usingSystem;語句引入了System命名空間,則下列對Read()和ReadLine()方法調(diào)用錯誤的是()A)System.Console.Read();B)Console.Read();C)Console.ReadLine();D)Read();答案:D解析:[單選題]7.下列運算符中,優(yōu)先級最高的是()。A)==B)++C)&&D)?答案:B解析:[單選題]8.面向?qū)ο蟪绦蛟O(shè)計中,把對象的屬性和行為組織在同一個模塊內(nèi)的機制叫做()A)抽象B)繼承C)封裝D)多態(tài)答案:C解析:概念理解[單選題]9.C#中導(dǎo)入某一命名空間的關(guān)鍵字是()。A)usingB)useC)importD)include答案:A解析:using引入命名空間。[單選題]10.當(dāng)變量x的值在[1,100]范圍內(nèi)時,下面的C#表達式返回值為?真?的是()。A)1<=x<=100B)x>=1||x<=100C)x>1&&x<100D)x>=1&&x<=100答案:D解析:[單選題]11.如果intx=10,a=0,b=25,那么表達式x<10?a+10:b的值是()。A)10B)0C)25D)1答案:C解析:[單選題]12.以下類型的應(yīng)用程序適合于交互性操作較少的情況。A)Windows應(yīng)用程序B)控制臺應(yīng)用程序C)Web應(yīng)用程序D)以上都不是答案:B解析:[單選題]13.在HTML5表格標(biāo)簽中,使用什么屬性設(shè)置表格邊框()A)background-colorB)backgroundC)borderD)border-width答案:C解析:[單選題]14.下面有關(guān)變量及其作用域的陳述哪一項是錯誤的?()。A)在方法里面定義的局部變量在方法退出的時候被撤銷B)局部變量只在定義它的方法內(nèi)有效C)在方法外面定義的實例變量在對象被構(gòu)造時創(chuàng)建D)在方法中定義的方法的參變量只要該對象被需要就一直存在答案:D解析:[單選題]15.下列選項中,屬于循環(huán)結(jié)構(gòu)的是()。A)if…elseB)switchC)breakD)while答案:D解析:goto循環(huán)、while循環(huán)、do…while循環(huán)和for循環(huán)。[單選題]16.在C#中,按鈕控件Button,設(shè)置()屬性,則用戶每次按?ESC?鍵相當(dāng)于?單擊?該按鈕A)DeleteB)CancelButtonC)CloseD)Open答案:B解析:[單選題]17.關(guān)于實現(xiàn)多態(tài)下面哪個選項是不正確的?()A)你可以通過實現(xiàn)接口來實現(xiàn)多態(tài)B)你可以通過繼承實現(xiàn)多態(tài).C)你可以通過封裝實現(xiàn)多態(tài)D)你可以通過使用抽象類實現(xiàn)多態(tài).答案:C解析:[單選題]18.下列哪個符號代表運算符?()A)(*,/,+,-,%)B)(&,<,\,|,>)C)(@,$,\,&,<)D)(^,>,<,~,\)答案:A解析:[單選題]19.分析下列語句:NamespaceNS{publicdelegatevoidHello(stringtarget);}該語句的作用是。A)在NS命名空間中定義了一個名稱為Hello的全局方法B)在NS命名空間中聲明了函數(shù)Hello的原型C)在NS命名空間中聲明了一個名稱為Hello的函數(shù)指針D)在NS命名空間中聲明了一個名稱為Hello的委托類型答案:D解析:[單選題]20.在C#中,以下代碼的輸出結(jié)果是()intx=5;x+=x+++++x;Console.WriteLine(x);A)16B)17C)25D)26答案:B解析:[單選題]21.表達式12/4-2+5*84%5/2的值為()。A)1B)3C)4D)10答案:A解析:5*84%5是取余=0。所以最終為1。[單選題]22.關(guān)于ArrayList集合,下列描述錯誤的是()。A)ArrayList集合長度和數(shù)組一樣是不可變的B)ArrayList集合可以存儲不同類型的任意元素C)ArrayList集合繼承自objectD)ArrayList集合中沒有Length這個屬性答案:A解析:ArrayList就是傳說中的動態(tài)數(shù)組,可變[單選題]23.在C#中,執(zhí)行完代碼int[]x=newint[10];后,下列說明正確的是()A)x[9]為0B)x[9]未定義C)x[10]為0D)x[0]為空答案:A解析:[單選題]24.在C#中,用try…catch機制處理程序中出現(xiàn)的()錯誤A)編譯B)運行C)邏輯D)語法答案:B解析:[單選題]25.當(dāng)窗體關(guān)閉時會觸發(fā)以下哪個事件。()A)MouseClickB)FormClosingC)KeyDownD)Loads答案:B解析:[單選題]26.在C#中,C#中,回車字符對應(yīng)的轉(zhuǎn)義字符串為()A)\rB)\fC)\nD)\t答案:C解析:[單選題]27.下列關(guān)于數(shù)組訪問的描述中,哪些選項是錯誤的?()。A)數(shù)組元素索引是從0開始的B)對數(shù)組元素的所有訪問都要進行邊界檢查C)如果使用的索引小于0,或大于數(shù)組的大小,編譯器將拋出一個InDexOutOfRAngeExCeption異常;D)數(shù)組元素的訪問是從1開始,到Length結(jié)束;答案:D解析:[單選題]28.關(guān)于單例模式的作用,下列描述中正確的是()。A)保證程序中只存在一個類的實例對象B)減少程序出錯C)捕獲程序中出現(xiàn)的錯誤D)保證程序中可以存在多個對象答案:A解析:[單選題]29.下列關(guān)于.Net的說法,正確的是()。A)Net只能做C/S架構(gòu)。B)Net只能做B/S架構(gòu)。C)Net可以做B/S和C/S架構(gòu)。D)以上說法都錯誤。答案:C解析:[單選題]30.C#中下列變量標(biāo)識符定義不正確的是()A)m_nB)_A124;C)@3_4;D)uDouBle答案:C解析:[單選題]31.在HTML5中,input元素的type屬性值為()表示該按鈕為提交按鈕。A)submitB)upperC)buttonD)reset答案:A解析:[單選題]32.如果數(shù)組聲明為int[]score={5,10,15};,則數(shù)組中元素總數(shù)是多少?()A)5B)3C)1D)0答案:B解析:[單選題]33.序列化的對象需要加上以下哪個標(biāo)簽()。A)SerializableB)SerializablesC)SerialD)lizables答案:A解析:[單選題]34.聲明結(jié)構(gòu)型的關(guān)鍵字是()A)enumB)structC)classD)interface答案:B解析:[單選題]35.能夠顯示消息框的語句是()。A)Message.Show("測試");B)Message.ShowDialog("測試");C)MessageBox.Show("測試");D)MessageBox.ShowDialog("測試");答案:C解析:[單選題]36.是將值類型轉(zhuǎn)換成引用類型。A)裝箱B)拆箱C)賦值D)實例化答案:A解析:[單選題]37.關(guān)于Button控件的屬性和事件,下列說法錯誤的是()。A)Visible指示當(dāng)前控件是否可見B)Enabled指示當(dāng)前控件是否可用C)MouseEnter當(dāng)鼠標(biāo)進入按鈕后觸發(fā)D)Click點擊控件時觸發(fā)答案:C解析:[單選題]38.在下列C#代碼中,程序的命名空間是()usingSystem;namespaceTest{classProgram{staticvoidMain(string[]args){Console.Write(?HelloWorld!?);}}}A)TestB)MainC)namespaceD)Program答案:A解析:namespaceTest命名空間。[單選題]39.創(chuàng)建菜單后,為了實現(xiàn)菜單項的命令功能,應(yīng)為菜單項添加()事件處理方法。A)DrAwItemB)PopupC)CliCkD)SeleCt答案:C解析:[單選題]40.下列選項中,屬于自動類型轉(zhuǎn)換的是()。A)doublenumber=20B)intnumber=(int)20.4C)stringtemp='s'D)charc="s"答案:A解析:[單選題]41.要計算5的7次方,可以利用System.Math類提供的靜態(tài)方法是()。A)BigMulB)AtanC)PowD)Sqrt答案:C解析:[單選題]42.String.Compare()方法用于比較字符串,其返回值類型是()。A)boolB)stringC)intD)double答案:C解析:[單選題]43.下列哪個類型的對象是ADO.NET在非連接模式下處理數(shù)據(jù)內(nèi)容的主要對象?()A)CommandB)ConnectionC)DataAdapterD)DataSet答案:D解析:連接環(huán)境:連接環(huán)境是指用戶在這種環(huán)境下始終保持與數(shù)據(jù)源的連接優(yōu)點:>環(huán)境易于實施安全控制>同步問題易控制>數(shù)據(jù)實時性優(yōu)于其他環(huán)境缺點:>必須保持持續(xù)的網(wǎng)絡(luò)連接>擴展性差非連接環(huán)境:在非連接環(huán)境中,中央數(shù)據(jù)存儲的一部分?jǐn)?shù)據(jù)可以被獨立地復(fù)制與更改,在需要時可以與數(shù)據(jù)源合并優(yōu)點>可以在任何需要的時間進行操作,在必要時才連接到數(shù)據(jù)源>不獨占連接>非連接環(huán)境的應(yīng)用提高了應(yīng)用的擴展性與性能缺點>數(shù)據(jù)不是實時的>必須解決數(shù)據(jù)的并發(fā)性與同步問題(重要)DataSet類是ADO.NET中最核心的成員之一,也是各種開發(fā)基于.Net平臺程序語言開發(fā)數(shù)據(jù)庫應(yīng)用程序最常接觸的類。每一個DataSet都有很多個DataTables和Relationships。RelationShip應(yīng)該也是一種表,特殊的是,這個表只是用來聯(lián)系兩個數(shù)據(jù)表的。每一個DataTable都有很多datarows和datacols,也包括ParentRelations,ChildRelations和一些限制條件像主鍵不可以重復(fù)的限制。DataSet每一行有一個RowState屬性。主要是反映當(dāng)前行是否已經(jīng)被刪掉了,被更新了,還是本沒變。有如下的幾個選項:Deleted,Modified,New,andUnchanged。對DataSet的任何操作,都是在計算機緩存中完成的。在從數(shù)據(jù)庫完成數(shù)據(jù)抽取后,DataSet就是數(shù)據(jù)的存放地,它是各種數(shù)據(jù)源中的數(shù)據(jù)在計算機內(nèi)存中映射成的緩存,所以有時說DataSet可以看成是一個數(shù)據(jù)容器。DataSet對象是一個可以用XML形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)關(guān)系視圖。DataSet使用方法一般有三種:1.把數(shù)據(jù)庫中的數(shù)據(jù)通過DataAdapter對象填充DataSetDataAdapter填充DataSet的過程分為二步:首先通過DataAdapter的SqlCommand屬性從數(shù)據(jù)庫中檢索出需要的數(shù)據(jù)。SqlCommand其實是一個Command對象。然后再通過DataAdapter的Fill方法把檢索來的數(shù)據(jù)填充DataSet。2.通過DataAdapter對象操作DataSet實現(xiàn)更新數(shù)據(jù)庫DataAdapter是通過其Update方法實現(xiàn)以DataSet中數(shù)據(jù)來更新數(shù)據(jù)庫的。當(dāng)DataSet實例中包含數(shù)據(jù)發(fā)生更改后,此時調(diào)用Update方法,DataAdapter將分析已作出的更改并執(zhí)行相應(yīng)的命令(INSERT、UPDATE或DELETE),并以此命令來更新數(shù)據(jù)庫中的數(shù)據(jù)。3.把XML數(shù)據(jù)流或文本加載到DataSetDataSet中的數(shù)據(jù)可以從XML數(shù)據(jù)流或文檔創(chuàng)建。加載XML數(shù)據(jù)流和文檔到DataSet中是可使用DataSet對象的ReadXml方法。[單選題]44.()是decimal類型數(shù)據(jù)。A)123LB)123.4MC)123.4FD)123.4答案:B解析:[單選題]45.用ListBox(列表框)最后一個數(shù)據(jù)項應(yīng)使用()語句A)ListBox1.Items[ListBox1.Items.Count]B)ListBox1.Items[ListBox1.SelectedIndex]C)ListBox1.Items[ListBox1.Items.Count-1]D)ListBox1.Items[ListBox1.SelectedIndex-1]答案:C解析:ListBox1.Items.是一個數(shù)組,所以是從0開始。最后一個就是總數(shù)-1.[單選題]46.要使類不能被繼承,需要使用哪個關(guān)鍵字?()A)abstractB)virtualC)sealedD)interface答案:C解析:[單選題]47.在基類中使用()關(guān)鍵字定義的方法,可以在派生類中重寫(override)。A)publicB)newC)staticD)virtual答案:D解析:[單選題]48.在C#中,要創(chuàng)建多文檔應(yīng)用程序,需要將窗體的()屬性設(shè)置為trueA)DrawGridB)EnabledC)ShowInTaskerD)IsMdiContainer答案:D解析:[單選題]49.在C#中,圖片框控件的()屬性獲取或設(shè)置其顯示的圖像A)ImageB)PictureC)TextD)Show答案:A解析:[單選題]50.C#中聲明一個命名空間的關(guān)鍵字是()。A)namespaceB)nameplaceC)thisD)as答案:A解析:namespace定義命名空間。[單選題]51.C#程序中,為使變量myForm引用的窗體對象顯示為對話框,必須:()A)使用myForm.ShowDailog方法顯示對話框B)將myForm對象的isDialog屬性設(shè)為trueC)將myForm對象的FormBorderStyle枚舉屬性設(shè)置為FixedDialogD)將變量myForm改為引用System.Windows.Dialog類的對象答案:C解析:[單選題]52.若將數(shù)據(jù)庫中的數(shù)據(jù)填充到數(shù)據(jù)集,應(yīng)調(diào)用SqlDataAdapter的( )方法。A)OpenB)CloseC)FillD)Update答案:C解析:SqlDataAdapter概述SqlDataAdapter是DataSet和SQLServer之間的橋接器,用于檢索和保存數(shù)據(jù)。SqlDataAdapter通過對數(shù)據(jù)源使用適當(dāng)?shù)腡ransact-SQL語句映射Fill(它可更改DataSet中的數(shù)據(jù)以匹配數(shù)據(jù)源中的數(shù)據(jù))和Update(它可更改數(shù)據(jù)源中的數(shù)據(jù)以匹配DataSet中的數(shù)據(jù))來提供這一橋接。當(dāng)SqlDataAdapter填充DataSet時,它為返回的數(shù)據(jù)創(chuàng)建必需的表和列(如果這些表和列尚不存在)。)我們可以通過以下三種方法來創(chuàng)建SqlDataAdapter對象:使用方法1、通過連接字符串和查詢語句[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串strSql="SELECT*FROM表名";SqlDataAdapterda=newSqlDataAdapter(strSql,strConn);DataSetds=newDataSet();//創(chuàng)建DataSet實例da.Fill(ds,"自定義虛擬表名");//使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令這種方法有一個潛在的缺陷。假設(shè)應(yīng)用程序中需要多個SqlDataAdapter對象,用這種方式來創(chuàng)建的話,會導(dǎo)致創(chuàng)建每個SqlDataAdapter時,都同時創(chuàng)建一個新的SqlConnection對象,方法二可以解決這個問題2、通過查詢語句和SqlConnection對象來創(chuàng)建[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串SqlConnectionconn=newSqlConnection(strConn);stringstrSql="SELECT*FROM表名";SqlDataAdapterda=newSqlDataAdapter(strSql,conn);DataSetds=newDataSet();//創(chuàng)建DataSet實例da.Fill(ds,"自定義虛擬表名");//使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令3、通過SqlCommand對象來創(chuàng)建[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串SqlConnectionconnSql=newSqlConnection(strConn);//Sql鏈接類的實例化connSql.Open();//打開數(shù)據(jù)庫//使用SqlDataAdapter時沒有必要從Connection.open()打開,//SqlDataAdapter會自動打開關(guān)閉它。stringstrSql="SELECT*FROM表名";//要執(zhí)行的SQL語句SqlCommandcmd=newSqlCommand(strSql,connsql);SqlDataAdapterda=newSqlDataAdapter(cmd);//創(chuàng)建DataAdapter數(shù)據(jù)適配器實例DataSetds=newDataSet();//創(chuàng)建DataSet實例da.Fill(ds,"自定義虛擬表名");//使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令ConnSql.Close();//關(guān)閉數(shù)據(jù)庫SqlDataAdapterda=newSqlDataAdapter(strSQL,ConnSql);//創(chuàng)建DataAdapter數(shù)據(jù)適配器實例DataSetds=newDataSet();//創(chuàng)建DataSet實例da.Fill(ds,"自定義虛擬表名");//使用DataAdapter的Fill方法(填充),調(diào)用SELECT命令ConnSql.Close();//關(guān)閉數(shù)據(jù)庫注意如果只需要執(zhí)行SQL語句或SP,就沒必要用到DataAdapter,直接用SqlCommand的Execute系列方法就可以了。sqlDataadapter的作用是實現(xiàn)Dataset和DB之間的橋梁:比如將對DataSet的修改更新到數(shù)據(jù)庫。SqlDataAdapter的UpdateCommand的執(zhí)行機制是:當(dāng)調(diào)用SqlDataAdapter.Update()時,檢查DataSet中的所有行,然后對每一個修改過的Row執(zhí)行SqlDataAdapter.UpdateCommand,也就是說如果未修改DataSet中的數(shù)據(jù),SqlDataAdapter.UpdateCommand不會執(zhí)行。使用要點1、SqlDataAdapter內(nèi)部通過SqlDataReader獲取數(shù)據(jù),而默認(rèn)情況下SqlDataReader不能獲知其查詢語句對應(yīng)的數(shù)據(jù)庫表名,所以下面的代碼:[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串strSql="SELECT*FROM表名";SqlDataAdapterda=newSqlDataAdapter(strSql,strConn);DataSetds=newDataSet();da.Fill(ds);會在DataSet中創(chuàng)建一個新的DataTable,這個新的DataTable會擁有名為CustomerID和CompanyName列,但是DataTable對象的名稱是Table,而不是我們希望的Customers。這個問題,可以通過添加TableMapping來解決:[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串strSql="SELECT*FROM表名";SqlDataAdapterda=newSqlDataAdapter(strSQL,strConn);da.TableMappings.Add("Table","Customers");//設(shè)置對象名稱DataSetds=newDataSet();da.Fill(ds);其實最簡潔的方法是通過使用Fill方法的重載,通過指定DataTable,像這樣:SqlDataAdapter.Fill(DataSet,"MyTableName");這樣就可以不必使用TableMappings集合。2、在使用Fill方式時,可以指定DataTable,而不是DataSet:[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串strSql="SELECT*FROM表名";SqlDataAdapterda=newSqlDataAdapter(strSql,strConn);DataTabletbl=newDataTable();da.Fill(tbl);3、注意打開和關(guān)閉連接的處理在調(diào)用SqlCommand對象執(zhí)行sql命令之前,需要保證與該對象關(guān)聯(lián)的SqlConnection對象時打開的,否則SqlCommand的方法執(zhí)行時將引發(fā)一個異常,但是我們在上面的代碼中看到,SqlDataAdapter沒有這樣的要求。如果調(diào)用SqlDataAdapter的Fill方法,并且其SelectCommand屬性的SqlConnection是關(guān)閉狀態(tài),則SqlDataAdapter會自動打開它,然后提交查詢,獲取結(jié)果,最后關(guān)閉連接。如果在調(diào)用Fill方法前,SqlConnection是打開的,則查詢執(zhí)行完畢后,SqlConnection還將是打開的,也就是說SqlDataAdapter會保證SqlConnection的狀態(tài)恢復(fù)到原來的情形。這有時會導(dǎo)致性能問題,需要注意,例如下面的代碼:[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串SqlConnectionconn=newSqlConnection(strConn);SqlDataAdapterdaCustomers,daOrders;strSql="SELECT*FROMCustomers";daCustomers=newSqlDataAdapter(strSql,conn);strSql="SELECT*FROMOrders";daOrders=newSqlDataAdapter(strSql,conn);DataSetds=newDataSet();daCustomers.Fill(ds,"Customers");daOrders.Fill(ds,"Orders");以上代碼會導(dǎo)致連接被打開和關(guān)閉兩次,在調(diào)用Fill方法時各一次。為了避免打開和關(guān)閉SqlConnection對象,在調(diào)用SqlDataAdapter對象的Fill方法之前,我們可以先打開SqlConnection對象,如果希望之后關(guān)閉連接,我們可以再調(diào)用Close方法,就像這樣:[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片cn.Open();daCustomers.Fill(ds,"Customers");daOrders.Fill(ds,"Orders");cn.Close();4、多次調(diào)用Fill方法需要注意數(shù)據(jù)重復(fù)和有效更新數(shù)據(jù)的問題[csharp]viewplaincopy在CODE上查看代碼片派生到我的代碼片stringstrConn="uid=賬號;pwd=密碼;database=數(shù)據(jù)庫;server=服務(wù)器";//SQLServer鏈接字符串strSql="SELECT*FROMCustomers";SqlDataAdapterda=newSqlDataAdapter(strSql,strConn);DataSetds=newDataSet();da.Fill(ds,"Customers");//…….da.Fill(ds,"Customers");第2部分:多項選擇題,共6題,每題至少兩個正確答案,多選或少選均不得分。[多選題]53.能移除ArrayList里的元素的方法有哪些()A)RemoveB)ReverseC)DeleteD)RemoveAt答案:AD解析:[多選題]54.在DOM對象模型中,下列選項中的()對象位于DOM對象模型的第二層。(選擇二項)()A)historyB)documentC)buttonD)text答案:AB解析:[多選題]55.在CSS3中,以下屬于radial-gradient()的參數(shù)的是()【選三項】A)positionB)shapeC)directionD)color-stop答案:ABD解析:[多選題]56.在CSS3中,float屬性的取值有()【選三項】A)leftB)rightC)topD)none答案:ABD解析:[多選題]57.下列選項中屬于Obect類方法的是()。A)ToString()B)Equals()C)GetType()D)Flush()答案:ABC解析:第3部分:填空題,共3題,請在空白處填寫正確答案。[填空題]58.C#中的字符串有兩類,規(guī)則字符串和逐字字符串,定義逐字字符串時,應(yīng)在其前面加上()號。答案:@解析:一、轉(zhuǎn)義字符C#允許按常規(guī)的轉(zhuǎn)義字符處理的方式來給字符串常量賦值,如果編譯器檢測到你正在為一個字符串變量賦值,你在其中寫的雙斜扛將不會被當(dāng)作注釋符。例如,下面的賦值是合法的,我們可以通過下面的賦值語句給變量賦予帶有雙斜杠的值:stringDbSlashURL="111";stringDbEscapeFullFilePath="C:\\inetput\\ciznxcom\\";//帶轉(zhuǎn)義的字符串賦值語句這里列舉一些常用的轉(zhuǎn)義字符,備查:轉(zhuǎn)義符字符名字符的Unicode值轉(zhuǎn)義符字符名字符的Unicode值\'單引號0x0027\f換頁0x000c\"雙引號0x0022\n新行0x000A\\反斜杠0x005c\r回車0x000D\0空字符0x0000\t水平制表符0x0009\a警告(產(chǎn)生蜂鳴)0x0007\v垂直制表符0x000B\b退格0x0008二、逐字字符串更加令我們欣喜的是,C#的作者很大方地將字符串賦值這一功能做了十分廣闊的擴展:在C#中,我們可以將所有字符直接作為字符串常量的值賦給字符串量,甚至包括了平時在我們看來是一定需要轉(zhuǎn)義的各種字符;要實現(xiàn)這一切僅需要在字符串常量的值前加一個符號?@?,以這種形式賦值的字符串叫做逐字字符串,它后面的所有字符都被逐個地收錄到字符串的值中!因此,如果你需要類似?所見所得?效果的賦值,逐字字符串賦值方式會是你的首選!此外,需要注意的是,當(dāng)使用符號"@"為字符串賦值時,被賦值的所有字符將不需要經(jīng)過轉(zhuǎn)義--只有雙引號這個本身作為界限的字符需要經(jīng)過轉(zhuǎn)義,此時它的轉(zhuǎn)義輸入方法是兩個放在一起的雙引號:""在以這種方式給變量賦值時,也只有這唯一一個轉(zhuǎn)義是合法的。如果希望諸如換行、制表符此類字符在字符串體現(xiàn)出來,也可以直接將帶有換行與制表符的字面量字符串賦給字符串量;不過這樣,就不能在換行前的前一行寫注釋或其他語句,否則這些語句將被當(dāng)作字符串值的一部分。在下面例子中的語句,可以實現(xiàn)不完成輸入一系列不經(jīng)轉(zhuǎn)義的特殊字符:(1)逐字:stringNoEscapeFullFileName=@"C:\inetpub\ciznxcom\";//(此句中的反斜扛被直接賦值)(2)雙引號:stringStringWithDbQoute=@"Jimsays,""hecanreachhomeinaboutsixminutes""."http://(此句中雙引號被轉(zhuǎn)義)(3)換行:相當(dāng)于加一個回車\r而不是\nstringStringWithNextLineChar=@"Wecansetastringvalueforastringvariablewithsucha""NextLine""char.";//(此句中給字符串變量賦予了回車符,且未經(jīng)任何轉(zhuǎn)義;并且保持所有空格)[填空題]59.每個枚舉成員均具有相關(guān)聯(lián)的常量值,默認(rèn)時,第一個枚舉成員的關(guān)聯(lián)值為()。答案:0解析:枚舉枚舉類型聲明為一組相關(guān)的符號常數(shù)定義了一個類型名稱。枚舉用于?多項選擇?場合,就是程序運行時從編譯時已經(jīng)設(shè)定的固定數(shù)目的?選擇?中做出決定。枚舉類型(也稱為枚舉)為定義一組可以賦給變量的命名整數(shù)常量提供了一種有效的方法。例如,假設(shè)您必須定義一個變量,該變量的值表示一周中的一天。該變量只能存儲七個有意義的值。若要定義這些值,可以使用枚舉類型。枚舉類型是使用enum關(guān)鍵字聲明的。enumDays{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};默認(rèn)情況下,枚舉中每個元素的基礎(chǔ)類型是int??梢允褂妹疤栔付硪环N整數(shù)值類型。如果不為枚舉數(shù)列表中的元素指定值,則它們的值將以1為增量自動遞增。在前面的示例中,Days.Sunday的值為0,Days.Monday的值為1,依此類推。創(chuàng)建新的Days對象時,如果不顯式為其賦值,則它將具有默認(rèn)值Days.Sunday(0)。創(chuàng)建枚舉時,應(yīng)選擇最合理的默認(rèn)值并賦給它一個零值。這便使得只要在創(chuàng)建枚舉時未為其顯式賦值,則所創(chuàng)建的全部枚舉都將具有該默認(rèn)值。枚舉中大小寫敏感,但是建議不要這樣。[填空題]60.在類的方法前加上關(guān)鍵字(),則該方法被稱為虛方法答案:virtual解析:一、抽象方法:只在抽象類中定義,方法修飾符不能使用private,virtual,static.抽象方法如下示:publicabstractclassPeople//聲明一個抽象類{publicabstractvoidstudy();//抽象方法只能定義在抽象類中。}publicclassStudent:People//繼承抽象類{publicoverridevoidstudy()//重寫抽象類的抽象方法{Console.WriteLine("好好學(xué)習(xí),天天向上!");}}publicclassProgram{staticvoidMain(string[]args){Studentt=newStudent();//實例化派生類Peoplep=t;//使用派生類對象實例化抽象類//以上兩句等價于Peoplep=newStudent();//使用派生類對象實例化抽象類;p.study();//使用抽象類對象調(diào)用抽象類中的抽象方法study}}總結(jié):(1)象方法只能聲明在抽象類中,使用關(guān)鍵字abstract(2)抽象類中的抽象方法必須被子類重寫?!境橄蠓椒]有方法體,子類必須重寫方法體!!,因此抽象方法可以看成是一個沒有方法體的虛方法】二、虛方法:使用virtual修飾的方法:虛方法可以有方法體。具體示例如下:publicclassBaseClass//創(chuàng)建一個基類{publicvirtualstringGetName()//使用virtual關(guān)鍵字創(chuàng)建父類中的虛方法{return"父類虛方法體":}}publicclassSubClass:BaseClass//子類繼承父類{publicoverridestringGetName();//子類重寫父類虛方法{return"重寫父類虛方法!";}}以上的示例:父類中的虛方法被派生類重寫了。注意事項:virtual修飾符不能與private、static、abstract、override修飾符同時使用。ps:override修飾符不能與new、static、virtual修飾符同時使用,并且重寫方法只能用于重寫基類中的虛方法。虛函數(shù)的限制:*虛函數(shù)僅適用于有繼承關(guān)系的類對象,所以只有類的成員函數(shù)才能說明為虛函數(shù);*靜態(tài)成員函數(shù)、內(nèi)聯(lián)函數(shù)、構(gòu)造函數(shù)不能是虛函數(shù);*析構(gòu)函數(shù)可以是虛函數(shù)。三、兩者區(qū)別:總結(jié):抽象方法是只有方法名稱,沒有方法體(也就是沒有方法具體實現(xiàn)),子類必須重寫父類抽象方法;虛函數(shù)是該方法有方法體,但是子類可以覆蓋,也可不覆蓋。(1)虛方法有方法體,抽象方法沒有方法體。抽象方法是一種強制派生類覆蓋的方法,否則派生類將不能被實例化;(2)抽象方法只能在抽象類中聲明,虛方法不是;(3)派生類必須重寫抽象類中的抽象方法,虛方法則不必要。第4部分:判斷題,共14題,請判斷題目是否正確。[判斷題]61.如果基類沒有默認(rèn)的構(gòu)造函數(shù),那么其派生類構(gòu)造函數(shù)必須通過base關(guān)鍵字來調(diào)用基類的構(gòu)造函數(shù)。答案:對解析:[判斷題]62.一個數(shù)組的元素可以是多種類型的數(shù)據(jù)。()A)正確B)錯誤答案:錯解析:[判斷題]63.C#源程序文件一般用.cs作為擴展名()A)正確B)錯誤答案:對解析:[判斷題]64.構(gòu)造函數(shù)在對象銷毀時自動執(zhí)行()A)正確B)錯誤答案:錯解析:[判斷題]65.在C#中可以使用String作為變量名,但不能使用string作為變量名。()A)正確B)錯誤答案:對解析:[判斷題]66.如果類的訪問方式為public,則類中所有成員默認(rèn)的訪問方式均為public。()A)正確B)錯誤答案:錯解析:[判斷題]67.接口也可以被繼承。()A)正確B)錯誤答案:對解析:[判斷題]68.為了明確告訴c#編譯器我們愿意接受精度損失,必須進行顯示轉(zhuǎn)換,把表達式值轉(zhuǎn)換為括號里的目標(biāo)類型()A)正確B)錯誤答案:對解析:[判斷題]69.對象是人們要進行研究的任何事物在面向?qū)ο蟪绦蛟O(shè)計中的抽象。()A)正確B)錯誤答案:錯解析:[判斷題]70.接口與類同樣是面向?qū)ο蟪绦蛟O(shè)計的核心,是創(chuàng)建對象的模版。答案:對解析:[判斷題]71.在C#中,如果為double類型變量賦值必須在賦的值后面加上字符?D?(或小寫?d?)。A)正確B)錯誤答案:錯解析:[判斷題]72.在C#編程環(huán)境中,常量的值可以在代碼中被修改。答案:錯解析:我們都知道,const和staticreadonly的確很像:通過類名而不是對象名進行訪問,在程序中只讀等等。在多數(shù)情況下可以混用。二者本質(zhì)的區(qū)別在于,const的值是在編譯期間確定的,因此只能在聲明時通過常量表達式指定其值。而staticreadonly是在運行時計算出其值的,所以還可以通過靜態(tài)構(gòu)造函數(shù)來賦值。明白了這個本質(zhì)區(qū)別,我們就不難看出下面的語句中staticreadonly和const能否互換了:1.staticreadonlyMyClassmyins=newMyClass();2.staticreadonlyMyClassmyins=null;3.staticreadonlyB=10;staticreadonlyA=B*20;4.staticreadonlyint[]constIntArray=newint[]{1,2,3};5.voidSomeFunction(){constinta=10;...}6.privatestaticstringastr="abcd";privateconststringstr=astr+"efg";1:不可以換成const。new操作符是需要執(zhí)行構(gòu)造函數(shù)的,所以無法在編譯期間確定2:可以換成const。我們也看到,Reference類型的常量(除了String)只能是Null。3:可以換成const。我們可以在編譯期間很明確的說,A等于200。4:不可以換成const。道理和1是一樣的,雖然看起來1,2,3的數(shù)組的確就是一個常量。5:不可以換成readonly,readonly只能用來修飾類的field,不能修飾局部變量,也不能修飾property等其他類成員。6.錯誤:如果在astr前加上const或者const改為readonly即可;總結(jié):1.const、readonly和staticreadonly定義的常量,指定初始值后(包括在構(gòu)造函數(shù)內(nèi)指定的初始值)將不可更改,可讀不可寫;2.const定義時必須指定初始值,而readonly定義時可以不進行初始化(MS建議在定義時初始值),同時也可以在構(gòu)造函數(shù)內(nèi)指定初始值,并以構(gòu)造函數(shù)內(nèi)指定的值為準(zhǔn);3.const和staticreadonly定義的常量是靜態(tài)的,只能由類直接訪問;而readonly定義的常量是非靜態(tài)的,只能由實例對象訪問;4.staticreadonly常量,如果在構(gòu)造函數(shù)內(nèi)指定初始值,則必須是靜態(tài)無參構(gòu)造函數(shù);5.const是編譯時常量,readonly是運行時常量;cosnt較高效,readonly較靈活。在應(yīng)用上以staticreadonly代替const,以平衡const在靈活性上的不足,同時克服編譯器優(yōu)化cosnt性能,所帶來的程序集引用不一致問題;[判斷題]73.在窗體中添加1個ToolStrip控件,該控件默認(rèn)顯示在窗體的右側(cè)頂部的位置。A)正確B)錯誤答案:錯解析:[判斷題]74.在帶有?||?操作符的語句中,如果其中一個或兩個條件都為真,則語句為真答案:對解析:||邏輯或,只要一邊為真即是真。1||0為真0||1也是真。第5部分:問答題,共25題,請在空白處填寫正確答案。[問答題]75.將標(biāo)簽的()屬性值設(shè)置為True,可以使標(biāo)簽的大小能夠根據(jù)標(biāo)簽上顯示的文字內(nèi)容自動調(diào)整。答案:AutoSize解析:[問答題]76.分析如下C#代碼,根據(jù)類的繼承關(guān)系,運行后的輸出結(jié)果是___publicclassPerson{privateintage=0;publicintAge{get{returnage;}set{If(value>=18)Console.WriteLine(?成年人?);ElseConsole.WrteLine(?未成年人?);}}}publicclassPeople:Person{publicPeople(){Console.Write(?不得入內(nèi)?);}}classTest{staticvoidMain(string[]args){peopleshang=newPeople();shang.Age=17}}答案:不得入內(nèi)未成年人解析:publicintAge,子類會繼承。先調(diào)用構(gòu)造方法輸出不得入內(nèi)然后未成年人[問答題]77.有一個字符串的定義為strings=?helloworld!?;在此字符串中,字符w的索引是()。答案:6解析:[問答題]78.編一個程序,定義一個有10個元素的數(shù)組,使用for循環(huán)語句,從鍵盤上輸入10名同學(xué)的數(shù)學(xué)成績,分別求出最高分和最低分,并且求出10名同學(xué)的數(shù)學(xué)平均成績答案:double[]math=newdouble[10];Console.WriteLine("請輸入10名學(xué)生的數(shù)學(xué)成績");for(inti=0;i<math.Length;i++){math[i]=double.Parse(Console.ReadLine());}doublemax=math[0],min=math[0],ave,sum=0;for(intj=0;j<math.Length;j++){if(max<math[j])max=math[j];if(min>math[j])min=math[j];sum=sum+math[j];}ave=sum/math.Length;解析:[問答題]79.采用LINQ技術(shù)訪問數(shù)據(jù)庫與采用ADO.NET訪問數(shù)據(jù)庫,有什么優(yōu)勢?答案:1、無需復(fù)雜學(xué)習(xí)過程即可上手2、編寫更少代碼即可創(chuàng)建完整應(yīng)用。3、更快開發(fā)錯誤更少的應(yīng)用程序。4、無需求助奇怪的編程技巧就可合并數(shù)據(jù)源5、讓新開發(fā)者開發(fā)效率更高解析:[問答題]80.C#中訪問修飾符的種類有哪些?答案:publicprotectprivateinternalinternalprotect解析:publicprotectprivateinternalinternalprotect[問答題]81.跳轉(zhuǎn)語句中的()語句可以將程序控制直接轉(zhuǎn)移到標(biāo)號指定的語句。答案:goto解析:[問答題]82.什么是值類型和引用類型?答案:值類型存儲在堆棧中。例如:bool,byte,chat,decimal,double,enum,float,int,long,sbyte,short,strut,uint,ulong,ushort。引用類型存儲在托管堆中。例如:class,delegate,interface,object,string。解析:值類型存儲在堆棧中。例如:bool,byte,chat,decimal,double,enum,float,int,long,sbyte,short,strut,uint,ulong,ushort。引用類型存儲在托管堆中。例如:class,delegate,interface,object,string。[問答題]83.C#中處理異常采用的結(jié)構(gòu)化異常處理語句有哪些?并簡要說明。答案:C#中共包含3種結(jié)構(gòu)化異常處理語句:try…catch語句,try…finally語句和try…catch…finally語句。其中:try塊語句中用來指明有可能出現(xiàn)異常的代碼;catch塊內(nèi)指明對所出現(xiàn)的異常的處理,若沒有異常,則catch塊不執(zhí)行;finally塊是無論是否發(fā)生異常均要執(zhí)行的代碼,主要用來清理資源或執(zhí)行要在try塊末尾執(zhí)行的其它操作。解析:[問答題]84.staticvoidMain(string[]args){intSum=0;for(inti=1;i<=10;i++){if(i%2==1)Sum+=i;}Console.WriteLine(Sum);}程序的輸出結(jié)果是?答案:25解析:[問答題]85.要修改項目的屬性,必須在()設(shè)計窗口中選擇項目。答案:解決方案資源管理器解析:[問答題]86.輸入1~10之間的一個數(shù)字,輸出它對應(yīng)的英文單詞。例如輸入1輸出one。答案:Console.WriteLine("請輸入1~10之間的一個數(shù)字:");intn=int.Parse(Console.ReadLine());switch(n){case1:Console.WriteLine("one");break;case2:Console.WriteLine("two");break;case3:Console.WriteLine("three");break;case4:Console.WriteLine("four");break;case5:Console.WriteLine("five");break;case6:Console.WriteLine("six");break;case7:Console.WriteLine("seven");break;case8:Console.WriteLine("eight");break;case9:Console.WriteLine("nine");break;case10:Console.WriteLine("ten");break;default:Console.WriteLine("你輸入的不是1~10之間的一個數(shù)字");break;}Console.ReadLine();解析:[問答題]87.編寫程序,統(tǒng)計4*5二維數(shù)組中奇數(shù)的個數(shù)和偶數(shù)的個數(shù)答案:staticvoidMain(string[]args){int[,]a=newint[4,5]{{1,2,3,4,5},{6,7,8,9,0},{11,12,13,14,15},{16,17,18,19,20}};intm=0,n=0;for(inti=0;i<4;i++)for(intj=0;j<5;j++)if(a[i,j]

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論