C語(yǔ)言程序設(shè)計(jì)課程是高等院校計(jì)算機(jī)專業(yè)基礎(chǔ)課程之一,其教學(xué)效果直接影響學(xué)生在計(jì)算機(jī)方面的應(yīng)用。C語(yǔ)言是一門(mén)面向過(guò)程的、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。那么要如何寫(xiě)關(guān)于c語(yǔ)言程序設(shè)計(jì)心得呢?本文是c語(yǔ)言程序設(shè)計(jì)的心得,僅供參考。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)平遙,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
c語(yǔ)言程序設(shè)計(jì)心得一
在這為期半個(gè)月的時(shí)間內(nèi),通過(guò)我們小組各成員之間的相互討論和合作,我們完成了學(xué)生信息管理系統(tǒng)的程序設(shè)計(jì),更值得高興的是我們的程序得到了大家的喜愛(ài),在每次的簡(jiǎn)報(bào)中都得到了較好的成績(jī)。
雖然在上個(gè)學(xué)期中,我們已經(jīng)學(xué)習(xí)了《C 語(yǔ)言程序設(shè)計(jì)》這門(mén)課,但是我所學(xué)的知識(shí)最多也就是在做作業(yè)的時(shí)候才會(huì)用到,平時(shí)沒(méi)有什么練習(xí)的機(jī)會(huì),這次的課程設(shè)計(jì)是我第一次通過(guò)自己構(gòu)思,和同學(xué)討論并且不斷查閱資料來(lái)設(shè)計(jì)一項(xiàng)程序。這次設(shè)計(jì),不僅鞏固了我以前所學(xué)的知識(shí),還讓我對(duì)c語(yǔ)言有了更深一步的了解,掌握了更多的技巧和技能。
C語(yǔ)言是計(jì)算機(jī)程序設(shè)計(jì)的重要理論基礎(chǔ),在我們以后的學(xué)習(xí)和工作中都有著十分重要的地位。要學(xué)好這種語(yǔ)言,僅僅學(xué)習(xí)課本上的知識(shí)是不夠的,還要經(jīng)常自己動(dòng)手,有較強(qiáng)的實(shí)踐能力。只有多動(dòng)手,經(jīng)常編寫(xiě)程序,才能發(fā)現(xiàn)我們學(xué)習(xí)上的漏洞和自己的不足,并在實(shí)踐中解決這些問(wèn)題,不斷提高自己轉(zhuǎn)化知識(shí)的能力。
在我們小組有解決不了的問(wèn)題時(shí),我們會(huì)主動(dòng)查閱相關(guān)的資料,或向其他同學(xué)詢問(wèn),這不僅豐富了我們的知識(shí),還增進(jìn)了我們同學(xué)之間的友誼。為了增大信息的安全性,需要用文件來(lái)存儲(chǔ)信息,由于我們?cè)谏险n時(shí)不注重對(duì)文件的運(yùn)用,所以在這方面有較大的困難。我先將書(shū)本認(rèn)認(rèn)真真地看了一遍,又做了一下課后習(xí)題來(lái)驗(yàn)證和增進(jìn)自己的理解,終于,經(jīng)過(guò)我們的不懈努力,我們小組的程序有了突破,成功地實(shí)現(xiàn)了用文件來(lái)保存并查看學(xué)生的信息。
這次設(shè)計(jì)中,我的收獲還有就是學(xué)會(huì)了用流程圖來(lái)表達(dá)自己的想法,并根據(jù)流程圖來(lái)逐步實(shí)現(xiàn)程序的功能。開(kāi)始的時(shí)候,我畫(huà)流程圖很是困難,需要一個(gè)多小時(shí)才能清楚的根據(jù)自己的想法畫(huà)出圖來(lái),后來(lái)畫(huà)多了,就更加了解它的功能,十分得心應(yīng)手,能夠比較快而準(zhǔn)確的畫(huà)出來(lái)。
在這次課程設(shè)計(jì)中,我們首先對(duì)系統(tǒng)的整體功能進(jìn)行了構(gòu)思,然后用結(jié)構(gòu)化分析 方法 進(jìn)行分析,將整個(gè)系統(tǒng)清楚的劃分為幾個(gè)模塊,再根據(jù)每個(gè)模塊的功能編寫(xiě)代碼。而且盡可能的將模塊細(xì)分,最后在進(jìn)行函數(shù)的調(diào)用。我們?cè)诤瘮?shù)的編寫(xiě)過(guò)程中,我們不僅用到了for循環(huán)、while循環(huán)和switch語(yǔ)句,還用到了函數(shù)之間的調(diào)用(包括遞歸調(diào)用)。由于我們是分工編寫(xiě)代碼,最后需要將每個(gè)人的代碼放到一起進(jìn)行調(diào)試。因?yàn)槲覀兠總€(gè)人寫(xiě)的函數(shù)的思想不都一樣,所以在調(diào)試的過(guò)程中也遇到了困難,但經(jīng)過(guò)我們耐心的修改,終于功夫不負(fù)有心人,我們成功了!
在參考書(shū)上,我們不僅參考了曾經(jīng)學(xué)過(guò)的高敬陽(yáng)主編的《c語(yǔ)言程序設(shè)計(jì)》,還找到了由譚浩強(qiáng)主編的第三版《c語(yǔ)言》進(jìn)行參考。
當(dāng)然,我們的程序還有一些不完善的地方,比如說(shuō),當(dāng)輸入的數(shù)據(jù)不符合我們定義的數(shù)據(jù)的格式的時(shí)候,程序會(huì)出現(xiàn)一些錯(cuò)誤,有時(shí)會(huì)出現(xiàn)主菜單的死循環(huán);在一次程序運(yùn)行中,只能行使一種權(quán)限,要想再行使另一種權(quán)限,就只能退出程序,然后再運(yùn)行程序。
三周的小學(xué)期即將結(jié)束,時(shí)間雖短,但是我收獲了很多。最后,謝謝老師和同學(xué)們的指導(dǎo),更要感謝我們小組成員之間的合作與交流。
c語(yǔ)言程序設(shè)計(jì)心得二
通過(guò)本次教師發(fā)展在線的C語(yǔ)程培訓(xùn)中,我受益匪淺,幾位教授的精彩演講,讓我找到了自己的不足和日后教學(xué)中的改革方向和內(nèi)容。同時(shí),也讓我感覺(jué)到了,有今天各位教授的良好教學(xué)效果,這其中包含了他們的艱辛、背后的大量付出和無(wú)私奉獻(xiàn)。
我是一直從事C類語(yǔ)言的教學(xué)工作,對(duì)C語(yǔ)言的教學(xué)已有5年教齡,在這幾年的教學(xué)過(guò)程中,我們也一直在尋找好的 教學(xué)方法 和新的教學(xué)理念。通過(guò)本次學(xué)習(xí),我 總結(jié) 要教好《C語(yǔ)言程序設(shè)計(jì)》這門(mén)課,最基本要把握好以下幾個(gè)方面:
(一)要重視實(shí)踐環(huán)節(jié),上機(jī)調(diào)試成績(jī)非常重要。
學(xué)習(xí)一門(mén)語(yǔ)言,就是要按照它的語(yǔ)法來(lái)編程。要編程,當(dāng)然就要上機(jī)操作來(lái)驗(yàn)證你程序的正確性。所以上機(jī)非常重要,通過(guò)執(zhí)行你所寫(xiě)的程序,完成你所寫(xiě)程序的目標(biāo),最終達(dá)到你的目的。而且通過(guò)執(zhí)行程序,你會(huì)發(fā)現(xiàn)程序中的錯(cuò)誤,從而使你了解你所學(xué)知識(shí)中的不足,同時(shí),要學(xué)會(huì)根據(jù)編譯時(shí)提示的錯(cuò)誤來(lái)改正程序中發(fā)生的錯(cuò)誤,以便下次不會(huì)再犯同樣的錯(cuò)誤。
(二)基本語(yǔ)法學(xué)習(xí)雖然枯草乏味,但是它相當(dāng)于高樓大廈的一磚一瓦,一定要下硬功夫讓學(xué)生掌握熟練。
C語(yǔ)言的語(yǔ)法部分。這部分內(nèi)容是學(xué)好C語(yǔ)言的基礎(chǔ),只有學(xué)好了這些語(yǔ)法,才會(huì)寫(xiě)程序,看程序。所以對(duì)一個(gè)初學(xué)者來(lái)說(shuō),這部分內(nèi)容是非常重要的,所以要扎實(shí)地熟悉每一個(gè)語(yǔ)法,并能根據(jù)這些語(yǔ)法來(lái)編程。
(三)學(xué)習(xí)要抓住重點(diǎn),難點(diǎn)部分要多講、多學(xué)、多練。
通過(guò)這次學(xué)習(xí)使得我對(duì)C語(yǔ)言的重點(diǎn),難點(diǎn),以及易出錯(cuò)的地方把握的更精準(zhǔn)了。當(dāng)然,這只是針對(duì)我個(gè)人而言。在C語(yǔ)言學(xué)習(xí)過(guò)程,重點(diǎn)就是數(shù)組,指針,以及結(jié)構(gòu)體了。難點(diǎn)也是它們了,不過(guò)數(shù)組和結(jié)構(gòu)體還是挺簡(jiǎn)單,所以在此主要就指針?lè)矫嬲務(wù)勛约旱目捶ā?/p>
下面談?wù)勍ㄟ^(guò)這次學(xué)習(xí),結(jié)合我們學(xué)校的教學(xué)情況,打算對(duì)該課程的教學(xué)進(jìn)行如下幾個(gè)方面的改革:
(一)理論教學(xué)內(nèi)容的組織
C語(yǔ)言的重點(diǎn)知識(shí)包括:結(jié)構(gòu)化程序設(shè)計(jì)方法、流程圖的組織、三種程序設(shè)計(jì)結(jié)構(gòu)、三種基本數(shù)據(jù)類型和三種自定義數(shù)據(jù)類型;難點(diǎn)包括:結(jié)構(gòu)程序設(shè)計(jì)方法、算法的分析、流程圖的組織與設(shè)計(jì)、函數(shù)、指針等。
根據(jù)知識(shí)內(nèi)容和每年的新學(xué)時(shí)安排,我們將理論教學(xué)內(nèi)容分為授課內(nèi)容和自學(xué)內(nèi)容兩 大模塊。
(1)授課內(nèi)容
C語(yǔ)言的授課內(nèi)容分為兩階段:①基礎(chǔ)準(zhǔn)備階段 這部分內(nèi)容確保學(xué)生“實(shí)用、夠用”,主要包括三種基本數(shù)據(jù)類型(只要求掌握常用的int,float,char);三種常用運(yùn)算符及其表達(dá)式(賦值、算術(shù)、邏輯(包括關(guān)系));三種程序設(shè)計(jì)結(jié)構(gòu)(順序、選擇、循環(huán))。②實(shí)訓(xùn)項(xiàng)目驅(qū)動(dòng)階段 這部分內(nèi)容主要是“實(shí)訓(xùn)實(shí)戰(zhàn)”,主要包括數(shù)組、函數(shù)、指針和結(jié)構(gòu)體。通過(guò)第一階段的學(xué)習(xí),學(xué)生已經(jīng)具備了一些程序設(shè)計(jì)的基礎(chǔ)知識(shí),在這一階段將通過(guò)一個(gè)實(shí)訓(xùn)項(xiàng)目的完成來(lái)熟悉主要內(nèi)容,同時(shí)鞏固第一階段的成果。
(2)自學(xué)內(nèi)容
課本中的內(nèi)容上課沒(méi)重點(diǎn)介紹或者說(shuō)就是沒(méi)提到的,劃為自學(xué)內(nèi)容。但這些內(nèi)容,我們并不是在課堂要求學(xué)生回去自學(xué):要求過(guò)高,規(guī)矩過(guò)多,這樣效果不佳。而是讓學(xué)生在實(shí)驗(yàn)中發(fā)現(xiàn)問(wèn)題后,帶著問(wèn)題去學(xué)習(xí),去找答案。
例:整型 我們只介紹int基本類型,當(dāng)學(xué)生想計(jì)算n!時(shí),學(xué)生測(cè)試5!=120時(shí),他可能會(huì)去測(cè)試20!、50!,這時(shí),存放階乘的變量Factorial再定義為int,結(jié)果就是0了,這時(shí)問(wèn)題就來(lái)了,他就會(huì)去尋找正確的處理方法(long int)。
(二)實(shí)驗(yàn)教學(xué)的安排與設(shè)計(jì)
教學(xué)改革方案確定后,我們對(duì)本課程實(shí)驗(yàn)教學(xué)上從多方面進(jìn)行了教學(xué)更新。我們考慮到學(xué)生處于了解計(jì)算機(jī)語(yǔ)言及編程的初級(jí)階段,有許多最基礎(chǔ)的內(nèi)容有待掌握,所以本課程的實(shí)驗(yàn)教學(xué)不太適合完全以項(xiàng)目開(kāi)發(fā)的形式進(jìn)行,注重的是加強(qiáng)模塊化實(shí)訓(xùn)。
(1)上好第一節(jié)實(shí)驗(yàn)課
我們常說(shuō)“上好第一節(jié)課”,那么第一節(jié)實(shí)驗(yàn)節(jié)的重要性也不言而喻。這節(jié)課對(duì)培養(yǎng)學(xué)生的學(xué)習(xí)興趣、增強(qiáng)學(xué)生的學(xué)習(xí)信心、鍛煉學(xué)生的自主學(xué)習(xí)等多方面影響很大。
第一次實(shí)驗(yàn)項(xiàng)目是mdash;熟悉Turbo C的運(yùn)行環(huán)境,主要是掌握一些在TC中的一些鍵盤(pán)操作方式。一般是教師給學(xué)生提供程序代碼(三個(gè)),但我們?cè)趯W(xué)生不知情的情況下,給學(xué)生兩個(gè)有語(yǔ)法錯(cuò)誤的和一個(gè)正確的程序。這樣,當(dāng)學(xué)生運(yùn)行正確的程序時(shí),知道計(jì)算機(jī)可以幫我們處理問(wèn)題,原來(lái)程序就是這樣寫(xiě)的;當(dāng)學(xué)生運(yùn)行錯(cuò)誤的程序,首先他會(huì)詫異(老師給的程序原來(lái)是錯(cuò)的),于是要求他們自己修改,尤其是有時(shí)一個(gè)致命錯(cuò)誤導(dǎo)致的10多個(gè)errors,被學(xué)生修改后,沒(méi)有了errors或所剩無(wú)幾,這時(shí)學(xué)生表現(xiàn)的很興奮、很有成就感,從而加強(qiáng)了本課程的學(xué)習(xí)興趣和信心。
(2)分兩階段進(jìn)行
實(shí)驗(yàn)內(nèi)容與理論教學(xué)內(nèi)容相互應(yīng),在基礎(chǔ)準(zhǔn)備階段,這方面教學(xué)方法上主要是加強(qiáng)操練。通過(guò)各種大小程序、多重訓(xùn)練和一個(gè)問(wèn)題的多種解法來(lái)加強(qiáng)語(yǔ)法知識(shí)點(diǎn)的掌握和訓(xùn)練,開(kāi)闊學(xué)生編程的思路,掌握編程基礎(chǔ)。同時(shí),在這過(guò)程中我們嚴(yán)格把關(guān),讓學(xué)生課后認(rèn)真準(zhǔn)備,每次進(jìn)實(shí)驗(yàn)室時(shí),應(yīng)有寫(xiě)好的完整代碼,上機(jī)調(diào)試,發(fā)現(xiàn)問(wèn)題同時(shí)解決問(wèn)題,要求認(rèn)真完成實(shí)驗(yàn)內(nèi)容,并在課后書(shū)寫(xiě)實(shí)驗(yàn) 報(bào)告 。鼓勵(lì)學(xué)生多寫(xiě)程序,要加強(qiáng)實(shí)踐環(huán)節(jié),首先要從量上有個(gè)劃分。在實(shí)訓(xùn)項(xiàng)目驅(qū)動(dòng)階段。本階段實(shí)訓(xùn)項(xiàng)目的設(shè)計(jì)非常重要,原則是既要使學(xué)生有切入點(diǎn)能夠動(dòng)手又要使各章的內(nèi)容之間有聯(lián)系點(diǎn)。
(三)案例教學(xué)法
C語(yǔ)言的教學(xué),教師一般受傳統(tǒng)應(yīng)試 教育 的影響,狠抓理論考試,忽略了程序設(shè)計(jì)能力的培養(yǎng),把授課重點(diǎn)放在程序設(shè)計(jì)語(yǔ)言的基本語(yǔ)法的講授和掌握上,所選的編程實(shí)例大多用于語(yǔ)法規(guī)則的驗(yàn)證和說(shuō)明,僅從程序設(shè)計(jì)語(yǔ)言的使用這個(gè)單一的角度進(jìn)行教學(xué),而使得大多數(shù)學(xué)生在學(xué)完本課程后,“吃不透、用不活”,表現(xiàn)為學(xué)生在程序調(diào)試時(shí),對(duì)程序中出現(xiàn)的邏輯錯(cuò)誤經(jīng)常不知所措,在開(kāi)發(fā)較大的應(yīng)用程序時(shí),不知道如何入手。
采用案例教學(xué)法,以程序設(shè)計(jì)為主線,以編程應(yīng)用為驅(qū)動(dòng),通過(guò)案例和問(wèn)題引出教材內(nèi)容,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,穿插講解相關(guān)的語(yǔ)言知識(shí)。使教學(xué)效果既有深度又有廣度,學(xué)生實(shí)際動(dòng)手能力大為增強(qiáng)。
以上是我個(gè)人結(jié)合我院C語(yǔ)言程序設(shè)計(jì)的教學(xué)情況,自己總結(jié)了幾點(diǎn)看法和一些改革 措施 ,拿出來(lái)和大家一起分享,請(qǐng)大家多提寶貴意見(jiàn)。通過(guò)這次學(xué)習(xí),我將會(huì)靈活運(yùn)用幾位教授的教學(xué) 經(jīng)驗(yàn) ,根據(jù)我院的教學(xué)對(duì)象,調(diào)整一些上課方法和措施,望能更好的提高教學(xué)質(zhì)量。
c語(yǔ)言程序設(shè)計(jì)心得三
通過(guò)此次C語(yǔ)言程序設(shè)計(jì)實(shí)踐,本人實(shí)在是獲益不淺!C語(yǔ)言是上個(gè)學(xué)期開(kāi)的課程,所以這個(gè)學(xué)期并沒(méi)怎么看過(guò),當(dāng)要開(kāi)始設(shè)計(jì)的時(shí)候,還真不知從哪下手!結(jié)果,第一次的上機(jī),我傻坐著不知道該做什么,后來(lái)就寫(xiě)了幾個(gè)預(yù)處理命令。回去以后,我想,這樣不行,這樣下去還得了!我就重新復(fù)習(xí)了一遍我們上個(gè)學(xué)期學(xué)習(xí)的內(nèi)容,發(fā)覺(jué)自已有許多都遺忘了!特別是有文件的操作,幾乎是一遍空白!溫習(xí)過(guò)后,開(kāi)始做題!
一開(kāi)始做題,也是有點(diǎn)模糊,在指導(dǎo)老師的指導(dǎo)下,我們慢慢的進(jìn)入狀態(tài),我們做的是一個(gè)通訊錄,內(nèi)容包括很多。運(yùn)用的函數(shù)也是非常的復(fù)雜,我們一組有七個(gè)人,我分工合作,首先我一起完成了結(jié)構(gòu)題,然后我們一人各負(fù)責(zé)一個(gè)函數(shù)程序的設(shè)計(jì),經(jīng)過(guò)幾星期的努力,我們完成了大半個(gè)程序,但是總是有很多錯(cuò)誤出現(xiàn),有好多是些小問(wèn)題,這都是我們粗心大意造成的,所以設(shè)計(jì)程序一定要仔細(xì),不容一點(diǎn)的馬虎。當(dāng)然也有大問(wèn)題,關(guān)于文件的操作,是我們最大的問(wèn)題,不過(guò),我們做好后,經(jīng)過(guò)老師的講解和改錯(cuò),我們也懂得設(shè)計(jì)和運(yùn)用了。同時(shí),也讓我知道了,合作的力量,如果是孤軍奮戰(zhàn)的話,我也不能在規(guī)定時(shí)間內(nèi)完成,當(dāng)然,也多虧老師的指導(dǎo)。
這次設(shè)計(jì),讓我重新掌握了C語(yǔ)言,而且還得到了用C語(yǔ)言解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn)!
↓↓↓點(diǎn)擊下一頁(yè)還有更多精彩的C語(yǔ)言編程 學(xué)習(xí)心得 ↓↓↓
c語(yǔ)言實(shí)驗(yàn)心得:
1、只有頻繁用到或?qū)\(yùn)算速度要求很高的變量才放到data區(qū)內(nèi),如for循環(huán)中的計(jì)數(shù)值。
2、其他不頻繁調(diào)用到和對(duì)運(yùn)算速度要求不高的變量都放到xdata區(qū)。
3、常量放到code區(qū),如字庫(kù)、修正系數(shù)。
4、邏輯標(biāo)志變量可以定義到bdata中。
在51系列芯片中有16個(gè)字節(jié)位尋址區(qū)bdata,其中可以定義8*16=128個(gè)邏輯變量。這樣可以大大降低內(nèi)存占用空間。定義方法是: bdata bit LedState;但位類型不能用在數(shù)組和結(jié)構(gòu)體中。
5、data區(qū)內(nèi)最好放局部變量。
因?yàn)榫植孔兞康目臻g是可以覆蓋的(某個(gè)函數(shù)的局部變量空間在退出該函數(shù)是就釋放,由別的函數(shù)的局部變量覆蓋),可以提高內(nèi)存利用率。當(dāng)然靜態(tài)局部變量除外,其內(nèi)存使用方式與全局變量相同;
6、確保程序中沒(méi)有未調(diào)用的函數(shù)。
在Keil C里遇到未調(diào)用函數(shù),編譯器就將其認(rèn)為可能是中斷函數(shù)。函數(shù)里用的局部變量的空間是不釋放,也就是同全局變量一樣處理。這一點(diǎn)Keil做得很愚蠢,但也沒(méi)辦法。
7、如果想節(jié)省data空間就必須用large模式。
將未定義內(nèi)存位置的變量全放到xdata區(qū)。當(dāng)然最好對(duì)所有變量都要指定內(nèi)存類型。
8、使用指針時(shí),要指定指針指向的內(nèi)存類型。
在C51中未定義指向內(nèi)存類型的通用指針占用3個(gè)字節(jié);而指定指向data區(qū)的指針只占1個(gè)字節(jié);指定指向xdata區(qū)的指針占2個(gè)字節(jié)。如指針p是指向data區(qū),則應(yīng)定義為: char data *p;。還可指定指針本身的存放內(nèi)存類型,如:char data * xdata p;。其含義是指針p指向data區(qū)變量,而其本身存放在xdata區(qū)。
以前沒(méi)搞過(guò)C51,大學(xué)時(shí)代跟單片機(jī)老師的時(shí)候也是搗鼓下匯編,現(xiàn)在重新搞單片機(jī),因?yàn)槭诸^資料不多,找到一些C51的程序,發(fā)現(xiàn)里面有這些關(guān)鍵字,不甚明了,沒(méi)辦法只好找了下,發(fā)現(xiàn)如下描述:
從數(shù)據(jù)存儲(chǔ)類型來(lái)說(shuō),8051系列有片內(nèi)、片外程序存儲(chǔ)器,片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器,片內(nèi)程序存儲(chǔ)器還分直接尋址區(qū)和間接尋址類型,分別對(duì)應(yīng)code、data、xdata、idata以及根據(jù)51系列特點(diǎn)而設(shè)定的pdata類型,使用不同的存儲(chǔ)器,將使程序執(zhí)行效率不同,在編寫(xiě)C51程序時(shí),最好指定變量的存儲(chǔ)類型,這樣將有利于提高程序執(zhí)行效率(此問(wèn)題將在后面專門(mén)講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對(duì)應(yīng)不同的實(shí)際硬件系統(tǒng),也將有不同的編譯結(jié)果。
在51系列中data,idata,xdata,pdata的區(qū)別
data:固定指前面0x00-0x7f的128個(gè)RAM,可以用acc直接讀寫(xiě)的,速度最快,生成的代碼也最小。
idata:固定指前面0x00-0xff的256個(gè)RAM,其中前128和data的128完全相同,只是因?yàn)樵L問(wèn)的方式不同。idata是用類似C中的指針?lè)绞皆L問(wèn)的。匯編中的語(yǔ)句為:mox ACC,@Rx.(不重要的補(bǔ)充:c中idata做指針式的訪問(wèn)效果很好)
xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問(wèn)。
pdata:外部擴(kuò)展RAM的低256個(gè)字節(jié),地址出現(xiàn)在A0-A7的上時(shí)讀寫(xiě),用movx ACC,@Rx讀寫(xiě)。這個(gè)比較特殊,而且C51好象有對(duì)此BUG,建議少用。但也有他的優(yōu)點(diǎn),具體用法屬于中級(jí)問(wèn)題,這里不提。
三、有關(guān)單片機(jī)ALE引腳的問(wèn)題
"單片機(jī)不訪問(wèn)外部鎖存器時(shí)ALE端有正脈沖信號(hào)輸出,此頻率約為時(shí)鐘振蕩頻率的1/6.每當(dāng)訪問(wèn)
外部數(shù)據(jù)存儲(chǔ)器是,在兩個(gè)機(jī)器周期中ALE只出現(xiàn)一次,即丟失一個(gè)ALE脈沖."這句話是不是有毛
病.我覺(jué)得按這種說(shuō)法,應(yīng)該丟失3個(gè)ALE脈沖才對(duì),我一直想不通是怎么回事,希望大蝦們幫幫我.
小弟感激涕零.
答:
其他所有指令每6個(gè)機(jī)器周期發(fā)出一個(gè)ALE,而MOVX指令占用12個(gè)機(jī)器周期只發(fā)出一個(gè)ALE
四、如何將一個(gè)INT型數(shù)據(jù)轉(zhuǎn)換成2個(gè)CHAR型數(shù)據(jù)?
經(jīng)keil優(yōu)化后,char1=int1/256,char2=int1%256或char1=int18,char2=int10x00ff效率是一樣的。
五、在KEIL C51上仿真完了,怎樣生成HEX文件去燒寫(xiě)??
右鍵點(diǎn)項(xiàng)目中Target 1,選第二個(gè),在OUTPUT中選中CREAT HEX
六、typedef 和 #define 有何不同??
typedef 和 #define 有何不同》》》 如
typedef unsigned char UCHAR ;
#define unsigned char UCHAR ;
typedef命名一個(gè)新的數(shù)據(jù)類型,但實(shí)際上這個(gè)新的數(shù)據(jù)類型是已經(jīng)存在的,只不過(guò)是定義了
一個(gè)新的名字.
#define只是一個(gè)標(biāo)號(hào)的定義.
你舉的例子兩者沒(méi)有區(qū)別,但是#define還可以這樣用
#define MAX 100
#define FUN(x) 100-(x)
#define LABEL
等等,這些情況下是不能用typedef定義的
七、請(qǐng)問(wèn)如何設(shè)定KELC51的仿真工作頻(時(shí)鐘)
用右鍵點(diǎn)擊左邊的的target 1,然后在xtal一欄輸入
八、不同模塊怎樣共享sbit變量,extern不行?
把SBIT定義單獨(dú)放到一個(gè).H中,每個(gè)模塊都包含這個(gè).h文件
九、C51中對(duì)于Px.x的訪問(wèn)必須自己定義嗎?
是的。
如sbit P17 = 0x97;即可定義對(duì)P1.7的訪問(wèn)
十、SWITCH( )語(yǔ)句中表達(dá)式不可以是位變量對(duì)嗎?
可以用位變量:
#include
#include
void main()
{
bit flag;
flag=0;
switch(flag)
{
case '0':{printf("0\n");break;}
case '1':{printf("1\n");break;}
default:break;
}
}
bit 變量只有兩種狀態(tài),if 語(yǔ)句足夠啦,!!!
十一、const常數(shù)聲明占不占內(nèi)存???
const 只是用來(lái)定義“常量”,所占用空間與你的定義有關(guān),如:
const code cstStr[] = {"abc"};
占用代碼空間;而如:
const char data cstStr[] = {"abc"};
當(dāng)然占用內(nèi)存空間。
另外,#define 之定義似乎不占用空間。
十二、philips的單片機(jī)P89C51RD+的擴(kuò)展RAM在C51中如何使用?
試一試將auxr.1清0,然后在c語(yǔ)言中直接聲明xdata類型的變量
十三、BUG of Keil C51
程序中用如下語(yǔ)句:
const unsigned char strArr[] = {"數(shù)學(xué)"};
結(jié)果發(fā)現(xiàn)strArr[] 內(nèi)容為 {0xCA,0xD1,0xA7},真奇怪!
凡是有0xfd,則會(huì)通通不見(jiàn)了,所以只能手工輸入內(nèi)碼了,例如 uchar strArr[]=
{0xCA,0xfd,0xd1,0xa7}(用Ultraedit會(huì)很方便)。
十四、Keil C51中如何實(shí)現(xiàn)代碼優(yōu)化?
菜單Project下Option for target "Simulator"的C51.
看到Code optimization了嗎?
十五、請(qǐng)教c的!和 ~ 符號(hào)有甚區(qū)別??
!是邏輯取反,~是按位取反。
十六、c51編程,讀端口,還要不要先輸出1?
我怎么看到有的要,有的不要,請(qǐng)高手給講講,到底咋回事?謝了
要輸出1的,除非你能保證之前已經(jīng)是1,而中間沒(méi)有輸出過(guò)其他值。
十七、當(dāng)定時(shí)器1(T1)用于產(chǎn)生波特率時(shí),P3^5還是否可以用作正常的I/O口呢?
p3.5完全可以當(dāng)普通的io使用
十八、C51中 INT 轉(zhuǎn)換為 2個(gè)CHAR?
各位高手:
C51中 INT 轉(zhuǎn)換為 CHAR 如何轉(zhuǎn)換諸如:
X = LOW(Z);
Y = HIGH(Z);
答:
x=(char)z;
y=(char)(z8);
十九、如果我想使2EH的第7位置1的話,用位操作可以嗎?
現(xiàn)在對(duì)位操作指令我一些不太明白請(qǐng)各位多多指教:
如 SETB 07H 表示的是20H.7置1,對(duì)嗎?(我在一本書(shū)上是這么看到的)
那么如果我想使2EH的第7位置1的話,象我舉的這個(gè)例子怎么表示呢?謝謝!
SETB 77H
setb (2eh-20h)*8+7
20h-2fh每字節(jié)有8個(gè)可位操作(00h-7fh),其它RAM不可位直接操作
二十、char *addr=0xc000 和char xdata *addr=0xc000有何區(qū)別?
char *addr=0xc000;
char xdata *addr=0xc000;
除了在內(nèi)存中占用的字節(jié)不同外,還有別的區(qū)別嗎?
char *addr=0xc000; 是通用定義,指針變量 addr 可指向任何內(nèi)存空間的值;
char xdata *addr=0xc000; 指定該指針變量只能指向 xdata 中的值;
后一種定義中該指針變量(addr)將少占用一個(gè)存儲(chǔ)字節(jié)。
uchar xdata *addr=0xc000;指針指向外ram;
如果:data uchar xdata *addr=0xc000;指針指向外ram但指針本身存在于內(nèi)ram(data)
中
以此類推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;
data uchar idata *addr=0xa0;.........
二十一、while(p1_0)的執(zhí)行時(shí)間?
假設(shè),P1_0為單片機(jī)P1口的第一腳,請(qǐng)問(wèn),
while(P1_0)
{
P1_0=0;
}
while(!P1_0)
{
P1_0=1;
}
以上代碼,在KEIL C中,需要多長(zhǎng)時(shí)間,執(zhí)行完。能具體說(shuō)明while(P1_0)的執(zhí)行時(shí)間嗎?
仿真運(yùn)行看看就知道了,
我仿真了試了一下,約14個(gè)周期
二十二、怎樣編寫(xiě)C51的watchdog程序?
各位大蝦,我用KEIL C51 編寫(xiě)了一個(gè)帶外部開(kāi)門(mén)狗的程序,可程序無(wú)法運(yùn)行起來(lái),經(jīng)過(guò)查
找,發(fā)現(xiàn)程序在經(jīng)過(guò)C51編譯后,在MAIN()函數(shù)的前部增加了一端初始化程序,等到進(jìn)入
主程序設(shè)置開(kāi)門(mén)狗時(shí),開(kāi)門(mén)狗已經(jīng)時(shí)間到,將我的程序復(fù)位了,請(qǐng)問(wèn)我怎樣才能修改這一端
初始花程序,使他一運(yùn)行,就設(shè)置開(kāi)門(mén)狗?
可以在startup.a51中加入看門(mén)狗刷新指令,當(dāng)然用匯編,然后重新編譯startup.a51
,將他和你的程序連接即可。新的startup.a51會(huì)自動(dòng)代替系統(tǒng)默認(rèn)的啟動(dòng)模塊。
二十三、keil C51 怎樣把修改的startup.a51 加到工程文件中
直接加入即可
注意不要改動(dòng)?STACK,?C_START,?C_STARTUP等符號(hào)。startup.a51直接加入項(xiàng)目,不用修改也可。可在內(nèi)面自己修改匯編的一些限制或堆棧指針。
二十四、關(guān)于波特率的設(shè)置
我在設(shè)定串口波特率時(shí)發(fā)現(xiàn)一個(gè)問(wèn)題:在晶體震蕩器為11.0592MHz時(shí),若設(shè)9600BPS的話,
TH1=0XFD,TL1=0XFD,而要設(shè)19200BPS的話,TH1、TL1有否變化,如果沒(méi)變,為什么?
如果變了,又為什么?(因?yàn)槲铱磿?shū)上倆個(gè)是一樣的),希望大家點(diǎn)撥。
答:
當(dāng)電源控制寄存器(PCON)第BIT7(SMOD)為1時(shí)波特率加倍。
TH1和TL1的值不變.
二十五、如何在C中聲明保留這部分RAM區(qū)不被C使用?
我不知道在C源程序中怎么控制這個(gè),但在匯編程序中加入下面一段就行:
DSEG AT 20H
AA: DS 10
這樣C51就不會(huì)占用20H--29H了
或者在c51里這樣定義:
uchar data asm_buff[10] _at_ 0x20;
二十六、問(wèn)浮點(diǎn)運(yùn)算問(wèn)題
我在用C51時(shí)發(fā)現(xiàn)它對(duì)傳遞浮點(diǎn)參數(shù)的個(gè)數(shù)有限制,請(qǐng)問(wèn):
1)參數(shù)是以全局變量的形式傳遞的,請(qǐng)問(wèn)以全局變量的形式傳遞的參數(shù)也有限制嗎?
2)這種傳遞浮點(diǎn)參數(shù)的限制有多少呢?
3)float*float的結(jié)果是float類型還是double類型?能否直接賦值給float類型的變量?
答:
由于KEIL C51的參數(shù)傳遞是通過(guò)R0-R7來(lái)傳遞的,所以會(huì)有限制。
不過(guò)KEIL提供了一個(gè)編譯參數(shù),可以支持更多參數(shù)的傳遞。具體
的內(nèi)容見(jiàn)KEIL的PDF文檔。
我建議你把多個(gè)要傳遞的參數(shù)定義到指針或結(jié)構(gòu)體中去,傳遞參
數(shù)通過(guò)指針或結(jié)構(gòu)進(jìn)行,這樣好一些。
第3個(gè)問(wèn)題回答是YES,你自己試試不就知道了。
二十七、如何在某一個(gè)地址定義ram
用_at_ 命令,這樣可以定位靈活一點(diǎn)的地址
uchar xdata dis_buff[16] _at_ 0x6020 ;//定位RAM
將dis_buff[16]定位在0x6020開(kāi)始的16個(gè)字節(jié)
二十八、keil c中,用什么函數(shù)可以得到奇偶校驗(yàn)位?
例如32位數(shù)據(jù),將四個(gè)字節(jié)相互異或后檢查P即可,若耽心P被改變,可用內(nèi)嵌匯編。
#include
unsigned char parity(unsigned char x){
x^=x;
if(P)return(1);
else return(0);
}
unsigned char parity2(unsigned int x){
#pragma asm
mov a,r7
xrl ar6,a
#pragma endasm
if(P)return(1);
else return(0);
}
我個(gè)人認(rèn)為函數(shù)這部分的重點(diǎn)給你說(shuō)下哦:
1.函數(shù)的返回值類型,也就是你函數(shù)return的內(nèi)容的類型,注意如果有多種結(jié)束函數(shù)途徑的話一定要有多個(gè)return,譬如說(shuō)
int fun(int x)
{
if(x0)
return 0;
else
return 1;
}
2.函數(shù)形參的傳遞關(guān)系,有的可以改變值,有的不可以改變值,也是給你個(gè)例子:
void fun1(int x,int *y,int z)
{
x=1;
*y=1;
z=1;
}
如果主函數(shù)有變量int a=b=c=2;fun(a,b,c);的話,那么b和c的值會(huì)改變,而a的值不會(huì)改變,那是因?yàn)椋?/p>
a并不對(duì)變量a所占用內(nèi)存空間的內(nèi)容進(jìn)行操作。
b是把b變量的內(nèi)存空間地址傳遞進(jìn)去了,fun函數(shù)直接對(duì)b變量所在內(nèi)存空間進(jìn)行操作,所以b會(huì)改變。
至于c,你暫時(shí)不用知道,因?yàn)樾螀nt c表示的是一個(gè)引用,是c++里面會(huì)涉及的,你現(xiàn)在用c所以暫時(shí)只要知道有這么種方法就可以了。
3.就是注意函數(shù)中變量的存活期,這個(gè)說(shuō)起來(lái)有點(diǎn)麻煩,你看下書(shū)上關(guān)于局部變量和全局變量那部分的內(nèi)容吧,那個(gè)說(shuō)的比較詳細(xì)。
c語(yǔ)言實(shí)驗(yàn)報(bào)告總結(jié)這樣寫(xiě):
在科技高度發(fā)展的今天,計(jì)算機(jī)在人們之中的作用越來(lái)越突出。而c語(yǔ)言作為一種計(jì)算機(jī)的語(yǔ)言,我們學(xué)習(xí)它,有助于我們更好的了解計(jì)算機(jī),與計(jì)算機(jī)進(jìn)行交流,因此,c語(yǔ)言的學(xué)習(xí)對(duì)我們尤其重要。
在這個(gè)星期里,我們專業(yè)的學(xué)生在專業(yè)老師的帶領(lǐng)下進(jìn)行了c語(yǔ)言程序?qū)嵺`學(xué)習(xí)。在這之前,我們已經(jīng)對(duì)c語(yǔ)言這門(mén)課程學(xué)習(xí)了一個(gè)學(xué)期,對(duì)其有了一定的了解,但是也僅僅是停留在了解的范圍,對(duì)里面的好多東西還是很陌生,的在運(yùn)用起來(lái)的時(shí)候還是感到很棘手,畢竟,萬(wàn)事開(kāi)頭難嘛。
由于時(shí)間的關(guān)系,我們的這次實(shí)踐課程老師并沒(méi)有給我們?cè)敿?xì)的介紹,只是給我們簡(jiǎn)單的介紹了幾個(gè)比較重要的實(shí)際操作。包括了程序模塊處理.簡(jiǎn)單界面程序.高級(jí)界面程序.程序的添加修改.用程序做一元線性回歸處理以及用c語(yǔ)言程序來(lái)畫(huà)粒度分布圖等這幾樣比較重要的時(shí)間操作。
上機(jī)實(shí)驗(yàn)是學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言必不可少的實(shí)踐環(huán)節(jié),特別是c語(yǔ)言靈活、簡(jiǎn)潔,更需要通過(guò)編程的實(shí)踐來(lái)真正掌握它。對(duì)于程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)目的,可以概括為學(xué)習(xí)語(yǔ)法規(guī)定、掌握程序設(shè)計(jì)方法、提高程序開(kāi)發(fā)能力,這些都必須通過(guò)充分的實(shí)際上機(jī)操作才能完成。
學(xué)習(xí)c程序設(shè)計(jì)語(yǔ)言除了課堂講授以外,必須保證有不少于課堂講授學(xué)時(shí)的上機(jī)時(shí)間。因?yàn)閷W(xué)時(shí)所限,課程不能安排過(guò)多的統(tǒng)一上機(jī)實(shí)驗(yàn),所以希望學(xué)生有效地利用課程上機(jī)實(shí)驗(yàn)的機(jī)會(huì),盡快掌握用c語(yǔ)言開(kāi)發(fā)程序的能力,為今后的繼續(xù)學(xué)習(xí)打下一個(gè)良好的基礎(chǔ)。
為此,我們結(jié)合課堂講授的內(nèi)容和進(jìn)度,安排了12次上機(jī)實(shí)驗(yàn)。課程上機(jī)實(shí)驗(yàn)的目的,不僅僅是驗(yàn)證教材和講課的內(nèi)容、檢查自己所編的程序是否正確,課程安排的上機(jī)實(shí)驗(yàn)的目的可以概括為如下幾個(gè)方面:
1、加深對(duì)課堂講授內(nèi)容的'理解
課堂上要講授許多關(guān)于c語(yǔ)言的語(yǔ)法規(guī)則,聽(tīng)起來(lái)十分枯燥無(wú)味,也不容易記住,死記硬背是不可取的。然而要使用c語(yǔ)言這個(gè)工具解決實(shí)際問(wèn)題,又必須掌握它。
通過(guò)多次上機(jī)練習(xí),對(duì)于語(yǔ)法知識(shí)有了感性的認(rèn)識(shí),加深對(duì)它的理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握c語(yǔ)言的語(yǔ)法規(guī)定。對(duì)于一些內(nèi)容自己認(rèn)為在課堂上聽(tīng)懂了,但上機(jī)實(shí)踐中會(huì)發(fā)現(xiàn)原來(lái)理解的偏差,這是由于大部分學(xué)生是初次接觸程序設(shè)計(jì),缺乏程序設(shè)計(jì)的實(shí)踐所致。
學(xué)習(xí)c語(yǔ)言不能停留在學(xué)習(xí)它的語(yǔ)法規(guī)則,而是利用學(xué)到的知識(shí)編寫(xiě)c語(yǔ)言程序,解決實(shí)際問(wèn)題。即把c語(yǔ)言作為工具,描述解決實(shí)際問(wèn)題的步驟,由計(jì)算機(jī)幫助我們解題。只有通過(guò)上機(jī)才能檢驗(yàn)自己是否掌握c語(yǔ)言、自己編寫(xiě)的程序是否能夠正確地解題。
通過(guò)上機(jī)實(shí)驗(yàn)來(lái)驗(yàn)證自己編制的程序是否正確,恐怕是大多數(shù)同學(xué)在完成老師作業(yè)時(shí)的心態(tài)。但是在程序設(shè)計(jì)領(lǐng)域里這是一定要克服的傳統(tǒng)的、錯(cuò)誤的想法。因?yàn)樵谶@種思想支配下,可能你會(huì)想辦法去"掩蓋"程序中的錯(cuò)誤,而不是盡可能多地發(fā)現(xiàn)程序中存在的問(wèn)題。
自己編好程序上機(jī)調(diào)試運(yùn)行時(shí),可能有很多你想不到的情況發(fā)生,通過(guò)解決這些問(wèn)題,可以逐步提高自己對(duì)c語(yǔ)言的理解和程序開(kāi)發(fā)能力。
2、熟悉程序開(kāi)發(fā)環(huán)境、學(xué)習(xí)計(jì)算機(jī)系統(tǒng)的操作方法
一個(gè)c語(yǔ)言程序從編輯、編譯、連接到運(yùn)行,都要在一定的外部操作環(huán)境下才能進(jìn)行。所謂"環(huán)境"就是所用的計(jì)算機(jī)系統(tǒng)硬件、軟件條件,只有學(xué)會(huì)使用這些環(huán)境,才能進(jìn)行程序開(kāi)發(fā)工作。
通過(guò)上機(jī)實(shí)驗(yàn),熟練地掌握c語(yǔ)言開(kāi)發(fā)環(huán)境,為以后真正編寫(xiě)計(jì)算機(jī)程序解決實(shí)際問(wèn)題打下基礎(chǔ)。同時(shí),在今后遇到其它開(kāi)發(fā)環(huán)境時(shí)就會(huì)觸類旁通,很快掌握新系統(tǒng)的使用。
3、學(xué)習(xí)上機(jī)調(diào)試程序
完成程序的編寫(xiě),決不意味著萬(wàn)事大吉。你認(rèn)為萬(wàn)無(wú)一失的程序,實(shí)際上機(jī)運(yùn)行時(shí)可能不斷出現(xiàn)麻煩。如編譯程序檢測(cè)出一大堆錯(cuò)誤。有時(shí)程序本身不存在語(yǔ)法錯(cuò)誤,也能夠順利運(yùn)行,但是運(yùn)行結(jié)果顯然是錯(cuò)誤的。
開(kāi)發(fā)環(huán)境所提供的編譯系統(tǒng)無(wú)法發(fā)現(xiàn)這種程序邏輯錯(cuò)誤,只能靠自己的上機(jī)經(jīng)驗(yàn)分析判斷錯(cuò)誤所在。程序的調(diào)試是一個(gè)技巧性很強(qiáng)的工作,對(duì)于初學(xué)者來(lái)說(shuō),盡快掌握程序調(diào)試方法是非常重要的。有時(shí)候一個(gè)消耗你幾個(gè)小時(shí)時(shí)間的小小錯(cuò)誤,調(diào)試高手一眼就看出錯(cuò)誤所在。
通過(guò)這次為數(shù)不多的幾天計(jì)算機(jī)實(shí)踐學(xué)習(xí),我們了解了一些關(guān)于c語(yǔ)言的知識(shí),理解鞏固了我們c語(yǔ)言的理論知識(shí),著對(duì)我們將來(lái)到社會(huì)工作將會(huì)有莫大的幫助。同時(shí)它讓我知道,只要你努力,任何東西都不會(huì)太難!
在初學(xué)C語(yǔ)言的一個(gè)學(xué)期后,我們進(jìn)行了C語(yǔ)言實(shí)訓(xùn)階段,嘗試自己編寫(xiě)一個(gè)比較復(fù)雜的程序系統(tǒng)。在為期兩周的時(shí)間中,我們同組的同學(xué)共同的感受是:C語(yǔ)言實(shí)訓(xùn)和平時(shí)上課所接觸的程序是有很大不同的,所經(jīng)受的考驗(yàn)和克服的困難是平時(shí)所無(wú)法比擬的。好在同組的搭檔們精誠(chéng)合作,分工明確,有問(wèn)題共同解決,攻克了C語(yǔ)言實(shí)訓(xùn)的復(fù)雜程序。在這里,我作為其中的參與者,自然感觸良多。
剛開(kāi)始接觸到C的時(shí)候,我已經(jīng)學(xué)過(guò)一些有關(guān)VB的內(nèi)容,這個(gè)在算法和思維上稍微有點(diǎn)幫助。回想本學(xué)期的學(xué)習(xí),首先,最基本的,是C的數(shù)據(jù)格式,讓我們知道整數(shù),浮點(diǎn)數(shù)以及字符常量在C中的運(yùn)用。然后,在學(xué)會(huì)了數(shù)據(jù)轉(zhuǎn)化,以及熟練的可以對(duì)各種數(shù)據(jù)處理之后,我開(kāi)始進(jìn)行有關(guān)數(shù)據(jù)結(jié)構(gòu),像數(shù)組,結(jié)構(gòu)體等的學(xué)習(xí),因?yàn)橛械臇|西從現(xiàn)有的知識(shí)來(lái)看都是非常簡(jiǎn)單的,還沒(méi)有聯(lián)系到指針等等一些復(fù)雜的概念。可是,僅僅學(xué)會(huì)這些是遠(yuǎn)遠(yuǎn)不夠的,C語(yǔ)言中,還有很多更加經(jīng)典、重要、實(shí)用的知識(shí)。
說(shuō)說(shuō)函數(shù)。雖說(shuō)很多程序語(yǔ)言都有函數(shù)這一內(nèi)容,但我覺(jué)得C語(yǔ)言的函數(shù)是最有魅力的了。學(xué)習(xí)函數(shù)的方法是比較簡(jiǎn)單的,只有兩個(gè)字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時(shí)間,學(xué)習(xí)C語(yǔ)言的“高人”都說(shuō),一個(gè)聰明的編程者在編寫(xiě)程序前往往總是先找自己所編寫(xiě)的程序中有多少是可以用函數(shù)來(lái)代替的。比如,大家可以作一個(gè)比較字符串的實(shí)驗(yàn),用C語(yǔ)言中的strcmp()函數(shù)只要一句話,而自己編寫(xiě)的話,30句都很難實(shí)現(xiàn),可想而知函數(shù)的實(shí)用和快捷。在我們C語(yǔ)言實(shí)訓(xùn)的代碼中,函數(shù)更是得到了充分的應(yīng)用,可以說(shuō),實(shí)訓(xùn)題目的復(fù)雜代碼,就是用無(wú)數(shù)個(gè)函數(shù)的調(diào)用和嵌套積累出來(lái)的。
要注意的是,有的同學(xué)剛剛開(kāi)始的時(shí)候,都是被一些大的程序激勵(lì)的,所以當(dāng)開(kāi)始的時(shí)候看到繁瑣的數(shù)據(jù)轉(zhuǎn)化和簡(jiǎn)單的算法,都覺(jué)得很無(wú)聊,都想自己做幾個(gè)自己滿意的程序來(lái)看看,雖然這種想法很好,但是,我們說(shuō),沒(méi)有基礎(chǔ),純粹是搬照一些現(xiàn)成設(shè)計(jì)方法,是不足取的。要知道,程序設(shè)計(jì)講究的是個(gè)人的思維的,假如剛開(kāi)始就被一些現(xiàn)成的思想束縛住,以后就會(huì)覺(jué)得很無(wú)趣。
我們知道,指針其實(shí)是C語(yǔ)言的靈魂,許多的數(shù)據(jù)結(jié)構(gòu)在我們學(xué)到這里之前都可以說(shuō)是精通了。所以我們的任務(wù)就是,讓數(shù)據(jù)結(jié)構(gòu)在指針中運(yùn)行。當(dāng)然,剛剛開(kāi)始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及多維數(shù)組在結(jié)構(gòu)體中的運(yùn)用,都一點(diǎn)一點(diǎn)的加了進(jìn)來(lái),同時(shí)豐滿了我們對(duì)原來(lái)C的數(shù)據(jù)機(jī)構(gòu),數(shù)據(jù)表示的理解。當(dāng)我們完成了這三步的學(xué)習(xí),我們已經(jīng)可以自豪的說(shuō),我們的基礎(chǔ)都扎實(shí)了,可以進(jìn)一步的學(xué)習(xí)有關(guān)算法,設(shè)計(jì)概念等等深層次的東西了。
但是,指針,結(jié)構(gòu)體,這些太抽象的東西,在學(xué)習(xí)C語(yǔ)言的時(shí)候我們就有點(diǎn)“似懂非懂”,可是在眼下的C語(yǔ)言實(shí)訓(xùn)中,像這么重要的C語(yǔ)言知識(shí),一定要達(dá)到能熟練掌握,實(shí)際運(yùn)用的程度。在實(shí)訓(xùn)的大程序中,結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及在結(jié)構(gòu)體中的運(yùn)用等具體的技術(shù)環(huán)節(jié),都得到了體現(xiàn),不會(huì)指針,我們的工作是沒(méi)法展開(kāi)的。所以,在實(shí)訓(xùn)期間,大家在鞏固基本知識(shí)的基礎(chǔ)上,逐塊攻克實(shí)訓(xùn)課題,克服了困難,自信心得到了提高。
最后,談?wù)勎覀兘M的程序軟件。商店商品管理系統(tǒng),是一個(gè)比較利于應(yīng)用,解決實(shí)際問(wèn)題,方便實(shí)際管理的程序。設(shè)計(jì)代碼比較復(fù)雜,結(jié)構(gòu)比較嚴(yán)謹(jǐn)。在程序編寫(xiě)的1周左右的時(shí)間里,組員們遇到了上述的困難,包括程序設(shè)計(jì)構(gòu)思,甚至是指針等某些知識(shí)點(diǎn)的欠缺,導(dǎo)致的工作中出現(xiàn)的困難。但是,當(dāng)大家一起團(tuán)結(jié)協(xié)作,解決了這些困難之后,發(fā)現(xiàn)自己也可以編寫(xiě)復(fù)雜的、應(yīng)用性的程序了,更發(fā)現(xiàn)自己對(duì)C語(yǔ)言這門(mén)學(xué)科的興趣也提高了。
當(dāng)然,我們編寫(xiě)的商店商品管理系統(tǒng),還存在很多疏漏和不合理之處。比如,程序復(fù)雜冗長(zhǎng),如果時(shí)間充裕,我們將在不改變程序運(yùn)行結(jié)果的基礎(chǔ)上,簡(jiǎn)化程序,使每一句更加精辟,總體上更加簡(jiǎn)化。另外,在程序的外觀上,我們由于時(shí)間問(wèn)題,沒(méi)有做更多的修飾,運(yùn)行起來(lái)顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會(huì)更加完美。
以上就是我的C語(yǔ)言實(shí)訓(xùn)個(gè)人總結(jié)
1.最初接觸C語(yǔ)言時(shí)要弄清楚各種變量的定義方法,特別是常用的類型,int、float、char等等,還要掌握各種類型的輸入、輸出格式。這一步做到后,上機(jī)就沒(méi)有多大的問(wèn)題了。
2.在對(duì)函數(shù)的學(xué)習(xí)過(guò)程中,一定要弄明白函數(shù)的作用和具體格式。值得強(qiáng)調(diào)的是在寫(xiě)循環(huán)程序時(shí),一定要弄清楚循環(huán)的條件。
3.對(duì)每一個(gè)知識(shí)點(diǎn),都應(yīng)該立即編出對(duì)應(yīng)的程序,有時(shí)可能還會(huì)有語(yǔ)法錯(cuò)誤,碰到更好的方法也可以試一下,很多時(shí)候你想想代碼怎么寫(xiě)和你真的寫(xiě)出來(lái)了是有很大的差距的。
4.學(xué)習(xí)時(shí)一定有很多疑惑的,要及時(shí)弄清楚。
5.找一本好的課本,我并不推薦譚浩強(qiáng)的《C語(yǔ)言程序設(shè)計(jì)》,因?yàn)檫@本書(shū)把知識(shí)點(diǎn)講的太細(xì)碎太理論。我推薦《c語(yǔ)言程序設(shè)計(jì):現(xiàn)代方法》這本書(shū),書(shū)中奧妙非凡,值得深讀體驗(yàn)。
6.不要認(rèn)為上課認(rèn)真聽(tīng)課有用,寫(xiě)程序不可能從課堂上學(xué)會(huì)太多的,偉大的程序員或者是很多的黑客,不是老師教出來(lái)的,你的有自己的想法自己的思路自己的,學(xué)習(xí)一門(mén)語(yǔ)言才有用,也才會(huì)得到別人傳教不了的東西。
網(wǎng)站題目:C語(yǔ)言函數(shù)上機(jī)實(shí)驗(yàn)體會(huì),C語(yǔ)言上機(jī)實(shí)驗(yàn)心得
本文網(wǎng)址:http://vcdvsql.cn/article6/heohog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)