99精品久久这里只有精品,三上悠亚免费一区二区在线,91精品福利一区二区,爱a久久片,无国产精品白浆免费视,中文字幕欧美一区,爽妇网国产精品,国产一级做a爱免费观看,午夜一级在线,国产精品偷伦视频免费手机播放

    <del id="eyo20"><dfn id="eyo20"></dfn></del>
  • <small id="eyo20"><abbr id="eyo20"></abbr></small>
      <strike id="eyo20"><samp id="eyo20"></samp></strike>
    • 首頁(yè) > 文章中心 > c程序設(shè)計(jì)

      c程序設(shè)計(jì)

      前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇c程序設(shè)計(jì)范文,相信會(huì)為您的寫作帶來(lái)幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

      c程序設(shè)計(jì)范文第1篇

      關(guān)鍵詞:實(shí)驗(yàn)教學(xué); 教學(xué)方法; 程序設(shè)計(jì)

      1 引言

      C程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)學(xué)習(xí)中的一門非常重要的基礎(chǔ)課程, 是學(xué)生學(xué)習(xí)C++、VC、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等專業(yè)課的先導(dǎo)課程。C 程序設(shè)計(jì)主要培養(yǎng)學(xué)生正確的算法設(shè)計(jì)以及編程能力,培養(yǎng)學(xué)生結(jié)合所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力和正確的編程思維方式。因此, 提高C 程序設(shè)計(jì)的教學(xué)質(zhì)量對(duì)計(jì)算機(jī)專業(yè)學(xué)生的學(xué)習(xí)至關(guān)重要。本文提出以下幾個(gè)建議, 以供大家參考與探討。

      2 加強(qiáng)實(shí)驗(yàn)教學(xué), 激發(fā)學(xué)生學(xué)習(xí)的興趣

      興趣是激發(fā)學(xué)生主動(dòng)學(xué)習(xí)C 語(yǔ)言的關(guān)鍵, 而加強(qiáng)實(shí)驗(yàn)教學(xué)是激發(fā)學(xué)生學(xué)習(xí)的興趣一種重要方式。計(jì)算機(jī)專業(yè)是一個(gè)實(shí)踐性非常強(qiáng)的專業(yè), 上機(jī)實(shí)驗(yàn)是學(xué)好C 語(yǔ)言程序設(shè)計(jì)的一條捷徑。在實(shí)驗(yàn)教學(xué)中, 通過(guò)上機(jī)運(yùn)行具體的實(shí)例程序,學(xué)生便會(huì)立刻感覺(jué)到C 語(yǔ)言的神奇, 有了好奇心, 學(xué)生才能使領(lǐng)略C語(yǔ)言的魅力,從而激發(fā)了學(xué)生的學(xué)習(xí)興趣。如果再結(jié)合一些趣味性的實(shí)例,讓學(xué)生從中體會(huì)到編程的快樂(lè), 從而達(dá)到學(xué)生主動(dòng)學(xué)習(xí)的目的。

      3 先整體后局部的教學(xué)模式

      C 語(yǔ)言程序設(shè)計(jì)的初學(xué)者在學(xué)習(xí)的過(guò)程中, 經(jīng)常會(huì)因?yàn)閷W(xué)習(xí)繁多的知識(shí)要點(diǎn)而陷入一種誤區(qū)“鉆牛角尖”。C 語(yǔ)言本身具有非常靈活、知識(shí)點(diǎn)非常繁多的特點(diǎn), 一開始很多學(xué)生什么都看、都學(xué), 什么都研究的過(guò)細(xì), 這導(dǎo)致這些學(xué)生不知道學(xué)的什么, 不知道如何閱讀程序和組織程序, 學(xué)生很難抓住C 語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)的重點(diǎn)和構(gòu)建程序設(shè)計(jì)的思想。為了減少學(xué)生的誤區(qū), 本人在教學(xué)中, 先給學(xué)生搭建整體的程序結(jié)構(gòu)與程序思想, 然后在學(xué)生領(lǐng)會(huì)程序的設(shè)計(jì)思想后再局部細(xì)化每一個(gè)知識(shí)點(diǎn), 使學(xué)生逐步積累,在應(yīng)用去理解和體會(huì)。這樣會(huì)避免學(xué)生因C 語(yǔ)言靈活性大, 難度大, 難理解, 難記憶的特點(diǎn), 而失去學(xué)習(xí)C 程序設(shè)計(jì)的信心和興趣。在教學(xué)過(guò)程中, 把細(xì)節(jié)的、難于記憶的、枯燥的知識(shí)融入到日常的學(xué)習(xí)中, 避免學(xué)生出現(xiàn)死記硬背的現(xiàn)象, 使學(xué)生學(xué)會(huì)“學(xué)習(xí)”和查閱資料, 使學(xué)生明白學(xué)習(xí)知識(shí)要活學(xué)活用, 從而培養(yǎng)學(xué)生的學(xué)習(xí)能力。

      4 培養(yǎng)學(xué)生正確的思維方式

      C 語(yǔ)言是一門計(jì)算機(jī)語(yǔ)言。因此, 它有語(yǔ)言的特點(diǎn), 如C語(yǔ)言有其自身的詞匯( 標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符、分隔符、常量、注釋符等) 、語(yǔ)法規(guī)則、語(yǔ)句等。計(jì)算機(jī)語(yǔ)言又不同于人的自然語(yǔ)言,它有比自然語(yǔ)言更嚴(yán)格的要求, 否則計(jì)算機(jī)無(wú)法編譯、識(shí)別、執(zhí)行。針對(duì)其特點(diǎn), 我認(rèn)為可將C 程序設(shè)計(jì)的知識(shí)點(diǎn)分為記憶型和靈活應(yīng)用型兩類: 記憶型的如關(guān)鍵字、運(yùn)算符、優(yōu)先級(jí)等; 靈活應(yīng)用型的如數(shù)學(xué)模型、數(shù)據(jù)結(jié)構(gòu)、算法、程序設(shè)計(jì)方法等。這里關(guān)鍵注意兩點(diǎn), 一點(diǎn)是以算法的表達(dá)形式描述出解決問(wèn)題的方法、步驟; 另一點(diǎn)是使學(xué)生明確計(jì)算機(jī)如何執(zhí)行一個(gè)C 程序。這需要培養(yǎng)學(xué)生正確的編程思想和思維方式, 以“計(jì)算機(jī)意識(shí)”去思考問(wèn)題。首先將你要用自然語(yǔ)言描述的解決問(wèn)題的方法步驟( 即算法) 轉(zhuǎn)換成算法表形式( 如N- S 流程圖) , 然后再將其轉(zhuǎn)換成C 程序, 這種轉(zhuǎn)換的思想、規(guī)則十分重要, 使學(xué)生逐漸縮小這種自然語(yǔ)言與計(jì)算機(jī)語(yǔ)言的鴻溝。

      算法設(shè)計(jì)是程序設(shè)計(jì)課程的教學(xué)重點(diǎn), 而將實(shí)際問(wèn)題抽象為數(shù)學(xué)模型是解決問(wèn)題的重點(diǎn), 解決了這兩方面的問(wèn)題就達(dá)到了培養(yǎng)和提高學(xué)生分析和解決問(wèn)題的能力的目標(biāo), 但對(duì)于C 語(yǔ)言的初學(xué)者來(lái)說(shuō), 如求一元二次方程的解, 排序、查找等典型算法, 漢諾塔、百錢百雞、鏈表等典型問(wèn)題, 這些算法對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),其分析與設(shè)計(jì)的過(guò)程基本能夠理解。如果將這些算法編寫為程序似乎更難一些, 抽象一些, 甚至感覺(jué)無(wú)從下手。這就是自然語(yǔ)言與計(jì)算機(jī)語(yǔ)言之間的鴻溝。如何才能將實(shí)際問(wèn)題的解決辦法轉(zhuǎn)換為計(jì)算機(jī)能夠識(shí)別、運(yùn)行的程序呢? 因此, 本人在教學(xué)中, 采用對(duì)算法精講多練, 采用流程圖等形式, 使學(xué)生逐步加深對(duì)算法與程序之間的抽象轉(zhuǎn)換的理解, 從而培養(yǎng)學(xué)生正確的編程思維模式, 達(dá)到了良好的效果。

      5 采用多媒體教學(xué)和傳統(tǒng)教學(xué)相結(jié)合的啟發(fā)式教學(xué)

      教師應(yīng)當(dāng)轉(zhuǎn)變教學(xué)理念, 改變填鴨式的課堂教學(xué)方式。應(yīng)該采取啟發(fā)式、互動(dòng)式的教學(xué)方法來(lái)活躍課堂氣氛, 以引導(dǎo)學(xué)生積極思考, 主動(dòng)學(xué)習(xí)。啟發(fā)式教學(xué)是在教師全面掌握講授內(nèi)容的前提下,在講解新的講授內(nèi)容前,通過(guò)對(duì)以前學(xué)習(xí)的相關(guān)內(nèi)容的復(fù)習(xí),引出新的講授內(nèi)容。例如在講解分支程序設(shè)計(jì)章節(jié)時(shí),應(yīng)首先啟發(fā)學(xué)生使回憶一下順序結(jié)構(gòu)的執(zhí)行過(guò)程,進(jìn)而引出分支結(jié)構(gòu)在C 程序設(shè)計(jì)中的實(shí)現(xiàn)原理和編程思路。而互動(dòng)式教學(xué)是教師駕馭講臺(tái)能力的具體體現(xiàn)。一個(gè)教師站在講臺(tái)上, 要不斷地掃視學(xué)生,觀察學(xué)生的表情,了解學(xué)生的接受程度,并能及時(shí)地調(diào)整教學(xué)的進(jìn)度和步驟,允許學(xué)生在不懂的時(shí)候隨時(shí)提問(wèn),真正實(shí)現(xiàn)課堂上的互動(dòng), 構(gòu)造自然、和諧、歡快的課堂氣氛, 使學(xué)生主動(dòng)思考, 自然接受, 其教學(xué)的效果必然會(huì)顯著地提高。對(duì)于難度大、有顯著的特點(diǎn)的教學(xué)內(nèi)容, 可采用對(duì)比的教學(xué)方法, 以加深學(xué)生的理解。

      6 結(jié)束語(yǔ)

      通過(guò)這樣教學(xué)方式, 本人在實(shí)踐教學(xué)中取得了良好的教學(xué)果。C 程序設(shè)計(jì)的學(xué)習(xí)對(duì)學(xué)生后續(xù)專業(yè)課程的學(xué)習(xí)非常重要, 因此C 程序設(shè)計(jì)的教學(xué)至關(guān)重要。只要我們不斷加強(qiáng)理論與實(shí)踐的探索, 在實(shí)際的教學(xué)過(guò)程中根據(jù)不同對(duì)象摸索適應(yīng)不同群體的教學(xué)方法, 就能不斷提高教序質(zhì)量, 為學(xué)生的專業(yè)學(xué)習(xí)夯實(shí)基礎(chǔ)。

      參考文獻(xiàn):

      [1]譚浩強(qiáng).C 程序設(shè)計(jì)(第3 版)[M].北京: 清華大學(xué)出版社,2003.

      c程序設(shè)計(jì)范文第2篇

      為什么學(xué)習(xí)C++這門程序設(shè)計(jì)語(yǔ)言呢?學(xué)習(xí)程序設(shè)計(jì)是不可能不借助一門程序設(shè)計(jì)語(yǔ)言的,而C++直接支持現(xiàn)實(shí)世界中的軟件所使用的那些關(guān)鍵概念和技術(shù)。C++是使用最為廣泛的程序設(shè)計(jì)語(yǔ)言之一,其應(yīng)用領(lǐng)域幾乎沒(méi)有局限。從大洋深處到火星表面,到處都能發(fā)現(xiàn)C++程序的身影。C++是由一個(gè)開放的國(guó)際標(biāo)準(zhǔn)組織全面考量、精心設(shè)計(jì)的。在任何一種計(jì)算機(jī)平臺(tái)上都能找到高質(zhì)量的和/或免費(fèi)的C++實(shí)現(xiàn)。而且,你用C++所學(xué)到的程序設(shè)計(jì)思想,大多數(shù)都可直接用于其他程序設(shè)計(jì)語(yǔ)言,如C、C#、Fortran以及Jave。最后一個(gè)原因,我喜歡C++適合編寫優(yōu)美、高效的代碼這一特點(diǎn)。

      本書不是初學(xué)程序設(shè)計(jì)的簡(jiǎn)單入門教材,我寫此書的用意也不在此。我為本書設(shè)定的目標(biāo)是――能讓你學(xué)到基本的實(shí)用編程技術(shù)的最簡(jiǎn)單的書籍。這是一個(gè)非常雄心勃勃的目標(biāo),因?yàn)楹芏喱F(xiàn)代軟件所依賴的技術(shù),不過(guò)才出現(xiàn)短短幾年時(shí)間而已。

      我的基本假設(shè)是,你希望編寫供他人使用的程序,并愿意認(rèn)真負(fù)責(zé)地,以較高質(zhì)量完成這個(gè)工作;也就是說(shuō),我假定你希望達(dá)到專業(yè)水準(zhǔn)。因此,我為本書選擇的主題覆蓋了開始學(xué)習(xí)實(shí)用編程技術(shù)所需要的內(nèi)容,而不只是那些容易講授和容易學(xué)習(xí)的內(nèi)容。如果某種技術(shù)是你做好基本編程工作所需要的,那么本書就會(huì)介紹它,同時(shí)展示用以支持這種技術(shù)的編程思想和語(yǔ)言工具。并提供相應(yīng)的練習(xí),期望你通過(guò)做這些練習(xí)來(lái)熟悉這種技術(shù)。但如果你只想了解“玩具程序”,那么你能學(xué)到的將遠(yuǎn)比我所提供的少得多。另一方面,我不會(huì)用一些實(shí)用性很低的內(nèi)容來(lái)浪費(fèi)你的時(shí)間,本書介紹的內(nèi)容都是你在實(shí)踐中幾乎肯定會(huì)用到的。

      如果你只是希望直接使用別人編寫的程序,而不想了解其內(nèi)部原理,也不想親自向代碼中加入重要的內(nèi)容,那么本書不適合你。請(qǐng)考慮是否采用另一本書或另一種程序設(shè)計(jì)語(yǔ)言會(huì)更好些。如果這大概就是你對(duì)程序設(shè)計(jì)的看法,那么請(qǐng)同時(shí)考慮一下你從何得來(lái)的這種觀點(diǎn),它真的滿足你的需求嗎。本書面向的是那些確實(shí)希望編寫和理解復(fù)雜計(jì)算機(jī)程序的人。

      考慮到本書的結(jié)構(gòu)和注重實(shí)踐的特點(diǎn),它也可以作為程序設(shè)計(jì)方面的第二本書,適合那些已經(jīng)了解一點(diǎn)C++的人,和那些會(huì)用其他語(yǔ)言編程,現(xiàn)在想學(xué)習(xí)C++的人。如果你屬于其中一類,我不好估計(jì)你學(xué)習(xí)這本書要花費(fèi)多長(zhǎng)時(shí)間。但我可以給你的建議是,多做練習(xí)。因?yàn)槟阍趯W(xué)習(xí)中常見的一個(gè)問(wèn)題是習(xí)慣用熟悉的、舊的方式編寫程序,而不是在適當(dāng)?shù)牡胤讲捎眯录夹g(shù),多做練習(xí)會(huì)幫助你克服這個(gè)問(wèn)題。如果你曾經(jīng)按某種更為傳統(tǒng)的方式學(xué)習(xí)過(guò)C++,那么在進(jìn)行到第7章之前,你會(huì)發(fā)現(xiàn)一些令你驚奇的和有用的內(nèi)容。

      學(xué)習(xí)程序設(shè)計(jì)要靠編程實(shí)踐。在這一點(diǎn)上,程序設(shè)計(jì)與其他需要實(shí)踐學(xué)習(xí)的技藝是相似的。你不可能僅僅通過(guò)讀書就學(xué)會(huì)游泳、演奏樂(lè)器或者開車,你必須進(jìn)行實(shí)踐。同樣,你也不可能不讀程序和寫程序就學(xué)會(huì)程序設(shè)計(jì)。另一方面,程序設(shè)計(jì)遠(yuǎn)非只是遵循一些語(yǔ)法規(guī)則和閱讀手冊(cè)那么簡(jiǎn)單。本書的重點(diǎn)不在于C++的語(yǔ)法,而在于理解基礎(chǔ)思想、原理和技術(shù),這是一名好程序員所必備的。只有設(shè)計(jì)良好的代碼才有機(jī)會(huì)成為一個(gè)正確、可靠和易維護(hù)的系統(tǒng)的一部分。而且,“基礎(chǔ)”意味著延續(xù)性:當(dāng)現(xiàn)在的程序設(shè)計(jì)語(yǔ)言和工具演變甚至被取代后,這些基礎(chǔ)知識(shí)仍會(huì)保持其重要性。

      c程序設(shè)計(jì)范文第3篇

      關(guān)鍵詞:C語(yǔ)言;程序設(shè)計(jì);學(xué)習(xí)方法;學(xué)習(xí)興趣

      中圖分類號(hào):TP312.1-4

      《C語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)專業(yè)的一門核心專業(yè)基礎(chǔ)課程,是專升本、考研和等級(jí)水平考試的必考科目,也是學(xué)生學(xué)習(xí)中感到比較吃力的一門課。那么,如何學(xué)習(xí)《C語(yǔ)言程序設(shè)計(jì)》這門課程呢?現(xiàn)根據(jù)自己多年在教學(xué)中的體會(huì),談一些粗淺的認(rèn)識(shí)。

      1 為什么要學(xué)習(xí)《C語(yǔ)言程序設(shè)計(jì)》

      《C語(yǔ)言程序設(shè)計(jì)》是用C語(yǔ)言來(lái)編寫程序的,每個(gè)程序員在他們的編程生涯中都應(yīng)該學(xué)習(xí)C語(yǔ)言,因?yàn)樗刑嚯y以忽視的好處了。除了它會(huì)給你提供更多的工作機(jī)會(huì)之外,C語(yǔ)言還會(huì)教給你更多的關(guān)于計(jì)算機(jī)的知識(shí)。它的好處如下:

      1.1 C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言

      它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn),既可以用來(lái)編寫系統(tǒng)軟件,又可以用來(lái)編寫應(yīng)用軟件。它不僅具有繪圖能力強(qiáng),還具備很強(qiáng)的數(shù)據(jù)處理能力,因此也適于編寫三維,二維圖形和動(dòng)畫。

      1.2 C語(yǔ)言具有功能強(qiáng)大、使用靈活、豐富的數(shù)據(jù)類型和運(yùn)算符、結(jié)構(gòu)化的控制語(yǔ)句、目標(biāo)代碼運(yùn)行效率高、適用范圍大、可移植性好等優(yōu)點(diǎn)。

      1.3 C語(yǔ)言是各大操作系統(tǒng)的基礎(chǔ),Unix、Linux、Windows其內(nèi)核都清一色是C語(yǔ)言開發(fā)的,(某些地方是和匯編語(yǔ)言混合開發(fā)的),還有各種語(yǔ)言的編譯器,包括java虛擬機(jī),各種嵌入式設(shè)備,如手機(jī)、PDA等都是C語(yǔ)言開發(fā)的。

      1.4 C語(yǔ)言是基礎(chǔ),如果你學(xué)習(xí)過(guò)C語(yǔ)言,你就能學(xué)習(xí)現(xiàn)在任何的高級(jí)編程語(yǔ)言

      因?yàn)樗械母呒?jí)語(yǔ)言都是以C語(yǔ)言為基礎(chǔ)的(像JAVA,C++,C#等等)。C語(yǔ)言學(xué)好了,將來(lái)想學(xué)其他的語(yǔ)言,就比較好入門了。

      2 如何學(xué)習(xí)《C語(yǔ)言程序設(shè)計(jì)》

      2.1 克服畏難心理,充滿自信的學(xué)習(xí)《C語(yǔ)言程序設(shè)計(jì)》

      大多數(shù)學(xué)生一看到《C語(yǔ)言程序設(shè)計(jì)》課程的教材,就有畏難的情緒,覺(jué)得C語(yǔ)言難學(xué),學(xué)不會(huì),因?yàn)樗麄儗?duì)計(jì)算機(jī)語(yǔ)言不了解,另外有些英語(yǔ)差的同學(xué),看到計(jì)算機(jī)編程是用英語(yǔ)編寫的,就未學(xué)先棄了。其實(shí)學(xué)習(xí)語(yǔ)言并沒(méi)有他們想象的那么難,英語(yǔ)差也對(duì)學(xué)習(xí)計(jì)算機(jī)語(yǔ)言影響不大,比如學(xué)C語(yǔ)言,真正要記的關(guān)鍵字不多,語(yǔ)法也不復(fù)雜,只要大家不帶著畏難的心理,充滿自信,一定能學(xué)好的。

      2.2 要明確《C語(yǔ)言程序設(shè)計(jì)》的學(xué)習(xí)目的

      通過(guò)《C語(yǔ)言程序設(shè)計(jì)》課程的學(xué)習(xí),掌握C語(yǔ)言基本知識(shí),掌握程序設(shè)計(jì)的基本方法并逐步形成正確的程序設(shè)計(jì)思想,能夠熟練運(yùn)用基本程序結(jié)構(gòu)解決簡(jiǎn)單問(wèn)題,理解模塊化程序設(shè)計(jì)原則并能熟練使用C語(yǔ)言進(jìn)行程序設(shè)計(jì),具備調(diào)試程序的能力,為后繼課程及其他程序設(shè)計(jì)課程的學(xué)習(xí)和應(yīng)用打下基礎(chǔ)。

      2.3 要明白《C語(yǔ)言程序設(shè)計(jì)》與一般的計(jì)算機(jī)操作課程有所不同

      《C語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)的一門軟件編程課程,是用C語(yǔ)言來(lái)編寫程序的,它具有難度性、抽象性、連續(xù)性和邏輯嚴(yán)密性。如果你第一次課來(lái)聽了,第二次課沒(méi)來(lái),第三次課很可能就聽不懂了。比如,第一次課講的是數(shù)字1,2,3,4……,第二次課講的是運(yùn)算符號(hào)+,-,*,/,第三次課老師讓你算1+2=?,如果你前兩次課都來(lái)聽了,那么你就能算出它的結(jié)果,否則你就算不出它的結(jié)果。因此,如果要想學(xué)好《C語(yǔ)言程序設(shè)計(jì)》,必須堅(jiān)持每次課都來(lái),如果那天確實(shí)不能來(lái),就應(yīng)在家自學(xué),不懂的地方應(yīng)及時(shí)向老師請(qǐng)教,一定不能落課。

      2.4 要整體把握《C語(yǔ)言程序設(shè)計(jì)》

      C語(yǔ)言是一種通用的程序設(shè)計(jì)語(yǔ)言,在開發(fā)系統(tǒng)軟件和應(yīng)用軟件中得到廣泛的應(yīng)用,已成為當(dāng)今計(jì)算機(jī)世界最流行的語(yǔ)言之一。C語(yǔ)言是一個(gè)整體,各個(gè)方面是有機(jī)聯(lián)系的,要從總體上把握它,不要把它割裂成互不關(guān)聯(lián)的部件。它包括C語(yǔ)言概述、數(shù)據(jù)類型(整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等)、運(yùn)算符和表達(dá)式、流程控制語(yǔ)句、函數(shù)、數(shù)組、字符與字符串、指針、結(jié)構(gòu)體、文件等。通過(guò)《C語(yǔ)言程序設(shè)計(jì)》的學(xué)習(xí),掌握程序設(shè)計(jì)的基本概念、基本思想、基本方法和基本技能,進(jìn)而學(xué)會(huì)利用C語(yǔ)言解決實(shí)際問(wèn)題,培養(yǎng)計(jì)算機(jī)程序設(shè)計(jì)的能力和素質(zhì),以及思維方法,為以后學(xué)習(xí)其它計(jì)算機(jī)程序語(yǔ)言和后續(xù)的專業(yè)課程打下基礎(chǔ)。

      簡(jiǎn)單的C程序是由主函數(shù)和函數(shù)體兩大部分組成。它的基本框架如下:

      main()

      {

      }

      其中main表示“主函數(shù)”。每一個(gè)C程序都必須有一個(gè)main函數(shù),而且只能有一個(gè)main函數(shù),它表示程序從這里開始執(zhí)行。由花括號(hào)“{ }”括起的部分是函數(shù)體。其中函數(shù)體又包括定義變量、變量賦值、函數(shù)調(diào)用、輸出打印等。

      例:一個(gè)簡(jiǎn)單的求和程序

      main() /*主函數(shù)*/

      {

      int a,b,sum; /*定義變量*/

      a=123;b=456; /*變量賦值*/

      sum=a+b; /*求兩數(shù)之和*/

      printf(“sum is %d\n”,sum); /*輸出和值*/

      }

      這是一個(gè)簡(jiǎn)單的求和程序。/*...*/表示注釋部分,只給人看的,對(duì)編譯和運(yùn)行不起作用。第3行是聲明部分,定義變量a、b、sum,指定a、b、sum為整型(int)變量。第4行是兩個(gè)賦值語(yǔ)句,使a和b的值分別為123和456。第5行使sum的值為a+b,第6行中“%d”是輸入輸出的“格式字符串”,用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類型和格式,“%d”表示“以十進(jìn)制整數(shù)形式輸出”。Printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,現(xiàn)在它的值為579(即123+456之值)。因此輸出一行信息為:

      sum is 579

      從這個(gè)例子可以看出,想要把《C語(yǔ)言程序設(shè)計(jì)》這門課學(xué)好,不僅要知道《C語(yǔ)言程序設(shè)計(jì)》的基本框架,還要學(xué)好函數(shù)體中的內(nèi)容(變量類型、定義變量、變量賦值、輸入輸出格式字符串、輸入輸出函數(shù)格式、調(diào)用函數(shù)等)。另外還要學(xué)好C語(yǔ)言的運(yùn)算符、運(yùn)算順序 、四種程序結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、模塊化程序結(jié)構(gòu) )、掌握一些簡(jiǎn)單的算法等。

      2.5 熟練C程序的上機(jī)步驟

      在編好一個(gè)C源程序后,如何上機(jī)運(yùn)行呢?要經(jīng)過(guò)編輯、編譯、連接和運(yùn)行四個(gè)步驟。

      (1)編輯源文件。在編輯(Edit)狀態(tài)下輸入或修改源程序。

      (2)編譯源程序。選擇“C編譯”菜單并選擇“編譯到OBJ”,進(jìn)行編譯,得到一個(gè)后綴為.obj的目標(biāo)程序。

      (3)然后再選擇菜單“L連接EXE文件”,進(jìn)行連接操作,可得到一個(gè)后綴為.exe的可執(zhí)行文件。

      (4) 運(yùn)行程序。在“RUN”菜單中選擇“R運(yùn)行程序”項(xiàng),或直接按Ctr+F9鍵,系統(tǒng)就會(huì)運(yùn)行已編譯好的可執(zhí)行目標(biāo)文件。此時(shí),TC集成環(huán)境窗口消失,屏幕上顯示出程序運(yùn)行的結(jié)果。如果程序需要輸入數(shù)據(jù),則應(yīng)在此時(shí),從鍵盤輸入所需數(shù)據(jù),然后程序會(huì)接著執(zhí)行,輸出結(jié)果。

      2.6 要加強(qiáng)編程訓(xùn)練

      《C語(yǔ)言程序設(shè)計(jì)》是實(shí)踐性非常強(qiáng)的課程,要求學(xué)員要理論聯(lián)系實(shí)際,在掌握C語(yǔ)言的基本語(yǔ)法和基本知識(shí)后,重點(diǎn)應(yīng)放在提高編程能力的訓(xùn)練上。根據(jù)學(xué)生學(xué)習(xí)的認(rèn)知特點(diǎn),我認(rèn)為主要應(yīng)從以下幾個(gè)方面進(jìn)行強(qiáng)化訓(xùn)練:

      (1)吃透課本例子。每學(xué)完一次新課,讓學(xué)生對(duì)課本例子先分析任務(wù)、再仔細(xì)閱讀程序,然后按書上的源代碼敲出來(lái),編譯執(zhí)行輸出結(jié)果,如果結(jié)果跟書上一致就算完成,如果不一致,就要仔細(xì)找原因。再后不看書自己編寫代碼與課本對(duì)照,找出自己的不足,然后改進(jìn)。最后在此例的基礎(chǔ)上自己加以改造,舉一反三,變?yōu)槠渌睦?,如此反?fù)練習(xí),不僅培養(yǎng)了學(xué)生動(dòng)腦思考的習(xí)慣,而且養(yǎng)成了遇事三思、認(rèn)真、周密的作風(fēng)。

      (2)精選上機(jī)題目,要求調(diào)試通過(guò)。每章找出一個(gè)或兩個(gè)綜合性的具有代表性的應(yīng)用題目,如編寫一個(gè)程序,計(jì)算一個(gè)整數(shù)的名位數(shù)字之和;用選擇法對(duì)數(shù)組中10個(gè)整數(shù),按由小到大的順序進(jìn)行排序等,要求用C語(yǔ)言編寫可執(zhí)行的源程序,上機(jī)調(diào)試。這樣不僅鍛煉了學(xué)生解決實(shí)際問(wèn)題的能力,更重要的是激發(fā)了學(xué)生學(xué)習(xí)課程的興趣,抽象變具體 ,理論變實(shí)踐,對(duì)這門課有了更深的認(rèn)識(shí)。

      (3)閱讀填空法。找一些經(jīng)典程序,配上必要的說(shuō)明,適當(dāng)去掉語(yǔ)句或表達(dá)式,讓學(xué)生通過(guò)閱讀填補(bǔ)空白,訓(xùn)練學(xué)生的程序設(shè)計(jì)能力。例編寫一個(gè)程序,輸入月份號(hào),輸出月的英文月名,還有求和、排序、報(bào)號(hào)等。

      (4)準(zhǔn)備一個(gè)經(jīng)驗(yàn)本,記下C語(yǔ)言重要的語(yǔ)法和知識(shí)點(diǎn),還有自己出錯(cuò)的解決方法及老師講解的其他同學(xué)出現(xiàn)的常見錯(cuò)誤,抽空常翻看,逐步積累經(jīng)驗(yàn),加深印象,使以后避免。

      (5)帶著作業(yè)去上機(jī)。每次理論課結(jié)束后,老師都會(huì)給學(xué)生布置一些作業(yè)(如習(xí)題)讓學(xué)生做,那么學(xué)生一定要認(rèn)認(rèn)真真的把作業(yè)完成好,先把程序編寫在作業(yè)本上,上機(jī)時(shí)再把這些程序敲到計(jì)算機(jī)上,進(jìn)行修改、調(diào)試、運(yùn)行,最后輸出結(jié)果。如果學(xué)生不帶作業(yè)去上機(jī),第一次老師警告下次一定帶作業(yè)上機(jī),如果第二次還沒(méi)帶作業(yè),不準(zhǔn)學(xué)生進(jìn)機(jī)房,讓學(xué)生到教室把作業(yè)做完后再到機(jī)房上機(jī)調(diào)試。有人說(shuō)學(xué)生可以直接在機(jī)器上編寫程序,固然沒(méi)錯(cuò),但對(duì)于初學(xué)者來(lái)說(shuō),如果在機(jī)器上邊思考邊編寫,也就是說(shuō)想一句編一句,再想一句再編一句,這樣太浪費(fèi)時(shí)間,一節(jié)課說(shuō)不定連一個(gè)程序都編不好,所以老師一定要求學(xué)生在課下把程序編好,上機(jī)只需把程序敲出來(lái)進(jìn)行修改、調(diào)試、運(yùn)行,這樣能節(jié)約大量的時(shí)間,學(xué)生上機(jī)時(shí)間本身都是有限的。

      上述方法在教學(xué)實(shí)踐中證明是行之有效的,學(xué)生對(duì)問(wèn)題分析、程序設(shè)計(jì)的自覺(jué)性和能動(dòng)性得到提高,動(dòng)手能力加強(qiáng),對(duì)后繼課如《C++》、《面向?qū)ο蟪绦蛟O(shè)計(jì)》等,學(xué)習(xí)起來(lái)倍感輕松,較好地完成了該門課程的學(xué)習(xí)目標(biāo)。總之,實(shí)踐出真知,多學(xué)、多練、多思、多交流,勤奮好學(xué)才能學(xué)成。

      參考文獻(xiàn):

      [1]嚴(yán)桂蘭.C語(yǔ)言程序設(shè)計(jì)與應(yīng)用教程[M].福建:廈門大學(xué)出版社,2001.

      [2]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005.

      [3]陳東.計(jì)算機(jī)多媒體教學(xué)改革的一些嘗試[J].福建師范大學(xué)學(xué)報(bào)(自然版),2004,20(3):98.

      [4]王蘭.學(xué)好《C程序設(shè)計(jì)》的幾點(diǎn)建議[J].科技信息,2007(9).

      c程序設(shè)計(jì)范文第4篇

      關(guān)鍵詞:教學(xué)內(nèi)容;教學(xué)手段;教學(xué)方法;考核方式

      C語(yǔ)言是早期最經(jīng)典、最強(qiáng)大的面向過(guò)程的程序設(shè)計(jì)語(yǔ)言之一。雖然現(xiàn)在面向過(guò)程已經(jīng)全面轉(zhuǎn)向面向?qū)ο?,但是C本身的中級(jí)語(yǔ)言的設(shè)計(jì)理念以及對(duì)現(xiàn)有VC/C#等語(yǔ)言的深刻影響,使其至今仍是程序設(shè)計(jì)入門的首選語(yǔ)言,也是工科院校計(jì)算機(jī)專業(yè)學(xué)生接觸的第一門程序設(shè)計(jì)語(yǔ)言。對(duì)于計(jì)算機(jī)類專業(yè)學(xué)生來(lái)說(shuō),一旦掌握了C語(yǔ)言,就可以較為輕松地學(xué)習(xí)其他任何一種程序設(shè)計(jì)語(yǔ)言,為后續(xù)的面向?qū)ο蟪绦蛟O(shè)計(jì)以及Java程序設(shè)計(jì)等語(yǔ)言的學(xué)習(xí)打下基礎(chǔ);對(duì)于其他非計(jì)算機(jī)專業(yè)的工科學(xué)生來(lái)說(shuō),比如電子、機(jī)電專業(yè)來(lái)說(shuō),該課程為學(xué)生用計(jì)算機(jī)編程解決實(shí)際問(wèn)題提供了方法,是學(xué)習(xí)單片機(jī)技術(shù)教學(xué)的基礎(chǔ)和重要工具。

      一、C語(yǔ)言教學(xué)中面臨的問(wèn)題

      C語(yǔ)言程序設(shè)計(jì)是一門基于dos操作系統(tǒng)下的面向過(guò)程的程序設(shè)計(jì)語(yǔ)言,隨著面向?qū)ο笳Z(yǔ)言的開發(fā),C語(yǔ)言在界面交互性上遜色不少,作品上也不如Flash、三維動(dòng)畫效果吸引眼球,難學(xué)、難懂、難以應(yīng)用的課程,對(duì)學(xué)生越來(lái)越缺乏吸引力。針對(duì)這種狀況筆者認(rèn)為,更新教育觀念、探索新的教學(xué)模式才是根本出路。筆者根據(jù)多年的教學(xué)經(jīng)驗(yàn),對(duì)C語(yǔ)言程序設(shè)計(jì)課程從教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法、考核方法方面進(jìn)行了一系列的創(chuàng)新改革。教學(xué)內(nèi)容主要解決如何調(diào)動(dòng)學(xué)生積極性,激發(fā)學(xué)生創(chuàng)新能力,如何提高學(xué)生的創(chuàng)新能力、實(shí)踐能力、研究能力、發(fā)現(xiàn)問(wèn)題和解決問(wèn)題能力等綜合素質(zhì);教學(xué)方法主要解決如何實(shí)現(xiàn)“以人為本”,分層次教育,如何通過(guò)引導(dǎo)、啟發(fā)等方法,激發(fā)學(xué)生的發(fā)散性思維。同時(shí)要利用目前課堂和實(shí)驗(yàn)教學(xué)在培養(yǎng)學(xué)生創(chuàng)新能力和實(shí)踐能力方面的優(yōu)點(diǎn),利用大學(xué)生實(shí)訓(xùn)基地,為學(xué)生的創(chuàng)新和實(shí)踐能力的鍛煉和培養(yǎng)提供一個(gè)良好的平臺(tái)。

      二、教學(xué)內(nèi)容的創(chuàng)新

      課程內(nèi)容的選取與組織是課程教學(xué)改革的基礎(chǔ)。人才培養(yǎng)方案對(duì)C語(yǔ)言程序設(shè)計(jì)教學(xué)內(nèi)容進(jìn)行重新整合,把課程學(xué)習(xí)劃分成培養(yǎng)學(xué)生的基本程序設(shè)計(jì)能力和培養(yǎng)學(xué)生的專業(yè)程序設(shè)計(jì)能力兩個(gè)階段。

      第一階段安排在大一第一學(xué)期,主要針對(duì)沒(méi)有程序設(shè)計(jì)經(jīng)驗(yàn)的大一新生,重點(diǎn)講授C語(yǔ)言的基本知識(shí),包括三種基本結(jié)構(gòu)、數(shù)組、函數(shù)的概念。在第一階段教學(xué)中,筆者采用案例教學(xué)方法結(jié)合具體的程序?qū)嵗瑒?chuàng)設(shè)情境,引導(dǎo)學(xué)生自己總結(jié)掌握C語(yǔ)言的基本語(yǔ)法和程序設(shè)計(jì)的基本方法。第一階段的學(xué)習(xí)結(jié)束的時(shí)候,學(xué)生可以具備基本的程序設(shè)計(jì)能力,獨(dú)立編寫具有初等難度、幾十行的程序,并且能夠較順利地完成程序調(diào)試與測(cè)試。第二階段教學(xué)放在大一第二學(xué)期初,針對(duì)具備基礎(chǔ)程序設(shè)計(jì)能力的學(xué)生,重點(diǎn)培養(yǎng)學(xué)生的專業(yè)程序設(shè)計(jì)能力。在第二階段的教學(xué)中,以學(xué)生為主體、以教師為引導(dǎo),采用國(guó)家火炬計(jì)劃河北省軟件人才工程實(shí)訓(xùn)課程,使學(xué)生融會(huì)貫通所學(xué)知識(shí),完成一個(gè)具體的項(xiàng)目,以達(dá)到提高學(xué)生程序開發(fā)能力的目的。迄今為止,學(xué)生完成的項(xiàng)目包括“銀行儲(chǔ)蓄管理系統(tǒng)”“彩票信息查詢系統(tǒng)”。教學(xué)實(shí)踐證明,這種理論和實(shí)踐技能并行的教學(xué)模式,更加有助于學(xué)生的創(chuàng)新能力的提高,使學(xué)生在不斷實(shí)踐中掌握技能,在技能學(xué)習(xí)中提高基礎(chǔ)理論。

      三、教學(xué)手段的創(chuàng)新

      在學(xué)習(xí)過(guò)程中除了發(fā)揮教師的引導(dǎo)作用,還需要充分調(diào)動(dòng)學(xué)生的參與主動(dòng)性。在授課期間靈活采用多種教學(xué)手段,如:自學(xué)、演示、對(duì)比、課堂提問(wèn)、學(xué)生演練和討論等,通過(guò)不同方法,尋找創(chuàng)意思維“契機(jī)”,安排創(chuàng)意鋪墊內(nèi)容,培育學(xué)生的創(chuàng)意萌芽,營(yíng)造創(chuàng)意環(huán)境,引發(fā)學(xué)生爭(zhēng)鳴,為學(xué)生提供更多的思維空間,誘發(fā)學(xué)生的思維靈感。例如,在教學(xué)中講解“循環(huán)結(jié)構(gòu)的循環(huán)嵌套”的時(shí)候,提出馬克思手稿中的數(shù)學(xué)題的案例:偉大的思想家馬克思的手稿中有這樣一道有趣的數(shù)學(xué)題:有30個(gè)人,其中有男人、女人和小孩。他們?cè)谝患绎堭^中吃飯,共花費(fèi)50先令。如果每個(gè)男人吃飯要花3先令,女人要花2先令,每個(gè)小孩要花1先令,問(wèn)男人、女人、小孩各多少人?先提出問(wèn)題,引導(dǎo)學(xué)生分析、討論案例,提問(wèn)學(xué)生運(yùn)用數(shù)學(xué)知識(shí)完成案例提出的問(wèn)題需要進(jìn)行哪些操作,這樣學(xué)生就會(huì)比較有興趣,課堂氣氛就活躍起來(lái)。然后幫助學(xué)生從案例分析中理解并掌握什么是多重循環(huán),并且如何使用雙重循環(huán)解決問(wèn)題,最終完成程序的編寫。

      在學(xué)習(xí)的第二階段采用開放式訓(xùn)練教育方式,利用專題設(shè)計(jì)和課外指導(dǎo)方式,鼓勵(lì)學(xué)生課外自主進(jìn)行訓(xùn)練。如:完成的項(xiàng)目“彩票信息查詢系統(tǒng)”,教師提出設(shè)計(jì)方案,學(xué)生完成基本功能以后,自己可以對(duì)其他功能進(jìn)行完善。

      四、教學(xué)方法的創(chuàng)新

      課程每個(gè)章節(jié)內(nèi)容結(jié)構(gòu)主要由三部分組成:

      知識(shí)點(diǎn):介紹本章需要掌握的知識(shí)或技術(shù)。

      應(yīng)用案例:介紹本章知識(shí)應(yīng)用的案例。

      創(chuàng)新訓(xùn)練:針對(duì)具體的問(wèn)題,應(yīng)用本章技術(shù)來(lái)完成知識(shí)點(diǎn)的應(yīng)用。

      在整個(gè)教學(xué)過(guò)程中,教師采用框架式教學(xué),像建筑工程師修建筑一樣,先采用精講的方式,讓學(xué)生建立整門課程的知識(shí)框架;接著通過(guò)案例教學(xué)、項(xiàng)目式教學(xué)等多種教學(xué)方式,讓學(xué)生逐步去進(jìn)行細(xì)節(jié)知識(shí)點(diǎn)的填充;最后通過(guò)綜合訓(xùn)練方式,完成整門課程的學(xué)習(xí)。

      例如,在講解C語(yǔ)言程序設(shè)計(jì)中的函數(shù)時(shí),搭建出例如綜合排序等程序的框架,給學(xué)生留出函數(shù),讓學(xué)生自由開拓思想,獨(dú)立完成一些小型實(shí)例的編程,經(jīng)過(guò)具體知識(shí)點(diǎn)的訓(xùn)練后,還要重點(diǎn)進(jìn)行綜合知識(shí)的應(yīng)用訓(xùn)練,開展一系列的創(chuàng)新應(yīng)用,以達(dá)到知識(shí)綜合運(yùn)用和培養(yǎng)創(chuàng)新能力的目的。

      五、考核方式的創(chuàng)新

      傳統(tǒng)的C語(yǔ)言程序設(shè)計(jì)考核模式一般以標(biāo)準(zhǔn)化的筆試題為主,這種考核方式側(cè)重語(yǔ)法知識(shí)的考核,忽視編程實(shí)踐能力的培養(yǎng)。為此,筆者改革傳統(tǒng)的考核方式,將考核分為平時(shí)實(shí)驗(yàn)和期末考核兩部分。平時(shí)實(shí)驗(yàn)成績(jī)考核的是學(xué)生每一章知識(shí),實(shí)訓(xùn)作業(yè)就是在每一章節(jié)結(jié)束的時(shí)候,布置相關(guān)的習(xí)題,學(xué)生利用業(yè)余時(shí)間編程,并且在實(shí)訓(xùn)期間進(jìn)行調(diào)試,調(diào)試成功后上傳到服務(wù)器上。期末考核成績(jī)采用的是教研室開發(fā)的上機(jī)考試系統(tǒng)。上機(jī)考試系統(tǒng)模擬C語(yǔ)言二級(jí)考試建立了知識(shí)面齊全、題量充足、難易度合理的試題庫(kù),采取隨機(jī)抽題的形式重點(diǎn)考查學(xué)生的程序設(shè)計(jì)能力和程序調(diào)試能力。這種考核方式督促學(xué)生在平時(shí)學(xué)習(xí)中加強(qiáng)對(duì)編程舉一反三的實(shí)踐環(huán)節(jié)。實(shí)踐證明,這樣不僅能有效培養(yǎng)學(xué)生的實(shí)踐編程能力,還激發(fā)了學(xué)生動(dòng)手實(shí)踐解決問(wèn)題的興趣。

      總之,經(jīng)過(guò)不斷的摸索與實(shí)踐,通過(guò)以上的教學(xué)方法與教學(xué)手段的改革和實(shí)踐,不僅提高了學(xué)生的學(xué)習(xí)興趣,讓學(xué)生從枯燥無(wú)味的語(yǔ)言學(xué)習(xí)中解放出來(lái),從被動(dòng)學(xué)習(xí)走向主動(dòng)學(xué)習(xí),同時(shí)也培養(yǎng)了學(xué)生分析問(wèn)題、解決實(shí)際問(wèn)題的能力,充分發(fā)掘了學(xué)生的創(chuàng)造潛能,鍛煉了創(chuàng)新和協(xié)作精神。

      參考文獻(xiàn):

      [1]郭芹.對(duì)高職高專計(jì)算機(jī)專業(yè)程序設(shè)計(jì)教學(xué)的思考[J].中國(guó)科技信息,2008(1).

      c程序設(shè)計(jì)范文第5篇

      關(guān)鍵詞:MCU;結(jié)構(gòu)特征;程序設(shè)計(jì);技巧

      中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)32-8943-03

      Efficient C Language Programming Skills

      CHAI Shou-li1, GAO Liang2

      (1.Shandong Yingcai University of Computer Science, Ji'nan 250104, China; 2.Anhui University of Computer Science, Hefei 230039, China)

      Abstract: This paper from the 8051 core MCU based on structural features, combined features of C language itself is given a number of highly efficient C programming skills. Practice has proved that, in the C program design features based on 8051 to optimize the source code, can greatly improve the efficiency of the final implementation of the procedures.

      Key words: MCU; structural features; programming; skills

      C語(yǔ)言憑借自身的結(jié)構(gòu)化設(shè)計(jì)思想和對(duì)底層的數(shù)據(jù)的強(qiáng)大處理能力逐漸成為嵌入式開發(fā)的主流語(yǔ)言。雖然目前大部分C集成開發(fā)工具都具有優(yōu)化能力,而且優(yōu)化的結(jié)果有時(shí)比使用匯編語(yǔ)言編寫的程序效果還好,然而,這些優(yōu)化工作大部分是針對(duì)程序和算法本身的優(yōu)化,而針對(duì)MCU體系結(jié)構(gòu)的進(jìn)行的優(yōu)化很少或者幾乎沒(méi)有,本文就是針對(duì)這個(gè)問(wèn)題,給出幾種解決方法。

      1 巧妙地利用寄存器變量

      使用寄存器變量可以提升程序運(yùn)行的速度,節(jié)約程序運(yùn)行的時(shí)間,因?yàn)镃PU對(duì)寄存器的尋址時(shí)間是最短的,可以在一個(gè)機(jī)器周期內(nèi)完成。

      假設(shè)有語(yǔ)句for(i=0;i

      在keil c中作如下定義

      unsigned char i;編譯產(chǎn)生的匯編語(yǔ)言如下:

      CLR A

      MOV R7,A

      LOOP: INC R7

      CJNE R7,#0x0A,LOOP

      unsigned char idata i;編譯產(chǎn)生的匯編語(yǔ)言如下:

      CLR A

      MOV R0,#0x08

      MOV @R0,A

      LOOP: MOV RO,#0x08

      INC @R0

      MOV A,@RO

      CJNE A,#0x0A,LOOP

      unsigned char xdata i;編譯產(chǎn)生的匯編語(yǔ)言如下:

      CLR A

      MOV DPTR,#0x0000

      MOVX @DPTR,A

      LOOP: MOV DPTR,#0x0000

      MOVXA,@DPTR

      INC A

      MOVX @DPTR,A

      MOVX A,@DPTR

      CJNE A,#0x0A,LOOP

      通用寄存器可用于傳送和暫存數(shù)據(jù),也可參與算術(shù)邏輯運(yùn)算,并保存運(yùn)算結(jié)果。通過(guò)上述分析,可以看見,當(dāng)編譯器將變量i作為寄存器(R7)變量處理的時(shí)候,產(chǎn)生的目標(biāo)代碼最小,且可以在一個(gè)機(jī)器周期內(nèi)尋址。程序員必須熟悉每個(gè)寄存器的一般用途和特殊用途,只有這樣,才能在程序中做到正確、合理地使用它們。

      但是,由于基于8051核的MCU資源有限,寄存器顯得極其寶貴,所以,寄存器變量通常被定義為局部頻繁使用的操作,如上例,在一個(gè)子函數(shù)中操作完了即可被銷毀,或者系統(tǒng)頻繁使用的全局變量,對(duì)其他情況要盡量避免使用。讀者在使用的時(shí)候可以仔細(xì)查閱編譯器說(shuō)明手冊(cè)。

      2 利用移位實(shí)現(xiàn)快速乘除操作

      大部分MCU都選配一個(gè)輔助處理器,該處理器主要完成對(duì)數(shù)據(jù)進(jìn)行邏輯與、或、非、循環(huán)、移位等基本操作,人們將之稱為布爾處理功能。巧妙的利用移位寄存器可以實(shí)現(xiàn)快速的乘除運(yùn)算。設(shè)有如下代碼:

      unsigned char mul,div,x,y; //申明變量

      mul = x*3; //x乘以3賦值給mul

      div = y/3; //y除以3賦值給div

      匯編產(chǎn)生的目標(biāo)代碼為:

      MOV A,0x0A

      MOV B,#0x03

      MUL AB

      MOV 0x80,A

      MOV A,0x0B

      MOV B,#0x03

      DIV AB

      MOV 0x09,A

      如果將上述程序語(yǔ)句改成等價(jià)效果的語(yǔ)句:

      mul = x

      div = y>>1; //y除以2賦值給div

      MOV A,0x0A

      ADD A,ACC

      MOV 0x08,A

      MOV A,0x0B

      CLR C

      RRC A

      MOV 0x09,A

      可以看出,使用移位操作產(chǎn)生的目標(biāo)代碼明顯優(yōu)于使用乘除產(chǎn)生的目標(biāo)代碼,而且MUL和DIV指令的周期比ADD指令周期長(zhǎng)。

      如果將上述方法變通一下,對(duì)于日常生活中的十進(jìn)制計(jì)算方法遷移到二進(jìn)制計(jì)算方法,利用計(jì)算百分比的閥值,利用假設(shè)需要計(jì)算統(tǒng)計(jì)的結(jié)果百分比大于80%,可以計(jì)算出新的統(tǒng)計(jì)閥值為80×128/100≈102。這樣就可以用移位元算代替乘除運(yùn)算。

      3 巧妙利用51核的位尋址功能

      嵌入式系統(tǒng)是嵌入在一個(gè)大系統(tǒng)中執(zhí)行著特殊任務(wù)的專用計(jì)算機(jī)系統(tǒng),所以大部分MCU都具有特殊的指令處理能力,8051CPU可以對(duì)部分特殊功能寄存器和字節(jié)地址20H~2FH進(jìn)行位尋址。

      如有下述代碼,程序中需要經(jīng)常對(duì)變量x的最低位和次低位的值進(jìn)行01判斷,可以寫代碼如下:

      unsignedchar bdata x,y;

      y = x &&0x01; //獲知最低位情況

      x = x>>1;

      y = x &&0x01; //獲知次低位情況

      匯編產(chǎn)生的結(jié)果如下:

      MOV A,0x20

      JZ J1

      MOV R7,#0x01

      SJMP J2

      J1: MOV R7,#0x00

      J2: MOV 0x21,R7

      MOV A,0x20

      CLR C

      RRC A

      MOV 0x20,A

      JZ J3

      MOV R7,0x01

      SJMP J4

      J3: MOV R7,#0x00

      J4: MOV 0x21,R7

      如果采用位操作則上述代碼只要寫成,該段代碼由于采用了位尋址,所以在程序中任何其他位置,如果在變量x發(fā)生改變的情況下,再次獲知最低位和次低位01情況,就不需要再次執(zhí)行上述程序的計(jì)算工作,直接使用即可。

      unsigned char bdata x;

      bit y0,y1;

      sbitr0 = x^0;

      sbitr1 = x^1;

      y0 = r0;

      y1 = r1;

      匯編產(chǎn)生的目標(biāo)代碼:

      MOV C,0x20.0

      MOV 0x21.0,C

      MOV C,0x20.1

      MOV 0X21.1,C

      4 結(jié)束語(yǔ)

      本文結(jié)合基于8051核的MCU的內(nèi)部結(jié)構(gòu)特征,給出了若干C高效編程的技巧,本文的思想也可以應(yīng)用到其他類型的MCU中去。筆者利用上述方法對(duì)一個(gè)1000多行C源代碼進(jìn)行優(yōu)化,編程產(chǎn)生的結(jié)果將原5K多的目標(biāo)代碼降低為不足3K的目標(biāo)代碼,幾乎減低了一半。

      參考文獻(xiàn):

      成在人线av无码免费| 日产一区二区三区免费看| 日日拍夜夜嗷嗷叫国产| 天天摸日日摸狠狠添| 亚洲色偷拍一区二区三区| 国产成人高清亚洲一区二区| 麻豆资源在线观看视频| 久久精品国产精品国产精品污| 国产精品一区高清在线观看| 偷拍一区二区三区在线观看| 国产视频一区二区三区在线免费 | 亚洲日韩精品A∨片无码加勒比| 亚洲av高清在线一区二区三区| 国产午夜在线视频观看| 亚洲综合国产一区二区三区| 日本午夜国产精彩| 精品蜜臀国产av一区二区| 国产精品日日做人人爱| 欧美国产精品久久久乱码| 成人无码区免费AⅤ片WWW| 免费女女同黄毛片av网站| 亚洲精品国精品久久99热| 2019年92午夜视频福利| 视频一区视频二区亚洲免费观看 | 亚州无吗一区二区三区| 久久久www成人免费毛片| 精品无码久久久久久久动漫| 精品午夜一区二区三区| 日韩不卡的av二三四区| 人人爽久久涩噜噜噜av| 国产一级在线现免费观看| 蜜桃传媒免费观看视频| 97人妻人人做人碰人人爽| 亚洲肥老太bbw中国熟女| 美女黄网站永久免费观看网站| 亚洲人成综合第一网站| 军人粗大的内捧猛烈进出视频| 日本香蕉久久一区二区视频| 亚洲第一页视频在线观看 | 欧美激情精品久久999| 久久日本视频在线观看|