c語言課程范例6篇

前言:中文期刊網精心挑選了c語言課程范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。

c語言課程

c語言課程范文1

關鍵詞:C語言課程設計;學生成績管理系統

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)19-30092-02

Practice and Analysis in C Language Design

CAI Ya-ling

(Nanhua College of Industry and Commerce, Guangzhou 510507, China)

Abstract: C language design is very important in C language learning to master this programming language. In this paper, I describe the flowchart of the student management system design in C language. Moreover, some important problems in C language design are specified.

Key words: C language; language design; student management system

1 設計要求

矩陣乘法:編寫一個函數實現矩陣A(2行3列)與矩陣B相乘(3行2列),乘積放在C數組中。在主函數中輸入相乘的兩數組,并輸出結果。

學生成績管理:結構體數組、函數、指針、算法、流程結構及文件等的綜合應用。

程序說明:有N個學生,每個學生的數據包含學號(不重復)、姓名、三門課的成績及平均成績,試設計一學生成績管理系統。

2 功能模塊的設計

2.1 輸入記錄函數STUDENT *create()

算法:先聲明一個首節點head,并將head->next設為NULL。每輸入一個數據就聲明一個新節點p,把p->next設為NULL,并且鏈接到之前列表的尾端。

N-S流程圖如圖1:

圖1

2.2 記錄函數void print(STUDENT *head)

算法:先將p結點的指針指向第一個結點,將p結點(即第一個結點)的數據輸出。然后再將p結點的指針指向p指針的的指針(即下一結點),將p結點(即第一結點)的數據輸出。重復執行此步聚直到p指針指向NULL為止。

N-S流程圖如圖2:

2.3 找記錄函數void search(STUDENT *head)

算法:采用線性查找法往下一個節點查找。輸入所要查找的學生的學號s,設一個指針變量p,先指向第一個結點,當strcmp(p->name,s) && p!= NULL時,使p后移一個結點,如果p!=NULL,輸出p所指的結點。

N-S流程圖如圖3:

圖3

3 設計中應注意的問題

3.1 程序效率分析

在程序中頻繁的調用函數會增加系統的負擔,降低程序的執行速度,花費較多的時間,影響C程序的執行效率。同一個程序編寫方式的不同,它們運行的效率也就不同,這就要求我們在編寫程序時,在程序的可靠性得到保證的前提下,根據具體情況找出最優的、能充分利用系統資源和提高程序運行效率的一種最佳方法。當然,在不同的系統和不同配置的計算機上程序的運行效率是不盡相同的,程序的效率問題是在編寫較大或較復雜程序時應該充分考慮的。

3.2 數據類型的使用

數據類型是C語言中的一個既簡單又基本的問題,如果我們對它沒有充分的理解,往往會導致一些莫名其妙的錯誤。C語言追求簡捷、自然,編起程序來簡單、方便、可讀性好。另一方面,C編譯程序的語法檢查很不嚴格,所以程序即使通過了編譯連接仍然可能得不到正確結果。特別是對于一些運行時錯誤,如運算溢出、數組越界,編譯程序根本不做什么檢查。這就要求程序員認真研究、掌握規律、避免錯誤。對于某些微妙的問題,如果能從書本上找到現成的答案固然好,但可能性不大。最好的辦法還是用機器實驗,實踐是檢驗真理的唯一標準。如果程序員懂得匯編語言,那是大有好處的。不僅能提高聯想力,而且可以閱讀TCC產生的C源程序的匯編語言版本,那么我們幾乎可以搞懂C語言的一切細節。

3.3 指針的使用

指針是C語言中的一個重要概念,也是C語言的一個重要特色。正確而靈活地運用它,可以有效的表示復雜的數據結構;能動態分配內存;能方便地使用字符串等。掌握指針的應用,可以使程序簡潔、緊湊、高效。指針較難掌握,在使用時稍有不慎,將給C程序帶來隱患甚至是致命的錯誤。

在指針的使用中經常容易產生以下錯誤:1) 定義和應用的錯誤;2) 類型匹配的錯誤;3) 共享內存和雙向傳遞的錯誤;4) 指針在數組中的錯誤使用。

3.4 函數浮點形參的使用

