国产丁香婷婷妞妞基地-国产人人爱-国产人在线成免费视频麻豆-国产人成-91久久国产综合精品-91久久国产精品视频

公務員期刊網 精選范文 c程序設計范文

c程序設計精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c程序設計主題范文,僅供參考,歡迎閱讀并收藏。

第1篇:c程序設計范文

原型開發是C語言程序設計學習支持系統的使用的主要理論基礎,在開發該系統的初始階段,首先要有針對性的對使用的需要進行調查,以此為依據迅速的將一個系統原型制造出來并進行正常的運轉。使用者運用這個原型之后,提供使用建議,接下來就是對該原型進行有效的修補和完善,以新的結構、數據和使用模型來建立起一個嶄新的原型。之后再交由使用者進行使用并反饋意見,經過幾次的使用和反饋、修改,使用者與系統提供者能夠在使用上達到共識,使用過程中的種種誤會得以解除,使系統得到精準的內涵,同時能夠到達使用者的滿意。經過這一系列的反饋與修改,系統如果能夠達到使用者的要求,就可以被定義為實際生產運行系統,如果達不到使用者的要求,則就會被舍棄進行重新開發。

2C語言程序設計學習支持系統的開發步驟

在對C語言程序設計學習支持系統進行開發的過程中,要嚴密結合《C語言程序設計》這門課程本身的獨特之處,并將該系統的開發思想融入其中,實現以下五個開發步驟:

2.1開發前分析

在進行系統開發之前,一定要結合實際情況做好各方面的調研,這是系統開發的必經之路,也是基礎所在。首先進行開發前調研,能夠使有疑問的地方展現出來,才能給設計者提供一個確實可行的主題來開發此系統。

2.2開發前設計

經過了開發前有效的分析和主題的確立,將使用者在使用過程中的需求通過調查了解清楚,將該系統的具體模塊加以確立,將原型設計出來,同時數據庫的基本情況也要得到有效的設計。

2.3C語言程序編程思路和語料分析

一個科學的推理路徑的確立需要有效分析C語言程序編程思路和語料,同時要仔細分析復雜程序中存在的編程思路。

2.4系統的開發

在開發系統的過程中,代碼的編寫、信息庫的開發、先進的技術的采用一系列程序后,才能使該系統的功能得以實現。

2.5試用與修改

將開發出來的系統交給使用者進行試用,使用者在使用過程中會發現各種各樣的不足,及時根據使用者的意見進行溝通和修改,最終形成一個完善的系統。

3C語言程序設計學習支持系統的功能結構

3.1學習支持模塊

在計算機的使用過程中,使用者很多時候會遇到種種困難,例如在對編程或程序進行調試的過程中遇到的難題,自己無法解決時,學習支持模塊就能夠及時幫助使用者將問題進行指示并提供幫助。編程思路分析指導和程序調試指導是學習支持模塊的兩大組成部分。

3.1.1編譯診斷

使用者在使用計算機的過程中,正確的程序無法得到有效的調試的情況下,編譯診斷就能夠充分發揮自身作用,為使用者給予及時的幫助,使其了解發生錯誤的根本原因。它包括了上傳程序和診斷問題兩大部分。該系統是在使用者無法進行正確的編譯C語言源程序時啟用。使用者在啟用該系統是首先要將參數輸入進去,此時數據庫就能夠通過系統的查找提供錯誤的起因及解決方法,系統會逐步為使用者進行提示,再通過使用者輸入的問題作出判斷并給出解決方案。此時問題如果沒有得到解決,則說明不完善的數據庫存在于該系統中。

3.1.2編程思路分析

計算機使用者在進行上機編程的過程中,該系統能夠使思路不清晰的復雜程序編程進行分析,根據相近的程序編程思路給使用者提供指示。它能夠滿足使用者的即時需求。

3.2信息庫管理模塊

3.2.1用戶信息庫管理

使用者的使用權限、基本信息和上傳程序信息等的管理都是由該模塊來進行的。在使用計算機的過程中首先信息庫要將使用者的基本信息收入其中,使用者在每次登陸的過程中只有將基本信息輸入進去,通過系統的檢查之后才能夠進行使用。

3.2.2出錯知識信息庫管理

針對這一部分的管理,發生問題的知識信息,其中包括診斷、設問和編譯錯信息,C語言使用者可以采取管理維護措施。完善、刪除和添加等操作可以對出錯知識庫加以填充和完善。

3.2.3編程思路分析信息庫管理

C語言使用者可以針對這一部分采取維護管理,即維護管理復雜程序的編程思路分析信息,主要可以采取的手段有更改、刪除和添加等操作,不斷填充和完善此信息庫。

4結論

第2篇:c程序設計范文

(中國礦業大學(北京) 機電與信息工程學院,北京 100083)

摘要:分析C語言教學中存在的普遍問題,從教學內容組織形式、教學方法以及考核方式等方面提出一系列有針對性的教學方法,指出這種教學方法能有效地提高學生的學習效率和質量。

關鍵詞 :C語言程序設計;公共基礎課;教學方法

基金項目:北京高等學校青年英才計劃項目;煤炭資源與安全開采國家重點實驗室開放課題(SKLCRSM11KFB12)。

作者簡介:王振武,男,副教授,研究方向為數據挖掘、圖形圖像處理,wangzhenwu@126.com。

0 引言

為提高大學生利用計算機解決問題的能力,全國高校普遍為理工科專業的低年級學生開設了C語言程序設計這門必修的公共基礎課程。一方面,該課程是學生接觸的第一門程序設計類課程,其編程思維的養成是一個較長的過程;另一方面,該課程具有內容繁多、知識點關聯性強、算法抽象、實踐性要求高等特點,學生在學習過程中易產生畏難心理,進而出現學習動力不足、積極性不高等問題。C語言程序設計是一門難學也難教的課程,目前在教學上普遍存在很多問題。文獻[1-4]對C語言程序設計的教學方法給出了建議,但都不夠系統和全面。

1 C語言程序設計教學方法研究

1.1 理論教學

對于大多數課程而言,從宏觀上將課程知識點及其關聯講授給學生非常必要,這便于學生更加系統深刻地理解所學內容。筆者以文獻[5]作為教材講解C語言程序設計的知識點結構。如圖1所示,知識點之間的關聯可以層層細化,教師首先從宏觀上給學生介紹C語言程序的整體組成結構(如圖1-(a),然后針對圖1-(a)中一個源程序文件的組成成分舉例介紹,如圖1-(b)所示。在圖1-(b)中,教師對涉及的知識點進行歸類,共包含預處理命令、數據類型、運算符、語句和函數等5部分,然后圖1-(c)至圖1-(i)依次層層展開上述各類知識點的組成,逐步細化。

從宏觀上梳理C語言與程序設計課程的知識點是非常必要和重要的,這樣可以避免學生“只見樹木,不見森林”,最后只學到一堆零散的知識點,只有從宏觀上把握各個知識點在知識體系中的位置和作用,才能學得深、記得牢。

對于程序語言課程,如果僅僅介紹語法的運用,學生往往對知識點理解不深刻。我們在教學實踐中的體會是:在講解C語言語法的基礎上,適當地剖析編程語言在計算機中的運行機制,會讓學生的理解更加透徹。因此,我們的課堂教學方法分為如下兩部分。

1)課件講解。

課件講解包括兩部分,即知識點要點總結和知識點運行機制剖析。知識點要點總結就是告訴學生該知識點如何使用;而知識點運行機制剖析則告訴學生該程序在計算機內存中的執行過程。由于絕大部分高校在開設C語言程序設計之前都會開設計算機文化基礎等課程,因此學生有足夠的計算機基礎知識來理解C語言程序的運行機制。

2)實例演示。

