學(xué)習(xí)計算機c語言的方法有哪些
二級C語言上機考試是各語種級別中考生最多的,但每年的通過率都不高,主要的原因是考生的重視程度不夠,上機操作的次數(shù)過少。因此,下面是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)計算機c語言的方法有的資料,希望大家喜歡!
學(xué)習(xí)計算機c語言的方法
一、要讀就讀好書,否則不如不讀
Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設(shè)計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很 多內(nèi)容都已過時,和現(xiàn)在的標(biāo)準(zhǔn)C語言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《CReferenceManual》,是C語言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫函數(shù) 的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語言的工具書。順便提一句,最新的《C程序設(shè)計語言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語言參考手冊》描述的是C99標(biāo)準(zhǔn),二者可能會有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e,英文名是《PointersonC》,特別地強調(diào)指針的重要性, 算是本書的一個特點吧。不過這本書并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經(jīng)啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺 陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細(xì)讀完并能透 徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時,你要仔細(xì)分析自己需要補充哪些內(nèi)容, 然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補充完畢再回頭來學(xué)習(xí),才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環(huán)境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如VisualStudio,而Unix程序員更加鐘愛 Makefile與控制臺。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認(rèn)為Unix的環(huán)境更簡潔,但習(xí)慣的力量是很大的。
所以我建議初學(xué)者應(yīng)該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學(xué)習(xí)環(huán)境,而且千萬不要在IDE的 使用技巧上過多糾纏,因為今后你一定要轉(zhuǎn)向Unix環(huán)境的。VisualC++6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對C標(biāo)準(zhǔn)的支持并不好, 而DevC++使用gcc編譯器,對C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語言課程還在使用TurboC2.0作為實驗環(huán)境,這是相當(dāng)不 可取的,原因其一是TC2.0對C標(biāo)準(zhǔn)幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當(dāng)然,用 djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過于復(fù)雜了)。
等你學(xué)完一本C語言的教材,你一定要轉(zhuǎn)向Unix平臺繼續(xù)學(xué)習(xí),幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉(zhuǎn)變的過程是痛 苦的,你需要面對的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語言的思考方式和習(xí)慣。在Unix下,你可以找到無數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數(shù)的聯(lián)機手冊,還可以看到最優(yōu)秀的代碼風(fēng)格(說到代碼風(fēng)格,我會專門寫一篇文章詳細(xì)敘述)。
歸結(jié)起來就是一句話:初學(xué)C語言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時,請先轉(zhuǎn)向Unix平臺。
三、萬事俱備,你就是東風(fēng)
書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是 錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎(chǔ)知識是否已經(jīng)具備??赐昵把?, 還要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計劃。
例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨立做一遍。
也許你認(rèn)為這樣學(xué)習(xí)太慢,其實不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。
仔細(xì)讀書、認(rèn)真抄寫源代碼、獨立完成習(xí)題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語言,你還要具體情況具體分析。
寫到最后,還有非常非常重要的一點沒有提及──代碼風(fēng)格,從最開始學(xué)習(xí)就必須強迫自己模仿最優(yōu)秀的代碼風(fēng)格。因為代碼風(fēng)格太重要內(nèi)容也太多,我會用專門的一篇文章來詳細(xì)討論,請大家關(guān)注《程序員之路──關(guān)于代碼風(fēng)格》。
在這里停一下,上面說的便是我學(xué)習(xí)的風(fēng)格:總要經(jīng)歷一番波折,瞎折騰幾下,然后才會有偶然間的明悟-開竅了!我甚至沒見過幾個人有我這么笨,現(xiàn)在明白過來 了,我總是一開始把事情想得過于復(fù)雜,造成狗咬刺猬的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風(fēng)格,起碼追女朋友的時候不能這樣, 生活中很多機會在于接手的那一瞬間,失去就永遠(yuǎn)找不回來了。
現(xiàn)在回來,后來偶然間,我看懂了一行代碼,是print語句,當(dāng)時興奮得要命,又仔細(xì)看了這個看了那個,一下子看懂了很多東西,像是在霎那間被什么給擊中似的,立刻間醍醐灌頂。。。。
可是,還是那句話不破不立,不阻不行。就像我現(xiàn)在有了電腦,整天泡在互聯(lián)網(wǎng)的海洋里,感受著快餐文化,好久都沒靜下心來好好想點東西了。
談及C語言,我想凡是學(xué)過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣 壯地對他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學(xué)了。其實就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學(xué)C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一 起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。
計算機二級C語言考試技巧
一、計算機二級C語言上機考試
全國計算機等級考試二級C語言上機考試具有三種題型:程序填空、程序修改和程序設(shè)計,其中程序填空30分,程序修改30分,程序設(shè)計40分。從以往的機試的情況來看,許多考生在程序設(shè)計題目上失分比較嚴(yán)重,而程序設(shè)計題占總分值的40%,一旦答錯,如果程序填空和程序修改又不能取得滿分的話,就不能通過上機考試。
2007年9月,教育部考試中心對現(xiàn)有的全國計算機等級考試大綱進行了改革,二級C語言上機考試時間由60分鐘增加到了90分鐘,編程環(huán)境由以前的TC2.0改為VC++6.0。本文根據(jù)對近幾年來二級C語言上機考試中的程序設(shè)計題進行歸類總結(jié),提出相應(yīng)的策略,并對考生應(yīng)對2007新大綱以后的C語言上機環(huán)境給出一些建議。
二、對以往考試的分析
歷年的全國計算機等級考試中二級C語言上機考試程序設(shè)計題目全部出自于由南開大學(xué)出版社編寫南開100題,每次考試教育部考試中心會對題庫做相應(yīng)的改動,增加一些新的題型或題目,考試中,考生隨機抽取一套進行測試。筆者對2005年4月至2007年9月2004版新大綱以后的6次考試中的程序設(shè)計題目進行了總結(jié),將這些題目一共分成了6大類,對每種類型的題目進行了分析。
三、對一維數(shù)組和字符串的操作
該類型的題目在以往的機試中所占比例最大,為40%,考生應(yīng)對該知識點做全面的復(fù)習(xí)和掌握。一維數(shù)組可以分為數(shù)值型和字符型,其中數(shù)值型數(shù)組的數(shù)據(jù)類型為整型和實型,字符型數(shù)組的數(shù)據(jù)類型為字符型,我們通常會把字符型數(shù)組叫做字符串,但是應(yīng)該注意字符型數(shù)組與字符串之間是存在區(qū)別的,也就是’
學(xué)習(xí)計算機c語言的方法有哪些
二級C語言上機考試是各語種級別中考生最多的,但每年的通過率都不高,主要的原因是考生的重視程度不夠,上機操作的次數(shù)過少。因此,下面是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)計算機c語言的方法有的資料,希望大家喜歡!
學(xué)習(xí)計算機c語言的方法
一、要讀就讀好書,否則不如不讀
Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設(shè)計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很 多內(nèi)容都已過時,和現(xiàn)在的標(biāo)準(zhǔn)C語言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《CReferenceManual》,是C語言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫函數(shù) 的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語言的工具書。順便提一句,最新的《C程序設(shè)計語言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語言參考手冊》描述的是C99標(biāo)準(zhǔn),二者可能會有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e,英文名是《PointersonC》,特別地強調(diào)指針的重要性, 算是本書的一個特點吧。不過這本書并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經(jīng)啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺 陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細(xì)讀完并能透 徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時,你要仔細(xì)分析自己需要補充哪些內(nèi)容, 然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補充完畢再回頭來學(xué)習(xí),才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環(huán)境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如VisualStudio,而Unix程序員更加鐘愛 Makefile與控制臺。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認(rèn)為Unix的環(huán)境更簡潔,但習(xí)慣的力量是很大的。
所以我建議初學(xué)者應(yīng)該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學(xué)習(xí)環(huán)境,而且千萬不要在IDE的 使用技巧上過多糾纏,因為今后你一定要轉(zhuǎn)向Unix環(huán)境的。VisualC++6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對C標(biāo)準(zhǔn)的支持并不好, 而DevC++使用gcc編譯器,對C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語言課程還在使用TurboC2.0作為實驗環(huán)境,這是相當(dāng)不 可取的,原因其一是TC2.0對C標(biāo)準(zhǔn)幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當(dāng)然,用 djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過于復(fù)雜了)。
等你學(xué)完一本C語言的教材,你一定要轉(zhuǎn)向Unix平臺繼續(xù)學(xué)習(xí),幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉(zhuǎn)變的過程是痛 苦的,你需要面對的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語言的思考方式和習(xí)慣。在Unix下,你可以找到無數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數(shù)的聯(lián)機手冊,還可以看到最優(yōu)秀的代碼風(fēng)格(說到代碼風(fēng)格,我會專門寫一篇文章詳細(xì)敘述)。
歸結(jié)起來就是一句話:初學(xué)C語言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時,請先轉(zhuǎn)向Unix平臺。
三、萬事俱備,你就是東風(fēng)
書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是 錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎(chǔ)知識是否已經(jīng)具備。看完前言, 還要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計劃。
例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨立做一遍。
也許你認(rèn)為這樣學(xué)習(xí)太慢,其實不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。
仔細(xì)讀書、認(rèn)真抄寫源代碼、獨立完成習(xí)題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語言,你還要具體情況具體分析。
寫到最后,還有非常非常重要的一點沒有提及──代碼風(fēng)格,從最開始學(xué)習(xí)就必須強迫自己模仿最優(yōu)秀的代碼風(fēng)格。因為代碼風(fēng)格太重要內(nèi)容也太多,我會用專門的一篇文章來詳細(xì)討論,請大家關(guān)注《程序員之路──關(guān)于代碼風(fēng)格》。
在這里停一下,上面說的便是我學(xué)習(xí)的風(fēng)格:總要經(jīng)歷一番波折,瞎折騰幾下,然后才會有偶然間的明悟-開竅了!我甚至沒見過幾個人有我這么笨,現(xiàn)在明白過來 了,我總是一開始把事情想得過于復(fù)雜,造成狗咬刺猬的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風(fēng)格,起碼追女朋友的時候不能這樣, 生活中很多機會在于接手的那一瞬間,失去就永遠(yuǎn)找不回來了。
現(xiàn)在回來,后來偶然間,我看懂了一行代碼,是print語句,當(dāng)時興奮得要命,又仔細(xì)看了這個看了那個,一下子看懂了很多東西,像是在霎那間被什么給擊中似的,立刻間醍醐灌頂。。。。
可是,還是那句話不破不立,不阻不行。就像我現(xiàn)在有了電腦,整天泡在互聯(lián)網(wǎng)的海洋里,感受著快餐文化,好久都沒靜下心來好好想點東西了。
談及C語言,我想凡是學(xué)過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣 壯地對他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學(xué)了。其實就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學(xué)C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一 起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。
計算機二級C語言考試技巧
一、計算機二級C語言上機考試
全國計算機等級考試二級C語言上機考試具有三種題型:程序填空、程序修改和程序設(shè)計,其中程序填空30分,程序修改30分,程序設(shè)計40分。從以往的機試的情況來看,許多考生在程序設(shè)計題目上失分比較嚴(yán)重,而程序設(shè)計題占總分值的40%,一旦答錯,如果程序填空和程序修改又不能取得滿分的話,就不能通過上機考試。
2007年9月,教育部考試中心對現(xiàn)有的全國計算機等級考試大綱進行了改革,二級C語言上機考試時間由60分鐘增加到了90分鐘,編程環(huán)境由以前的TC2.0改為VC++6.0。本文根據(jù)對近幾年來二級C語言上機考試中的程序設(shè)計題進行歸類總結(jié),提出相應(yīng)的策略,并對考生應(yīng)對2007新大綱以后的C語言上機環(huán)境給出一些建議。
二、對以往考試的分析
歷年的全國計算機等級考試中二級C語言上機考試程序設(shè)計題目全部出自于由南開大學(xué)出版社編寫南開100題,每次考試教育部考試中心會對題庫做相應(yīng)的改動,增加一些新的題型或題目,考試中,考生隨機抽取一套進行測試。筆者對2005年4月至2007年9月2004版新大綱以后的6次考試中的程序設(shè)計題目進行了總結(jié),將這些題目一共分成了6大類,對每種類型的題目進行了分析。
三、對一維數(shù)組和字符串的操作
該類型的題目在以往的機試中所占比例最大,為40%,考生應(yīng)對該知識點做全面的復(fù)習(xí)和掌握。一維數(shù)組可以分為數(shù)值型和字符型,其中數(shù)值型數(shù)組的數(shù)據(jù)類型為整型和實型,字符型數(shù)組的數(shù)據(jù)類型為字符型,我們通常會把字符型數(shù)組叫做字符串,但是應(yīng)該注意字符型數(shù)組與字符串之間是存在區(qū)別的,也就是’
在復(fù)習(xí)該部分的時候,考生應(yīng)該掌握以下兩個問題:
1.對一維數(shù)組的操作
對一維數(shù)組進行操作的時候,不可避免的要訪問相關(guān)的數(shù)組元素,在C語言中訪問數(shù)組元素一般采取單層循環(huán)的方法進行遍歷,假設(shè)數(shù)組長度為n,數(shù)組下標(biāo)是在0到(n-1)之間的,考生應(yīng)該牢固掌握在一維數(shù)組中求最大值、最小值,移動元素,查找特定值,存儲數(shù)組元素的方法。
2.對字符串的操作
該類問題是每次考試的重點和難點,特別是將字符串同指針結(jié)合起來以后,難度就更大了??忌诮鉀Q此類問題是應(yīng)特別注意字符串的結(jié)束標(biāo)志’學(xué)習(xí)計算機c語言的方法有哪些
二級C語言上機考試是各語種級別中考生最多的,但每年的通過率都不高,主要的原因是考生的重視程度不夠,上機操作的次數(shù)過少。因此,下面是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)計算機c語言的方法有的資料,希望大家喜歡!
學(xué)習(xí)計算機c語言的方法
一、要讀就讀好書,否則不如不讀
Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設(shè)計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很 多內(nèi)容都已過時,和現(xiàn)在的標(biāo)準(zhǔn)C語言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的?!禖語言參考手冊》就是《CReferenceManual》,是C語言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫函數(shù) 的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語言的工具書。順便提一句,最新的《C程序設(shè)計語言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語言參考手冊》描述的是C99標(biāo)準(zhǔn),二者可能會有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e,英文名是《PointersonC》,特別地強調(diào)指針的重要性, 算是本書的一個特點吧。不過這本書并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經(jīng)啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺 陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細(xì)讀完并能透 徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時,你要仔細(xì)分析自己需要補充哪些內(nèi)容, 然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補充完畢再回頭來學(xué)習(xí),才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環(huán)境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如VisualStudio,而Unix程序員更加鐘愛 Makefile與控制臺。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認(rèn)為Unix的環(huán)境更簡潔,但習(xí)慣的力量是很大的。
所以我建議初學(xué)者應(yīng)該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學(xué)習(xí)環(huán)境,而且千萬不要在IDE的 使用技巧上過多糾纏,因為今后你一定要轉(zhuǎn)向Unix環(huán)境的。VisualC++6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對C標(biāo)準(zhǔn)的支持并不好, 而DevC++使用gcc編譯器,對C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語言課程還在使用TurboC2.0作為實驗環(huán)境,這是相當(dāng)不 可取的,原因其一是TC2.0對C標(biāo)準(zhǔn)幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當(dāng)然,用 djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過于復(fù)雜了)。
等你學(xué)完一本C語言的教材,你一定要轉(zhuǎn)向Unix平臺繼續(xù)學(xué)習(xí),幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉(zhuǎn)變的過程是痛 苦的,你需要面對的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語言的思考方式和習(xí)慣。在Unix下,你可以找到無數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數(shù)的聯(lián)機手冊,還可以看到最優(yōu)秀的代碼風(fēng)格(說到代碼風(fēng)格,我會專門寫一篇文章詳細(xì)敘述)。
歸結(jié)起來就是一句話:初學(xué)C語言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時,請先轉(zhuǎn)向Unix平臺。
三、萬事俱備,你就是東風(fēng)
書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是 錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎(chǔ)知識是否已經(jīng)具備??赐昵把?, 還要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計劃。
例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨立做一遍。
也許你認(rèn)為這樣學(xué)習(xí)太慢,其實不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。
仔細(xì)讀書、認(rèn)真抄寫源代碼、獨立完成習(xí)題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語言,你還要具體情況具體分析。
寫到最后,還有非常非常重要的一點沒有提及──代碼風(fēng)格,從最開始學(xué)習(xí)就必須強迫自己模仿最優(yōu)秀的代碼風(fēng)格。因為代碼風(fēng)格太重要內(nèi)容也太多,我會用專門的一篇文章來詳細(xì)討論,請大家關(guān)注《程序員之路──關(guān)于代碼風(fēng)格》。
在這里停一下,上面說的便是我學(xué)習(xí)的風(fēng)格:總要經(jīng)歷一番波折,瞎折騰幾下,然后才會有偶然間的明悟-開竅了!我甚至沒見過幾個人有我這么笨,現(xiàn)在明白過來 了,我總是一開始把事情想得過于復(fù)雜,造成狗咬刺猬的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風(fēng)格,起碼追女朋友的時候不能這樣, 生活中很多機會在于接手的那一瞬間,失去就永遠(yuǎn)找不回來了。
現(xiàn)在回來,后來偶然間,我看懂了一行代碼,是print語句,當(dāng)時興奮得要命,又仔細(xì)看了這個看了那個,一下子看懂了很多東西,像是在霎那間被什么給擊中似的,立刻間醍醐灌頂。。。。
可是,還是那句話不破不立,不阻不行。就像我現(xiàn)在有了電腦,整天泡在互聯(lián)網(wǎng)的海洋里,感受著快餐文化,好久都沒靜下心來好好想點東西了。
談及C語言,我想凡是學(xué)過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣 壯地對他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學(xué)了。其實就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學(xué)C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一 起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。
計算機二級C語言考試技巧
一、計算機二級C語言上機考試
全國計算機等級考試二級C語言上機考試具有三種題型:程序填空、程序修改和程序設(shè)計,其中程序填空30分,程序修改30分,程序設(shè)計40分。從以往的機試的情況來看,許多考生在程序設(shè)計題目上失分比較嚴(yán)重,而程序設(shè)計題占總分值的40%,一旦答錯,如果程序填空和程序修改又不能取得滿分的話,就不能通過上機考試。
2007年9月,教育部考試中心對現(xiàn)有的全國計算機等級考試大綱進行了改革,二級C語言上機考試時間由60分鐘增加到了90分鐘,編程環(huán)境由以前的TC2.0改為VC++6.0。本文根據(jù)對近幾年來二級C語言上機考試中的程序設(shè)計題進行歸類總結(jié),提出相應(yīng)的策略,并對考生應(yīng)對2007新大綱以后的C語言上機環(huán)境給出一些建議。
二、對以往考試的分析
歷年的全國計算機等級考試中二級C語言上機考試程序設(shè)計題目全部出自于由南開大學(xué)出版社編寫南開100題,每次考試教育部考試中心會對題庫做相應(yīng)的改動,增加一些新的題型或題目,考試中,考生隨機抽取一套進行測試。筆者對2005年4月至2007年9月2004版新大綱以后的6次考試中的程序設(shè)計題目進行了總結(jié),將這些題目一共分成了6大類,對每種類型的題目進行了分析。
三、對一維數(shù)組和字符串的操作
該類型的題目在以往的機試中所占比例最大,為40%,考生應(yīng)對該知識點做全面的復(fù)習(xí)和掌握。一維數(shù)組可以分為數(shù)值型和字符型,其中數(shù)值型數(shù)組的數(shù)據(jù)類型為整型和實型,字符型數(shù)組的數(shù)據(jù)類型為字符型,我們通常會把字符型數(shù)組叫做字符串,但是應(yīng)該注意字符型數(shù)組與字符串之間是存在區(qū)別的,也就是’
四、數(shù)值計算
該類型的題目在歷年的機試中占22%,考查的機率也非常高。該類題目一般給定一個數(shù)列計算公式,然后要求考生編寫一個函數(shù)類實現(xiàn)求數(shù)列的前n項的值、累加和或者積。在解決該類的問題,首先要找到給定數(shù)列的變化規(guī)律,然后根據(jù)其變化規(guī)律來編寫一個單層或者雙層的循環(huán)來求其相應(yīng)的值。在編寫程序的過程中,往往還會用到一些數(shù)學(xué)函數(shù),如:sqrt()、fabs()、pow()等,考生應(yīng)該牢固掌握math.h中的一些常用數(shù)學(xué)函數(shù)的功能和使用方法。另外,還應(yīng)該注意數(shù)據(jù)類型之間的區(qū)別,特別是float和int類型,不同的數(shù)據(jù)類型產(chǎn)生的運算結(jié)果也是不一樣的。
五、對結(jié)構(gòu)體的操作
該部分對非計算機專業(yè)的學(xué)生來說是一個難點,因為結(jié)構(gòu)體在《數(shù)據(jù)結(jié)構(gòu)》這門課程中應(yīng)用最為廣泛,但考生忽視對該知識點的復(fù)習(xí),但在以往的機試中,有17%的題目是屬于該類型??忌趶?fù)習(xí)這部分的時候,首先應(yīng)注意結(jié)構(gòu)體成員的兩種不同的引用方法:結(jié)構(gòu)體變量和指向結(jié)構(gòu)體的指針,也就是結(jié)構(gòu)體成員運算符’.’和指向運算符’->’,在編程的過程中,往往會涉及到結(jié)構(gòu)體數(shù)組,其實這類數(shù)組除了數(shù)據(jù)類型是結(jié)構(gòu)體以外,其它的特性和普通數(shù)組是一樣的,結(jié)構(gòu)體除了定義、賦值和初始化以外,它的其它操作和普通變量也是一樣的,包括在結(jié)構(gòu)體數(shù)組(記錄)中進行查找、刪除、求最大最小值等操作,我們應(yīng)該用對待普通變量的方法來解決結(jié)構(gòu)體的問題,這樣的話,難度就可以大幅度的降低。
學(xué)習(xí)計算機程序設(shè)計中應(yīng)注意的問題
1.熟悉編程環(huán)境
根據(jù)2007年9月教育部考試中心頒布的新大綱,二級C語言的編程環(huán)境由TC2.0改為VC++6.0,考生應(yīng)該熟練掌握VC++6.0的使用方法,雖然VC支持鼠標(biāo)操作,但是考生還是應(yīng)該掌握幾個常用快捷方式來提高編程效率。特別要注意在對程序進行改動以后要保存,要進行編譯連接生成可執(zhí)行(.exe)文件。
2.養(yǎng)成良好的程序設(shè)計風(fēng)格
二級C語言機試中的程序設(shè)計題,一般來說程序都比較簡短,源代碼一般不超過5行,在題目指定的函數(shù)內(nèi)編寫程序??忌诖痤}的時候盡量采用易于理解而且比較簡單的代碼來解決問題,注意不要改動函數(shù)的參數(shù),語句的界符“{}”也應(yīng)該具有層次性的縮進,必要時,使用一定的注釋來幫助自己理解程序。
3.謹(jǐn)慎使用指針
指針是C語言的精華,也是機試考查的重點內(nèi)容,指針的使用非常靈活,在使用的指針的時候一定要注意對其進行初始化,所謂初始化也就是給指針一個初值,沒有初值的指針是很危險的,除了一定得不到正確答案外,如果指針越界,容易引起死機。如果死循環(huán)帶來的死機是“假死”,大部分可以用“Ctrl+Break”來恢復(fù),但指針越界引起的死機卻是真死,請考生一定要牢記。
4.熟練掌握循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)的程序是程序設(shè)計中涉及最多的知識點,根據(jù)以上的分析,我們可以看出幾乎每一類題目都會涉及到使用循環(huán)來解決問題,因此考生應(yīng)該掌握循環(huán)結(jié)構(gòu)的特征和使用方法,以達(dá)到能夠熟練使用的目標(biāo)。應(yīng)該引起注意的是,在編制循環(huán)結(jié)構(gòu)程序的時候考生應(yīng)該盡量使用“for”循環(huán)和“while”循環(huán),避免使用“do……while”循環(huán)和“goto”語句,因為“for”循環(huán)和“while”編寫出來的循環(huán)程序易于理解,不容易出錯。
5.沉著應(yīng)戰(zhàn),認(rèn)真細(xì)心
二級C語言上機考試時間有限,雖然從以前的60分鐘改為了90分鐘,但是相對于其它語種的上機考試來說,二級C語言的上機時間還是非常緊迫的。考生在答題的過程中應(yīng)該保持一個良好的心態(tài)和平靜的心情,遇到問題的時候不能慌亂,最好能夠在機試時帶一張草稿紙和一支筆,在編程之前先畫出程序的流程圖來明確解題思路。在遇到程序錯誤時一定要根據(jù)錯誤代碼檢查相應(yīng)位置,檢查的過程中應(yīng)該認(rèn)真仔細(xì),確保能夠解決問題。
猜你喜歡:
2.計算機專業(yè)培訓(xùn)學(xué)習(xí)計劃
學(xué)習(xí)計算機c語言的方法有哪些
精選文章
-
正確的聽課方式是什么
在教師眼中,聽課不是一種需要珍惜的權(quán)利,而是一項不得不去完成的任務(wù)。那么,正確的聽課方式是什么? 一、聽課,一門復(fù)雜的藝術(shù) 聽課是一項能讓授
-
養(yǎng)成良好學(xué)習(xí)習(xí)慣的十個方法
導(dǎo)語:一個好的學(xué)習(xí)習(xí)慣不僅可以提高學(xué)習(xí)效率,還可以讓你成為一名學(xué)霸。我們要怎樣養(yǎng)成良好的習(xí)慣呢?下面是學(xué)習(xí)啦小編給大家收集整理的養(yǎng)成良好學(xué)
-
考試高分必備的學(xué)習(xí)方法
在緊張的考試備戰(zhàn)中,我們要用什么方法來提高自己的學(xué)習(xí)成績呢?以下是學(xué)習(xí)啦小編為您收集整理的高分必備的技巧,希望同學(xué)們從這些文字里獲得一些相
-
小升初考試復(fù)習(xí)技巧有效嗎尖子生都怎么復(fù)習(xí)
小升初考試如果想要考好,就少不了學(xué)習(xí)方法的有效利用。如何備考2019年小升初考試呢?具體要掌握哪些技巧才能快速通關(guān)? 今天小編在這分享一些小升初考