在使用Turbo C語言開發程序時,并非需要將函數的形參float類型數據進行轉換為double,也并非Turbo C在處理此類問題時存在缺陷和錯誤。本文通過實例分析,闡明了在Turbo C開發環境下,在進行函數說明和定義時,有兩種方式可以使用,第一種是使用傳統型函數說明和傳統型函數定義,第二種是使用函數原型定義和說明,不能任意組合。

3.5 ++運算符的使用

在C語言中原本規定++運算是定義在整型上的,但是由于C語言中提供了自動類型轉換,所以對于float類型使用++運算的時候編譯器投有檢查出錯誤。然而其運算過程不同于int類型,主要是由干要進行類型轉換的原因。因此一般情況一下不必利用float類型進行++運算。

4 結論

本文在結合學生管理信息系統課程設計的經驗的基礎上,探討了在C語言課程設計中的設計方法和應注意的一些重要問題,這對C語言的學習和課程設計有一定的指導作用。

參考文獻:

[1]袁蒲佳,唐謙,韓麗娟. C語言程序設計[M]. 武漢: 華中科技大學出版社,2007.

[2]朱玉龍,任文嵐. C語言中的數據類型[J]. 小型微型計算機系統,2001,22(9):1146-1179.

[3]郝蕊潔. 談談C語言中的變量[J]. 中國科技信息,2008,5:94-95.

[4]王學超. 淺談職高C語言函數的教學[J]. 電腦知識與技術,2008,2:332-334.

[5]施煒. 靈活應用C語言中的++/--運算符[J]. 科技資訊,2007,35:199-200.

c語言課程范文2

摘要:以CDIO工程教育理念為指導,結合我院C語言課程設計的教學現狀,對課程設計的教學模式進行研究與改革,詳細闡述課程設計教學改革的具體措施。教學實踐結果表明,教學改革拓展學生的思路,激發學生的學習興趣,提高學生綜合實踐的能力和創新能力.

關鍵詞 :CDIO;C語言;課程設計

CDIO(Conceive-Design-Implement-Operate)[1]是近幾年來國際工程教育改革的最新成果,目前已經在全世界幾十所著名大學得到了應用。CDIO教育模式與傳統的課堂教育有著明顯差異,是為學生提供一種強調工程基礎的、建立在真實世界的產品和系統的構思-設計-實現-運行(CDIO)過程的背景環境基礎上的工程教育,使學生畢業后能夠熟練掌握技術基礎知識,領導和參與新產品和新系統的開發和運行,了解技術的研究與發展對社會的重要性和戰略影響。C語言課程具有一定的工程應用背景,是目前計算機類專業的一門重要的專業基礎課,作者結合我院C語言課程設計的實際教學情況,以提高學生的職業能力為目標,以CDIO設計理念為導向,將案例演示、問題驅動、實際應用和項目化教學進行整合,旨在對教學的各個環節繼續研究和改革,有效地提高教學質量。

1、C語言課程教學現狀

C語言這門課程在我們系各個專業均有開設,屬于專業基礎課。通過這門課程的學習,主要是讓學生建立清晰的程序開發思想,掌握相關的程序設計技巧和方法,培養學生分析問題解決問題的能力。在以往的教學中,這門課程存在諸多問題,主要表現在以下四個方面:

(1)入門困難,學生普遍反映語法繁多,概念抽象,還要動手編程,在一定程度上可能會產生畏懼心理。

(2)教師過多注重理論知識講解,往往忽略程序設計思想的培養。

(3)教學模式枯燥,教師立足語法本身,學生分析問題解決問題的能力培養方面很少涉及。

(4)考試形式單一,不能全面了解學生能力,不能滿足工作需要。

2、基于CDIO模式的課程設計改革措施

2.1 課程設計理念的改革

在課程設計理念方面,我們引入了CDIO這一創新型高等教育模式,其培養大綱對畢業生從四個層面做出要求。首先在工程系統方面,要求對學生的知識技能進行強化;在個體能力方面,要求在教學中滲透學生職業能力以及職業素養的培養;另外,我們還需要在教學中以工作過程為導向,以典型的工作任務為載體,培養學生人際團隊協作能力,第四個層面即構思-設計-運行-實現,是CDIO的核心所在,為我們的課程設計思路提供了參考。具體來講,就是課題組和企業合作共同完成對工作任務的分析和整合,這可以理解為“構思階段”;接下來,是課程標準的制定,整體設計單元設計以及校本教材的開發,這個階段歸為“設計階段”,之后,就是具體的課堂實施階段,當然,還要對課程進行不斷的改進,由此看來,CDIO的理念滲透到了課程設計的各個環節當中,對課程設計起到了重要的指導作用。

