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

淺談?wù){(diào)試技術(shù)在非計(jì)算機(jī)專業(yè)的C語言程序設(shè)計(jì)教學(xué)中的應(yīng)用

2016-11-21 11:01:28王洋
教育教學(xué)論壇 2016年42期

王洋

摘要:“C語言程序設(shè)計(jì)”是一門非計(jì)算機(jī)專業(yè)大學(xué)生必修的專業(yè)基礎(chǔ)課,但在實(shí)際教學(xué)課堂中,對(duì)一些概念如變量的補(bǔ)碼、指針變量、函數(shù)的嵌套調(diào)用與遞歸調(diào)用,學(xué)生普遍反映概念抽象難以理解。針對(duì)這種問題,提出了一種基于Visual Studio 2013調(diào)試工具的教學(xué)方法。通過單步調(diào)試的“慢動(dòng)作回放”,使學(xué)生能夠直觀地看到計(jì)算機(jī)底層所表示的內(nèi)容。經(jīng)過課堂實(shí)踐證明,這種方法實(shí)現(xiàn)起來簡(jiǎn)單、方便,并且可以達(dá)到很好的教學(xué)效果。

關(guān)鍵詞:非計(jì)算機(jī)專業(yè);C語言程序設(shè)計(jì);調(diào)試工具;VS2013

中圖分類號(hào):G642.0 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1674-9324(2016)42-0177-02

一、引言

“C語言程序設(shè)計(jì)”課程對(duì)非計(jì)算機(jī)專業(yè)的理工科學(xué)生來說,是一門非常重要的基礎(chǔ)課程,但相比于其他程序設(shè)計(jì)語言,C語言初學(xué)起來十分困難。其主要原因是:(1)C語言數(shù)據(jù)類型和運(yùn)算符多,表達(dá)式復(fù)雜;(2)初學(xué)者在學(xué)習(xí)過程中暫時(shí)不能使用機(jī)器思維。為了使學(xué)生學(xué)習(xí)好“C語言程序設(shè)計(jì)”這門課程,許多教育工作者對(duì)教學(xué)方法進(jìn)行了深入的探索,積累了豐富的教學(xué)經(jīng)驗(yàn)[1-3]。盡管如此,如何使學(xué)生能更好地掌握C語言程序設(shè)計(jì)仍然值得教育工作者進(jìn)一步探索。本文準(zhǔn)備從調(diào)試的目的和任務(wù)入手,給出若干程序設(shè)計(jì)和調(diào)試的技巧,使學(xué)生更好地掌握C語言程序設(shè)計(jì)。

學(xué)習(xí)調(diào)試之前需要弄清楚兩個(gè)問題:為什么要調(diào)試?怎樣去調(diào)試?從英文單詞debug上可以看出,調(diào)試的本意是“解除程序中的錯(cuò)誤(bug)”。為了能對(duì)程序進(jìn)行查錯(cuò)和改錯(cuò),就有必要對(duì)程序的局部進(jìn)行專門的分析,觀察程序的運(yùn)行過程。這樣做的另一個(gè)好處是輔助程序員對(duì)C語言語法進(jìn)一步地理解。

二、Visual Studio 2013的調(diào)試工具在C語言程序設(shè)計(jì)教學(xué)中的使用

1.使用Memory和Watch探析簡(jiǎn)單變量。

對(duì)于C語言中的如下程序段

int main() {int a = -1;float b = 100.625;return 0;}

通過F10單步跟蹤程序,在執(zhí)行return語句之前,通過在watch窗口輸入&a獲得了變量a的地址,在本例中為:0x0046f890,得到圖1,其內(nèi)容為十六進(jìn)制的FF FF FF FF,它對(duì)應(yīng)的十進(jìn)制數(shù)為:-1,這樣可以使學(xué)生理解負(fù)數(shù)補(bǔ)碼的作用。

在watch窗口中輸入&b獲得了變量b的地址,在本例中為:0x0046f884,得到圖2,其內(nèi)容為十六進(jìn)制的42 C9 40 00,它對(duì)應(yīng)的十進(jìn)制數(shù)為100.625,這樣可以使學(xué)生對(duì)單精度浮點(diǎn)數(shù)的編碼格式有一個(gè)直觀的了解。

2.使用Memory和Watch理解字符串。字符串在C語言中是以字符數(shù)組形式存儲(chǔ)的,并以‘\0作為結(jié)束標(biāo)志。對(duì)于如下代碼段:

char string[10] =”bbbbb”;

通過在Watch窗口獲得的string值為0x0031fe90,則得到字符串的首地址,在Memory中加以查看,結(jié)果如圖3。

在圖中,從0x0031fe90到0x0031fe96處四個(gè)字節(jié)的內(nèi)容分別為0x62,0x62,0x62,0x62,0x62,0x62,十六進(jìn)制的62對(duì)應(yīng)十進(jìn)制的98,而98為字符b的ASCII碼,0為\0的ASCII碼,通過該圖,學(xué)生可以直觀地看到字符在內(nèi)存中是如何以ASCII碼形式存儲(chǔ)的,并且C語言字符串又是如何以‘\0為結(jié)束標(biāo)志的。

3.使用Memory和Watch理解指針。指針和指針變量在C語言程序設(shè)計(jì)教學(xué)中屬于重點(diǎn)和難點(diǎn)。在教學(xué)中,學(xué)生經(jīng)常容易混淆兩者的概念。指針代表變量的地址,指針變量用于存放地址。通過Memory查看內(nèi)存情況,可以使學(xué)生對(duì)地址產(chǎn)生感性的認(rèn)識(shí),對(duì)內(nèi)存分布情況有直觀的印象。對(duì)于如下的代碼:

char ch = ‘b,* p = NULL;p = &ch;

通過在內(nèi)存中查看p的內(nèi)容,可以看到它的值為,正好與ch的地址相同。除上述內(nèi)容外,還可以使用同樣的方法對(duì)結(jié)構(gòu)體和結(jié)構(gòu)體成員,共用體和共用體成員之間的關(guān)系進(jìn)行解析,使學(xué)生對(duì)構(gòu)造類型在計(jì)算機(jī)內(nèi)存中是如何分布的有一定直觀的了解。

4.使用Call Stack查看函數(shù)調(diào)用堆棧。函數(shù)的嵌套調(diào)用與遞歸調(diào)用在教學(xué)中屬于難點(diǎn),學(xué)生對(duì)函數(shù)的調(diào)用順序經(jīng)常感到迷惑,通過VS 2013的Call Stack圖形化工具,可以形象直觀地展示函數(shù)的調(diào)用過程。對(duì)于如下的代碼段:

#include

void funb() {printf("This is funb!\n");}

void funa() {funb();}

int main(){funa();return 0;}

Call Stack工具可以清晰地顯示出函數(shù)a與函數(shù)b的調(diào)用順序,通過逐語句的執(zhí)行,學(xué)生對(duì)函數(shù)嵌套調(diào)用能產(chǎn)生直觀的印象。對(duì)于函數(shù)的遞歸調(diào)用,學(xué)生在學(xué)習(xí)漢諾塔程序時(shí)即使清除遞歸調(diào)用的概念,但對(duì)程序中函數(shù)的調(diào)用過程仍會(huì)產(chǎn)生疑惑,同理,遞歸調(diào)用也可以使用Call Stack工具進(jìn)行演示,通過調(diào)用關(guān)系圖與代碼之間的對(duì)比分析,學(xué)生就可以對(duì)函數(shù)遞歸調(diào)用的調(diào)用順序有所了解。

三、結(jié)語

由于C語言程序設(shè)計(jì)設(shè)計(jì)課程中的有些概念比較抽象,比較底層,不易為非計(jì)算機(jī)專業(yè)的學(xué)生所理解。在使用VS 2013的調(diào)試工具后,可以將這部分內(nèi)容在計(jì)算機(jī)內(nèi)的實(shí)現(xiàn)方法直觀地展示給學(xué)生。本文提出了使用VS 2013調(diào)試工具進(jìn)行C語言程序設(shè)計(jì)輔助教學(xué)的方法,并輔以若干實(shí)例論證此方法,并在實(shí)際教學(xué)過程中得到了證實(shí)。

參考文獻(xiàn):

[1]張玉春,孫大元.C語言程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2013.

[2]孫大元,張玉春.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解析[M].北京:清華大學(xué)出版社,2013.

[3]謝紅霞,羅國明,吳紅梅.基于程序調(diào)試的C程序設(shè)計(jì)教學(xué)與實(shí)踐[J].信息技術(shù),2011,(11):174-176.

Application of Debugging Technique in C Language Programming Teaching of Non-computer Major

WANG Yang

(Jilin University Public computer teaching and research center,Changchun,Jilin ?130012,China)

Abstract:"C programming language" is a required professional course for non-computer major college student,but in the actual teaching in the classroom,some concepts such as variables complement,pointer variables,function of nested calls and recursive calls,Students generally reflect the concept is too abstract to understand.For this problem,This paper proposes a teaching method based on Visual Studio 2013 debugging tools.By step through the slow-motion replay,it makes students able to visually see the content of underlying computer.Through classroom practice proof,this method is simple,convenient and can achieve good teaching effect.

Key words:non-computer major;C programming language;debugging technique;VS2013

主站蜘蛛池模板: 中国国产高清免费AV片| 久久综合九九亚洲一区| av色爱 天堂网| 亚洲福利片无码最新在线播放| 国产精品一区不卡| 老司国产精品视频91| 丰满人妻一区二区三区视频| 亚洲欧洲日产国产无码AV| 视频二区中文无码| 亚洲中文字幕久久精品无码一区| 久久亚洲国产视频| 国产成人精品一区二区三区| 色呦呦手机在线精品| 四虎AV麻豆| 亚洲一区无码在线| 欧美黄网在线| 国产免费久久精品44| 精品无码一区二区三区在线视频| 精品91在线| 欧美爱爱网| 国产成人盗摄精品| 亚洲伊人天堂| 丰满人妻被猛烈进入无码| 毛片一区二区在线看| 原味小视频在线www国产| 色综合激情网| 精品视频一区在线观看| 国产永久无码观看在线| 欧美色伊人| 特级aaaaaaaaa毛片免费视频 | 日韩精品亚洲一区中文字幕| 亚洲欧美日韩视频一区| 夜精品a一区二区三区| 无码精品国产dvd在线观看9久 | 中文字幕无线码一区| 亚洲视频免费在线看| 久久99精品久久久大学生| 免费jjzz在在线播放国产| 色偷偷一区二区三区| 国精品91人妻无码一区二区三区| 国产欧美视频在线| 欧美三级不卡在线观看视频| 在线播放国产一区| 亚洲中文字幕97久久精品少妇| 欧洲成人在线观看| 一本色道久久88| 国产精品视频久| 国产精品尤物铁牛tv | 91久久青青草原精品国产| 国产精品无码久久久久久| 亚洲欧美自拍中文| 亚洲第一中文字幕| 亚洲三级成人| 免费人成在线观看成人片| av天堂最新版在线| 欧美日韩国产在线人| 亚洲欧美日本国产专区一区| 国产成人精品视频一区视频二区| 亚洲欧美在线综合一区二区三区| 农村乱人伦一区二区| 蜜臀AV在线播放| 亚洲成人精品在线| 谁有在线观看日韩亚洲最新视频| 99视频在线看| 欧美中文字幕在线播放| 国产sm重味一区二区三区| 免费高清a毛片| 欧美精品综合视频一区二区| 在线人成精品免费视频| 伊人国产无码高清视频| 毛片一级在线| 亚洲高清无在码在线无弹窗| 毛片网站免费在线观看| 91青青视频| 91伊人国产| 国产啪在线| 国产精品一线天| 国产亚洲精久久久久久久91| 91视频国产高清| 免费不卡在线观看av| 一本大道视频精品人妻| 日韩在线观看网站|