作為一門編程語言,C語言需要在實踐中理解和掌握,因此,課堂教學中,在具體的編程環境(如VC++6.0)下演示十分必要。通過在具體的軟件環境下編程,告訴學生應該做什么和不應該做什么,并總結該知識點的注意事項。相比傳統的脫離編程環境,只在PPT或黑板上進行板書的教學模式,該方法的教學效果要好得多。在課堂教學中,具體的教學步驟如下:①使用PPT或者板書列出該知識點的注意要點;②在編程環境(如VC++6.0)下演示該知識點的用法,給出正確的和錯誤的使用方法,并進行對比;③通過幻燈片動畫或flash動畫等形式演示程序在計算機內存中的執行過程,讓學生更加深刻地理解程序的運行機制。

3)教學難點與重點——“復合知識點”。

從C語言的教學內容來講,數組、函數和指針是教學的重點章節,這些章節之間相互關聯的部分又是重點中的難點,如數組和函數結合,數組名做函數參數,數組和指針結合,指向數組的指針變量,函數和指針結合,指向函數的指針變量等。在教學過程中要反復強調各個知識點的注意事項,如果基本知識點能夠理解透徹,上述難點內容也就迎刃而解了。

1.2 上機實踐教學

在實踐教學中,教師可以通過實際教學案例循序漸進地強化學生對C語言知識點的理解。上機實踐的教學內容通常分為兩部分:基本知識點練習和綜合訓練。首先通過基本知識點的練習,讓學生掌握該知識點的使用,即鞏固課堂所學內容;然后通過一個綜合性的大作業,訓練學生綜合應用C語言知識點的能力,例如,通過編寫“學生課程成績統計系統”考查學生對數組、結構體、指針、函數、文件等知識的綜合掌握情況。

對于初學編程語言的學生,往往沒有養成良好的編程習慣,出錯的可能性較大,而出錯之后進行調試又將耗費較長的時間,這勢必對學生的學習熱情產生負面影響。因此,一開始就給學生制定科學的編程步驟和規范,使學生養成良好的編程習慣,將大大減少程序出錯的可能。在C語言教學實踐中,我們總結了“五步編程法”:①定義變量,如“int a;”;②對變量進行初始化,如“a=0;”,對變量進行初始化操作是一種良好的編程習慣,可防止未對變量賦值而引起的隱性錯誤;③通過scanf語句賦值,如“scanf(“%d”,&a);”;④實現程序的主要算法,該部分是程序的主體;⑤通過printf語句將結果輸出在顯示器上,將結果輸出在顯示器上便于比較程序運行結果是否正確。

下面是按照上述五步編寫的一個完整的C語言程序,用來比較兩個整數的大小。按照上述五步進行編程,經過一段時間的訓練之后,學生出現語法錯誤的可能性大大降低,此時學生更多的精力將集中在程序算法的設計和實現上。

1.3 考試形式

對于C語言程序設計的考核方式,我們采用知識點考核和編程實踐相結合的方式。知識點考核偏重于C語言基本語法,用于檢驗學生對知識點的掌握是否全面,此項考核約占總成績的40%;編程實踐考核用于檢驗學生的實際動手能力,學生將在規定的時間內根據題目在機器上編程,此項考核約占總成績的60%。為了實現知識點的考核,我們將考試與計算機二級C語言上機考試緊密結合,采用題庫平臺進行上機考試,學生直接在機器上答題并提交,知識點考核多采取客觀題,如填空題、程序修改題以及讀程序題等,編程題在實戰編程中考核。C語言程序設計課程的重要特點就是實踐性強,學習該課程的目的就是為了編寫程序。因此從考試的角度講,進行編程實踐是最合適的方式,通過上機編程來考核學生的學習情況也是最公正和客觀的方式。

2 C語言程序設計教學實踐結果分析

中國礦業大學(北京)每年都有40多個班級同時開設C語言程序設計課程,因此該課程教學質量的高低將直接影響全校理工科學生對C語言的理解和掌握。中國礦業大學(北京)C語言程序設計教學團隊經過長期的探索總結出一套行之有效的C語言教學方法,我們將上述方法在學校越崎實驗班中進行了試點。如圖2所示,采用上述教學法的越崎實驗班的C語言程序設計課程考試成績要明顯好于其他班級,其中90分以上的學生占10.7%,80分以上的學生占總人數的53.6%。另外,學生的學習積極性比采用上述方法前得到明顯提高,很多學生都對計算機編程產生了濃厚興趣,實踐證明我們提出的上述方法是行之有效的。

3 結語

中國礦業大學(北京)C語言程序設計教學團隊在長期的教學實踐中探索出的這套教學方法被證明是行之有效的,它能夠極大地提高學生的學習興趣,不但讓學生學得會、記得牢,而且能夠舉一反三,把該方法應用到其他編程語言的學習中。長期的教學實踐使我們深刻地認識到,教學方法的好壞對提高教學質量有直接和重要的影響。我們團隊提出的這套教學方法是對C語言程序設計教學方法的初步嘗試,希望能夠對高等院校C語言程序設計教學方法的研究起到拋磚引玉的作用。

參考文獻:

[1] 謝中科. C語言程序設計的教學改革與實踐[J]. 理工高教研究, 2004,3(23): 96-97.

[2] 簡慧云. 提高C語言程序設計教學質量的探討[J]. 理工高教研究, 2004, 6(23): 83-85.

[3] 王孝平, 董秀成, 謝維成.提高電器信息類專業學生C語言學習能力的教學方法探索[J]. 高等教育研究, 2012, 2(29): 37-40.

[4] 張麗華, 王冬星. 自主學習教學模式在C語言教學中的運用[J]. 黑龍江教育: 高教研究與評估, 2009(12): 91-92.

第3篇:c程序設計范文

【關鍵字】C語言 程序設計 教學探討

一、由實驗入手,培養學生的學習興趣

“C語言程序設計”課程往往是是學生所接觸的第一門計算機編程方面課程,所以很多老師采用理論教學,學習完理論基礎后開始上機實踐,從介紹C語言的語法、算法開始,然后講程序的書寫,最后再學習程序的調試。這樣復雜且抽象,這就導致部分學生在上課初期就反映C語言難懂、難學。在教授C語言之初,教師應注意教學的方式方法,要設法調動學生的學習興趣,讓他們先體驗C語言程序設計的樂趣。第一次上課最好定為實驗課。通過給出幾個簡單且學生熟悉的數學問題以及它們所對應的C語言程序源代碼,邊介紹程序運行平臺的操作邊指導學生自己編輯調試,觀察運行結果。當程序成功的輸出結果時,學生對這門課的學習興趣自然產生了。第一堂課通過實驗教學,完成從數學邏輯到計算機語言程序的轉變,從而逐漸培養學生對程序設計的興趣。

二、教學中應避免過分強調某些容易引起副作用的知識細節

由于C語言牽涉到的概念比較復雜,規則繁多,使用靈活,容易出錯,所以在C語言教學過程中,要遵循由易到難,抓主要矛盾的原則。介于C語言中有些細節牽涉到的副作用問題很多,教學時應把教學精力放在最基本、最常用的那些部分,等學生有一定基礎后再深入到一些非主要的細節上。

三、階梯性舉例

為培養學生的學習興趣,大部分教師在C語言教學過程中,都不一味地按書本去講,而多舉實例來鞏固學生所學習的知識點。筆者在一年來的C語言教學實踐中采用階梯性舉例方式,取得了不錯的教學效果。階梯性舉例是指在課堂上把同類型問題歸結出來,讓學生從理解最簡單的例子開始,按照由易到難的順序依次理解所學知識點。

例如,在講述C語言中求若干數中最大值的知識點時,舉出:第一層問題:2個數的最大值求法,采用簡單if語句解決;第二層問題:3個數的最大值求法,采用簡單if-else復合語句解決;第三層問題:4個數的最大值求法,采用條件語句加上if語句解決;第四層問題:n個數(4個數以上)的最大值求法,采用一維數組比較方式解決。