2.2 課程設計教學模式的改革

C語言課程設計由于其自身較強的實踐性,特別符合CDIO工程教育理念倡導的“做中學”和“基于項目的教育和學習”[2],在整個教學過程中應堅持“教學做”一體化的原則,增加主動學習和動手實踐。教師在這一過程中承擔起主導的作用,幫助學生建立起清晰的程序開發思想,掌握基本的程序設計方法和技巧,培養學生形成分析問題解決問題的方法,即怎樣從生活中的實際案例出發,形成一套從構造問題到分析問題,最終解決問題的思路。

首先在任務導入階段,教師負責提出任務,對任務的效果進行演示,學生通過觀看演示效果,明確本次任務的學習目標(包括能力目標、知識目標以及素質目標)和學習內容。在接下來的方案制定階段,教師需要就工作任務中所涉及到的知識點以及重點難點進行講解,教師可以讓學生進行程序的模擬練習,學生在練習過程中可以完成知識的前期儲備,為后續獨立完成任務打下基礎。探究討論和即時訓練階段要求學生以小組為單位共同探討任務的實施過程,安裝所選擇的C編譯器,了解使用的界面和操作方法,并采用截圖的辦法將其記錄在任務書的過程記錄中,并進行文字的歸納,在此過程中,教師需要參與到小組討論中,給予學生全面的指導和過程監控。最后,在任務檢查評價以及歸納總結階段,各小組需要上交完整的程序代碼、模塊流程圖以及功能說明文檔,教師挑選小組進行成果展示,組織學生對學生任務進行互評、查錯,當學生互評完成后,教師對學生任務進行點評,肯定學生實現任務的采用的新方法并提示學生任務中出現的普遍問題。

2.3 課程設計教學方法的改革

工程項目教學法由以教師為主體轉變為以學生為主體,由以課本為中心轉變為以“項目”為中心,由以學習理論知識為中心轉變為以實際操作為中心,其實在一定程度上就是CDIO教育理念所提倡的在工程基礎知識、個人能力、人際團隊能力和工程系統能力四個層面上進行綜合培養的教學模式。例如我們在C語言教學中可以采用任務驅動教學方法。學習情境采用任務驅動法進行實施,每位學生的每項工作任務必須正確完成,才能進行到下一個任務,在工作任務的驅動和全程任務考核評價的監控下,培養學生作風嚴謹和堅持不懈的職業責任感。另外還可以采用自學法。C語言程序的構成初步理解比較難,教材上列舉簡單的例子,教師在課堂也講授一些例子,學生不一定能夠理解,需要慢慢適應,因此要求學生課后自學,教師進行指導。再者,項目教學法,即先練后講,先學后教,強調學生的自主學習,主動參與,從嘗試入手,從練習開始,調動學生學習的主動性、創造性、積極性等,學生唱“主角”,而老師轉為“配角”,實現了教師角色的換位,有利于加強對學生自學能力、創新能力的培養。

2.4 課程設計考核方式的改革

基于CDIO工程教育理念的課程設計的改革,主要目的是實現學生對工程系統的構思、設計、實施和運作,建立以往教學模式中缺乏的工程價值觀,激發學生的學習興趣,轉變學生的學習態度,培養學生的個人能力,將項目設計考核納入綜合評定中,打破單一傳統考核方式,做到不僅考理論,同時還要考實際能力。因此,基于以上原則,采用期末考核與過程考核相結合的方式。過程考核也就是項目考核,每完成一個項目,就要作出相應的評價,通過提高過程考核所占比例,有利于激發學生的學習興趣,提升學習效果,更能體現“以學生為主,以教師為輔,以能力為根本”的指導思想。其中,過程考核占課程總分的60%,結果考核占課程總分的40%。過程考核由教師評價、學生自評價以及小組互評三部分組成。通過學生自評,可以讓學生體驗到自身的存在對他人和對社會的價值;通過互評,可以培養學生傾聽、尊重、分享、悅納的情感態度。

3、結束語

本文提出的基于CDIO工程教育模式的C語言課程設計的改革,打破以往傳統課程設計的教學模式,能夠較好地滲透CDIO“構思—設計—運行—實現”的指導思想,通過案例和項目將知識點融入到教學當中,按照項目化的要求設計標準化的授課教案,以項目經驗為學習目標,注重培養學生的學術能力、職業能力以及團隊協作能力。實踐證明,課程設計的改革取得較好的成果,學生普遍反映課程設計效果有很大提高。

