第一篇:C語言學習心得及報告
如 何 學習C 語 言
學校:西安航空學院
系別:電氣系
班級:過控1409
姓名:蘭敏
學號:1***3
前言
兩個原因促使我寫下這篇文章,第一就是作為過來人根據我自己的經驗我知道編程的初學者 一般都很興 奮也都有種困惑,一方面對運行在計算機(注:不特別指明都指個人微型計算機)的五花八門如精彩的游戲程序,多姿多彩的網站等等漂亮的視窗程序所著迷,另一方面大部分的初學者(如計算機專業的低年級學生)都是從簡單命令行程序“Hello world!”開始入手而且很長一段時間都無法接觸到日常經常使用的視窗程序,由此好奇者有之,迷惑者有之等等,更遺憾的是也有少部分人因為困惑對編程逐漸失去興趣。第二就是今天妹妹看C程序設計語言的人讀碰到一個例題沒有看懂,而作為計算機專業畢業的老哥自然義不容辭地承擔起了講解的任務,在噼里啪啦的大說之后,老妹終于弄懂了例題程序的意思,但仍然不過癮,竟然問起我如何學好C語言,弄得我心一驚,這里我還是有點自知之明的,因為我知道我并不是什么大師,甚至自己對計算機世界也經常是一片茫然,不過看著她那“崇拜”的眼神,不說點什么似乎有點不大好,只好硬著頭皮把自己以前的一些理解講了一番。所以既然知道有這個需要,盡管自己見識淺薄,也抱著“區區陋見假如能夠對后學者能夠有所幫助那是再好不過了,即使有所偏頗當當笑話看看能有助于大家飯后生活也是美德一件”的心 情就寫下了這篇文章。
簡介
我是很樂意將計算機(程序設計)語言跟人類語言做類比的,在我看來學習程序設計語言就想學習外語一樣,通過計算機語言與計算機交流就如同在使用外語與老外交流一樣。通常學習語言比如英語有單詞,語法,語義三個部分組成,單詞是構成語言的最基本的要素,語法告訴我們單詞如何構成語句,語義則告訴我們單詞構成的語句的意思,類似的程序設計語言中也是有[1] “單詞”,“語法”,“語義”三部分組成,其中跟人類語言一樣,“單詞”“語法”是基礎,而為達到交流的目的“語義”是整個程序設計語言的重點。當然相對人類語言(以英語為例)而言程序設計語言(以C語言為例)顯然要有簡單得多的組成,所以這里我們要首先確立自己對學好程序設計語言的信心。下面試加以說明,其中可能有些類比不太適當,不過好像也差不多吧,你自己也可以試著舉出更好的例子以使自己更容易明白,我這里就拋磚引玉吧。
先從“單詞”談起,在英語中就是由26個英文字母以及26個英文字母構成的單詞組成,學習語言我們首先應該記憶的就是“單詞”,26個英文字母A,B,C,??然后就是令人頭痛的英文單詞,記憶的過程是痛苦的至少我學英語時最惱火的地方就是反復記憶老是忘記的單詞,類似的在C語言中我們可以作這樣的類比,C語言的單詞是由26個英文字母、數字(0,1,2??9)、運算符以及其他特殊符號組成,所以相比而言學習C語言是多么的幸福。
“語法”,在英語中是如常見構詞法、時態、常用句型、特殊用法、固定用法等等(呵呵,不是語言專家如有興趣可以參考英語語法書籍),僅拿構詞法來說動詞后面加er就變成名詞(work-worker),名詞后面加y就變成形容詞(wind-windy)等十多種變換還要記憶些特殊變換,復雜且繁瑣,假如算上時態、句型等那就更復雜了。在C語言中也同樣也存在有語法,比如標識符、常量、表達式、數據定義、函數定義、變量初始化、語句構成、預處理命令等大致8種語法,如標識符[2]可由字母、數字以及下劃線組成,且必須以字母或下劃線開頭,區分大小寫,另外在不同的編譯器中字符數目有不同的規定,一般為7個字符。不過這里有些可能會被忽略的就是書寫格式,在C語言中書寫格式也是需要被注意的,因為格式也可以當作C語言的語法項目,如語句是以分號‘;’作為結束的標志的而不是以換行作為結束標志,其實英語也有要求比如什么時候該使用句號什么時候該使用逗號等等只不過我們日常要求并不注意,而且也可以看的懂所以不太較真。
總結
綜上所述我們要學好一門程序設計語言首先就要像學習英語一樣先熟記至少要熟悉這門語言的“單詞”和“語法”然后才能談得上使用,俗話說“萬丈高樓平地起”,學好C語言的必要前提就是先打下堅實的C語言基礎,所以潭先生的書作為一本很好的教材,我建議是不能丟的,而且還要反復看,至少剛開始我學習的時候上機機會不多,就是反復看懂看明白這本書,有些東西該記的還是要記尤其是一些重要的語法比如標識符、數據類型、語句的特點、函數的占式結構,指針的意義等等。
最后始終記住這點在沒有實踐之前,先打下堅實的理論基礎吧,畢竟理論是實踐的先行,理論可以更好的指導實踐。即使再低點的要求至少要先熟悉理論吧,畢竟“摸著石頭過河”感覺還是盲目以及痛苦的
“語義”即語句的意思、含義。同人類語言一樣,程序設計語言最重要的目的還是“交流”,所以寫一段沒有任何作用的代碼就如同說一句沒有任何意思的話是沒有意義的,在這一點上兩者是共同的,至于在其他某些方面兩者也有驚人的相似之處,試舉一例吧,比如說可以有不同的表達表示同一個意思,如微型計算機同個人計算機就是同一個意思,在C語言中比如要讓變量i自增1,可以有i=i+1或者i+=1等等。不過與人類語言相比,程序設計語言畢竟是與計算機交流,交流對象計算機與人類的不同也決定了程序設計語言與人類語言還是有所區別,甚至可以說是存在巨大的“鴻溝”,這也就是學習程序設計語言的重點。
與人類相區別,計算機最大的不同之處在于沒有“自己”的“思維”,沒有像人類那樣豐富的感情,所以在交流過程中對于人類的跳躍性的思維,對于人類的“幽默”無法理解也沒有絲毫的興趣。比如說對與同樣一句話“Do it”,在不同的場景不同的說話語氣,對10個人來說就會有10種不同的回答,有的人可能會認為這是合理的要求,有的人可能會認為這可能是個玩笑而不與理睬,有的人則可能認為語氣要求有些過分而感到非常憤怒??,但對所有的計算機來說則是嚴格執行。不過也正是由于計算機“機械”“笨著”的可愛而深得人們的喜愛并被廣泛使用,因為對我們來說,計算機就像一個忠實的士兵一樣在執行我們的命令并且作為指揮者,當然我們希望計算機在合適的時間干切當的事情。而要達到這個目的,很湊巧有點類似于社會的“權利與義務”法則一樣,我們也有自己的義務那就是下達明確而又正確的“命令”。
首先明確,即我們要在與計算機交流時“語義”必須明確,否則計算機將無所適從,因此作為交流工具的程序設計語言的“語義”也必須是能夠明確無二義的。當然程序設計語言的設計者已經注意到這一點,在設計時就回避了這個問題,所以我們——程序設計語言的使用者——程序員也就無須過多關注這點,也就是說使用何種程序設計語言(C,Basic,Pascal等)并不是我們要關注的重點。其次正確,包括正確的輸入以及正確的邏輯。由于計算機 “忠實”得有點“盲目”以至于對事情的對錯毫無判斷力,就像一把槍一樣,在警察手里它就是正義的化身,而在土匪手里就成了惡魔的代言人,因此要時刻記住計算機是沒有錯的,“錯誤”掌握在我們自己手里,這也就決定了我們在編程時是不是應該投入更多的精力來糾正我們自己所犯下的錯誤上面來?除此之外,我們智慧的結晶——程序,在我們的上帝——顧客,在程序的使用者看來就像個黑匣子,他們只管輸入哪怕是錯誤的輸入卻同樣期待能得到正確的結果,而對于上帝我們除了祈禱和期望之外還能有什么選擇?因此對于輸入的不可預期的程序源數據,我們是不是也應該花更多的時間進行處理呢?
先小結下,由于我們在編程時需要對于輸入的不可預期的程序源數據以及提高我們自己的邏輯正確性花費更多的時間,因此這也就是我們編程訓練所應該關注的重點,而不是關注于何種實際的程序設計語言。
為了加深印象,下面我們舉個實際的例子來說明這點。先看題目要求“輸入一行字符串(全字母或空格),統計其中的單詞數量,單詞之間用空格分開”,應該說這是個簡單的題目,有些人可能一看到這個題目很快就給出了自己的答案。如有些人會想單詞是以空格分開的,我們統計其中空格的數量再加上最后一個單詞不就是單詞的個數嗎,因此便很快給出如下答案。
/*Program1*/ #include
char string[81];
int i,num = 0;
char c;
gets(string);
for(i = 0;(c=string[i])!=' 主站蜘蛛池模板: 无码东京热一区二区三区| 亚洲а∨精品天堂在线| 国产精品偷啪在线观看| 色综合久久精品亚洲国产| 手机无码人妻一区二区三区免费| 日韩精品无码av中文无码版| 亚洲国产天堂一区二区三区| 国产精品人妻一区二区三区四| 97久人人做人人妻人人玩精品| 国产精品成人久久久久久久| 四虎成人精品无码| 男受被做哭激烈娇喘gv视频| 97久久婷婷五月综合色d啪蜜芽| 中文精品无码中文字幕无码专区| 秋霞电影网午夜鲁丝片无码| 久久久久久久亚洲av无码| 国产精品成人嫩草影院| 国产人久久人人人人爽| 亚洲人成网站18禁止无码| 四虎永久在线精品无码视频| av无码久久久久不卡网站下载| 欧美巨鞭大战丰满少妇| 亚洲粉嫩美白在线| 在线看免费无码的av天堂| 免费人成视频xvideos入口| 人人澡人人爽夜欢视频| 亚洲欧洲日产无码中文字幕| 人人玩人人添人人澡免费| 精品国产综合区久久久久久| 午夜高清在线无码| 色欲av永久无码精品无码| 5个黑人躁我一个视频| 精品亚洲aⅴ在线观看| 亚洲精品92内射| 国产va免费精品高清在线观看| 国内精品伊人久久久久av影院| 首页 动漫 亚洲 欧美 日韩| 久久久综合亚洲色一区二区三区| www国产亚洲精品久久网站| 精品久久亚洲中文无码| 免费无码又爽又刺激激情视频软件|