亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        程序調(diào)試技術(shù)在C語(yǔ)言函數(shù)教學(xué)中的應(yīng)用

        2014-07-02 01:31:44張秀美趙旭霞
        教育教學(xué)論壇 2014年11期
        關(guān)鍵詞:函數(shù)調(diào)用對(duì)話框函數(shù)

        張秀美,趙旭霞

        (中國(guó)石油大學(xué),北京 102249)

        程序調(diào)試技術(shù)在C語(yǔ)言函數(shù)教學(xué)中的應(yīng)用

        張秀美,趙旭霞

        (中國(guó)石油大學(xué),北京 102249)

        函數(shù)是C語(yǔ)言程序的基本組成單位,在C語(yǔ)言教學(xué)中必須使學(xué)生很好地掌握函數(shù)的概念、定義和調(diào)用等內(nèi)容。本文針對(duì)學(xué)生在學(xué)習(xí)函數(shù)過程中出現(xiàn)的一系列問題,提出在函數(shù)教學(xué)過程中使用程序調(diào)試技術(shù)加強(qiáng)對(duì)函數(shù)調(diào)用過程的演示,從而使學(xué)生更好地掌握函數(shù)的內(nèi)容,達(dá)到了較好的教學(xué)效果。

        C語(yǔ)言;函數(shù);調(diào)試技術(shù)

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

        程序調(diào)試技術(shù)在函數(shù)教學(xué)中的具體使用:

        1.通過調(diào)試技術(shù)直觀地查看函數(shù)的調(diào)用過程。首先設(shè)計(jì)一個(gè)簡(jiǎn)單的使用函數(shù)的實(shí)例,jc函數(shù)實(shí)現(xiàn)計(jì)算n的階乘。在main函數(shù)中通過函數(shù)調(diào)用來求任意一個(gè)整數(shù)的階乘。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;}。為了給學(xué)生演示函數(shù)調(diào)用的過程,在標(biāo)號(hào)1語(yǔ)句處設(shè)置斷點(diǎn),然后選擇go(F5)菜單調(diào)試執(zhí)行該程序,則程序執(zhí)行到斷點(diǎn)處停下,然后進(jìn)行單步調(diào)試,在debug工具欄中選擇Step into(F11)項(xiàng),跟蹤進(jìn)到j(luò)c函數(shù)內(nèi)部查看,系統(tǒng)的執(zhí)行箭頭就會(huì)從原先1的位置跳轉(zhuǎn)到標(biāo)號(hào)2的位置去,可以通過單擊debug工具欄中CallStack項(xiàng)打開CallStack對(duì)話框查看調(diào)用細(xì)節(jié),如圖1所示。圖中顯示了main函數(shù)調(diào)用了jc函數(shù),實(shí)參的值是10。繼續(xù)單步調(diào)試,系統(tǒng)執(zhí)行jc函數(shù)的代碼,執(zhí)行到3處后,系統(tǒng)的執(zhí)行箭頭就會(huì)從標(biāo)號(hào)3的位置跳回到標(biāo)號(hào)1的位置去,表示函數(shù)調(diào)用完成,此時(shí)CallStack對(duì)話框也發(fā)生了變化,如圖2所示。這樣學(xué)生就很清晰地看到了程序運(yùn)行過程中函數(shù)的調(diào)用過程,加深了記憶和理解。

        圖1 jc函數(shù)被調(diào)用后

        圖2 jc函數(shù)返回后

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

        圖3 jc函數(shù)調(diào)用前的實(shí)參和形參

        圖4 jc函數(shù)調(diào)用后的實(shí)參和形參

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

        圖5 fun函數(shù)調(diào)用前

        圖6 fun函數(shù)調(diào)用后

        筆者在實(shí)際的函數(shù)教學(xué)中采用了程序調(diào)試技術(shù),讓學(xué)生直觀地看到了程序的運(yùn)行過程,從而加深了學(xué)生對(duì)函數(shù)調(diào)用過程、參數(shù)傳遞、指針做參數(shù)等內(nèi)容的理解。學(xué)生反應(yīng)良好。計(jì)算機(jī)技術(shù)總是在不斷的發(fā)展,教師還要不斷地探索更好的教學(xué)方法,使C語(yǔ)言課程的教學(xué)質(zhì)量進(jìn)一步提高。

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

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

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

        G642.4

        A

        1674-9324(2014)11-0085-02

        猜你喜歡
        函數(shù)調(diào)用對(duì)話框函數(shù)
        基于C語(yǔ)言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)
        二次函數(shù)
        第3講 “函數(shù)”復(fù)習(xí)精講
        二次函數(shù)
        函數(shù)備考精講
        正?;謴?fù)虛擬機(jī)
        Bootlace Worms’Secret etc.
        基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測(cè)方法*
        探討C++編程中避免代碼冗余的技巧
        Unity3D項(xiàng)目腳本優(yōu)化分析與研究
        亚洲精品国偷自产在线99正片| 一区二区三区日本高清| 女优av一区二区三区| 农村欧美丰满熟妇xxxx| 99视频这里有精品| 蜜桃av观看亚洲一区二区| 国产三区二区一区久久| 日韩精品视频一区二区三区 | 国产亚洲精品久久午夜玫瑰园 | 日本免费视频一区二区三区| 五月av综合av国产av| 久久精品亚洲中文字幕无码网站| 国产乱人伦真实精品视频| 国产美女一区三区在线观看| 国产一区二区精品久久岳| 四川丰满少妇被弄到高潮| 国产亚洲欧美在线播放网站| 中文字幕在线亚洲精品一区| 夜夜爽日日澡人人添| 8888四色奇米在线观看| 国产精品爽爽VA吃奶在线观看| 国产主播性色av福利精品一区| 亚洲加勒比久久88色综合| 三上悠亚免费一区二区在线| 亚洲免费人成网站在线观看| 国产精品一区二区三区自拍| 色屁屁www影院免费观看入口| 99久久国产亚洲综合精品| 久久精品av在线视频| 亚洲va欧美va日韩va成人网| 中文乱码人妻系列一区二区 | 日韩欧美中文字幕不卡| 女同性恋一区二区三区四区| 日韩熟女系列中文字幕| 情侣黄网站免费看| 亚洲国产成人精品激情| 国产三级av大全在线爽| 人妻夜夜爽天天爽三区| 国产精品毛片无码久久| 麻豆三级视频网站在线观看| 无码中文字幕人妻在线一区|