參考文獻:

[1] 王碩旺,洪成文.CDIO美國麻省理工學院工程教育的經典模式:基于對CDIO課程大綱的解讀[J].理工高教研究2009(28)4:116-119.

[2] 于波,李陽陽.CDIO工程教育模式在Windows CE嵌入式系統教學中的應用研究[J].大慶社會科學,2010(6):145-147.

[3] 顧佩華,沈民奮,陸小華 譯.重新認識工程教育:國際CDIO培養模式與方法[M].北京:高等教育出版社,2009.

c語言課程范文3

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

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

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

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

1 轉變教學理念

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

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

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語言程序設計網絡教學平臺??梢园颜n程教學大綱、教案、多媒體課件、教學錄像、綜合實例庫、習題庫、學習參考資料、模擬考試系統等教學資源全部上網,通過這個網絡教學平臺,學生可以瀏覽、下載學習資料,也可以提交電子作業,在線提問題,老師在線輔導和答疑等,為學生自主學習提供強大的網絡支持。

4 師資隊伍建設

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

5 考核評價體系

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

6 結論

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

參考文獻

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

c語言課程范文4

【關鍵詞】c語言課程 教學資源 資源建設 信息技術

前言:伴隨著改革開放的不斷深入,我國在步入二十一世紀之后,教育事業的發展取得了長足的進步。而教育事業快速發展的主要原因便在于人們思想意識的不斷改變。經濟全球化時代的到來,促進了信息化進程逐漸加快。而IT作為一個為適應時展的行業,在社會各界的強烈要求之下逐漸形成。而作為培育計算機專業性人才的基本教材《c語言程序設計》應該發揮更大的作用,但c語言課程的教學資源不能局限于此。因此,對c語言課程教學資源建設研究有著鮮明的現實意義。

一、c語言課程教學現狀分析

c語言課程作為一種基本的教育課程可以說是計算機專業學生最先接觸到的專業性書籍。而c語言課程作為“數據結構”課程與“軟件工程”課程的先導課,對于促進學生學習有著重要的現實意義。但是就目前的發展情況來說,C語言課程教學存在很多的問題,對學生學習該類課程帶來了極大的影響。接下來,本文將會結合現階段的教學實際情況,對C語言教學當中存在的問題進行如下總結:

(一)教學內容的不全面

就C語言教學來說,其基本教學載體為《C語言程序設計》教材,通過對于該本教材的內容研究筆者發現,這本教材當中的基本內容包含了程序設計基本語法、數據類型、數據計算、程序設計基本語句、函數等。這就表明該本教材當中的內容是比較豐富的,但是在現實的教學活動當中,由于課時較少等其它原因,使得C語言的教材教育不能全部的進行講解,大部分的教師往往都是將《C語言程序設計》教材當中的語法語義部分單獨剝離出來進行教學。這就拋棄了其它大部分的教學內容,同時這種方法也使得教學內容不盡全面,而其內容較為淺顯則是不可避免的問題之一[1]。

(二)教學方式方法單一

在現階段的C語言教學活動當中,大部分教師仍然在采用傳統的教學方式。在傳統教學方式的長期影響之下,教師認為自己應該作為課堂的主體,發揮主導地位。就計算機專業教育來說,其教育內容大部分都是十分抽象的東西,類似于傳統的一根粉筆、一塊黑板的教學方法其最終所起到的作用并不明顯。即使在以上方法當中加入多媒體教學。但是因為教師仍然在其中占據著主要的地位,因此使得學生往往會產生這樣的問題“老師講的都懂、教學例題也懂,但是就是不會編程”。這是現階段教育者急需解決的問題之一[2]。

(三)考核方式傳統

隨著各大、各等級教育機構紛紛降低了教育門檻,使得生源數量不斷增加。就大學教育來說,其一個班級將會擁有很多的學生,這就使得大學教育的最終考核制度一般采用試卷的形式。但是這種傳統的考核方式也只是考察學生的知識掌握情況。并不能對學生解決實際能力做出最終的評判。并且在考核當中缺少學生自我評價機制。

綜上所述,我們應該結合現實的情況,提出合理的解決方案,切實的解決現實中存在的問題,針對現有C語言傳統教育資源嚴重不足的問題,應該開發多層次的教學資源,促進學生更好的發展。