這樣通過階梯性舉例教學,學生對同類問題的解決有了比較深刻的認識。其主要特點是升級適度,符合學生的心態,使學生有成就感,形成積極向上的學習態度。

四、強調程序語法規則,淡化程序算法設計思想

C語言語法規則繁多,且使用靈活,很容易出錯。這樣使得學生調試程序過程變得更難。因此,教師在C語言的教學過程中,一定要強調C語言中語法細節問題,把一些經常會犯的錯誤總結出來。例如,在C語言里,賦值運算符是“=”,而“==”是關系運算符的相等比較,如if (a = 1),因為“=”是賦值操作,括號中的條件則會永遠為真,程序在編譯時不會提示有錯,可以編譯通過,但這明顯不是所要的結果。教師在授課時一定要強調語法細節,避免出現不必要的錯誤。

五、傳授編程技巧,養成良好編程習慣,培養學生獨立調試程序能力

C語言是一門實踐性相當強的課程。教學中,教師應該傳授學生一些編程技巧,例如一些典型數學問題的運用等,讓學生學會如何熟練應用C語言編程。由于C語言語句書寫靈活,教師在實驗課上應重視學生書寫程序規范問題。例如,強調變量命名應顧名思義,一行只書寫一條語句,每一小段程序要有中文注釋等。養成這些良好的編程規范對學生今后編程解決問題是很有幫助的。此外還應引導學生多讀程序,多編程序,多上機調試程序。教師在實驗課中,應該把一些常用的程序調試方法總結出來,教給學生。只有通過反復上機操作,自行找錯糾錯,才能對C語言有更深、更全面的認識和理解,逐步提高實際操作和學習的能力。

六、采取多元化的考核方式

為了保證課程的教學質量考核是必不可缺的,可以采用多元化的考核方式,針對C語言中不同的知識類型采取不同的考試形式。如:考查C語言中常識性的知識可以采用閉卷考試形式;考查學生知識轉化能力、應用能力等可以采用開卷考試形式;考查學生的程序調試、改錯等可以采用上機考試。

七、結束語

以上是筆者近年來學習和講授C語言課程中的一點心得體會,在教學過程中應注意的問題還是有很多的,但是關鍵在于對 “教什么”和 “如何教”的合理組合,是否能調動學生學習的積極性。教學中,只要教師能理解C語言本身的特點并采取相應的措施與教學手段,一定能取得理想的教學效果。

參考文獻:

[1]譚浩強. C程序設計(第三版)[M]. 清華大學出版社.2005

第4篇:c程序設計范文

關鍵詞 C語言程序設計;教學理念;教學方法

中圖分類號TP39 文獻標識碼A 文章編號 1674-6708(2010)25-0198-02

C語言程序設計課程是我校理工類各專業必修的計算機程序設計基礎課,是一門實踐性很強的課程,學習者必須通過大量的編程練習,在實踐中掌握語言知識,培養程序設計的基本能力,并逐步理解和掌握程序設計的思想和方法,培養學生編程興趣和編程能力是我們教師的責任,也是該課程的目標。

現行的教學中存在一些問題:一是按照從基礎知識講起,然后講解語句語法,最后應用舉例;二是教材內容安排不盡合理,語法規則編寫過細[1];三是教學理念、教學方法和考核方法比較老套,不適應當今教學的發展。為了讓學生學好這門課程,提高動手能力,必須進行教學改革,探索改革的思路和方法。

1 轉變教學理念

傳統的“蓋房子”教學理念,強調必須先打好地基再砌墻,即強調先打好基礎,然后再進行實際編程。這種教學理念教師往往先介紹概念和定義,再舉例進行講解,這種教學方法死板而枯燥,由于課程的教學重點往往放在了語言語法知識點上,而語言的語法是相當煩瑣而復雜的,這種教學方法缺少應用型、趣味性的案例,使學生一步步地陷入到紛多繁雜而索然乏味的語法學習當中,很難充分調動學生的積極性和啟發學生思維。

研究自然界中“樹”的生長規律可以發現,“樹”并不是先長成發達的根系,再長樹干和枝葉,樹的根系、樹干和枝葉是同步生長的。“樹”的生長過程應用到教學上,就是基礎語法和編程的教學同步進行,甚至先教編程技能再教理論,在不斷地實踐中掌握技能,在技能學習中提高基礎理論。

2 教材編寫思路

從課程的教學目標出發制定教材的編寫思路,采用實例引導法、歸納教學法和任務教學法編寫教材,在編寫內容上拋棄過多的語法細節和非通用的或實際用途很少的語言特性,算法描述力求通俗易懂。理論教材以實例引導法思想為主導,介紹概念、語句格式、語句用法和算法描述。用歸納教學法思想編寫多個函數中相同參數的使用問題。實驗教材以任務教學法思想,確定每一個實驗的任務、內容、要求和思考題。

3 教學方法探索

3.1實例引導法[2]

一切從實際例子出發,引導學生理解程序中的概念和算法,例如:在講解變量、運算符和表達式時,先通過一個具體實例程序介紹,如:求圓面積和周長,指出程序中臨時存放數據的單元和公式中的運算符號,然后再引出變量、運算符和表達式進一步講解。又如:在講解指針的概念時,變量的“間接訪問”,可以通過“辦公桌抽屜”實例講解:一個辦公桌有A,B兩個抽屜,每個抽屜有一把鑰匙,可以把B抽屜的鑰匙放在A抽屜中,若要打開B抽屜,就需要先打開A抽屜,取出B鑰匙,再打開B抽屜,取出B抽屜中的物品,引出“間接訪問”。這樣學生很快就能理解變量、運算符、表達式和指針的概念并掌握它們的用法。

3.2歸納教學法[3]

C語言的定義、概念、語法規則有許多相似的地方,在講解C語言函數庫中函數時,有些函數參數的類型格式符是一樣的,在講解一個函數中類型格式符后,對其它函數的類型格式符可以進行歸納,不講或簡單的提一下即可,例如:printf()和scanf()函數中的類型格式符“%d、%f、%c”等,它們的語法規則是一樣的。通過歸納教學,學生只要掌握其中一個,另一個自然就會使用了,免去了重復講授,提高了教學效率。

3.3任務教學法

C語言程序設計課程必須采用實驗教學環節才能把理論算法加以驗證。采用任務教學法思想編寫實驗教材,適度增加實用性和自主性實驗任務內容。每章有具體任務實例講解,可引導學生完成每章設置的實驗任務題目。讓學生自主選擇實驗時間,每次實驗課前要布置實驗任務,學生根據任務,自學和實驗任務有關的知識,完成實驗任務的編程。這種教學方法能夠有效地培養學生的自學能力, 激發學生學習的積極性、主動性和創造性, 鍛煉他們利用所學的知識解決實際問題的能力。

3.4網絡教學法

依托先進完備的校園網絡環境,建立C語言程序設計網絡教學平臺。可以把課程教學大綱、教案、多媒體課件、教學錄像、綜合實例庫、習題庫、學習參考資料、模擬考試系統等教學資源全部上網,通過這個網絡教學平臺,學生可以瀏覽、下載學習資料,也可以提交電子作業,在線提問題,老師在線輔導和答疑等,為學生自主學習提供強大的網絡支持。

4 師資隊伍建設

成立C語言程序設計課程組,建立結構合理的教師梯隊。由具有豐富教學經驗和科研能力的教授任組長,激勵教師努力鉆研教學內容和教學方法,拓寬知識結構。同時,針對組內教師的不同特點,課程組制定了切實可行的目標,并定期進行集體備課,相互探討,號召組內教師積極參與教學研究和科研開發,為提高教學水平打下良好的基礎。建立主講教師之間互相聽課和評課制度,定期召開學生座談會和課程質量分析會,并針對反饋意見提出改進教學的具體措施,從而規范教學的各個環節,為更好地提高教學質量奠定良好的基礎。

