




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C#程序設(shè)計基礎(chǔ)入門教程習題答案第1章 C#開發(fā)入門一、填空題1、 .dll、 .exe2、 CLR3、 編譯、運行4、 互操作性5、 Console.WriteLine()二、選擇題1、 C 2、B3、C4、A5、D三、問答題1、 它是一個全新的、集成的、面向?qū)ο蟮拈_發(fā)平臺,它以公共語言運行時(Common Language Runtime,簡寫CLR)為基礎(chǔ),支持多種編程語言。 2、 .NET平臺是一個環(huán)境,而C#只是一門語言,并不是它的一部分。C#語言編寫的程序可以在.NET平臺上運行。 四、編程題1、參考答案 class Program static void Main(string
2、args) Console.WriteLine("這是我的第一個C#程序!"); Console.ReadKey(); 第2章 C#編程基礎(chǔ)(上)一、填空題1、 class2、 true和false3、 54、 值數(shù)據(jù)類型、引用數(shù)據(jù)類型5、 1、46、 & && | | 7、 08、 單行注釋、多行注釋、文檔注釋9、 break10、 1000 二、判斷題1、 錯2、錯3、錯4、對5、錯三、選擇題1、 AD 2、BCD3、C4、C5、C6 、A7、AC8、AC9、BD10、A四、程序分析題1、 編譯不通過。int值4和b相加時,由于變量b的類型為by
3、te,取值范圍沒有int類型大,存不下int類型的值,因此編譯不通過。2、 編譯不通過。這是因為y是在最里層的代碼塊中定義的一個變量,只有在那個代碼塊中才可使用,在使用y = x;語句時已經(jīng)超過了y變量的作用域,所以編譯無法通過。3、 編譯不通過。因為switch語句中的每個分支語句之間需要使用break關(guān)鍵字隔開,如果沒有break語句就會報錯。4、 打印結(jié)果為: 9 8 7五、問答題1、標識符可以由任意順序的大小寫字母、數(shù)字、下劃線(_)和符號組成,但標識符不能以數(shù)字開頭,且不能是C#中的關(guān)鍵字。2、如果使用“&”在表達式之間進行連接,那么無論任何情況,“&”兩邊的表達式都
4、會參與計算。如果使用“&&”進行連接,當“&&”左邊的表達式為false,則不會執(zhí)行其右邊的表達式。例如定義int x = 2,y = 0; bool b = x < y & x / 2 > 0表達是會發(fā)生被0除異常,因為x / y的表達式執(zhí)行了。而bool b = x < y & x / 2 > 0是不會出現(xiàn)這種異常的,因為x < y為false,表達式x / y不會執(zhí)行。3、相同點:1、二者都可以多次執(zhí)行循環(huán)體。2、二者都可以進行循環(huán)次數(shù)確定的循環(huán)操作。不同點:1、 在循環(huán)次數(shù)不確定的情況下,一般會使用while
5、循環(huán)。2、 在while循環(huán)中,條件表達式中的變量都會定義在while語句的外面,而在for循環(huán)中,條件表達式中的變量都會定義在for語句中。六、編程題1、參考答案 public class Test01 public static void Main(string args) int x = 5; if (x % 2 != 0) Console.WriteLine("x是一個奇數(shù)"); else Console.WriteLine("x是一個偶數(shù)"); Console.ReadKey(); 2、參考答案 public class Test02 publ
6、ic static void Main(string args) int sum=0; for (int i = 1; i <=99; i+) if (i % 2 != 0) sum += i; Console.WriteLine("1-99之間的奇數(shù)和為:"+sum); Console.ReadKey(); 第3章 C#編程基礎(chǔ)(下)一、填空題1、 void2、 方法名相同、方法簽名不同3、 自身4、 params5、 逐語句、逐過程6、 帕斯卡命名規(guī)范7、 結(jié)束條件8、 99、 斷點10、 6 二、判斷題1、 對2、錯3、對4、對5、錯三、選擇題1、 AC 2、B
7、C3、C4、B5、B6 、BD 7、 C8、A9、AC10、A四、程序分析題1、 編譯不通過,Say()方法沒有返回值。2、 編譯不能通過,在給TestFunc()方法傳參時必須加上ref。3、 編譯不能通過,參數(shù)為out類型的方法,必須在方法內(nèi)對參數(shù)賦值。 五、簡答題1、方法重載是指:允許在一個類中同名方法的存在,但是方法的參數(shù)列表必須不同。實現(xiàn)重載的條件是方法名必須相同,參數(shù)類型或個數(shù)必須不同。當調(diào)用該方法時,根據(jù)參數(shù)的不同可以產(chǎn)生不同的結(jié)果。2、ref參數(shù)是用于傳遞參數(shù)的引用,而不是參數(shù)的值。out參數(shù)則用于將值從方法體內(nèi)傳到方法體。ref參數(shù)必須在方法調(diào)用前賦值,out參數(shù)必須在方法內(nèi)
8、進行賦值。3、逐語句調(diào)試會進入方法的內(nèi)部調(diào)試,單步執(zhí)行方法體的每一句帶代碼。逐過程調(diào)試就是不會進入方法體內(nèi)部,而是把方法當做一行代碼來執(zhí)行。六、編程題1、參考答案 class Program public static void Main(string args) int sum = Func(99); Console.WriteLine("sum = " + sum); Console.ReadKey(); public static int Func(int n) int sum = n; if (n < 1) sum += 1; else sum += Func
9、(n - 2); return sum; 2、參考答案 class Program public static void Main(string args) int result=0; Console.Write("請輸入x的值:"); int input=int.Parse(Console.ReadLine(); result = Result(input); Console.WriteLine("y的結(jié)果為:0",result); Console.ReadKey(); public static int Result(int x) if (x >
10、; 0) return x + 3; else if (x < 0) return x * x - 1; else return 0; 3、參考答案class Program public static void Main(string args) int arr = 25, 24, 12, 76, 101, 96, 28 ; Console.Write("冒泡排序前:"); PrintArray(arr); /打印數(shù)組元素 BubbleSort(arr); /調(diào)用排序方法 Console.Write("冒泡排序后:"); PrintArray(a
11、rr); /打印數(shù)組元素 Console.ReadKey(); /定義打印數(shù)組的方法 public static void PrintArray(int arr) /循環(huán)遍歷數(shù)組的元素 for (int i = 0; i < arr.Length; i+) Console.Write(arri + " "); /打印元素和空格 Console.WriteLine(); /定義對數(shù)組排序的方法 public static void BubbleSort(int arr) /定義外層循環(huán) for (int i = 0; i < arr.Length - 1; i+)
12、 /定義內(nèi)層循環(huán) for (int j = 0; j < arr.Length - i - 1; j+) if (arrj > arrj + 1) /比較相鄰元素 /下面的三行代碼用于交換兩個元素 int temp = arrj; arrj = arrj + 1; arrj + 1 = temp; 第4章 面向?qū)ο蠡A(chǔ)一、填空題1、封裝、繼承、多態(tài) 2、new 3、成員變量、局部變量4、類5、靜態(tài)的6、模板7、靜態(tài)方法 類名.方法名8、內(nèi)部類9、字段 private10、對象初始化器二、判斷題1、對 2、對 3、錯 4、對 5、錯三、選擇題1、B 2、D 3、B 4、ABC 5、A
13、BCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D 四、程序分析題1、程序不能編譯通過,因為在類A中的成員變量secret用private修飾,所以在類Test1中無法訪問。2、程序不能編譯通過,因為在靜態(tài)方法method()中不能訪問非靜態(tài)成員變量x。3、程序能夠編譯通過,運行的結(jié)果為“inner”。五、簡答題1、構(gòu)造方法是類的一個特殊成員,它會在類實例化對象時被自動調(diào)用。而普通方法只有在使用的時 候才會被調(diào)用。在定義構(gòu)造方法時要求方法名與類名相同、在方法名的前面沒有返回值類型的聲 明、在方法中不能使用return語句返回一個值。2、面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài)。封裝是
14、將對象的特性和行為封裝起來,不需要外界只 具體的實現(xiàn)細節(jié),使用時直接調(diào)用即可。繼承主要用來描述類與類之間的關(guān)系,通過繼承可以復用已有的代碼并在此基礎(chǔ)上進行擴展。多態(tài)是指同一操作用于不同對象,會產(chǎn)生不同的執(zhí)行結(jié)果。六、編程題1、參考答案class Student private String name;private double grade;public Student() public Student(String name, double grade) = name;this.grade = grade;public String getName() return na
15、me;public void setName(String name) = name;public double getGrade() return grade;public void setGrade(double grade) this.grade = grade;public class Test01 public static void main(String args) Student stu1 = new Student();stu1.setName("zhangsan");stu1.setGrade(99);Student stu2 = n
16、ew Student("lisi", 100);2、參考答案class SingleExample private static SingleExample instance;private SingleExample() /無參構(gòu)造方法 public static SingleExample Method() if(instance=null) Instance=new SingleExample();第5章 面向?qū)ο蟾呒壱?、填空題1、繼承 2、抽象方法、抽象類 3、using4、派生類或子類5、base6、sealed7、new8、Object9、try、catch10
17、、virtual、override二、判斷題1、錯 2、對 3、錯 4、對 5、對三、選擇題1、B 2、C 3、ABD 4、ABCD 5、C 6、AC 7、C 8、ACD 9、A 10、B 四、分析題1、不能編譯通過,由于Dog和Cat類沒有繼承關(guān)系。無法將cat()隱式轉(zhuǎn)換為Dog()類型。2、不能編譯通過,Dog類中的shout()方式是密封的,在BlackDog類中不能重寫該方法。3、程序能夠編譯通過。4、編譯不能通過,因為Dog類中沒有實現(xiàn)Animal接口中的全部方法。五、簡答題1、方法重寫是:當子類繼承父類中的方法時,父類方法的功能不能滿足子類的需求,通過重寫父類的方法可以增加或修改
18、相應的功能。實現(xiàn)方法重寫的條件是:要求子類的方法名、參數(shù)類型和參數(shù)個數(shù)必須與父類方法相同,而且父類方法必須使用virtual關(guān)鍵字修飾,子類方法必須使用override關(guān)鍵字修2、多態(tài)就是不屬于同一個類的多個對象調(diào)用相同方法,產(chǎn)生的結(jié)果不同。實現(xiàn)多態(tài)有三種方式:方法,抽象類,接口。3、抽象類使用abstract關(guān)鍵字,抽象類中可以有抽象方法,也可以有非抽象方法。接口使用interface關(guān)鍵字,接口中所有的方法都是抽象方法。六、編程題1、參考答案class Program static void Main(string args) Student student = new Student(&
19、quot;小明",18); Undergraduate degree = new Undergraduate("小剛",28,"學士"); student.Show(); degree.Show(); Console.ReadKey(); class Student public string Name get; set; public int Age get; set; public Student(string name,int age) this.Name = name; this.Age = age; public void Show(
20、) Console.WriteLine("姓名:0 年齡:1",Name,Age); class Undergraduate:Student public string Degree get; set; / 調(diào)用父類的構(gòu)造方法 public Undergraduate(string name, int age, string degree):base(name,age) this.Name = name; this.Age = age; this.Degree = degree; public new void Show() Console.WriteLine("
21、姓名:0 年齡:1 學位:2",Name,Age ,Degree); 2、參考答案 class Program static void Main(string args) Square square = new Square(); Circle circle = new Circle(); Console.WriteLine("正方形的面積為:0",square.Area(2); Console.WriteLine("圓形的面積為: 0",circle.Area(3); Console.ReadKey(); /定義一個接口 interface
22、Shape double Area(double x); /定義一個實現(xiàn)計算面積的抽象方法 /實現(xiàn)接口Shape class Square:Shape /計算正方形的面積 public double Area(double x) return x*x; class Circle:Shape /計算圓形的面積 public double Area(double x) return Math.PI*x*x; 第6章 WinForm基礎(chǔ)一、填空題1、 Form1設(shè)計、Form1.cs2、 SelectedItem3、 Run()4、 控制Tick事件觸發(fā)的頻率5、6、 Form1.resx7、 Pr
23、ogram.cs8、 Control9、 Load10、ExpandAll()二、判斷題1、對 2、對 3、對 4、對 5、對三、選擇題1、D 2、D 3、B 4、C 5、A 6、A 7、D 8、B 9、B 10、A四、程序分析題一、1、btnSecond.Visible=false;2、btnSecond.Visible=true; btnFirst.Visible=false;3、btnSecond.Visible=false; btnFirst.Visible=true;二、1、string musics = "真的愛你", "無悔這一生" ; f
24、or (int i = 0; i < musics.Length; i+) cmbShow.Items.Add(musicsi); 2、cmbShow.SelectedIndex = 0;3、!string.IsNullOrEmpty(txtName.Text)4、cmbShow.Items.Add(txtName.Text);5、cmbShow.SelectedIndex = cmbShow.Items.Count - 1;6、txtName.Text = ""7、MessageBox.Show("請輸入歌曲的名字!");五、簡答題 1
25、、WinForm項目的文件結(jié)構(gòu)包括五個部分,分別是Properties、引用、App.config、Form1.cs、Program.cs,其中Properties用來設(shè)置項目的屬性,引用用來設(shè)置對其他項目命名空間的引用,App.config用來設(shè)置數(shù)據(jù)庫的配置信息,F(xiàn)orm1.cs文件用來設(shè)置窗體界面以及編寫邏輯代碼,Program.cs文件用來設(shè)置項目運行時的主窗體。2、屬性:1、Name屬性在指示代碼中用來標識該對象的名稱。2、Text屬性用來表示與控件關(guān)聯(lián)的文本。3、Visible屬性用來確定該控件時可見的還是隱藏的。4、Enabled屬性用來指示是否啟用該控件5、Tag屬性表示與對象
26、關(guān)聯(lián)的用戶定義數(shù)據(jù)。事件:1、 Load事件在窗體加載時被觸發(fā)。2、 Click事件在單擊控件時發(fā)生。3、 MouseEnter事件在鼠標進入控件的可見部分時發(fā)生。4、 MouseLeave事件在鼠標離開控件的可見部分時發(fā)生。5、 FontChanged事件在控件的Font屬性值更改時引發(fā)的事件。六、編程題1、 運行效果圖彈出消息框顯示“用戶名或密碼不能為空!”彈出消息框顯示“用戶名或密碼不正確!”彈出消息框顯示“登陸成功!”參考邏輯代碼 public partial class FormLogin : Form public FormLogin() InitializeComponent()
27、; private void btnLogin_Click(object sender, EventArgs e) string name = txtName.Text; string password = txtPassword.Text; if (string.IsNullOrEmpty(name) | string.IsNullOrEmpty(password) MessageBox.Show("用戶名或密碼不能為空!"); else if (txtName.Text = "user" && txtPassword.Text = &
28、quot;itcast") MessageBox.Show("登陸成功!"); else MessageBox.Show("用戶名或者密碼不正確!"); 2、 運行效果圖顯示湖北省下的三個市參考邏輯代碼 public partial class FormCity : Form public FormCity() InitializeComponent(); private void Form5_Load(object sender, EventArgs e) cmbProvince.Items.AddRange(new string "
29、;河北省", "湖北省" ); cmbProvince.SelectedIndex = 0; private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e) cmbCity.Items.Clear(); if (cmbProvince.SelectedIndex = 0) cmbCity.Tag = "0" cmbCity.Items.AddRange(new string "唐山市", "石家莊市", "邯鄲市
30、" ); cmbCity.SelectedIndex = 0; if (cmbProvince.SelectedIndex = 1) cmbCity.Tag = "1" cmbCity.Items.AddRange(new string "武漢市", "荊州市", "十堰市" ); cmbCity.SelectedIndex = 0; 第7章 C#常用類一、填空題1、String類、StringBuilder類 2、字符 3、ToCharArray()4、25、int6、StringBuilder類創(chuàng)建的
31、字符串的長度是可變的7、TimeSpan()8、Length9、Now10、Append()二、判斷題1、錯 2、對 3、錯 4、對 5、錯三、選擇題1、D 2、C 3、A 4、B 5、B 6、B 7、C 8、A 9、B 10、C 四、分析題1、編譯不能通過,因為string對象的索引器為只讀,不能對其賦值。2、編譯不能通過,因為方法IsNullOrEmpty()是String類的靜態(tài)方法。3、編譯不能通過,無法將StringBuilder類型隱式轉(zhuǎn)換為String類型。五、簡答題1、相同點:都是用來處理字符串的類。不同點:String具有不可變性,StringBuilder是可變的,當需要多
32、次操作字符串是,StringBuilder性能較高2、例如 string s=”abc”; s=s+”d”; 此時原有的abc字符串并沒有改變,而是重寫指向了abcd字符串。 六、編程題1、參考答案public static void Main(string args) string str = "HelloWorld" StringBuilder sb=new StringBuilder(); for (int i = 0; i < str.Length; i+) /如果是小寫字母 if (stri >= 'a' && stri
33、 <= 'z') /將字符轉(zhuǎn)換為字符串并使用ToUpper()轉(zhuǎn)換為大寫 sb.Append( stri.ToString().ToUpper(); else sb.Append( stri.ToString().ToLower(); /輸出動態(tài)字符串的內(nèi)容 Console.WriteLine(sb.ToString(); Console.ReadKey(); 2、 參考答案static void Main(string args) char chineseWord = '零', '一', '二', '三',
34、 '四', '五', '六', '七', '八', '九' ; string timeStr = "2014.01.01" StringBuilder sb = new StringBuilder(); /將字符串分割成數(shù)組 string times = timeStr.Split(new char'.', StringSplitOptions.RemoveEmptyEntries); /遍歷數(shù)組 for (int timesCount = 0; timesCou
35、nt < times.Count(); timesCount+) /獲取當前循環(huán)到的字符串 string str=timestimesCount; /拼接年部分轉(zhuǎn)換后的字符串 if (timesCount = 0) int index; for (int strCount = 0; strCount < str.Length; strCount+) index = Convert.ToInt32(strstrCount.ToString(); sb.Append(chineseWordindex); sb.Append("年"); break; else /月份
36、或天轉(zhuǎn)換后的字符串 sb.Append(JoinStr(str, chineseWord); switch (timesCount) case 1:sb.Append("月"); break; case 2:sb.Append("日"); break; Console.WriteLine(sb.ToString(); Console.ReadKey(); /用于拼接月或日轉(zhuǎn)換后的字符串。 private static string JoinStr(string str, char chineseWord) StringBuilder sb = new S
37、tringBuilder(); int index; /循環(huán)月份或天的字符串 for (int strCount = 0; strCount < str.Length; strCount+) /索引為0時表示月或天的第一位 if (strCount = 0) /可取值0,1,2,3 switch (str0) case '0': ; break; case '1': sb.Append("十"); break; case '2': sb.Append("二十"); break; case '3
38、': sb.Append("三十"); break; else /將傳遞的字符串對應的索引位上的值轉(zhuǎn)換成數(shù)字。 index = Convert.ToInt32(strstrCount.ToString(); /當月份的第二位為0時什么都不用做否則找到漢字數(shù)組中對應的漢字 if (index != 0) sb.Append(chineseWordindex); return sb.ToString(); 3、參考答案public static void Main(string args) string str = "一日,天氣炎熱。兩香蕉在路上散步,一香蕉抱
39、怨道:“好熱,好熱啊?!彼烀撘隆A硪幌憬端斓?quot; StringBuilder sb = new StringBuilder(); if (str.Contains("脫衣") int index = str.IndexOf("脫衣"); string str1 = str.Substring(0,index); string str2 = str.Substring(index + 2); sb.Append(str1); sb.Append("*"); sb.Append(str2); Console.WriteLine(s
40、b.ToString(); Console.ReadKey(); 第8章 文件操作一、填空題1、輸入流、輸出流2、Copy()3、GetParent()4、System.IO5、Directory、DirectoryInfo6、Serializable7、GetFullPath()8、序列化9、FileMode10、FileStream二、判斷題1、錯 2、對 3、對 4、錯 5、錯三、選擇題1、A 2、C 3、ABD 4、C 5、C 6、AB 7、A 8、D 9、C 10、A 四、程序填空題1、File.Exists("D:1.txt")、"D:1.txt","D:2.txt"、File.Copy、File.Delete2、sr.ReadLine()、sw.Dispose() 五、簡答題1、流是對計算機輸入輸出設(shè)備之間數(shù)據(jù)傳輸?shù)囊环N抽象,例如通過鍵盤輸入數(shù)據(jù)、顯示器顯示程序的運行結(jié)果等這些都是流。2、StreamReader和StreamWriter類都是以用于處理文本文件的,只是StreamReader用于讀取文件,StreamWriter用于寫入文件。3、F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口咖啡合同范本
- 防汛評估工程合同范本
- 勞務派遣公司派遣合同范本
- 人教版初中歷史與社會九年級上冊 1.2.2 武昌起義與中華民國的創(chuàng)建 教學設(shè)計
- Unit 3 Powerful Music Listening,Understanding and Communicating 教學設(shè)計-2024-2025學年高中英語重大版(2019)必修第一冊
- 動物及其產(chǎn)品銷售合同
- 建筑公司合同管理職責
- 《擬行路難》教學設(shè)計 2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 線段、射線、直線(教學設(shè)計)-2024-2025學年四年級上冊數(shù)學北師大版
- 12早睡早起(教學設(shè)計)-部編版道德與法治一年級上冊
- 水泥基自流平地面技術(shù)交底
- T-CSAC 004-2024 軟件供應鏈安全要求測評方法
- 2024-2025學年人教版七年級數(shù)學上冊期末模擬測試卷(含簡單答案)
- 【MOOC】理解馬克思-南京大學 中國大學慕課MOOC答案
- 《商務溝通-策略、方法與案例》課件 第十章 基本商務溝通
- 河南省鄭州市外國語高中2025屆高考仿真卷英語試卷含解析
- 挑戰(zhàn)杯-申報書范本
- 超市投標書范文
- 《工程合同管理與招投標實訓》課程電子教案
- 腫瘤科疼痛一病一品
- 2024-2030年中國礦用錨桿行業(yè)發(fā)展現(xiàn)狀需求分析報告
評論
0/150
提交評論