




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C#程序設計基礎入門教程》習題答案C#開發入門一、填空題.dll、.exeCLR編譯、運行互操作性Console.WriteLine()二、選擇題C 2、B 3、C 4、A 5、D三、問答題它是一個全新的、集成的、面向對象的開發平臺,它以公共語言運行時(CommonLanguageRuntime,簡寫CLR)為基礎,支持多種編程語言。.NET平臺是一個環境,而C#只是一門語言,并不是它的一部分。C#語言編寫的程序可以在.NET平臺上運行。四、編程題1、參考答案classProgram{staticvoidMain(string[]args){Console.WriteLine("這是我的第一個C#程序!");Console.ReadKey();}}C#編程基礎(上)一、填空題classtrue和false5值數據類型、引用數據類型1、4&&&|||0單行注釋、多行注釋、文檔注釋break1000二、判斷題錯 2、錯 3、錯 4、對 5、錯三、選擇題AD 2、BCD 3、C 4、C 5、C 6、A 7、AC 8、AC 9、BD 10、A四、程序分析題編譯不通過。int值4和b相加時,由于變量b的類型為byte,取值范圍沒有int類型大,存不下int類型的值,因此編譯不通過。編譯不通過。這是因為y是在最里層的代碼塊中定義的一個變量,只有在那個代碼塊中才可使用,在使用y=x;語句時已經超過了y變量的作用域,所以編譯無法通過。編譯不通過。因為switch語句中的每個分支語句之間需要使用break關鍵字隔開,如果沒有break語句就會報錯。打印結果為: 9 8 7五、問答題1、標識符可以由任意順序的大小寫字母、數字、下劃線(_)和@符號組成,但標識符不能以數字開頭,且不能是C#中的關鍵字。2、如果使用“&”在表達式之間進行連接,那么無論任何情況,“&”兩邊的表達式都會參與計算。如果使用“&&”進行連接,當“&&”左邊的表達式為false,則不會執行其右邊的表達式。例如定義intx=2,y=0;boolb=x<y&x/2>0表達是會發生被0除異常,因為x/y的表達式執行了。而boolb=x<y&x/2>0是不會出現這種異常的,因為x<y為false,表達式x/y不會執行。3、相同點: 1、二者都可以多次執行循環體。 2、二者都可以進行循環次數確定的循環操作。 不同點:在循環次數不確定的情況下,一般會使用while循環。在while循環中,條件表達式中的變量都會定義在while語句的外面,而在for循環中,條件表達式中的變量都會定義在for語句中。六、編程題1、參考答案publicclassTest01{publicstaticvoidMain(string[]args){intx=5;if(x%2!=0){Console.WriteLine("x是一個奇數");}else{Console.WriteLine("x是一個偶數");}Console.ReadKey();}}2、參考答案publicclassTest02{publicstaticvoidMain(string[]args){intsum=0;for(inti=1;i<=99;i++){if(i%2!=0){sum+=i;}}Console.WriteLine("1-99之間的奇數和為:"+sum);Console.ReadKey();}}C#編程基礎(下)一、填空題void方法名相同、方法簽名不同自身params逐語句、逐過程帕斯卡命名規范結束條件9斷點6二、判斷題對2、錯3、對4、對5、錯三、選擇題AC2、BC3、C4、B5、B6、BD7、C8、A9、AC10、A四、程序分析題編譯不通過,Say()方法沒有返回值。編譯不能通過,在給TestFunc()方法傳參時必須加上ref。編譯不能通過,參數為out類型的方法,必須在方法內對參數賦值。五、簡答題1、方法重載是指:允許在一個類中同名方法的存在,但是方法的參數列表必須不同。實現重載的條件是方法名必須相同,參數類型或個數必須不同。當調用該方法時,根據參數的不同可以產生不同的結果。2、ref參數是用于傳遞參數的引用,而不是參數的值。out參數則用于將值從方法體內傳到方法體。ref參數必須在方法調用前賦值,out參數必須在方法內進行賦值。3、逐語句調試會進入方法的內部調試,單步執行方法體的每一句帶代碼。逐過程調試就是不會進入方法體內部,而是把方法當做一行代碼來執行。六、編程題1、參考答案classProgram{publicstaticvoidMain(string[]args){intsum=Func(99);Console.WriteLine("sum="+sum);Console.ReadKey();}publicstaticintFunc(intn){intsum=n;if(n<1){sum+=1;}else{sum+=Func(n-2);}returnsum;}}2、參考答案classProgram{publicstaticvoidMain(string[]args){intresult=0;Console.Write("請輸入x的值:");intinput=int.Parse(Console.ReadLine());result=Result(input);Console.WriteLine("y的結果為:{0}",result);Console.ReadKey();}publicstaticintResult(intx){if(x>0){returnx+3;}elseif(x<0){returnx*x-1;}else{return0;}}}3、參考答案classProgram{publicstaticvoidMain(string[]args){int[]arr={25,24,12,76,101,96,28};Console.Write("冒泡排序前:");PrintArray(arr);//打印數組元素BubbleSort(arr);//調用排序方法Console.Write("冒泡排序后:");PrintArray(arr);//打印數組元素Console.ReadKey();}//定義打印數組的方法publicstaticvoidPrintArray(int[]arr){//循環遍歷數組的元素for(inti=0;i<arr.Length;i++){Console.Write(arr[i]+"");//打印元素和空格}Console.WriteLine();}//定義對數組排序的方法publicstaticvoidBubbleSort(int[]arr){//定義外層循環for(inti=0;i<arr.Length-1;i++){//定義內層循環for(intj=0;j<arr.Length-i-1;j++){if(arr[j]>arr[j+1])//比較相鄰元素{//下面的三行代碼用于交換兩個元素inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}}面向對象基礎一、填空題1、封裝、繼承、多態2、new3、成員變量、局部變量4、類5、靜態的6、模板7、靜態方法類名.方法名8、內部類9、字段private10、對象初始化器二、判斷題1、對2、對3、錯4、對5、錯三、選擇題1、B2、D3、B4、ABC5、ABCD6、ACD7、ABCD8、ABCD9、D10、D四、程序分析題1、程序不能編譯通過,因為在類A中的成員變量secret用private修飾,所以在類Test1中無法訪問。2、程序不能編譯通過,因為在靜態方法method()中不能訪問非靜態成員變量x。3、程序能夠編譯通過,運行的結果為“inner”。五、簡答題1、構造方法是類的一個特殊成員,它會在類實例化對象時被自動調用。而普通方法只有在使用的時候才會被調用。在定義構造方法時要求方法名與類名相同、在方法名的前面沒有返回值類型的聲明、在方法中不能使用return語句返回一個值。2、面向對象的三大特性:封裝、繼承、多態。封裝是將對象的特性和行為封裝起來,不需要外界只具體的實現細節,使用時直接調用即可。繼承主要用來描述類與類之間的關系,通過繼承可以復用已有的代碼并在此基礎上進行擴展。多態是指同一操作用于不同對象,會產生不同的執行結果。六、編程題1、參考答案classStudent{ privateStringname; privatedoublegrade; publicStudent(){ } publicStudent(Stringname,doublegrade){ =name; this.grade=grade; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicdoublegetGrade(){ returngrade; } publicvoidsetGrade(doublegrade){ this.grade=grade; }}publicclassTest01{ publicstaticvoidmain(String[]args){ Studentstu1=newStudent(); stu1.setName("zhangsan"); stu1.setGrade(99); Studentstu2=newStudent("lisi",100); }}2、參考答案classSingleExample{ privatestaticSingleExampleinstance; privateSingleExample(){}//無參構造方法publicstaticSingleExampleMethod(){if(instance==null){Instance=newSingleExample(); } }}面向對象高級一、填空題1、繼承2、抽象方法、抽象類3、using4、派生類或子類5、base6、sealed7、new8、Object9、try、catch10、virtual、override二、判斷題1、錯2、對3、錯4、對5、對三、選擇題1、B2、C3、ABD4、ABCD5、C6、AC7、C8、ACD9、A10、B四、分析題1、不能編譯通過,由于Dog和Cat類沒有繼承關系。無法將cat()隱式轉換為Dog()類型。2、不能編譯通過,Dog類中的shout()方式是密封的,在BlackDog類中不能重寫該方法。3、程序能夠編譯通過。4、編譯不能通過,因為Dog類中沒有實現Animal接口中的全部方法。五、簡答題1、方法重寫是:當子類繼承父類中的方法時,父類方法的功能不能滿足子類的需求,通過重寫父類的方法可以增加或修改相應的功能。實現方法重寫的條件是:要求子類的方法名、參數類型和參數個數必須與父類方法相同,而且父類方法必須使用virtual關鍵字修飾,子類方法必須使用override關鍵字修2、多態就是不屬于同一個類的多個對象調用相同方法,產生的結果不同。實現多態有三種方式:方法,抽象類,接口。3、抽象類使用abstract關鍵字,抽象類中可以有抽象方法,也可以有非抽象方法。接口使用interface關鍵字,接口中所有的方法都是抽象方法。六、編程題1、參考答案classProgram{staticvoidMain(string[]args){Studentstudent=newStudent("小明",18);Undergraduatedegree=newUndergraduate("小剛",28,"學士");student.Show();degree.Show();Console.ReadKey();}}classStudent{publicstringName{get;set;}publicintAge{get;set;}publicStudent(stringname,intage){this.Name=name;this.Age=age;}publicvoidShow(){Console.WriteLine("姓名:{0}年齡:{1}",Name,Age);}}classUndergraduate:Student{publicstringDegree{get;set;}//調用父類的構造方法publicUndergraduate(stringname,intage,stringdegree):base(name,age){this.Name=name;this.Age=age;this.Degree=degree;}publicnewvoidShow(){Console.WriteLine("姓名:{0}年齡:{1}學位:{2}",Name,Age,Degree);}}2、參考答案classProgram{staticvoidMain(string[]args){Squaresquare=newSquare();Circlecircle=newCircle();Console.WriteLine("正方形的面積為:{0}",square.Area(2));Console.WriteLine("圓形的面積為:{0}",circle.Area(3));Console.ReadKey();}}//定義一個接口interfaceShape{doubleArea(doublex);//定義一個實現計算面積的抽象方法}//實現接口ShapeclassSquare:Shape{//計算正方形的面積publicdoubleArea(doublex){returnx*x;}}classCircle:Shape{//計算圓形的面積publicdoubleArea(doublex){returnMath.PI*x*x;}}WinForm基礎一、填空題Form1[設計]、Form1.csSelectedItemRun()控制Tick事件觸發的頻率Form1.Designer.csForm1.resxProgram.csControlLoad10、ExpandAll()二、判斷題1、對2、對3、對4、對5、對三、選擇題1、D2、D3、B4、C5、A6、A7、D8、B9、B10、A四、程序分析題 一、1、btnSecond.Visible=false;2、btnSecond.Visible=true;btnFirst.Visible=false;3、btnSecond.Visible=false;btnFirst.Visible=true; 二、 1、string[]musics={"真的愛你","無悔這一生"};for(inti=0;i<musics.Length;i++){cmbShow.Items.Add(musics[i]);}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、WinForm項目的文件結構包括五個部分,分別是Properties、引用、App.config、Form1.cs、Program.cs,其中Properties用來設置項目的屬性,引用用來設置對其他項目命名空間的引用,App.config用來設置數據庫的配置信息,Form1.cs文件用來設置窗體界面以及編寫邏輯代碼,Program.cs文件用來設置項目運行時的主窗體。2、屬性:1、Name屬性在指示代碼中用來標識該對象的名稱。2、Text屬性用來表示與控件關聯的文本。 3、Visible屬性用來確定該控件時可見的還是隱藏的。4、Enabled屬性用來指示是否啟用該控件5、Tag屬性表示與對象關聯的用戶定義數據。 事件:Load事件在窗體加載時被觸發。Click事件在單擊控件時發生。MouseEnter事件在鼠標進入控件的可見部分時發生。MouseLeave事件在鼠標離開控件的可見部分時發生。FontChanged事件在控件的Font屬性值更改時引發的事件。六、編程題運行效果圖彈出消息框顯示“用戶名或密碼不能為空!”彈出消息框顯示“用戶名或密碼不正確!”彈出消息框顯示“登陸成功!”參考邏輯代碼publicpartialclassFormLogin:Form{publicFormLogin(){InitializeComponent();}privatevoidbtnLogin_Click(objectsender,EventArgse){stringname=txtName.Text;stringpassword=txtPassword.Text;if(string.IsNullOrEmpty(name)||string.IsNullOrEmpty(password)){MessageBox.Show("用戶名或密碼不能為空!");}elseif(txtName.Text=="user"&&txtPassword.Text=="itcast"){MessageBox.Show("登陸成功!");}else{MessageBox.Show("用戶名或者密碼不正確!");}}}運行效果圖顯示湖北省下的三個市參考邏輯代碼publicpartialclassFormCity:Form{publicFormCity(){InitializeComponent();}privatevoidForm5_Load(objectsender,EventArgse){cmbProvince.Items.AddRange(newstring[]{"河北省","湖北省"});cmbProvince.SelectedIndex=0;}privatevoidcmbProvince_SelectedIndexChanged(objectsender,EventArgse){cmbCity.Items.Clear();if(cmbProvince.SelectedIndex==0){cmbCity.Tag="0";cmbCity.Items.AddRange(newstring[]{"唐山市","石家莊市","邯鄲市"});cmbCity.SelectedIndex=0;}if(cmbProvince.SelectedIndex==1){cmbCity.Tag="1";cmbCity.Items.AddRange(newstring[]{"武漢市","荊州市","十堰市"});cmbCity.SelectedIndex=0;}}}C#常用類一、填空題1、String類、StringBuilder類2、字符3、ToCharArray()4、25、int6、StringBuilder類創建的字符串的長度是可變的7、TimeSpan()8、Length9、Now10、Append()二、判斷題1、錯2、對3、錯4、對5、錯三、選擇題1、D2、C3、A4、B5、B6、B7、C8、A9、B10、C四、分析題1、編譯不能通過,因為string對象的索引器為只讀,不能對其賦值。2、編譯不能通過,因為方法IsNullOrEmpty()是String類的靜態方法。3、編譯不能通過,無法將StringBuilder類型隱式轉換為String類型。五、簡答題1、相同點:都是用來處理字符串的類。不同點:String具有不可變性,StringBuilder是可變的,當需要多次操作字符串是,StringBuilder性能較高2、例如strings=”abc”;s=s+”d”;此時原有的abc字符串并沒有改變,而是重寫指向了abcd字符串。六、編程題1、參考答案publicstaticvoidMain(string[]args){stringstr="HelloWorld";StringBuildersb=newStringBuilder();for(inti=0;i<str.Length;i++){//如果是小寫字母if(str[i]>='a'&&str[i]<='z'){//將字符轉換為字符串并使用ToUpper()轉換為大寫sb.Append(str[i].ToString().ToUpper());}else{sb.Append(str[i].ToString().ToLower());}}//輸出動態字符串的內容Console.WriteLine(sb.ToString());Console.ReadKey();}參考答案staticvoidMain(string[]args){char[]chineseWord={'零','一','二','三','四','五','六','七','八','九'};stringtimeStr="2014.01.01";StringBuildersb=newStringBuilder();//將字符串分割成數組string[]times=timeStr.Split(newchar[]{'.'},StringSplitOptions.RemoveEmptyEntries);//遍歷數組for(inttimesCount=0;timesCount<times.Count();timesCount++){//獲取當前循環到的字符串stringstr=times[timesCount];//拼接年部分轉換后的字符串if(timesCount==0){intindex;for(intstrCount=0;strCount<str.Length;strCount++){index=Convert.ToInt32(str[strCount].ToString());sb.Append(chineseWord[index]);}sb.Append("年");break;}else//月份或天轉換后的字符串{sb.Append(JoinStr(str,chineseWord));switch(timesCount){case1:sb.Append("月");break;case2:sb.Append("日");break;}}}Console.WriteLine(sb.ToString());Console.ReadKey();}//用于拼接月或日轉換后的字符串。privatestaticstringJoinStr(stringstr,char[]chineseWord){StringBuildersb=newStringBuilder();intindex;//循環月份或天的字符串for(intstrCount=0;strCount<str.Length;strCount++){//索引為0時表示月或天的第一位if(strCount==0){//可取值0,1,2,3switch(str[0]){case'0':;break;case'1':sb.Append("十");break;case'2':sb.Append("二十");break;case'3':sb.Append("三十");break;}}else{//將傳遞的字符串對應的索引位上的值轉換成數字。index=Convert.ToInt32(str[strCount].ToString());//當月份的第二位為0時什么都不用做否則找到漢字數組中對應的漢字if(index!=0){sb.Append(chineseWord[index]);}}}returnsb.ToString();}3、參考答案publicstaticvoidMain(string[]args){stringstr="一日,天氣炎熱。兩香蕉在路上散步,一香蕉抱怨道:“好熱,好熱啊。”遂脫衣。另一香蕉遂倒";StringBuildersb=newStringBuilder();if(str.Contains("脫衣")){intindex=str.IndexOf("脫衣");stringstr1=str.Substring(0,index);stringstr2=str.Substring(index+2);sb.Append(str1);sb.Append("**");sb.Append(str2);}Console.WriteLine(sb.ToString());Console.ReadKey();}文件操作一、填空題1、輸入流、輸出流2、Copy()3、GetParent()4、System.IO5、Directory、DirectoryInfo6、[Serializable]7、GetFullPath()8、序列化9、FileMode10、FileStream二、判斷題1、錯2、對3、對4、錯5、錯三、選擇題1、A2、C3、ABD4、C5、C6、AB7、A8、D9、C10、A四、程序填空題1、File.Exists(@"D:\1.txt")、@"D:\1.txt",@"D:\2.txt"、File.Copy、File.Delete2、sr.ReadLine()、sw.Dispose()五、簡答題1、流是對計算機輸入輸出設備之間數據傳輸的一種抽象,例如通過鍵盤輸入數據、顯示器顯示程序的運行結果等這些都是流。2、StreamReader和StreamWriter類都是以用于處理文本文件的,只是StreamReader用于讀取文件,StreamWriter用于寫入文件。3、File類和FileInfo類都可以對文件進行創建、移動、查詢和刪除等操作,不同的是File類是一個靜態類,而FileInfo是一個實例類,它的所有方法必須通過實例化對象后才能調用。六、編程題1、參考答案classProgram{staticvoidMain(string[]args){stringsource="source.txt";stringtarget="target.txt";//創建文件流using(FileStreamfsRead=newFileStream(source,FileMode.Open)){using(FileStreamfsWrite=newFileStream(target,FileMode.Create)){//創建寫入流//緩沖區byte[]bytes=newbyte[1024];//循環讀取文件流while(true){intr=fsRead.Read(bytes,0,bytes.Length);if(r<=0){break;}//寫入文件fsWrite.Write(bytes,0,bytes.Length);}}}Console.WriteLine("文件source的內容已寫入文件target中");Console.ReadKey();}參考答案classProgram{staticvoidMain(string[]args){//讀取文件中的所有行string[]strAllLines=File.ReadAllLines(@"D:\itcast\pwd.txt");boolb=false;//允許輸入4次錯誤密碼for(intcount=1;count<=5;count++){Console.WriteLine("第{0}次輸入用戶名:",count);stringname=Console.ReadLine();Console.WriteLine("第{0}次輸入密碼:",count);stringpwd=Console.ReadLine();//循環遍歷文件中存儲的用戶名和密碼進行匹配for(intline=0;line<strAllLines.Length;line++){//將文件中每一行中的用戶名和密碼分割開(用戶名:密碼)string[]linstr=strAllLines[line].Split(newchar[]{':'},StringSplitOptions.RemoveEmptyEntries);//匹配成功調處當前內層循環if(name==linstr[0]&&pwd==linstr[1]){b=true;break;}}//登錄成功跳出外層循環if(b){break;}else{if(count<5){Console.WriteLine("第{0}次輸入密碼錯誤,請重新輸入",count);}else{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧城市建設職業技術學院《Python程序開發課程設計》2023-2024學年第二學期期末試卷
- 吉林大學《機車車輛檢測技術》2023-2024學年第二學期期末試卷
- 商洛學院《生物醫藥知識產權》2023-2024學年第一學期期末試卷
- 紅河學院《信息技術與教育》2023-2024學年第二學期期末試卷
- 贛南科技學院《高級英語寫作(1)》2023-2024學年第二學期期末試卷
- 山東菏澤市曹縣2025年初三第二次五校聯考英語試題含答案
- 榮成市2025屆五下數學期末考試模擬試題含答案
- 遼寧師范大學海華學院《勞動通論》2023-2024學年第二學期期末試卷
- 梧州學院《熱質交換原理與設備》2023-2024學年第一學期期末試卷
- 2024-2025學年河南省三門峽市澠池縣第二高級中學高二下學期第一次月考(3月)數學試卷(含答案)
- 《酒店概論》考試復習參考題庫(含答案)
- 版式設計網格課件
- 消防安全檢查表(車間)
- 產品報價單(5篇)
- 大飛機C919:追夢五十載,“破繭化蝶”
- 品牌視覺形象設計智慧樹知到答案章節測試2023年天津科技大學
- 高考語文復習-議論文結尾寫作之深化主旨 練習
- 漢語詞匯與文化課件
- 淺析公路橋梁施工中高性能混凝土的應用
- 新概念英語第三冊Lesson8 課件
- DBJ∕T 13-196-2014 水泥凈漿材料配合比設計與試驗規程
評論
0/150
提交評論