5 考核評價體系

對課程考核評價體系進行改革,突出過程考核和編程能力考核,促進學生實際動手能力和創新能力的提高。例如:總評成績=理論課出勤成績+作業成績+實驗出勤成績+實驗完成成績+期末考試成績。期末考試采用《C語言程序設計機考系統》,機考系統為每個考生隨機出題,體現了公平考試的原則。改革后的考核評價體系主要體現了考核形式多樣化、考核標準合理化以及考核試卷個性化三大特征。

6 結論

鑒于目前C語言程序設計課程教學中存在的一些問題,文章通過改革探索,一切從培養學生編程能力的角度出發,按著新的教學理念對教材編寫思路和教學方法進行了探索,提出了教學改革的具體措施。希望對C語言程序設計課程的教學改革有所借鑒。

參考文獻

[1]譚浩強.C程序設計[M].3版.北京:清華大學出版社, 2005.

第5篇:c程序設計范文

本書作者具有多年C++面向對象程序設計課程的教學經驗。根據教學過程中反映出的主要問題,作者在參考大量已有教材和相關資料的基礎上,對書中的內容進行合理組合與取舍,力求澄清概念上的誤區,使內容反映學科發展、涵蓋最新特征,通過具體實例使讀者盡快掌握C++語言的語法知識,把重點放在程序設計方法上。為使學生了解C++標準庫、掌握標準模板庫的精華,特別安排一章內容,介紹C++標準庫的構成。另外通過閱讀本書,讀者還可以對過程化編程、面向對象編程和泛型編程等編程思想有所了解。

與同類教材相比,本書具有如下特色:

1) 雖然在最后一章對C++標準庫進行了較為詳細的介紹,但是在第1章安排一節對標準庫進行簡單介紹,并通過一個具體例子告訴讀者如何使用標準庫編寫C++程序,以吸引讀者進一步學習。

2) 對C++支持的豐富多彩的數據類型,進行了比較合理的分類,以方便讀者在閱讀過程中理清思路,盡早掌握類(class)的概念。本書將C++支持的數據類型分為三大類:基本數據類型、自定義類型(抽象類型)和擴展類型。

其中基本數據類型是C++預定義的數據類型,包括布爾型(bool)、字符型(char)、整型(int)、浮點型(float, double)、空類型(void)。可以利用修飾符對基本類型進行擴展。例如,signed、unsigned可用來修飾字符型和整型,long可用來修飾整型和雙精度浮點型,short可以修飾整型。

用戶根據需要,將數據與操作數據的算法封裝在一起所建立的類型,稱為用戶自定義類型或者抽象數據類型,也就是C++中的類,枚舉、聯合、結構可以看作類的特殊情況。

在已定義的數據類型基礎上,結合某些修飾符(如[]、*、&、())或者關鍵字(如const、static),可以得到擴展數據類型,如數組、指針、引用等。

3) 將類和對象(object)的概念提前介紹,從基本數據類型到結構再到類,使讀者盡快建立起“類”這種抽象數據類型的概念。在介紹對象的概念時,不是用過于抽象的語言,而是具體到C++語言及計算機存儲情況進行介紹。

C++中的對象,強調的是分配好的、具體的一塊內存區域。每個對象都與一個特定的數據類型相關聯,這個類型決定了內存的大小、布局、能夠存儲在該區域的值的范圍以及可以對該區域進行哪些操作等。

4)C++在創建對象時,系統要為對象分配一定的存儲區域,這些存儲區包括靜態存儲區、棧區和堆區。本書對不同存儲類型對象的存儲特性進行了較為詳細的介紹,并通過具體實例進行驗證。

靜態存儲區(static storage)。全局對象、靜態對象和函數一般存儲于該區域,存儲區是在程序開始執行之前分配的,這些存儲區在程序的整個運行期間都存在。

棧區(stack)。程序執行期間進行的內存分配。在執行函數時,函數內一般局部變量的存儲區都可以在棧上創建,函數執行結束時這些存儲區被自動釋放。

堆區(heap),也稱為動態存儲區。程序在運行的時候用運算符new申請內存,由程序員自己負責何時用運算符delete釋放內存。

5) 內容結構安排上,將函數與函數模板、類與類模板分別放在同一章介紹,使得內容前后銜接密切,便于讀者由簡單到復雜、逐步掌握標準C++的精髓。

6) 與同類大部分中文教材相比,增加了指向成員的指針、成員函數地址獲取、動態綁定機制、函數對象、模版重載與專門化等內容,加強了對C++標準庫特別是對標準模板庫的介紹。

7) 本書的例題和習題選材大部分面向實際問題,題目具有一定的難度和趣味性,讀者學完此書從內心里會感到有很大收獲。

8) 使用本書不需要有C語言基礎。

第6篇:c程序設計范文

1.1教學只注重課程的講解,不注重教學過程的質量控制

傳統的教學以課程內容的講解為主,通過講解變量、循環、數組、指針等內容,并結合一定的教學案例來推進教學過程的實施。這種傳統的教學方法沒有考慮到本階段學生的特點,往往造成教學效果差,教學質量難以控制。C語言程序設計課程在大一新生中開設,許多學生缺乏程序的思維和一定的動手能力,學生難以跟上教學進度,造成一定數量的學生對學習語言失去興趣,從而影響整個專業課程的學習。

1.2教學過程缺乏有效的互動

C語言程序設計的教學過程中主要使用PPT來講解,案例程序也通過PPT展示,甚至包括程序運行結果也以截圖的形式在PPT中顯示。雖然在PPT中可以添加很多的動作,動態地標注、顯示程序的運行過程,但這種方法以投影為中心,缺少與學生交流的環節,加上程序類課程相對枯燥,以致學生難以集中精力做到全程聽課。

1.3代碼編寫規范強調不夠

編碼規范是軟件專業學生必須要牢記并遵守的,良好的編碼規范不僅能體現軟件從業人員的素質,而且使代碼有更好的可讀性,更容易被別人所理解和交流。該課程的講解主要以編寫簡單邏輯來解決一些日常問題、數學問題,編程的環節側重于算法的實現,往往忽略了編碼規范

。1.4考試以筆試為主,難以檢驗學生的動手能力

傳統的C語言程序設計課程考試以筆試為主,考查學生對C語言基本的語法、簡單邏輯編寫的掌握情況。這種考試機制脫離了程序語言的實現介質,即計算機。雖然在試卷中也可以用編程題目來考查學生的編程能力,但在紙上寫程序與在計算機上寫程序有本質的不同。在紙上寫程序只需要寫出大致的邏輯即可,而在計算機上寫程序不僅要寫出正確的代碼,而且需要調試和跟蹤代碼,最終保證程序的正確執行。因此,筆試并不能很好地檢驗學生的動手實踐能力。

2教學改革措施

2.1加強教學過程的質量控制

C語言程序設計課程是一門實踐性強的課程,僅通過做一些常規練習無法達到教學質量監控的目的。為了更好地控制教學質量,需要從學生語法規則的掌握到動手編程這一系列環節進行掌握和跟蹤。為此,我們開發了一套在線作業系統用于教學質量的控制。⑴作業題庫的建設C語言程序設計的任課教師根據自己的經驗和理解來搜集和設計C語言題目,包括基礎知識的題目和編程實踐的題目。基礎知識的題目主要用于C語言知識點的訓練,包括填空題、選擇題、判斷題和程序閱讀題;編程實踐的題目主要用于編程能力的訓練,這類題目需要學生對問題進行正確分析、設計算法、編程并運行,最終得到結果。教師在給出題目時,需要提供測試數據和對應的結果。⑵作業的布置與批改教師可以根據每次課的教學大綱、課程內容,從作業題庫中選擇一些填空題、選擇題、程序閱讀題、編程題來建立課程作業供學生在課外完成。學生在規定的時間之內完成作業后提交作業,系統根據教師預先設定的答案進行自動批改,形成每個學生的作業記錄。如果學生在規定的時間之內沒有完成作業并提交則失去本次作業的記錄。教師通過查閱部分學生的解答來掌握學生對相關知識的掌握情況,特別是需要整理學生所犯的共性問題,并有針對性的開設習題課進行解答。⑶配套政策為了使學生重視平時作業的完成,課程的期末成績將考查平時作業的情況。如果學生沒有提交作業的次數在30%以上,則平時成績計0分,其他情況按照提交作業次數和作業得分根據一定的公式進行計算得到學生的平時成績。這種策略的主要目的在于督促學生跟著教學進度進行學習和訓練,不至于嚴重滯后于教學進度而失去學習的興趣,可有力地保證教學質量。

