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

程序調試技術在C語言函數教學中的應用

2014-07-02 01:31:44張秀美趙旭霞
教育教學論壇 2014年11期
關鍵詞:教學學生

張秀美,趙旭霞

(中國石油大學,北京 102249)

程序調試技術在C語言函數教學中的應用

張秀美,趙旭霞

(中國石油大學,北京 102249)

函數是C語言程序的基本組成單位,在C語言教學中必須使學生很好地掌握函數的概念、定義和調用等內容。本文針對學生在學習函數過程中出現的一系列問題,提出在函數教學過程中使用程序調試技術加強對函數調用過程的演示,從而使學生更好地掌握函數的內容,達到了較好的教學效果。

C語言;函數;調試技術

C語言是一門函數式語言。學習C語言編程必須學好函數的使用。筆者在多年的教學過程中,發現學生在學習函數的過程存在一些問題。雖然這些內容教師在課堂上都十分認真地講解,但有些學生還是覺得內容很抽象,不容易理解。程序調試技術一般用在程序查錯上。在程序調試的過程中,可以看到程序的執行過程,包括函數的調用過程、形參實參的傳遞,變量的內存地址等內容,這樣可以很直觀地給學生講解函數的相關內容,因此筆者在函數的教學中使用了程序調試技術,使教學內容不再抽象,而是具體化,使學生能夠更好地掌握相關知識,達到了較好的結果。

程序調試技術在函數教學中的具體使用:

