第一篇:C 語言上機總結(jié)報告
C語言
上機實驗報告
經(jīng)過了九周的上機練習,我們算是完成了階段性的勝利,從書本上枯燥的知識,通過上機練習把他們學(xué)以致用,融會貫通;不得不說,上機對于大一不允許帶電腦,算得上是對c語言鞏固和提高的重要途徑了,很多我們不懂得問題,通過敲一下代碼就知道可不可以這樣了。還有很多格式,看不懂的代碼,也都能解決。另外,重要的是通過上機我也拾得了編程的樂趣,鏈接好的程序就像是我的Baby,一節(jié)課生好幾個。這是一種莫大的成就感。原來我還可以這樣。如果僅是書本上的知識,我很難保證能堅持看下去,因為要把抽象的東西闡述出來,很多時候都是很枯燥的。所以上機便是這樣一個輔助的途徑。下面是我這九周所積累的一些問題和經(jīng)驗。
1.首先就是書寫的問題。到現(xiàn)在我還時不時忘了加分號。這么一個細微的問題有時候會報很多錯。其中易犯的便是scanf中&的使用,以及&&邏輯運算符和位運算符不分,==錯寫=,自定義函數(shù),聲明時不加分號,do,while語句while后忘加分號,以及數(shù)組不從a[0]開始寫,for循環(huán)中控制條件用<還是<=,于是就會溢出。
2.printf里格式的問題,想要在數(shù)前補0整數(shù)可以靠.num而浮點數(shù)需要前加0,對于輸出無符號16進制數(shù)%x,八進制數(shù)%o和十進制%u,總是記不住,還有一個比較特別的是可以用*占位,然后在后面的參數(shù)中說明精度和寬度,用#讓浮點數(shù)始終有小數(shù),字符串的5.4s只顯示4位。另一個我發(fā)現(xiàn)無關(guān)緊要的是printf中l(wèi)f和f沒什么區(qū)別,scanf卻不一樣。
3.scanf的另一個問題是當出現(xiàn)空格是,讀取的字符串就不完整了,在百度后,我找到了更好的gets函數(shù),便可以讀取空格,還有scanf的一一對應(yīng)特性,不過空格不算。
4.++i和i++的使用問題。很多時候并不在意這些,便會導(dǎo)致數(shù)據(jù)的溢出,和結(jié)果總是偏差1,所以在使用時先得想好用哪個,如int k;
while(k--)
;printf(“%d”,k)結(jié)果是-1,因為在while判斷過程中還要減1。
5.Define 一個表達式時不愛每一層都加括號。導(dǎo)致運算時優(yōu)先級使運算和目的不符。我記不下那么多的運算符的優(yōu)先級,所以我解決的方法便是每個運算都加上括號。
6.總是按照自己的思維做事,像是想把一個數(shù)組復(fù)制給另一個數(shù)組就直接用=賦值了,事實證明并不可行,而是需要用for循環(huán)一個一個賦值,而字符串則用strcpy,但結(jié)構(gòu)體卻可以直接賦值。
7.條件語句if,while,for等加括號和在哪加括號的的問題,常常因為內(nèi)容少所以不加括號經(jīng)常導(dǎo)致錯誤,尤其在嵌套語句和連續(xù)多個條件語句時,總是會出錯,所以以后我學(xué)會了每句話都加上大括號。并且盡量使格式工整。
8.忘記添加頭文件?;蛘咄祟^文件的名字,像是stdlib,malloc…… 這樣函數(shù)就變得沒有了意義。這個得靠記憶和多練。
9.函數(shù)要求的實參的格式忘記了,這時候總是會報格式不符,比如malloc.calloc.recalloc,對參數(shù)的要求的區(qū)別,qsort函數(shù)里,compare函數(shù)指針參數(shù),compare的實際參數(shù)需要強制轉(zhuǎn)換。
10.Switch用法,switch只能用于char和int,且不用break就會一直執(zhí)行下去,我就會忘掉這個,還有給a加引號
11.數(shù)組的聲明問題,數(shù)組是c語言里比較讓人頭大的問題了。其中,讓我不能理解的便是為什么二維數(shù)組不能a[][]={},a[][N]={}而必須至少a[N][]={},這就讓我栽過跟頭,還有字符數(shù)組為什么加’