2.2加強教學過程中的互動

課堂教學應該在一定程度上脫離PPT的教學,這樣才可以調動學生的積極性。加強師生之間的互動可以結合本課程特點進行。在講解課程知識點后,配以適合的案例進行教學,這些案例都是需要編寫C語言程序來實現的。此時,編程實現的環節不要通過PPT展示,而要在教師的計算機上動手編寫并運行得到結果,這樣可以改變教學節奏,吸引學生的注意力。C語言課程案例程序的一大特點是代碼量少,一般在20~30行之間,適宜在課堂上完成。教師在編寫程序的過程中,可以向學生展示編程中需要注意的問題,同時,進一步講解C語言的語法和基本知識點。教師在編寫程序的過程中難免會犯小錯誤,或者是有針對性的故意犯一些學生經常犯的錯誤,在編程后的編譯運行時會有錯誤報出,這時對于提高師生交互是很好的機會。從學生的角度來說,他們的編程往往會有很多錯誤,編譯時會出現大量的錯誤提示。此時,學生可能就比較迷茫,不知道如何定位并解決錯誤。因此,當老師也出現錯誤,而且是學生經常遇到的錯誤時,學生往往是比較興奮的,希望能知道老師是如何處理錯誤的。從老師的角度來說,真實地反映程序編寫、編譯的過程,展示程序錯誤的發現、定位、解決的方法,能夠更快地提高學生的動手實踐能力。面對錯誤,教師還可以引導學生參與程序錯誤的解決,消除學生對程序錯誤的恐懼感。在解決程序錯誤時可以參考以下步驟。首先,教師要把所有錯誤信息讀出來給學生聽,因為一般編譯出來的錯誤是用英文寫的,而且有些單詞學生不熟悉,因此,老師需要指出錯誤是變量重定義、變量沒有定義、還是其他錯誤;然后,指出核心錯誤的位置,教師要告訴學生程序報出很多錯誤信息往往是由一個小錯誤導致的,因此,老師要指導學生學會確定引起其他錯誤的核心錯誤;最后,在源程序中找到錯誤的位置,修改錯誤并重新編譯,得出運算結果。這個錯誤處理過程是針對簡單語法錯誤的處理方法,如果程序中出現了邏輯錯誤,即程序編譯正確,但運行結果不是預期結果,此時,錯誤的處理方法更為復雜,可能需要重新檢查程序邏輯,并使用編譯環境進行程序中可疑變量的監視,通過觀察變量中的數值在程序運行過程的變化來確定錯誤。通過實地編寫程序并調試,發現和解決程序錯誤,最終得到正確的計算結果,不僅能使同學更好地掌握程序編寫的方法,而且還能更好地與學生進行互動,提高教學效果。

2.3強調代碼規范

有些老師在教學的過程別是演示程序時,注重于解決問題而忽視代碼規范,甚至是自己寫程序也是這樣,沒有代碼規范。雖然遵守代碼規范并不能改善程序的性能,但遵守代碼規范能夠使程序具有更好的可讀性、可維護性,是軟件代碼實施過程中軟件從業人員良好素質的重要體現。改善代碼規范可以從以下幾個方面進行。⑴適當的縮進每一行代碼不要頂格書寫,而要根據情況縮進。具有良好縮進格式的代碼不僅能少犯語法錯誤,還能夠使閱讀者快速掌握程序內容。⑵適當的空行函數與函數之間增加必要的空行,使得程序構成一目了然。⑶適當增加代碼注釋程序中函數的開頭最好加上注釋說明該函數的作用、參數的意義,在函數中重要邏輯的部分加入注釋說明該邏輯的主要思路、算法。⑷代碼塊要用花括號界定代碼塊盡量使用花括號來界定代碼范圍,即使代碼塊里只有一行代碼,這樣可以提高代碼的可閱讀性,防止閱讀者誤解程序。⑸變量和函數的命名盡量使用多個字母來命名變量和函數,使得程序閱讀者通過名稱即可大致了解變量的意義、函數的作用,提高程序的可讀性。通過編碼規范的強調和實施,使學生認識到軟件開發的專業素質,對于提高學生的專業素養具有潛移默化的作用。

2.4上機考試

上機考試采用在線考試的方式進行,考試環節包括如下幾個部分。⑴試題庫的建設C語言程序設計的任課教師負責組建上機試題庫,試題庫中的題目都是編程的題目,用于考核學生的編程能力。教師在組建試題庫時,標明每個試題的知識點和大致難度,并提供測試案例和對應的答案。題庫負責人負責查看、重新編輯每個題目,從題庫整體的角度更新每個試題的難度。⑵上機考試的實施為單次考試準備7個知識點和1個綜合知識點的題目,教師在考試之前為每個知識點選定難度相當的5個題目。每個學生登錄系統后,系統自動建立考卷,具體策略是從為每個知識點準備的5個題目中隨機選擇1題組成一個考卷,因此,該考卷包含8個題目,這8個考題要求學生在4小時內完成編程。考試時間一般定為上午8:00至中午12:00點。學生根據隨機組成的考卷題目進行解答,為每道題目編程求解,并在學生機上利用示例測試用例檢驗代碼的正確性。如果在本地沒有通過檢測,則進行邏輯檢查,修改程序;如果本地通過測試,學生需要將代碼提交到服務器。服務器接收到代碼后,自動調用教師提供的更多的測試用例來檢測程序運行結果是否與預先設置的結果匹配,進行代碼邏輯黑盒測試。如果全部通過,則說明學生的編程邏輯是正確的,此時將學生成績記錄中對應的題目標為通過,并回顯“通過”給學生,學生繼續做下一道題目;如果其中有的用例運行結果不正確,則返回“錯誤”給學生,學生可以接著做本道題目,也可以選做另外一道題目,同時,在學生成績記錄中對應的題目標為錯誤。教師在考試現場調取并查看所有學生成績記錄信息,如果發現異常信息,如在很短的時間內完成了過多的題目,則可能學生在作弊。此時,根據異常學生信息中的IP地址找到該學生,進行現場查證,如果確認為作弊則立即處理。如果學生正確完成了8道題中的5道題,則學生通過上機測試,否則,學生沒有通過上機測試。為了減輕學生的壓力,上機考試可以分兩次進行,如果第一次沒有通過上機考試,還可以組織學生進行第二次考試,取這兩次考試的較高分作為學生成績。

3結束語

第7篇:c程序設計范文

關鍵詞:C語言程序設計;計算思維;抽象;自動化

美國卡內基?梅隆大學的周以真教授在2006年系統地提出了計算思維的概念[1]:計算思維指的是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等一系列思維活動。其后,陳國良院士和李廉教授歸納出三種典型的科學思維,即以觀察和歸納為特征的實證思維,以推理和演繹為特征的邏輯思維,以抽象和自動化為特征的計算思維[2-3]。計算思維是計算機類課程的主要思維方式。