1.通過調試技術直觀地查看函數的調用過程。首先設計一個簡單的使用函數的實例,jc函數實現計算n的階乘。在main函數中通過函數調用來求任意一個整數的階乘。double jc(int n),{double mul=1;//……2,int i;for(i=1;i<=n;i++)mul*=i;return mul;}//……..3;int main(),{int num=5;double r;r=jc(n);//…….1,printf("jiecheng is:%. 0f",jc(num));return 0;}。為了給學生演示函數調用的過程,在標號1語句處設置斷點,然后選擇go(F5)菜單調試執行該程序,則程序執行到斷點處停下,然后進行單步調試,在debug工具欄中選擇Step into(F11)項,跟蹤進到jc函數內部查看,系統的執行箭頭就會從原先1的位置跳轉到標號2的位置去,可以通過單擊debug工具欄中CallStack項打開CallStack對話框查看調用細節,如圖1所示。圖中顯示了main函數調用了jc函數,實參的值是10。繼續單步調試,系統執行jc函數的代碼,執行到3處后,系統的執行箭頭就會從標號3的位置跳回到標號1的位置去,表示函數調用完成,此時CallStack對話框也發生了變化,如圖2所示。這樣學生就很清晰地看到了程序運行過程中函數的調用過程,加深了記憶和理解。

圖1 jc函數被調用后

圖2 jc函數返回后

2.通過程序調試技術了解函數參數傳遞過程和局部變量的概念。在函數教學中,形參和實參的關系往往是學生容易出錯的地方。形參和實參是兩個不同的變量,實參的作用就是給形參傳值。而函數的形參以及函數內定義的變量都是函數的局部變量,只能在該函數中使用。而在調試中通過查看變量的值可以很清晰地看到這些知識的作用,則比較生動具體。在上例中,程序在斷點停下后,選擇debug工具欄中的watch項,打開watch對話框,在對話框中輸入num和n,如圖3所示,此時num的值是5,而由于jc函數還沒有被調用,形參n還不存在。然后選擇Step into(F11)項,跟蹤進到jc函數內部查看,注意觀察watch對話框的變化,發現n的值變為5,而num失效了,如圖4所示。這說明程序的執行進入到jc函數,形參變量n被創建并從實參獲得了值5。而num是main函數的局部變量,在其他函數中如jc函數中是無法訪問的,從而失效。

圖3 jc函數調用前的實參和形參

圖4 jc函數調用后的實參和形參

3.通過調試技術加強對指針做函數參數的內容的理解。在講解函數的過程中,指針做參數是重點和難點之一。教師在教學過程中強調指針做形參,可以突破局部變量的限制而訪問到其他函數的局部變量,這在以后的函數使用中經常用到。但學生覺得很難理解。筆者通過調試技術運行一個實例,查看實際的運行過程,來加深學生對內容的理解。首先設計一個簡單的指針做參數的實例。void fun(int * q){*q=10;//…….2}int main(){int n=89;int * p=&n;fun(p);//…….1printf("n=%d\n",n);return 0;},在標號1處設置斷點。調試運行該程序,在斷點處停下,p是fun函數的實參。此時選擇debug工具欄中的watch項,打開watch對話框,分別輸入p和&n,如圖5所示,它們值相同,都是0x0012ff44,表示n的內存地址。然后選擇Step into項跟蹤進入fun函數內部執行,由于p和n是main函數的局部變量,在fun函數內部無法訪問,它們的值失效。然后,在watch對話框中再輸入q和*q,則可以看到如圖6的內容。說明形參q從實參p獲得了值0x0012ff44,即q也保存了main函數中n的地址,而*q的意思是通過q保存的地址訪問該地址所表示的變量。繼續單步執行,返回到main函數執行,此時查看n的值,果真變為了10。即在fun函數內部通過指針變量改變了main函數中局部變量的值。

圖5 fun函數調用前

圖6 fun函數調用后

筆者在實際的函數教學中采用了程序調試技術,讓學生直觀地看到了程序的運行過程,從而加深了學生對函數調用過程、參數傳遞、指針做參數等內容的理解。學生反應良好。計算機技術總是在不斷的發展,教師還要不斷地探索更好的教學方法,使C語言課程的教學質量進一步提高。

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

[2]王濤偉,楊秀金.C++函數的參數傳遞和返回值問題的教學研討[J].吉林大學學報(信息科學版),2005,(23):70-74.

[3]徐曉.一種C語言函數部分的新教學方案 [J].計算機教育,2007,(9):56-58,13.

G642.4

A

1674-9324(2014)11-0085-02

猜你喜歡
教學學生
快把我哥帶走
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
如何讓高中生物教學變得生動有趣
甘肅教育(2020年12期)2020-04-13 06:25:34
《李學生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學生
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
學生寫話
學生寫的話
跨越式跳高的教學絕招
體育師友(2013年6期)2013-03-11 18:52:18
主站蜘蛛池模板: 91无码视频在线观看| 亚洲欧美自拍中文| 99热这里只有免费国产精品| 久久久精品久久久久三级| 国产区福利小视频在线观看尤物| 综合五月天网| 成人噜噜噜视频在线观看| 欧美精品成人| 国产成人在线无码免费视频| 狠狠v日韩v欧美v| 无码久看视频| 久久超级碰| 久久亚洲国产最新网站| 国产呦精品一区二区三区网站| 日韩在线视频网| 91国内视频在线观看| 国产成人你懂的在线观看| 欧美在线天堂| 三级欧美在线| 狠狠做深爱婷婷久久一区| 91视频99| 婷婷丁香色| 国产导航在线| 男人的天堂久久精品激情| 欲色天天综合网| 夜夜操天天摸| 无码一区18禁| 白丝美女办公室高潮喷水视频| 亚洲无码电影| 97在线观看视频免费| 欧美成人免费午夜全| 亚洲欧州色色免费AV| 国产福利大秀91| 少妇精品在线| 亚洲视频欧美不卡| 又粗又硬又大又爽免费视频播放| 毛片在线播放网址| 老司机精品久久| 免费人成视频在线观看网站| 国产亚洲男人的天堂在线观看| 国产乱视频网站| 伊人无码视屏| 午夜视频在线观看区二区| 五月丁香在线视频| AV网站中文| 毛片最新网址| 2022国产91精品久久久久久| 国产91精品调教在线播放| 精品三级在线| 欧美一级黄色影院| 青青草一区二区免费精品| 9966国产精品视频| 98超碰在线观看| 国产成人精品午夜视频'| 麻豆国产精品一二三在线观看| 超碰精品无码一区二区| 久久精品国产在热久久2019| 日a本亚洲中文在线观看| 在线观看亚洲成人| 99久久精品国产精品亚洲| a天堂视频| 亚洲伊人久久精品影院| 五月激情综合网| 欧美精品一区在线看| 日本日韩欧美| 欧美伊人色综合久久天天| 91小视频在线播放| 狠狠色噜噜狠狠狠狠奇米777| 99久久国产综合精品2020| 欧美综合区自拍亚洲综合绿色 | 55夜色66夜色国产精品视频| 一区二区三区四区在线| 国产成人a在线观看视频| 亚洲无码电影| 男女男免费视频网站国产| 国产一区二区三区在线无码| 国产91线观看| 久久久久国产精品嫩草影院| 尤物特级无码毛片免费| 国产成人啪视频一区二区三区| 在线一级毛片| 高清欧美性猛交XXXX黑人猛交|