二、c語言課程教學資源建設

(一)電子教案建設

電子教案是教師的主要輔助教學用具,內容雖然言簡意賅,但是卻包含了教師的一些基本思想。對于學生來說具有鮮明的教育意義。為彌補現階段教育資源的不足,可以將教師教案以電子的形式進行傳播。雖然教育的主體應該是學生,但是我們同樣不能忽略了教師的作用。例如教師的眼界與思維就是學生需要借鑒的地方[3]。

(二)試題庫

雖然我們認為傳統的試卷考核方式存在一定的局限性,但是試卷考核的方式也是最為有效的理論知識考核方式。每一套試卷都不是隨意為之的,其中的每一道試題都具有著鮮明的意義。都是編輯者的智慧所在。而為彌補教學資源的不足,則可以建立一個試題庫,收集各個階段的試題,幫助學生進行查缺補漏。而對于一些“吃不飽”的學生來說,則可以收集一些軟件設計大賽當中所涉及到的知識。例如“藍橋杯”等[4]。

(三)網絡資源建設

鑒于現階段互聯網技術十分發達,因此可以基于互聯網平臺建立一個相對應的C語言教學網絡平臺,實現遠距離的交流與實時的在線學習。網絡教學綜合平臺按功能分為了精品課程、研究型教學和教學資源中心。在這個系統里,教師可以把自己有關課程的所有相關資料上傳,為今后的精品課建設提供了資料保障。并且在此種環境之下,老師對集中出現的問題進行答疑,不必局限于課堂。而學生也可以在網絡平臺之上進行實時的學習。是一種雙贏的教學方法[5]。

結束語:學生是我國經濟建設與社會發展的主要原動力,是我國可持續發展的根本動力。因此,無論我們出于何種原因,處于哪種發展階段,都不能忽視了對于下一代的教育。計算機專業性的人才是信息化時代下必不可少的一個部分。雖然這一專業的產生時間并沒有哲學、法學等專業具有“悠久的歷史”。但卻具有著獨特的存在價值。綜上所述,本文對c語言課程教學資源不足的問題給出了相應解決方案,雖然仍然存在一定的片面性,但是還是希望可以對廣大讀者起到借鑒作用。

【參考文獻】

[1]魯紅英,肖思和,孫淑霞. “C/C++語言程序設計”課程教學改革與實踐[J]. 計算機教育,2013,07:95-98+102.

[2]秦玉平,馬靖善. “C語言程序設計”課程教材建設與教學方法研究[J]. 計算機教育,2010,04:157-160.

[3]蘇小紅,趙玲玲,王甜甜,張宏莉. CS2013指導下的程序設計課程體系設計與精品資源共享課建設[J]. 中國大學教學,2014,05:19-24.

c語言課程范文5

關鍵詞:程序設計;實例教學;錯誤分析;上機實踐

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2008)08-11ppp-0c

1 引言

隨著高等教育事業的不斷發展,教學改革正在逐步深化,給我們的教學工作提出了新的要求。從開設C語言課程以來,我們針對教學中發現的各種問題,不斷學習探索新的教學手段和方法,以求學生得到最好的學習效果。我們在不斷克服傳統教學模式的不足、堅持進行教學改革與探索。

2 分析教學過程中存在的問題

傳統教學模式以書本為中心,采用從概念到概念的注入式教學,關注的是向學生灌輸了哪些知識,造成教學與學生實際脫節,忽視了學生學習潛能的開發。導致學生學不深、學不透、學不懂,甚至不會運用學到的概念去解決實際問題。只能掌握基本概念,不能解決實際問題,不能舉一反三。

在傳統的教學方法中,由于片面地強調和突出教師的主導作用,忽視和壓抑了學生的能動作用;片面地強調知識的傳授與灌輸,忽視了學生創新能力的培養;注重培養“知識型”人才,忽略了“智能型”人才的培養。

傳統的教學方式是教師利用黑板、粉筆、教案等,在一般教室進行授課的一種教學方式,而多媒體輔助教學方式則是在授課過程中利用投影儀、計算機、網絡等多種現代媒體,在多媒體教室進行授課的一種新的教學方式。但是在課件制作上過分強調表現形式,忽略了內容本身,往往造成喧賓奪主,達不到預期的效果;另外在課堂上,教師過分依賴課件演示,忽略與學生溝通,削弱了教師在教學過程中應起的主導作用。