有關計算思維在程序設計類課程中的研究,已經引起很多學者的興趣[4-6]。這些研究雖然從案例設計和項目過程等角度做了有益探索,但卻忽略了對計算思維本質的討論。C語言程序設計課程中,我們采用李廉教授的觀點,即計算思維的本質是抽象和自動化。抽象指的是使用符號系統對問題進行精確而嚴格的描述;自動化指的是對這些符號系統施加一定操作并按照某種結構自動地執行。

一、C語言程序中的計算思維本質之一:抽象

有些C語言程序設計課程教學的一開始就提倡使用案例教學。這雖然能夠使得學生可以迅速進入實際編程環節并建立直觀感性認識,但案例教學由于往往出現“程序就是編程工具”的工具論現象,導致出現“只知其然,而不知其所以然”的學習后果,不利于學生的后續發展。

對于C語言程序來說,抽象指的是使用符號系統對求解問題進行精確而嚴格的描述,抽象的過程就是對實際系統建模的過程。實際上,程序是用來描述現實生活中某個實際存在的或不存在的系統。程序就是對系統的抽象。系統之所以存在,是因為系統具有一些關鍵特征和核心功能。程序中對系統特征進行抽象的就是操作對象,對系統功能進行抽象的就是函數。系統功能往往有多個且存在著復雜的調用關系。例如,求一個函數定積分的功能必然涉及求函數在某一個點的取值功能,如果該函數比較復雜且含有正弦、余弦和正切等三角函數,還需要繼續調用求這些三角函數值的功能,形成多級調用;有時函數執行過程中還需要調用本身,形成遞歸調用。

C語言程序中的操作對象分為變量和常量。常量是對系統中的取值不變的特征進行抽象,如圓的圓周率;而變量是對系統中取值可以改變的特征進行抽象,如圓的半徑。不管是哪類特征,都會有一個取值范圍以及所允許的操作。例如,對于課程成績,其取值范圍一般是從0~100,而允許對該特征進行的操作可以是加法和減法等算術操作以及大于和小于等比較運算;而對于課程名字這一特征,就不能進行加法和減法這樣的算術操作。C語言程序中用來對特征的取值范圍及允許的操作進行抽象的概念是數據類型。C語言程序中的抽象模塊如表1所示。

現實生活中,經常需要描述多個相同數據類型的一個系統特征,如所有同學的高等數學課程的成績,可以使用一維數組來進行描述;而描述多個不同數據類型的多個系統特征,如學生的姓名、學生的身高和學生的年齡等,可以使用結構體來進行描述;如果要描述多個相同數據類型的多個系統特征,如全班所有同學的高等數學和大學英語課程的成績,則可以使用二維數組來進行描述。

表1 C語言程序中的抽象模塊

C語言程序中的元素 現實生活中的元素

程序 系統

函數 系統功能

函數調用 功能調用

數據類型 常量 系統特征

變量

一維數組 多個相同類型的一個系統特征

多維數組 多個相同類型的多個系統特征

結構體 多個不同類型的多個系統特征

鏈表或結構體數組 多個不同類型的多個系統特征的集合

二、C語言程序中的計算思維本質之二:自動化

計算思維的另一個本質是自動化。自動化指的是對符號系統建模的各種元素施加一些操作,并按照某種順序的或非順序的結構自動地執行。對于C語言程序來說,自動化體現為函數內部的語句在EIP寄存器加法操作支持下順序自動地執行以及函數之間的調用在內存堆棧區支持下自動地進行跳轉。EIP是32位機的指令指針寄存器,用來存放下一條要執行的指令的地址。EIP寄存器中增加值的大小需要根據實際存儲指令的大小來確定。

對于C語言程序來說,自動化過程中執行的對象是語句。不同類型的語句,執行的結果和效用是不一樣的。例如,一個變量定義語句“int a”的執行結果是在內存中分配4個字節的空間,一個返回語句“return t”的執行結果是將程序的執行流程返回到主調函數中。這些語句的組合構成一個個函數,程序的執行就是在某個函數之中順序自動地執行以及在多個函數之間來回自動地跳轉。

既然程序的執行過程是在某個函數之中順序自動地執行以及在多個函數之間來回自動地跳轉,這種自動執行需要有相應的計算機軟件和硬件基礎。支持程序自動執行的軟件基礎是操作系統,支持程序自動執行的硬件基礎是計算機硬件結構,即馮?諾依曼原理的程序存儲思想。當用戶點擊執行按鈕后,程序被提交給操作系統來執行,可以不需要人為干預。此后,程序在操作系統中以進程的方式出現。操作系統協調內存、中央處理器和外存等硬件資源執行該進程。

函數中的語句之所以能夠一個接著一個順序地執行,主要依賴于EIP寄存器的加法操作。當一條指令執行完成之后,EIP寄存器在原有內容的基礎上再加上當前指令所占存儲空間大小,其內容便是下一條指令的地址。如此進行下去,就可以一個一個順序地執行函數中的語句。

程序控制之所以能夠在函數之間進行跳轉,主要依賴于操作系統管理的內存堆棧區。內存堆棧區是滿足“后進先出”操作約束的存儲區。當操作系統開始執行用戶提交的C語言程序時,首先開始從main函數執行,main函數的相關局部變量被壓入棧中;當執行到被調函數時,被調函數的相關局部變量再次被壓入棧中,程序控制轉移到被調函數,且操作只能對當前棧頂進行,而此時棧頂存儲的就是被調函數的相關局部變量;而當被調函數執行結束時,被調函數的相關局部變量從棧中退出,程序控制轉移到main函數繼續執行,此時棧頂存儲的是main函數的相關局部變量;當main函數執行結束時,main函數的局部變量從棧中退出,整個程序執行結束。下列程序執行時的堆棧變化過程示意如圖1所示。

#include "stdio.h"

double s(double r)

{ return r*r; }

int main()

{ double r;

double area;

r=2.0;

area= s(r);

printf("area=%f",area);

return 0;

}

圖1 函數調用過程的堆棧變化

自動化過程實際反映了C語言程序解決實際問題的算法流程。算法是解決某一問題的執行步驟。一般而言,使用C語言進行編程之前,需要進行相應的算法設計,即構思解決實際問題的思路和步驟。一旦這些步驟變成C語言程序語句并形成一個完整的程序,就可以提交給操作系統自動地執行這些步驟,這正是計算機解決問題的高效率的體現。

三、以計算思維為導向的C語言程序設計課程教學

1.教學內容

針對計算思維的抽象和自動化兩大本質特征,C語言程序設計課程的教學內容需要在原有的基礎上特別強調一些針對性的觀點。例如,C語言中的各種數據類型和數據結構可以完成實際系統中各種不同元素的抽象,一個函數之中的順序語句自動執行的基礎是EIP寄存器的加法操作,多個函數之間的來回自動跳轉的基礎是內存堆棧區的支持等。具體強調的觀點如表2所示。

表2 教學內容中需要強調的觀點

C語言程序設計

課程的內容 強調的觀點

C語言概述 程序是對系統的抽象

抽象過程就是C語言的建模過程

自動化過程反映C語言的算法流程

數據類型、表達式和語句 操作對象是對系統特征的抽象

語句是系統自動化執行的基本對象

控制結構 控制結構是問題求解步驟的抽象

函數中順序語句自動執行的基礎是EIP寄存器的加法操作

數組 一維數組是對多個相同類型的一個系統特征的抽象,多維數組是對多個相同類型的多個系統特征的抽象

函數 函數是對系統功能的抽象

函數調用是功能調用的抽象

函數之間的來回自動跳轉的基礎是內存堆棧區的支持

結構體 結構體是對多個不同類型的多個系統特征的抽象

指針 鏈表是多個不同類型的多個系統特征集合的抽象

2.教學方式

計算思維的本質是抽象和自動化。C語言程

序設計課程一般都是面向大一新生,理解抽象和自動化進而培養計算思維,對于還處在計算機學習起點的學生來說是比較困難的。

