第一篇:《C#程序設計基礎教程與實訓》習題答案
附錄Ⅰ 各章習題答案
第1章 C#語言概述
一、判斷題
1、√
2、×
3、√
4、×
5、√
6、√
7、×
8、×
二、選擇題
1、C
2、B
3、C
4、A
5、A
6、B
7、B
8、B
三、填空題
1、最新的;面向對象
2、C和C++;JAVA
3、先進設計思想;安全性能
4、靈活性
5、集成開發環境(IDE)——Visual Studio.NET
6、Microsoft.NET Framework(微軟.NET框架體系)
7、最基本的通用語言運行時庫CLR(Common Language Runtime);一些提供了具體功能的類庫
8、需要開發和設計的項目文件;應用程序或組件
四、簡答題
1、① 簡潔易用的語法。② 自動的資源回收機制。③ 與Web的緊密結合。④ 完整的安全性與錯誤處理。⑤ 版本處理技術。⑥ 靈活性和兼容性。
2、C#程序必須包含一個Main方法,Main方法是程序的入口點,程序控制在該方法中開始和結束。該方法用來執行任務,并在任務完成后返回信息。
第2章 常用標準控件
一、判斷題
1、×
2、×
3、√
4、×
5、√
6、×
7、√
8、√
二、選擇題
1、A
2、C
3、B
4、D
5、A
6、B
7、B
8、D
三、填空題
1、輸入/輸出信息
2、屬性
3、事件
4、TextAlign
5、Click
6、文本框(TextBox)
7、保證數據標準化
8、Show
四、簡答題
1、簡述生成控件的操作過程。
(1)單擊工具箱中相應的工具按鈕,這一按鈕呈現被按下狀態,表明被選定。
(2)移動鼠標到窗體上,這時鼠標的指針變成十字形,在需要放置控件的左上角位置按下鼠標左鍵。
(3)在窗體范圍內向下向右拖動鼠標,這時窗體上會顯示一個矩形框,當其大小合適時,松開鼠標左鍵,窗體上就會顯示一個相應大小的這種控件。
另外一種快捷的方法是在工具箱中相應的工具按鈕上雙擊此按鈕,窗體上就會出現一個系統默認大小的所選按鈕。
2、消息框有多少種Button參數設置? OK:只顯示“確定”按鈕
OKCancel:顯示“確定”和“取消”按鈕
AbortRetryIgnore:顯示“終止”、“重試”和“忽略”按鈕 YesNoCancel:顯示“是”、“否”和“取消” YesNo:顯示“是”和“否”
RetryCancel:顯示“重試”和“取消”
第3章 數據類型
一、填空題
1、-2,147,483,648 到 2,147,483,647
2、單精度;雙精度 3、16 4、1 5、99 6、2.2
7、false
8、隱式轉換;顯式轉換
二、判斷題
1、√
2、×
3、×
4、√
5、×
6、×
7、×
8、×
三、選擇題
1、A
2、C
3、D
4、A
5、B
6、B
7、D
8、C
四、簡答題
1.請說明C#標識符命名規則。
(1)不能跟系統關鍵字重名。(2)標識符由字母、下劃線“_”、數字或中文組成。(3)標識符應以字母、中文或下劃線開頭。(4)標識符中間不能包含空格。(5)C#標識符大小寫敏感。
2.請簡單說明銀行家舍入法。
銀行家的舍法與四舍五入只有一點不同,對.5的舍入上,采用取偶數的方式。例:1.25最近的兩個只有1位小數的數字為1.2和1.3,舍入的結果將選擇最后一位為偶數的數字1.2。同理,也可以推斷出1.35舍入后為1.4。
如果在求和計算中使用四舍五入,一直算下去,誤差有可能會越來越大。機會均等才公平,也就是向上和向下各占一半才合理。在大量計算中,從統計角度來看,高一位分別是偶數和奇數的概率正好是50% : 50%。
第4章 運算符和表達式
一、填空題
1、?:
2、0 3、1.1 4、2 5、2 6、2 7、18
8、true
9、false 10、2970
二、判斷題
1、×
2、√
3、×
4、√
5、√
6、×
7、×
8、×
三、選擇題
1、B
2、D
3、B
4、A
5、C
6、C
7、D
8、B
四、簡答題
1.試闡述邏輯運算符 & 和條件運算符 &&之間的區別。
&& 運算符與 & 運算符的區別在于,&& 運算符不能對整型進行計算。另外,對于表達式 x && y 如果 x 為 false,則不計算 y(因為不論 y 為何值,“與”操作的結果都為 false)。這被稱作為“短路”計算。也就是說使用 && 運算符進行條件計算,比使用 & 運算符速度更快些。
2.請從高到低排列【&& 和 ||】、【算術運算符】、【賦值運算符】、【!(非)】、【關系運算符】的優先級順序。答:由高到低的順序為:【!(非)】?【算術運算符】?【關系運算符】?【&& 和 ||】?【賦值運算符】 第5章 條件判斷語句
一、判斷題
1、×
2、√
3、×
4、√
5、√
6、×
7、×
8、√
二、選擇題
1、A
2、C
3、A
4、C
5、B
6、D
7、A
8、C
三、填空題
1、條件判斷語句、循環語句
2、關系表達式、邏輯表達式
3、bool
4、執行大括號里的語句塊;跳過語句塊,執行大括號后面的語句
5、都將會執行
6、只要找到為真的表達式就執行相應的語句塊并跳出整個判斷語句
7、if;switch
8、break
四、簡答題
1、簡單描述if語句的幾種形式。(1)if語句的一般表示形式為: if(表達式){ 語句塊 }(2)當一個判斷語句只存在兩種可能的結果時,可以使用if…else語句來表達。它的表現形式為:
if(表達式){ 語句塊1 }else { 語句塊2 }(3)當一個判斷語句存在多種可能的結果時,可以使用if...else if...語句來表達。它的表現形式為:
if(表達式1){ 語句塊1 } else if(表達式2){ 語句塊2 }...else if(表達式n){ 語句塊n }
2、在switch語句時需要注意什么?
(1)switch關鍵字后面的表達式,其值的類型必須是字符串或整數(char、int、long)都屬于整數類型。
(2)case標簽后面的值必須是常量表達式,不允許使用變量。(3)case和default標簽以冒號而非分號結束。
(4)case標簽后面的語句塊,無論是單條語句還是多條語句,都無需用括號包圍。
(5)default標簽可以有,也可以沒有。case子句的排放順序是無關緊要的,甚至可以把default子句放在最前面。
第6章 循環控制語句
一、填空題
1、順序結構;選擇結構;循環結構
2、false
3、執行循環體;判斷條件是否為真
4、循環的嵌套
5、-5 6、18 7、16 8、1
二、判斷題
1、√
2、×
3、√
4、√
5、√
6、√
7、√
8、×
三、選擇題
1、C
2、B
3、C
4、D
5、B
6、C
7、D
8、B
四、簡答題
1、請說明do...while語句的表現形式。do { 語句塊 } while(表達式);
當流程到達do后,立即執行語句塊,然后再對表達式進行測試。若表達式的值為真,則返回do重復循環,否則退出執行后面的語句。這里特別需要注意的是跟while語句不同,do...while語句的表達式后面要加上分號。
2、for語句的一般表現形式為: for(表達式1;表達式2;表達式3){ 語句塊 } for語句的執行順序如圖所示,其中,當表達式2的值為假時,則直接跳出循環。表達式1:一般情況下用于給循環變量賦初值。
表達式2:返回值必須是一個bool值,作為循環是否繼續執行的條件。表達式3:一般情況下用于給循環變量增值。
第7章 數組
一、選擇題
1、D
2、B
3、A
4、C
5、B
6、A
7、D
8、C
二、填空題
1、類型
2、零
3、new
4、大括號“{}”
5、動態數組
6、引用
7、地址
8、行,列
三、判斷題
1、√
2、×
3、√
4、√
5、√
6、×
7、√
8、×
四、簡答題
1.請簡述什么是數組?
答:數組是具有相同類型的一組數據。數組按照數組名、數據元素的類型和維數來進行描述。當訪問數組中的數據時,可以通過下標來指明。
2.請簡述Array和ArrayList主要的區別?
(1)Array 的容量是固定的,而 ArrayList的容量可根據需要自動擴充。
(2)ArrayList提供添加、插入或移除某一范圍元素的方法。在 Array 中,您只能一次獲取或設置一個元素的值。
(3)Array 可以具有多個維度,而 ArrayList始終只是一維的。
第8章 GDI+圖形
一、填空題
1、GDI+
2、Graphics
3、Pen,Brush
4、Rectangle,RectangleF
5、Point
6、DrawPolygon,FillPolygon
7、橢圓
8、Paint
二、判斷題
1、√
2、×
3、×
4、×
5、√
6、√
7、×
8、×
三、選擇題
1、B
2、B
3、A
4、D
5、C
6、A
7、A
8、D
四、簡答題
1.試闡述Graphics圖形對象的幾種創建方法。
(1)用某控件或窗體的CreateGraphics方法來創建Graphic對象,該對象表示該控件或窗體的繪圖表面。如果想在已存在的窗體或控件上繪圖,則可以使用此方法。
(2)接收對圖形對象的引用,該對象為窗體或控件的Paint事件中PaintEventArgs的一部份。在為控件創建繪制代碼時,通常使用此方法來獲取對圖形對象的引用。
2.請簡述使用虛擬畫布繪圖的步驟。(1)在內存中建立一塊“虛擬畫布”如:(2)獲取這塊內存畫布的Graphics引用:(3)在這塊內存畫布上繪圖:(4)將內存畫布畫到窗口中:
第9章 方法
一、選擇題
1、B
2、D
3、A
4、C
5、C
6、A
7、B
8、D
二、填空題
1、return
2、void
3、值參數
4、數組型
5、重載
6、形參,實參
7、成員變量
8、遞歸
三、判斷題
1、√
2、√
3、√
4、√
5、×
6、√
7、×
8、×
四、簡答題
1.請簡述用方法構造代碼的好處?
(1)方法允許將程序分為不連續的邏輯單元。調試單獨的單元與調試不包含方法的整個程序相比要容易的多。
(2)可以在其他程序中使用為某個程序開發的方法,而通常只需要進行少量修改,甚至不需修改。
2.請簡述什么是遞歸?
答:在方法中直接或間接地調用自己叫方法的遞歸調用。樹型關系問題的求解往往需要使用到遞歸算法。
3.請簡述什么是方法的重載?
答:當定義兩種或多種具有相同名稱的方法時,就稱作重載。在調用時,編譯器會根據不同的方法簽名調用相應的方法。
第10章 窗體與控件
一、選擇題
1、B
2、C
3、C
4、D
5、B
6、A
7、D
8、C
二、填空題
1、窗體
2、Maximized
3、Load
4、true
5、CheckedChanged
6、ListBox
7、Image
8、Interval
三、判斷題
1、√
2、×
3、√
4、√
5、×
6、×
7、√
8、×
四、簡答題
1.請簡述組合框的使用特點?
答:當需要用戶在多個選項中選擇一項時,除可以使用單選按鈕外,還可以使用組合框(ComboBox)。組合框是TextBox與ListBox的組合,具有列表框和文本框的大部份屬性。組合框在列表框中列出可供用戶選擇的項,另外還有一個文本框。當列表框中沒有所需選項時,允許在文本框中用鍵盤輸入用戶自定義的內容。
2.請列出圖片框(PictureBox)支持哪幾種類型的圖像?并進行簡單的說明。a)位圖(bitmap):是將圖像定義為像素的圖案,這種圖像格式體積很大,未經壓縮。位圖文件的擴展名是.bmp或.dib。b)圖標(icon):是特殊類型的位圖。圖標的最大尺寸為32×32像素。圖標文件的擴展名是.ico。
c)Windows文件(metafile):將圖形定義為編碼的線段和圖形。普通圖元文件擴展名為.wmf,增強圖元文件擴展名為.emf。
d)GIF:由CompuServe開發的一種壓縮位圖格式,是Internet上流行的一種文件格式。e)JPEG:是一種支持8位和24位顏色的壓縮位圖格式。也是Internet上流行的一種文件格式。
第11章 界面設計
一、選擇題
1、C
2、B
3、C
4、D
5、C
6、D
7、A
8、B
二、填空題
1、單文檔(SDI)應用程序,多文檔(MDI)應用程序
2、ShowIcon,ShowInTaskbar,FormBorderStyle3、DialogResult4、非模式
5、菜單欄,菜單標題,菜單項
6、MenuItem,ComboBox,Separator,TextBox
7、MDI 子窗口
8、Cascade,TileHorizontal
三、判斷題
1、×
2、√
3、√
4、×
5、√
6、×
7、×
8、√
四、簡答題
1.請簡述非模式窗體和模式窗體的區別。
(1)打開一個非模式窗體后,用戶可以跟應用程序的其他部分交流,而模式窗體不行。這意味著,程序在執行到創建模式窗體的代碼時,會停下來等待模式窗體關閉后再繼續往下執行。而程序在打開非模式窗體的同時會繼續往下執行后面的代碼。(2)非模式窗體沒有返回值,模式窗體有返回值。
(3)關閉非模式窗體會直接在內存中釋放窗體,而模式窗體則不會。
(4)非模式窗體使用Show方法創建,模式窗體使用ShowDialog方法創建。
2.簡述創建一個MDI應用程序的方法。
(1)把作為MDI父窗體的窗體的IsMDIContainer 屬性設置為True。(2)新建一個窗體(假設窗體名為Form2)作為MDI子窗體。(3)在MDI父窗體中調用如下代碼即可顯示一個MDI子窗體。
Form2 f2 = new Form2();f2.MdiParent = this;f2.Show();第12章 異常處理
一、選擇題
1、B
2、B
3、D
4、A
5、C
6、A
7、D
8、C
二、填空題
1、try,catch,finally
2、try-catch3、一個,一個或多
4、Exception
5、改變編譯器的設置,使用校驗(checked)語句
6、The operation overflows at complie time in checked mode
7、異常處理程序,清理代碼
8、顯式地標明了它所作用的語句塊或表達式不需要進行溢出檢查
三、判斷題
1、×
2、×
3、√
4、×
5、√
6、√
7、√
8、√
四、簡答題
1.導致代碼失敗的具體原因有哪些?
答:算術溢出、堆棧溢出、內存不足、參數越界、數組索引越界、試圖訪問已經釋放的資源(例如訪問一個已經關閉的文件)等。
2.在catch語句里可以使用哪幾種方法處理異常來獲得不同的執行路徑? a)不寫任何跳轉代碼:這種方法使得系統忽略異常,程序會繼續往下執行。b)使用return語句:它使得程序直接跳出方法體,回到調用方法的地方。c)使用throw 語句:它使得異常再次被拋出,表示當前異常處理代碼無法處理此類異常,將異常轉給更上一級的異常處理程序進行處理
d)使用System.Environment.Exit(1)語句:它將直接關閉應用程序,一般情況下不使用這樣的方法
第二篇:C#實訓總結
C#實訓總結
經過兩周的課程實訓,讓我感觸很深。雖然C#已經學了一個學期,但是到真正寫代碼的時候對以前所學的知識還是有點陌生,不知道該從哪里著手。還有以前總是以為寫需求分析很浪費時間,可是經過這次的實訓讓我深刻認識到寫需求分析的重要性。需求分析是做一個系統前的很關鍵的一步,需求分析做的好了,接下來寫代碼就容易了,需求分析是對一個系統設計思路的很好的總結與概括,需求分析能讓我們的寫作思路非常清晰,一個全面、完善的需求分析是設計一個完美的系統軟件的必備條件。通過這次的實訓我告誡自己以后不管做什么系統都不能急于去寫代碼,首先要做好需求分析,把系統所要實現的功能做一個全面分析,讓自己有一個清晰的編程思路,這樣便于接下來的代碼編寫。
這次實訓我和陳夢詩我們倆幾乎都是一起做的,從需求分析到數據庫設計以及到寫代碼的過程我們倆都是商量這進行,如果有什么不同的意見我們會各自再進行仔細的考慮,如果合理就采用,這樣在商量過程中不斷完善我們的設計思想。我這個人最大的缺點就是對自己不自信,有時候雖然是有那個能力,但做起東西來總是思前想后有點擔心,有時候甚至還有些慌亂,在這方面陳夢詩給了我很大的鼓勵,讓我對自己的能力有了自信,敢于想的同時也敢于去寫。我感覺這次實訓的分組合作在很大程度上增強了自信心,也很好的鍛煉了自己的動手能力。
還有通過這次試訓,最大的一個感悟就是自己有時候太急于求成,眼高手低,總在一些細節問題上犯錯誤,比如說寫SQL語句select SalesID,AgencyID,StyleID,DateTime,(Price*SalesNum)as SumPrice from SalesInfo where AgencyID like '“ + this.textBox1.Text + ”-%' or AgencyID ='“ + this.textBox1.Text + ” '時,總是不注意一些值的類型,導致運行的時候出現錯誤:**值與數據庫類型不匹配什么的,有時候為了這個小錯誤都要看好久才找到錯誤所在,這樣也浪費了很多時間。這次課程實訓做的系統可能不能很好的滿足用戶的需要,但是我們已經盡了自己最大的努力,希望隨著今后的不斷學習,不斷的積累能做出符合用戶需要的比較完善的系統。
總之這次課程試訓讓我學到了很多,從需求分析到程序的編寫,讓我們很好的把所學的知識轉化到實際的應用當中,不僅讓我對以前所學知識有了一個更深的了解,更重要的是鍛煉了我的動手能力,分組合作也讓我們學到了很多東西,團隊的力量是無窮的,我們在合作的同時可以彌補相互間的不足,也可以相互促進、相互鼓勵,學到更多的東西。
至于對老師您的意見,總體上感覺老師還是很不錯的,在課程實訓過程中很好的引導了我們,講課方法也很不錯,讓學生處于主導地位,盡量去引導學生去思考,這點是讓我印象最深的。不過希望有時候您能在技術上的疑問給我們一定的幫助..........班級:軟工七班
姓名:張 倩
學號:068109284
第三篇:C#實訓總結
C#實訓總結
實訓期間讓我學到很多東西,不僅在理論上讓我對it領域有了全新的認識,在實踐能力上也得到了很大的提高,真正的學到了學以致用,更學到很多做人的道理,對我來說受益匪淺。特別是利用周六上午的時間山大為我們安排的講座讓我們了解it領域一些新的發展動態以及一些領先的技術,讓我意識到自己知識的缺少,這激勵我在以后的學習、工作、生活中要不斷了解信息技術發展動態以及信息發展中出現的新的技術。
除此之外,我還學到了如何與人相處,如何和人跟好的交流,我們組成一個團隊大家一起開發一個項目,大家的交流溝通顯得尤為重要,如何將自己的想法清楚明白的告訴隊友,如何提出自己想法的同時又不傷害其他的隊友的面子,這些在我的實訓生活中都有一些體會。可是說,第一次親身體會理論與實際相結合,讓我大開眼界。也是對以前學習的一個初審吧,相信這次實訓多我以后的學習、工作也將會有很很大的影響,在短短的二十幾天里這些寶貴的經驗將會成為我以后工作的基石。
作為大二的學生,經過兩年的在校學習,對程序設計有了一些基本的理性的認識和理解。在校期間一直忙于理論的學習,沒有機會也沒有經驗來參與我們項目的開發,所以在實習之前軟件按開發對我來說是非常抽象的,一個完整的項目要怎么來分工以及完成該項目所需要的基本步驟也不明確,經過這次實訓讓我明白一個完整項目的完成必須團隊分工合作,并在每個階段進行必要的總結和檢查。在我們項目的開發過程中我們項目的步驟:詳細設計、詳細設計review、編碼、編碼review、單體測試。在項目開發過程中我也深刻的體會到詳細設計對一個項目開發有明確的指引作用,它可以使開發人員對這個項目所要實現的功能在總體上有具體的認識,并能減少在開發過程中出現不必要的脫節。
經過二十多天的obbligato信息安全管理的java開發,是我對C#軟件開發平臺有了更深一步的了解,也對nec公司的obbligato平臺有了一定的了解。
這次實訓是對我們兩年學習的一個檢驗,雖然項目中很多知識我們在日常的學習中都沒有遇到,這同時提醒我:要想成為一個合格的程序員就有具備一種自學能力,在工作中會遇到很多從未接觸過的問題,當有了問題時要去解決,在你不斷努力,尋找答案的過程中,自己的能力也在潛移默化的提升。有時遇到問題時可能有很多想法但卻不知道那個正確,這就讓我們不斷地去探索,不斷地嘗試。
這次實訓也讓我深刻的了解到,不管在工作中還是在生活中要和老師、同學保持良好的關系是很重要的。做事首先要先做人,要明白做人的道理,如何與人相處是現代社會的做認得一個最基本的問題,對已自己這樣一個即將步入社會的人來說,需要學習的東西很多。從一起做項目的同學身上我看到了謙虛謹慎、細心努力的態度,在以后我的生活中我還會留意身邊同學的優點,從他們身上找尋我所缺少的品質,不斷學習。從老師那里我看到了企業人的生活面貌,沒有事情可以不勞而獲,今天老師們能夠領導我們是他們之前努力的結果,雖然老師沒有和我們講很多公司里的事情,可是他們的言行中所表現出來的都是比我們要嚴謹的多的對工作的態度。
第四篇:C#實訓總結報告
貴州電子信息職業技術學院計算機科學系
實訓總結報告
組名:IT全力藍隊
組員:文權、韓梅麗、楊進、潘杰珍、姚茂霞、康波姓名:文權班級:21001日期:2012年6月9日通過這三周的實訓,給我感覺很充實,學到了比平時更多的東西,也覺得時間過的太快了,一下就過去了三周,回顧這三周,給我很大的啟發。
這三周的實訓,我把自己所學到的知識從理論上升到實踐當中去了,但是我在實踐中,知識不能夠完全的運用出來。而且,我也發現自己所掌握的知識非常的不充足,而且我還發現了,一個簡單的項目就需要設計者花費如此大的時間和精力,因此,我們要多多珍惜別人的勞動成果,在以后的學習生活中,還需要多多的汲取知識。
在這次實訓中,我擔任的是管理組長的工作。對于軟件設計來說,一個程序只有通過不斷的測試,修改,優化,才能更加的完善,更加的能讓用戶體驗到這個軟件的強大功能。我在設計中也遇到了不少的難題。
其實這個項目還有很多的不足地方,我們會在以后近一步的修改,比如說,可以在項目中添加設計一些條件、或者更多的控件,增加一下可以選擇難度的功能等等。
這次實訓中,我還體會到團隊協作的強大。對于一個大工程來說,沒有良好的團隊,就不會取得良好的成績,團隊精神對于每個人來說都是非常重要不可缺少的。
總之這次課程試訓讓我學到了很多,從需求分析到程序的編寫,讓我們很好的把所學的知識轉化到實際的應用當中,不僅讓我對以前所學知識有了一個更深的了解,更重要的是鍛煉了我的動手能力,分組合作也讓我們學到了很多東西,團隊的力量是無窮的,我們在合作的同時可以彌補相互間的不足,也可以相互促進、相互鼓勵,學到更多的東西。
至于對老師您的意見,總體上感覺老師還是很不錯的,在課程實訓過程中很好的引導了我們,講課方法也很不錯,讓學生處于主導地位,盡量去引導學生去思考,這點是讓我印象最深的。不過希望有時候您能在技術上的疑問給我們一定的幫助..........足下軟件有限公司企業級項目實訓
貴州電子信息職業技術學院計算機科學系
足下軟件有限公司企業級項目實訓 姓名:班級:日期:
第五篇:C#應用程序設計教程 第二版+課后習題答案
第一章
1.判斷題
(1)×(2)√(3)√(4)×(5)×
(6)√ 2.選擇題
(1)C(2)B(3)B(4)C(5)D
(6)C 3.編程題
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args){ Console.WriteLine(“Hello C#”);} } }
第二章
1.判斷下列符號哪些是合法的C#變量名稱
北京 abc _xyz x_y 2.根據要求寫出C#表達式(1)N%3==0 & N%5==0(2)(char)new Random().Next(67,74)(3)Math.Pow(x,3)*y/(x+y)(4)Math.Sqrt(b*b-4*a*c)3.判斷題
(1)×(2)√(3)√(4)√(5)√
(6)×(7)√(8)√(9)√(10)×(11)√(12)× 4.選擇題
(1)B(2)C(3)B(4)B
(5)C
(6)B(7)D(8)B(9)C(10)A 5.分析并寫出下列程序運行結果(1)a=21,b=9,c=16
y=4(2)b=41(3)s=6(4)a[0]=28
a[1]=15
a[2]=39
a[3]=48
a[4]=39 6.程序填空
(1)① 3 ② a[i] ③ a[i] ④ a[5-i] ⑤ a[5-i](2)① i % 5 == 0 | i % 7 == 0 ② s+ i 7.編程題(1)static void Main(string[] args){ int s,i,j;for(i = 2;i < 1000;i++){ s = 0;for(j = 1;j < i;j++){ if(i % j == 0)s += j;} if(i == s)Console.WriteLine(“{0}”,i);} }(2)static void Main(string[] args){ int[,] a = {{2,5,18,4 },{3,4,9,2},{4,1,16,8},{5,2,14,6}};int i,j,k,max,maxj;for(i = 0;i < 4;i++){ max = a[i,0];maxj = 0;for(j = 1;j < 4;j++){ if(max < a[i,j]){max = a[i,j];maxj = j;} } for(k = 0;k < 4;k++){ if(a[k, maxj] < max)break;} if(k == 4)Console.WriteLine(“鞍點:第{0}行,第{1}列”,i+1,maxj+1);} }(3)
static void Main(string[] args){ int a = 20, b = 16,i=20;do { if(i % a == 0 & i % b == 0)break;i++;} while(true);Console.WriteLine(“最小公倍數:{0}”,i);i = 16;do { if(a % i == 0 & b % i == 0)break;i--;} while(true);Console.WriteLine(“最大公約數:{0}”,i);}(4)
static void Main(string[] args){ int i, j,k;float s = 1.0f;for(i = 2;i < 11;i++){ k=1;for(j = 2;j <= i;j++)k += j;s += 1.0f / k;} Console.WriteLine(“s={0}”,s);}(5)
static void Main(string[] args){ String s = “a,b2>4[AG6p(”;int i, n1=0,n2=0,n3=0,n4=0;for(i=0;i
static void Main(string[] args){ int i,s = 1;for(i = 0;i < 5;i++){ s = 2 *(s + 1);} Console.WriteLine(“小猴子第一天摘了{0}個桃子”,s);}
說明:由最后一天往前推算。后一天吃了前一天桃子數量的一半多1個,剩余桃子數量是前一天桃子數量的一半減1,則,前一天的桃子數量是后一天的桃子數量加1的2倍。
第三章
1.判斷題
(1)√(2)×(3)√
(4)√(5)√(6)×(7)√(8)×(9)×
(10)√
(11)√(12)√(13)√(14)×(15)√(16)√(17)×(18)√(19)√(20)×(21)×(22)√(23)√(24)√(25)×(26)×(27)× 2.選擇題
(1)C(2)B(3)C(4)D
(5)C
(6)B(7)D(8)C(9)A(10)A(11)B(12)A(13)D(14)B
(15)C
3.分析下列程序的運行結果(1)s=32,s1=32,s2=34
x=11,y=21(2)x1=3,x2=4
y1=1,y2=4 4.編程題(1)
class Student { public string studentid;public string studentname;private string birthplace;private DateTime birthdate;public Student(string id, string name){ studentid = id;studentname = name;} public string StudentId { get { return studentid;} set { studentid = value;} } public string StudentName { get { return studentname;} set { studentname = value;} } public string BirthPlace { get { return birthplace;} set { birthplace = value;} } public DateTime BirthDate { get { return birthdate;} set { birthdate = value;} } public int Age { get { return DateTime.Now.Year1, p1.yp1.x)*(p2.xp1.y)*(p2.yv2;if(radioButton3.Checked ==true)v = v1 * v2;if(radioButton4.Checked ==true){ if(v2!= 0)v = v1 / v2;} textBox3.Text = v.ToString();} 3.利用4.6節知識,參考圖4-29設計具有菜單、工具欄和狀態欄的Windows窗口應用程序。
第五章
1.判斷題
(1)√(2)×(3)√(4)√(5)×
(6)√(7)×
2.選擇題
(1)A(2)無答案,應該是TextReader(3)A(4)C
(5)A(6)C 3.編程題
創建Windows窗口用于程序,在窗口上放置一個Button控件,名稱為button1,編寫其Click事件處理方法:
private void button1_Click(object sender, EventArgs e){ int i, j;int[,] a=new int[3,3];int[,] b = new int[3, 3];int[,] c = new int[3, 3];string s1;string[] ss;FileStream fs = new FileStream(@“d:data1.txt”,FileMode.Open);StreamReader sr=new StreamReader(fs,Encoding.Default);StreamWriter sw;BinaryWriter bw;for(i = 0;i < 3;i++){ s1 = sr.ReadLine();ss = s1.Split(' ');for(j = 0;j < 3;j++){ a[i, j] = int.Parse(ss[j]);} } for(i = 0;i < 3;i++){ s1 = sr.ReadLine();ss = s1.Split(' ');for(j = 0;j < 3;j++){ b[i, j] = int.Parse(ss[j]);} } sr.Close();fs.Close();for(i = 0;i < 3;i++)for(j = 0;j < 3;j++)c[i, j] = a[i, j] + b[i, j];SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = “文本文件(*.txt)|*.txt”;if(sfd.ShowDialog()== DialogResult.OK){ fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate);sw = new StreamWriter(fs,Encoding.Default);for(i = 0;i < 3;i++){ for(j = 0;j < 3;j++){ sw.Write(c[i, j]);sw.Write(“ ”);} sw.Write(“n”);} sw.Close();fs.Close();} sfd.Filter = “二進制文件(*.bin)|*.bin”;if(sfd.ShowDialog()== DialogResult.OK){ fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate);bw = new BinaryWriter(fs);for(i = 0;i < 3;i++)for(j = 0;j < 3;j++)bw.Write(c[i, j]);bw.Close();fs.Close();} } 說明:data1.txt文件中共9行整數,每行3個整數,每個數據之間以一個空格隔開。
第六章
1.判斷題
(1)√(2)×(3)×(4)×(5)√
(6)√(7)√(8)×(9)×(10)√
2.選擇題
(1)C(2)D(3)C(4)A
(5)B(6)C(7)B(8)D 3.編程題
創建Windows窗口應用程序,在窗口上放置一個toolStrip控件,并在其中添加兩個組合框,名稱分別為toolStripComboBox1和toolStripComboBox2,給toolStripComboBox1添加選項:短劃線、點劃線、雙點劃線、虛線、實線,給toolStripComboBox2添加選項:1、2、3、4。給窗口添加如下私有字段:
private Graphics g1;private DashStyle dashstyle=DashStyle.Solid;private float penwidth=1;private Pen pen1;private bool beDraw = false;private Point p1, p2;編寫comboBox1和comboBox2的SelectedIndexChanged事件處理方法:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){ dashstyle =(DashStyle)comboBox1.SelectedIndex;}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){ penwidth =float.Parse(comboBox2.Text);} 編寫Form3的Load、MouseDown、MouseMove和MouseUp以及工具欄上兩個組合框的SelectedIndexChanged事件處理方法:
private void Form3_Load(object sender, EventArgs e){ toolStripComboBox1.SelectedIndex = toolStripComboBox1.Items.Count-1;toolStripComboBox2.SelectedIndex = 0;} private void Form3_MouseDown(object sender, MouseEventArgs e){ pen1 = new Pen(Color.Red, penwidth);pen1.DashStyle = dashstyle;beDraw = true;p1 = e.Location;g1 = this.CreateGraphics();} private void Form3_MouseMove(object sender, MouseEventArgs e){ if(beDraw == true){ p2 = e.Location;g1.DrawLine(pen1, p1, p2);p1 = p2;} } private void Form3_MouseUp(object sender, MouseEventArgs e){ beDraw = false;} private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e){ dashstyle =(DashStyle)toolStripComboBox1.SelectedIndex;} private void toolStripComboBox2_SelectedIndexChanged(object sender, EventArgs e){ penwidth = float.Parse(toolStripComboBox2.Text);}
第七章
1.判斷題
(1)√(2)×(3)×(4)×(5)√
(6)×(7)√(8)×(9)√(10)×(11)√(12)×(13)√(14)√(15)√(16)√
2.選擇題
(1)A(2)D(3)C(4)A
(5)D(6)B(7)C(8)D(9)B(10)C(11)C 12)C 13)A 14)B 15)D 16)D 3.編程題
(1)創建Windows窗口應用程序,在窗口上放置兩個Button控件,名稱分別為button1和button2,再放置一個ComboBox控件和DataGridView控件,名稱分別為comboBox1和dataGridView1。
編寫button1的Click事件處理方法:
private void button1_Click(object sender, EventArgs e){ OleDbConnection con = new OleDbConnection();OleDbCommand com = new OleDbCommand();con.ConnectionString =@“Provider=microsoft.jet.oledb.4.0;data source=d:aaa.mdb”;con.Open();com.CommandType = CommandType.Text;com.CommandText = “select * from Score where score>80”;com.Connection = con;OleDbDataReader dr = com.ExecuteReader();comboBox1.Items.Clear();while(dr.Read()== true){ if(dr.IsDBNull(dr.GetOrdinal(“StudentID”))== false)
comboBox1.Items.Add(dr[“StudentID”]);} } 說明:為了使用ADO.NET的OLEDB訪問方式,需要添加下列引用:
using System.Data.OleDb;(2)界面與(1)相同。
編寫button2的Click事件處理方法:
private void button2_Click(object sender, EventArgs e){ OleDbConnection con = new OleDbConnection();OleDbCommand com = new OleDbCommand();con.ConnectionString = @“Provider=microsoft.jet.oledb.4.0;data source=d:aaa.mdb”;con.Open();OleDbDataAdapter da = new OleDbDataAdapter(“select Class as 班級,avg(Score)as平均成績 from Score group by Class”, con);DataSet ds = new DataSet();da.Fill(ds, “平均成績表”);dataGridView1.DataSource =ds.Tables[“平均成績表”];}(3)參考7.7節的學生信息管理程序,編寫通訊錄管理程序,細節略。