針對以上存在的不足,我們在C語言課程的教學過程中,展開了一系列的教學改革,嘗試采用了實例教學法、形象化比喻、分析常見錯誤和加強上機實踐,并合理使用多媒體輔助教學,取得了良好的教學效果。

3 采用實例教學,增強了學生綜合能力

為了改變傳統教學以書本為中心的注入式教學方式,我們探索采用了實例教學法,通過軟件開發實例,引入算法思想和語法概念。從而促進學生成為教學主體,引導學生進行自主學習、合作學習、研究性學習、探索性學習,增強學生的綜合能力。努力培養和提高學生的思維能力,從而提高教學質量,取得良好的效果。

比如說在講授數組的應用時,要求學生開發一個實例進行成績排序。學生在設計時可能會用到不同的排序算法,然后再一一進行分析,每種算法中存在的優點和不足,在什么情況下采用哪一種算法最好,這樣能加深學生對知識的理解和掌握。

4 形象化比喻,建立清晰概念

比如指針部分的教學,由于概念比較抽象,多數學生感到很難聽懂。我們在引入指針的概念教學時,采用形象生動的比喻來幫助學生理解指針的概念。指針是描述計算機內存的,指針運算是內存地址的運算,很多學生在學習C語言時,由于沒有學過操作系統課程,對內存很陌生。因此在給出指針概念前,先讓學生建立指針與計算機內存單元地址一對應的關系十分重要。教學中可用學生宿舍形象比喻計算機的內存,內存單元相當于宿舍中的每一個房間,“地址”就是內存單元的編號,相當于宿舍的門牌號,內存中存放的數據,相當于各房間的學生。明確給出指針就是首地址。在講述“指針變量”時,可以首先給出指針也是一個變量,只是這個變量中存放的是另一個變量的地址(即存放的是指針)。然后用“傳達室”作比喻。傳達室也是宿舍中的一個房間,只是住在那里的人比較特別,他知道哪個房間里住的是哪些人。在講到“直接訪問”和“間接訪問”時,用傳達室這個比喻很容易讓學生明白。如知道門牌號,直接找到學生,相當于“直接訪問”,如果通過傳達室查詢到門牌號,再找人,相當于“間接訪問”。通過這種生活中的形象比喻,學生能夠很快接受指針的相關知識。

5 分析常見錯誤,強化理解

對于C語言初學者來說往往出了錯還不知怎么回事。比如輸入數據的形式與要求不符。用scanf函數輸入數據,應注意如何組織輸入數據。假如有以下scanf函數:

scnaf("%d%d\n", &a,&b);

若按下面的方法輸入數據:

3 4L

這時會出問題,因為對scanf函數中格式字符串中除了格式說明符外,對其他字符必須按原樣輸入。因此,應按以下方法輸入:

3 4\nL

另外,比如指針變量初始化常見錯誤:

(1)未初始化錯誤:定義了一個指針變量后,系統便給該指針變量在內存中分配一個地址單元。該地址單元中存放著一個隨機的數,不能確定該指針指向何時地址。如果此時對指向的區域進行寫操作,便有可能破壞系統的某種設置,結果使系統癱瘓。

例如:int *ip;*(ip)=100;

上述語句中指針變量ip因沒有初始化,而被隨機地指向內存單元中的某個地址。由于在執行語句*ip;后ip的內容是未知的,當程序將100賦值給一個沒有確定指向內存的指針ip,而使得在內存的某一未知地址被寫入100;雖然這個程序很小,所占的內存小,問題不明顯,也能夠得到正確的答案,但實質上它卻隱含著一個致命的錯誤。這是因為隨著程序的增大,很有可能訪問到致命的地址單元;如果指針變量中的不定值落到了系統數據區,由于*(ip)=100;的寫入操作可能覆蓋內存單元中的系統數據區,將會導致計算機系統工作區域內有用數據的破壞,引起數據段、操作系統的損毀,造成機器運行失常,甚至“死機”。未初始化的指針稱為“野指針”,它最不顯眼,卻最具破壞性和危險性。

(2)混淆數組名與指針變量的區別。