對于C語言程序來說,抽象過程實際就是運用C語言中各種符號對所描述系統的建模過程,培養抽象的計算思維方式就是培養使用C語言描述實際系統的思維過程。因此,可以通過啟發式教學方式引導學生思考如何使用C語言中的符號來描述系統。可以提出這樣的一系列問題:C語言中如何描述一個人的身高?如何綜合描述一個人的姓名、年齡和籍貫等?如何描述一個班中所有學生的高等數學成績?如何描述各路公共汽車站的網狀信息?通過啟發學生對這些問題的思考,讓學生所學的C語言中的各種符號不再“虛幻”,讓學生真正理解這些符號實際是一種建模元素,每種符號有著其特別的抽象描述能力。

對于C語言程序來說,理解自動化過程必須借助一些形象化的手段。例如,借助于Visual C++ 6.0平臺的單步調試功能,可以形象地演示上述C語言程序的自動化過程,如表3所示。

表3 C語言程序執行過程中EIP和ESP寄存器內容的變化

斷點 EIP寄存器內容 ESP寄存器內容 當前棧頂函數

r=2.0;語句 00401068 0013FF24 main函數

area=s(r);語句 00401076 0013FF24 main函數

return r*r;語句 00401020 0013FF18 s函數

printf("area=%f",area);語句 00401089 0013FF24 main函數

從表3可以看出,隨著EIP寄存器內容的增加,main函數中的語句順序自動執行,即從語句“r=2.0”到語句“area=s(r)”再到語句“printf("area=%f",area)”。ESP寄存器是另一個重要的寄存器,它始終存放棧頂的地址。隨著main函數對s函數的調用開始,棧頂工作函數由main函數變化為s函數;當s函數調用結束后,棧頂工作函數又由s函數回到main函數。

3.考核內容

針對C語言程序設計課程的計算思維培養要求,考核方式上必須從以考查語言的語法知識為主轉變為以考查學生的系統建模能力和算法設計能力為主。

系統建模能力的考查主要針對計算思維的抽象特征。例如,可以給出各種系統特征,考查學生使用數據類型進行描述的能力。

算法設計能力的考查主要針對計算思維的自動化特征。當然,C語言程序設計課程中涉及的都是一些如迭代、枚舉和排序等簡單算法。可將這些算法封裝成各種函數來進行調用,以考查函數中順序語句的執行以及函數間的伴隨參數傳遞的跳轉來理解自動化過程。因此,必須以簡單算

法設計和函數調用為重點考核內容,突出對函數接口設計和算法流程設計的考核。

參考文獻:

[1] Jeannette M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3):33-35.

[2] 陳國良. 計算思維[J]. 中國計算機學會通訊,2012,8(1):31-34.

[3] 李廉. 計算思維――概念與挑戰[J]. 中國大學教學,2012(1):7-12.

[4] 張耀文. 基于計算思維的程序設計課程案例教學法研究[J]. 重慶電子工程職業學院學報,2012,21(3):149-150.

[5] 吳紹兵. 計算思維和程序設計能力的培養[J]. 計算機教育,2011(16):11-14.

第8篇:c程序設計范文

關鍵詞:結構化程序設計;順序結構;選擇結構;循環結構;算法

當前,計算機技術飛速發展,程序設計技術已從結構化程序設計技術向面向對象程序設計技術過渡,對一個規模較大的應用程序,總體框架是由面向對象程序設計構搭而成,而在局部實現時仍需采用結構化程序設計技術。C語言是一種很好的結構化程序設計語言,因此,筆者論述了C中的的結構化程序設計的方法。

結構化程序設計(STRUCTURED PROGRAMING,簡稱SP)的概念是由荷蘭學者E·W.DUKSTRA等人在20世紀60年代后期提出的,是以模塊化設計為中心,將原來較為復雜的問題化簡為一系列簡單模塊的設計,也就是將—個大的計算任務劃分為一個個比較小的任務,這些小任務均由函數來完成。而函數既可以是C的標準庫函數。也可以是自定義函數。在C中,一個具備一定規模的C程序往往是由多個函數組成,其中必有一個名為main的主函數,由main來調用其他函數,必要的話,其他函數還可以調用另外的函數。同一函數可以被一個或多個函數調用一次或多次。模塊的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模塊作積木式的擴展。

結構化程序設計的思想是一個程序的任何邏輯問題,均可用順序結構、選擇結構和循環結構這3種基本結構來描述。順序結構的程序流程是按語句的書寫順序依次執行;選擇結構是對給定條件進行判斷,根據判斷結果決定執行兩分支中的一個分支或多分支中的一個分支;循環結構是在給定條件成立的情況下,反復執行某個程序段。實現這些程序流程的語句都是流程控制語句。流程控制語句在程序設計中起著重要的作用,通過3種基本控制結構使結構化程序具有唯一的人口和出口,沒有死循環,而且程序的靜態形式與動態執行形式之間具有良好的對應關系。在C語言中,有4種語句是順序執行的:①空語句,光有一個分號“;”作為語句結束符,它表示什么也不做。②表達式語句,表達式后面加一個分號,表達式語句主要有賦值語句、自加減運算符構成的語句和逗號表達式語句。③函數調用語句,它是由一個函數調用加上一個分號組成的。④復合語句,由“{”和“}”把一些變量說明和語句組合放在一起,又稱為語句塊。選擇語句有if語句和switch語句。循環語句有for,while和do-while語句以及一些輔助流程轉向語句如continue,break,goto等。順序結構,選擇結構和循環結構共同作為各種復雜程序的基本構造單元,由這3種結構經過反復嵌套構成的程序稱為結構化程序,也就是說,結構化程序是由上述3種基本結構組成的。但如果在編程過程中無限制地使用轉移語句(goto),會使程序的控制流程強制性地向前或向后跳轉而導致程序的流程無序可循,結構雜亂無章。結構化構造減少了程序的復雜性,提高了可靠性、可測試性和可維護性,使用少數的基本結構,就可使程序邏輯結構清晰,易讀易懂,并且容易驗證程序的正確性。對—個初學計算機語言的人來說。最重要的就是要有正確的程序流程概念,不僅要懂得而且要靈活應用。由此可見,用結構化方法設計的結構是清晰的,有利于編寫出結構良好的程序。因此。結構化程序設計方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。將程序設計針對的問題進行分解,直到分解到對應于一個個功能更簡單,又獨立的模塊,每個模塊再分解到上述3種基本程序結構。

第9篇:c程序設計范文

關鍵詞:C語言;程序設計;經典教材;計算機教育

中圖分類號:G642 文獻標識碼:B

1引言

只要人們提到學習C語言,都會不由自主地和譚浩強三個字聯系在一起,特別是20世紀80年代以后的學生,都是在譚老師的《BASIC程序設計》、《FORTRAN語言》、《C程序設計》的指引下走過來的。特別是20世紀的90年代中后期,全國非計算機專業學生的計算機應用能力等級考試,將C語言納入到考試的范疇,C語言便進入大學計算機公共基礎課的講堂,譚老師的《C程序設計》因為系統性強、通俗易懂、例題豐富,并且實用性強,很適合初學者,瞬時風靡各大高校,成為許多理工科專業學生書包中的必備書籍。多年的一線教學體會,我始終推薦該書為使用教材或主要參考書。

2適用各類學習對象

筆者從20世紀90年代中期開始講授C語言,至今已有15年,授課對象有計算機專業和非計算機專業的學生,也有大專生和社會上成人教育的函授學員,使用的教材主要是譚老師的《C程序設計》,從第一版到第二版、第三版,同學們都覺得這本書好,從沒有學生對選用這本教材提出異議。事實上,國內許多高校的非計算機專業用譚老師的書作為“C語言程序設計”課的教材,而且許多高校的計算機專業同樣也用譚教授的書作為“C語言程序設計”課的教材,自學C語言程序設計的讀者更是不約而同地選擇譚教授的書作為叩開C語言大門的入門書。

