摘 要:C語(yǔ)言是大學(xué)階段一門必修課程,是許多理工科高校的核心課程之一。學(xué)好C語(yǔ)言對(duì)個(gè)人今后的專業(yè)發(fā)展和自身發(fā)展有著深遠(yuǎn)的影響。本文對(duì)《C語(yǔ)言程序設(shè)計(jì)》課程學(xué)習(xí)提出了幾點(diǎn)建議,以期拋磚引玉。
關(guān)鍵詞:C語(yǔ)言 代碼 思考
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-1578(2018)10-0048-01
1 引言
在大學(xué)階段,C語(yǔ)言不僅是計(jì)算機(jī)專業(yè)而且也是非計(jì)算機(jī)專業(yè)學(xué)習(xí)計(jì)算機(jī)基礎(chǔ)的一門必修課程,幾乎每一個(gè)理工科或者其他專業(yè)的學(xué)生都要學(xué)習(xí)它。不管你現(xiàn)在是一個(gè)高級(jí)編程師抑或一個(gè)剛剛起步的計(jì)算機(jī)語(yǔ)言初學(xué)者,C語(yǔ)言毫無(wú)疑問是我們所接觸的第一門計(jì)算機(jī)編程語(yǔ)言。一個(gè)不懂C語(yǔ)言的人,要想寫出優(yōu)秀高效的程序簡(jiǎn)直是天方夜譚。因此,學(xué)好C語(yǔ)言對(duì)個(gè)人今后的專業(yè)發(fā)展和自身發(fā)展有著深遠(yuǎn)的影響。
2 C語(yǔ)言介紹
C語(yǔ)言是國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語(yǔ)言,是計(jì)算機(jī)程序設(shè)計(jì)的重要理論基礎(chǔ)。C語(yǔ)言使用靈活方便、功能豐富、表達(dá)能力強(qiáng)、既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn),適合編寫各種系統(tǒng)軟件。不僅用在計(jì)算機(jī)上廣泛用在電子,機(jī)械等方面上,而且很多新型的語(yǔ)言如,C++, Java等都是衍生自C語(yǔ)言。它兼?zhèn)涓呒?jí)語(yǔ)言與低級(jí)語(yǔ)言的優(yōu)點(diǎn),屬于一種中間語(yǔ)言,非常適合結(jié)構(gòu)化程序設(shè)計(jì)。他有著較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用,能使修改、編輯其他程序與文檔變得輕松,簡(jiǎn)單。
3 C語(yǔ)言學(xué)習(xí)的幾點(diǎn)建議
在學(xué)習(xí)《C語(yǔ)言程序設(shè)計(jì)》的一年里,筆者也在慢慢探索該語(yǔ)言的學(xué)習(xí)心得,并總結(jié)了以下幾點(diǎn)建議,以期拋磚引玉。
3.1 積極思考 獨(dú)立完成
學(xué)習(xí)c語(yǔ)言最為重要的一點(diǎn)就是要積極思考、獨(dú)立完成。在解答c語(yǔ)言習(xí)題的過程中,我們有時(shí)會(huì)有自己獨(dú)特的想法,而一道題目的解法往往不止一種,因此不存在唯一的標(biāo)準(zhǔn)答案,只要能夠達(dá)到題目所要求的目的即可。在拿到題目時(shí)我們不必急著寫出程序,應(yīng)該先獨(dú)立思考,找到自己想編寫程序的解決問題的核心算法。例如經(jīng)典題目:輸入一個(gè)3行3列的整型數(shù)組,求出這個(gè)數(shù)組的“鞍點(diǎn)”。鞍點(diǎn)是指這個(gè)元素在所在的行上最大, 列上最小。請(qǐng)輸出這個(gè)鞍點(diǎn)的位置及鞍點(diǎn)的值,如果沒有鞍點(diǎn),請(qǐng)輸出沒找到。
針對(duì)該題,筆者的解題思路是先找到一行中的最大值,并找到該最大值所在列的最小值,接著比較此最大值與最小值對(duì)應(yīng)的數(shù)值是否相等,若相等則有鞍點(diǎn),反之,則沒有。而這樣的思路也顯然將之后程序編寫的過程大致分為了三個(gè)部分。通過鞍點(diǎn)ad是否等于0來(lái)判斷是否有鞍點(diǎn)的存在并編寫出程序。
事實(shí)上,在面對(duì)一道C語(yǔ)言相關(guān)題目時(shí),我們可能會(huì)有多種想法,不妨將這些算法都編寫為程序,達(dá)到一題多解的效果,而這些解法有各自的優(yōu)勢(shì)也有缺點(diǎn),在相互比較中我們會(huì)有更大的提高。當(dāng)然,將我們對(duì)于一道題目的解法思路轉(zhuǎn)換為計(jì)算機(jī)語(yǔ)言,有時(shí)較為復(fù)雜和困難,但也是在這種“困難”情境下的思考讓我們有更大的進(jìn)步。
3.2 多看代碼 反復(fù)實(shí)踐
C語(yǔ)言學(xué)習(xí)在有一定基礎(chǔ)以后,一定要多看別人的代碼,一是同學(xué)或網(wǎng)友的代碼,學(xué)習(xí)別人方法的時(shí)候,應(yīng)該是辯證的態(tài)度對(duì)對(duì)待,應(yīng)該去考慮它是否有問題,不能迷信別人的代碼,應(yīng)該客觀地看待,如果有問題,自己試著去解決,并和他們交流。二是看優(yōu)秀程序的源代碼,這類代碼了體現(xiàn)了程序框架、設(shè)計(jì)思想等,我們可以從中加以學(xué)習(xí)和借鑒。此外,還要多上機(jī)練習(xí),反復(fù)實(shí)踐,這是學(xué)習(xí)好C語(yǔ)言的重要的環(huán)節(jié),無(wú)論編程學(xué)得多好,上機(jī)實(shí)現(xiàn)才是目的,把每一段代碼都敲進(jìn)計(jì)算機(jī),讓計(jì)算機(jī)來(lái)實(shí)現(xiàn),這樣有助于對(duì)程序的理解,并試著修改代碼,讓代碼更精簡(jiǎn),效率更高。自己動(dòng)手的過程實(shí)際上就是不斷糾正自己不好的編程習(xí)慣和認(rèn)識(shí)錯(cuò)誤。平時(shí)沒事的時(shí)候,在計(jì)算機(jī)上多敲代碼,有一定的基礎(chǔ)以后可以嘗試編一點(diǎn)小游戲,基礎(chǔ)很扎實(shí)的時(shí)候,可以編一些關(guān)于數(shù)據(jù)結(jié)構(gòu)方面的東西,諸如最經(jīng)典的學(xué)生管理系統(tǒng)等等。
3.3 多記筆記 善于總結(jié)
上課務(wù)必認(rèn)真聆聽,課下一定要整理筆記。因?yàn)?,畢竟大部分人沒有過目不忘的能力,記筆記可以加深印象,便于把上課學(xué)習(xí)的瞬時(shí)記憶轉(zhuǎn)為長(zhǎng)期記憶。而且,忘記了也便于查找,不用費(fèi)力到整本書中去查找。記筆記的方式多種多樣,因人而異。代碼多的筆記建議記在電腦里,可以先敲出來(lái)編譯運(yùn)行,看是否有差錯(cuò),再?gòu)?fù)制粘貼到記事本上,作為新手這條一定要時(shí)時(shí)遵守。在編寫程序的過程中我們常常會(huì)遇到問題,常會(huì)編譯錯(cuò)誤的程序,學(xué)習(xí)過程中我們一定要虛心學(xué)習(xí),重視每一次編譯時(shí)出現(xiàn)的錯(cuò)誤,從錯(cuò)誤中汲取教訓(xùn),善于總結(jié),特別是頻繁出現(xiàn)的更要注意。出現(xiàn)錯(cuò)誤不要著急,多交流,也許別人會(huì)看到你發(fā)現(xiàn)不了的漏洞,
3.4 注意細(xì)節(jié) 培養(yǎng)習(xí)慣
基本上每本C語(yǔ)言教材上都要提到,新手在學(xué)習(xí)過程中一定要注意細(xì)節(jié),培養(yǎng)良好的編程習(xí)慣。首先,恰當(dāng)?shù)貙?duì)代碼加以注釋。能在代碼里說明白的就一定要在代碼里體現(xiàn),比如函數(shù)名、變量名,在命名的時(shí)候盡量說明其用途,比如看這樣的代碼:if?"(frmp>10)", "(plist.bdown & x03)", "(plist.y > pond.y)"就比看注釋要復(fù)雜的多。僅憑光溜溜一堆代碼,別人不僅很難讀懂,也不利于查找錯(cuò)誤代碼。其次,務(wù)必把主函數(shù)盡量寫簡(jiǎn)短,注意語(yǔ)句的嵌套不能過長(zhǎng)。一般來(lái)說,一段代碼里語(yǔ)句最多8個(gè)嵌套,這樣簡(jiǎn)潔精妙的代碼更容易讀懂。最后,還要注意語(yǔ)句的選擇。并不是分支語(yǔ)句就用if循環(huán)就用while、for。在適當(dāng)?shù)那闆r下switch和do while語(yǔ)句也是要用的。在某些時(shí)候,switch語(yǔ)句比if語(yǔ)句更加精練明了,而do while比while少一個(gè)循環(huán)。
總之,學(xué)習(xí)C語(yǔ)言沒有捷徑可走,功在平時(shí),只有平時(shí)認(rèn)真積累思考,積極上機(jī)練習(xí),水平才能有所提高。
作者簡(jiǎn)介:凌卉(1999-),女,福建省寧德市人,中央民族大學(xué)2017級(jí)信息與計(jì)算科學(xué)系1班學(xué)生,研究方向:信息與計(jì)算科學(xué)。