int i,a[8];for(i=O;i

C語言中約定,指針是一個變量,取地址為其值;數組名是一個指針,在系統為數組分配存儲單元時確定,是一個指針常量。該指針的值是該數組的首元素的地址值。數組名由于是常量,所以不能自增自減,也不能在賦值語句中作左值。上例程中企圖通過a的改變使指針下移,每次指向欲輸入數據的數組元素。它的錯誤在于不了解數組名代表的是數組首地址,是一個地址常量,而地址常量的值是不能改變的,不能用a++。應該用指針變量指向數組元素。上例程可改為:

int i,a[8],*p;

p=a;

for(i=O;i

scanf("%d",p++);

另外int (*p)[4]與int *p[4]的區別。前者的p表示的是一個指針變量;后者的p表示是的數組名,是一個指針常量。

(3)指針賦值帶來的內存遺漏動態內存分配。C語言雖然可以方便地實現任一數據塊的隨機分配,但這種操作很可能導致“內存遺漏”。在程序的執行過程中,函數體內的局部變量在函數結束時自動消亡。于是,很多學生認為,在函數結束時,函數體內定義的指針消亡了,它所指的動態分配的內存也將被釋放。這種理解是錯誤的,雖然指針消亡了,但它所指向的內存并沒有被釋放。編程中,忘記被釋放內存是十分危險的。含有這種錯誤的函數每被調用一次,就會為指針變量分配一定大小的內存空間,當內存空間使用完以后,系統不會自動釋放內存空問,而出現對同一指針變量的多次動態分配,在內存中產生一系列無法釋放的“無效內存塊”,由于這部分內存空間不能再被該程序訪問,同時也不能被其后任何程序訪問,因此,出現了內存空間的“丟失”,而且這種內存塊會隨著程序運行次數的增多大量“繁殖”,最終導致內存空間的耗盡。

例如:int *q1=(int *)malloc(10);int *q2=(int *)malloc(10);q1=q2;free(q1);

這個程程序段中用了兩個malloc()函數,卻只用了一個free()函數,這就造成了內存泄漏。值得注意的是,如果此時用free()函數釋放q2,程序仍然不對,這是因為q2所引用的內存已被q1釋放,但是最初由q1所引用的內存已經無法釋放了。該內存空間成了“無效內存塊”,內存空間“丟失”了;如果這個程序段被反復調用,內存愈來愈緊張,最終“死機”。正確的做法是當一個指針賦給另一個指針前,先用free()釋放所持有的內存空間,使這部分空間可以由系統重新支配,即應在賦值語句前調用free()函數。上述程序段應該改為:

int *p1=(int *)malloc(10);

int *p2=(int *)malloc(10);

free(p1);

p1=p2;

free(p1);

6 加強上機實踐

C程序設計是一門實踐性很強的課程,既要求掌握概念,又要求動手編程,且上機調試運行才能夠真正理解掌握。特別如指針的使用實在太靈活,對大多數學生而言,在實際編程中很容易出錯,而且這種錯誤往往難以發現。上機實驗是程序設計的一個步驟,是教學的一個重要環節,是對教學內容的驗證、補充。同時實驗課是學生獨立操作的課程,只有在實驗課內才真正體現了學生的主導地位,發揮學生的創造力。所以針對容易出錯的地方,必須要求學生大量上機調試、驗證,以弄清一些細節,并積累經驗。

7 結束語

綜上所述,在C程序設計課程的教學中,不僅要注意理論教學完整連貫、深入淺出,還要增強實例分析、錯誤分析,并與實踐緊密結合,讓同學們學得有趣、有勁、有用、有成,同時要注重自學能力的培養,為后續課程的學習打下堅實的基礎。

參考文獻:

[1]譚浩強. C 語言設計[M](第二版). 北京:清華大學出版社,2003.

[2]林鈞海,田滄海. C 語言高級實用編程技巧[M].北京:電子工業出版社,1999.

c語言課程范文6

關鍵詞:職業院校;c語言設計;教學方式;教學體會

C語言設計課程是很多高校計算機專業的專業基礎課,本課程不僅要求學生掌握一門高級程序設計語言,還要為培養學生良好的程序設計打下堅實的基礎。但是在教學過程中學生對繁多的數據感到困難。很多學生感覺c語言難學、難懂,對解決實際問題編制應用軟件時無從下手,對編程能力和調試程序的能力不夠,這樣就給初學的學生帶來不少的困難。所以很多學生對這門課程產生厭學心理,為此,老師必須根據C程序設計這門課本身的特點及教學對象的具體情況來共同探討教學方法的改進和實踐。

一、注重能力的培養,激發學生的學習積極性

隨著經濟的發展和科技的進步,社會對人才素質提出了更高的要求。在人才培養上各高校重視能力的培養,開始實施理論教學和實踐教學的配套改革,進一步加強實踐教學,加強學生實踐能力、創新能力的培養。

1 強化實踐,注重能力的培養

在課程的教學過程中,以實用性、熟練性為基本要求,重視學生分析問題和解決問題能力的培養,強調程序設計的訓練。學生只有通過大量的練習,才能真正掌握語言知識,逐步理解和掌握程序設計的思想和方法。并采用綜合訓練的方式,幫助學生真正掌握程序設計的思想和方法,運用語言解決實際問題。整個過程以學生獨立完成為主,教師只提供必要的輔導。不但可以使學生在學習上得到充分的發展,培養綜合運用所學知識的能力、問題求解和編程能力,還能夠培養學生的自主學習能力和探索創新的能力。

2 教學應注意方式方法,激發學生的興趣

實際教學過程中,學生由于以前沒有接觸過程序設計的內容,普遍認為c程序設計太抽象、不容易理解,更有人認為學習C程序設計已經沒有必要,直接學習C++程序設計就可以了。其實,這些現象說明了學生對這門課程認識的程度不夠。所以,為了使初學者能盡快地掌握,教師要采取適當的教學方式,激發學生的學習興趣。

3 學習興趣的培養

C語言是一門涵蓋多學科知識的計算機課程,基本概念多,信息含量大,僅靠有限的課堂教學,學生難以學到其豐富的內容,所以應更多地要求學生在課前預習,課后練習和復習,養成自學習慣,這是解決問題的根本方法。如果沒有興趣和愛好,要做到這一點是不太可能的。要想培養學生的興趣和愛好,首先要從樹立學生的信心人手。在教學初期,多舉一些簡單的實例或結合課程的進度,布置一些簡單的編程作業,讓學生在上機課中進行操作。通過完成這些簡單的編程讓他們產生一種成就感,一種學習的信心。要培養學生的興趣,還需要讓學生懂得C語言課程在生活中的實用性??梢岳蒙钪杏龅降膯栴},如學生成績排序、學生運動會的賽程安排、比賽記分等,還可利用學習其他課程時,如數學中的一些例子等等,來達到培養學生興趣的目的。

二、注重課程教學的內容,加強對學生程序設計思維的訓練

《C語言程序設計》課程不僅僅是一般意義上的知識傳授,還要讓學生掌握程序設計的基本方法,對學生進行邏輯思維能力的培養。在實際的教學過程中,我們發現有些學生平時學得很認真,對語法、語句等細節也很熟悉,但碰到稍微復雜的編程則無從下手。教師在教學過程中要樹立正確的教學思想,加強學生的程序設計思維訓練,幫助學生順利地實現思維方式的轉變,而不能單純地講授語言的語法、語義、語用,應該將復雜枯燥的語法知識分解到一個個生動實用的程序實例中。對于從未受過設計訓練的初學者來說,可能會感到無從下手,對此,教師應該有意識地加強這種思維方式的訓練,通過講授一些常用算法、典型算法,如記數、累加、連乘、兩數交換、求最大(小)值、迭代、排序、分類等為以后編寫程序、軟件設計奠定基礎,同時典型算法熟練的掌握,也可增加學生學習的信心并提高學習的興趣,培養學生的思維能力。

三、加強實踐環節的教學管理,培養學生的動手能力

1 實行實踐教學形式的多樣化。上機操作,教師通常照著書本的例子進行驗證,這樣無法增加學生的成就感,使學生覺得很無聊。在《C語言程序設計》上機實驗教學中,除傳統的課堂實驗外,應開展課程設計、典型程序分析與設計等實踐環節,這樣才有利于培養學生的創新能力。

2 在完成課內的基本實驗外,還可以增加一些特色實驗。由教師精心設計一些具有較強的實用性、綜合性和一定創新性的題目,不向學生具體提出要求,只提出需實現的功能,在學生完成的過程中,教師只提供必要的輔導。這樣的實驗可以提高學生的創新思維,加強學生的實踐訓練,拓寬學生的知識面,提高學生的創新設計能力與動手實踐能力,提高學習興趣與教學質量,適應社會對人才的需求。

亚洲精品一二三区-久久