最初學習C語言的主要是計算機專業學生,而且大都是作為第二語言開設的,后來才逐漸演變成作為第一語言,而部分非計算機專業的學生也有這種歷程。當C語言作為第一語言開設后,《C程序設計》的第二版便增加了“算法”,并安排在第二章(C語言概述之后),使學生首先掌握常用算法(如求一批數的累加和、累乘積,判斷某年是否為閏年,判斷一個大于等于3的正整數是否為素數等算法)的編程思想,而后再講解具體的語法定義、規則,以及算法的具體實現,將程序語言的講解與算法的分析有機地結合起來,同時知識的講解有螺旋式上升的趨勢,非常符合初學者的認知規律,受到各種學習對象的歡迎。記得有一年上成教的課,當時成教教材管理部門選用了其他教材并發給了學生,筆者在第一次上課時便將譚老師的《C程序設計》作為主要的參考書推薦給了學生。上了兩次課后,許多同學反映:“老師,我們這本教材沒有譚浩強那本講得清楚”,筆者后來向成教學院的有關人員提出下一屆更換教材的建議,以后使用的教材都是譚老師的《C程序設計》這本教材。

3內容全面、結構清晰

《C程序設計》一書涵蓋了程序設計基礎知識和C語言程序設計的全部內容,并介紹了大量常用算法。在C語言中,數據類型豐富,運算符也比較多,程序設計自由度大,這些都給初學者帶來了較大的學習難度。本書從C語言的結構開始,從最簡單的輸出“This is a C program.”、“求兩數之和”、“求兩個數中最大者”實例出發,將基本的程序結構中應至少有一個輸出、最簡單的變量定義和使用、C程序是由函數構成的知識點講解得非常清晰,只要懂點英文,就能讀懂程序。進而介紹具體的數據類型、運算符、表達式、基本的輸入輸出函數,使初學者很快就能編寫出比較簡單的程序,看到自己的學習效果,很有成就感。而后開始介紹稍復雜的程序結構(選擇結構、循環結構)和數據類型(數組),并結合圖例講解和實現常用的算法。在函數一章通過利用前面的講過的實例復習已學的知識點,同時也降低了學習函數的難度。在讀者會編寫基本的C程序后,才開始介紹C語言的特色部分,如編譯預處理、指針、結構體、共同體、位運算文件等,將C語言程序設計的知識點全部展開,難度逐漸地增加,而沒有采取在講解函數之前先講解指針的做法。這種循序漸進、螺旋式的教學內容安排非常符合認知規律。

4深入淺出、講解透徹

大學教材是供人們使用的,它既用于老師教,又供學生自學,也可作為有關人員的參考用書。它不但要強調基礎知識和系統的完整性,而且也能使人通過自學就可能進入一個新的發展領域。這就要求一本好的教材既要內容完整,同時又必須能夠做到深入淺出,講解透徹。《C程序設計》一書各個章節的編寫通過提出問題、分析問題、解決問題,然后再歸納總結的方法,將復雜難懂的抽象概念與實際應用實例結合,與形象的比喻科學地結合,使其變得容易理解,并與計算機的基礎知識相結合。如在講解遞歸算法時先用求人的年齡問題來講解遞推和回歸的過程,而后才講解經典的漢諾塔問題,同時給出了詳盡的數學公式推導過程,并配以圖例說明。又如在介紹指針概念中“間接訪問”一詞時,使用了生動的比喻:“為安全起見,將A鑰匙放到另一抽屜B中鎖起來,若果需要打開A抽屜,就需要先找出B鑰匙,打開B抽屜,取出A鑰匙,再打開A抽屜,取出A抽屜中之物,這就是‘間接訪問’。”這使讀者不僅理解了“間接訪問”概念,也加深了對指針概念的理解。再如在介紹變量的存儲類型時、介紹指針時都對計算機的存儲管理作了清楚的論述。

該書的內容重點突出,難點分散,對C語言中最基本和常用的部分進行了詳細的分析和講解,凡是涉及的內容,都講得非常透徹、詳盡。

5例題難易適度、習題豐富、教學資料齊全

多年的課堂教學過程中,總能體會到本書中例題和習題選擇的難度非常適宜,如講解循環結構時選用計算“1+2+…+100”作為入門的例題,習題中便有計算“1!+2!+…+ 20!”之和,既有相似之處又有新舊知識(循環結構的使用和前面介紹的數據類型及其表示范圍)的結合。另外本書通過豐富的習題來豐富常用的實用算法。如在循環一章的習題中將迭代法和二分法引入,通過求方程的根來理解其算法含義和實現過程,在數組一章的習題中引入了“篩選法”、“選擇排序法”、“楊輝三角形”等。

計算機程序設計是一門實踐性很強的課程,學習時不僅僅需要選擇合適的例題,還需要編寫足夠代碼量的程序,僅靠閱讀教教材或聽課是不可能掌握編程技能的。總有人抱怨說:“課堂上聽得很明白,就是課下編程困難”,而學習程序設計最重要的環節就是實踐。《C程序設計》一書中每章都附有大量的各種類型習題,并且有配套的習題解答,這不僅有利于學生開闊視野,豐富知識,而且有益于復習、鞏固、加深理解和掌握課上所學的知識,提高他們的學習興趣,培養自學能力,也便于教師設計實驗課的教學內容。近年來譚老師講授《C程序設計》的教學錄像也已成為很多教師講課前的觀摩學習課程。

6強調應用意識和應用技能

教材要起一種引導作用,要強調應用意識和應用技巧,應特別注意學科間的聯系。《C程序設計》一書將實際生活中數學問題的解決算法、工程應用的常用數值分析方法均作為本書的實例和習題,這不僅有助于培養學生的邏輯思維,而且也有助于學生分析問題和解決問題的應用能力。正因如此,初學程序設計的學生可以達到熟練運用C語言進行小規模應用開發的能力,許多非計算機專業的人士通過自學這本教材,打下了程序設計的基礎,后來便使用C語言開發出本專業的應用軟件。

7結論

大學教材非常重要。譚老師為人們寫下了諸如《BASIC語言》、《FORTRAN語言》、《C程序設計》等深受廣大教師和學生歡迎的經典之作。譚老師的《C程序設計》一書對我國普及C語言程序設計起了很大的推動作用,他為計算機教育的普及不懈地努力,取得了巨大的成就,功不可沒,真正做到了“桃李滿天下”。

參考文獻:

精選范文推薦
主站蜘蛛池模板: 成人久久 | 99在线视频播放 | 精品国产一区二区三区四区不 | 米奇精品一区二区三区在线观看 | 国产高清在线看免费视频观 | 操操综合| 97视频免费观看 | 中文字幕欧美一区 | 在线观看国产欧美 | 久久受www免费人成看片 | 久久精品国产99国产精品亚洲 | 日韩在线一区二区 | 亚州男人天堂 | 久久厕所 | 亚洲一区二区三区免费看 | 欧美久在线观看在线观看 | 欧美精品做人一级爱免费 | 一区二区中文字幕亚洲精品 | 国产精品一 | 成人一级片 | 欧美一级高清免费播放 | 国产成人免费视频精品一区二区 | 欧美一区三区 | 国产不卡在线视频 | 51国产偷自视频区视频手机播器 | 国产成人ay手机在线观看 | 久久久亚洲欧美综合 | 久久精品国产这里是免费 | 国内精品久久久久久网站 | 亚洲美女视频一区二区三区 | 一区二区三区视频免费 | 亚洲欧美日韩在线一区二区三区 | 视频在线二区 | 亚洲成人一级片 | 九九九国产 | 日本一级特黄毛片高清视频 | 亚洲日韩中文字幕在线播放 | 日本三级精品 | 一区二区三区精品国产欧美 | 国产国产人免费人成成免视频 | 国产一级毛片国语版 |