999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言課程教學的改革與探索

2008-12-31 00:00:00劉瑞芳曾海燕
電腦知識與技術 2008年8期

摘要:針對C語言課程傳統模式教學中的問題,我們進行了改革與探索,建立了新的教學模式。新教學模式采用了實例教學法、形象比喻法等手段,取得了良好的教學效果。

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

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

1 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 4↙

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

3 4\↙

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

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

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

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

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

int i,a[8];for(i=O;i<8;i++) scanf(\"%d\",a++);

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

int i,a[8],*p;

p=a;

for(i=O;i<8;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.

[3](美)A1 kelley,Ira P0h1 語言教程(英文版,第4版) [M]. 北京:機械工業出版社,2004.

[4]嚴尉敏,吳偉民. 數據結構[M]. 北京:清華大學出版社,2002.

主站蜘蛛池模板: 国产SUV精品一区二区6| 国产欧美日韩专区发布| 日韩在线2020专区| 国产精品一区二区不卡的视频| 亚洲一区第一页| 四虎综合网| 婷婷色狠狠干| 午夜色综合| 91国内视频在线观看| 色播五月婷婷| 激情無極限的亚洲一区免费| 亚洲精品午夜天堂网页| 四虎成人免费毛片| 中国丰满人妻无码束缚啪啪| 亚洲欧美国产五月天综合| 制服丝袜国产精品| 狠狠五月天中文字幕| 五月天久久综合| 国产成人午夜福利免费无码r| 夜夜操天天摸| 国产中文一区a级毛片视频| 国产裸舞福利在线视频合集| 国产精品99久久久久久董美香| 91精品国产无线乱码在线| 国产一级毛片网站| 成人免费视频一区| 午夜毛片福利| 中文字幕永久在线看| 在线欧美日韩| 国产成a人片在线播放| 午夜小视频在线| 日韩欧美中文字幕一本 | 国外欧美一区另类中文字幕| 欧美笫一页| 久久频这里精品99香蕉久网址| AV熟女乱| 国产91高清视频| 99一级毛片| 日本免费福利视频| 91亚洲影院| www.亚洲一区| 免费在线看黄网址| 亚洲最大福利网站| 一级毛片在线播放| 一本一道波多野结衣av黑人在线| 67194成是人免费无码| 在线免费无码视频| 香蕉久人久人青草青草| 国产成人精彩在线视频50| 免费网站成人亚洲| 青青青亚洲精品国产| 日韩福利视频导航| 毛片免费高清免费| 国产精品免费露脸视频| 国产亚洲美日韩AV中文字幕无码成人| 日本尹人综合香蕉在线观看| 国产欧美在线观看一区| 久久国产精品77777| 日韩无码视频专区| 性69交片免费看| 操美女免费网站| 亚洲日本一本dvd高清| 亚洲经典在线中文字幕| 女人18一级毛片免费观看| 在线观看热码亚洲av每日更新| 久夜色精品国产噜噜| 国产美女在线观看| 婷婷六月在线| 亚洲精品无码高潮喷水A| 国产精品网址你懂的| 亚洲一区二区三区国产精品 | 99中文字幕亚洲一区二区| 亚洲黄网在线| 99免费视频观看| 国产精品九九视频| 亚洲AV人人澡人人双人| 999福利激情视频| 色婷婷亚洲十月十月色天| 国产精品免费p区| 日a本亚洲中文在线观看| 91极品美女高潮叫床在线观看| 精品国产成人国产在线|