国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2016-11-21 11:01王洋
教育教學(xué)論壇 2016年42期
關(guān)鍵詞:非計算機(jī)專業(yè)C語言程序設(shè)計

王洋

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

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

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

一、引言

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

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

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

1.使用Memory和Watch探析簡單變量。

對于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,它對應(yīng)的十進(jìn)制數(shù)為:-1,這樣可以使學(xué)生理解負(fù)數(shù)補(bǔ)碼的作用。

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

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

char string[10] =”bbbbb”;

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

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

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

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

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

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

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

三、結(jié)語

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

參考文獻(xiàn):

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

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

[3]謝紅霞,羅國明,吳紅梅.基于程序調(diào)試的C程序設(shè)計教學(xué)與實踐[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

猜你喜歡
非計算機(jī)專業(yè)C語言程序設(shè)計
非計算機(jī)專業(yè)計算機(jī)基礎(chǔ)教學(xué)的總結(jié)與思考
高校非計算機(jī)專業(yè)計算機(jī)網(wǎng)絡(luò)基礎(chǔ)教學(xué)改革探究
基于能力培養(yǎng)的“C語言程序設(shè)計”教學(xué)改革研究
大專院?!癈語言程序設(shè)計”課程建設(shè)改革
以“學(xué)生為中心”的《C語言程序設(shè)計》教學(xué)設(shè)計探究
程序設(shè)計課程中計算思維和應(yīng)用能力培養(yǎng)問題研究
淺談《C語言程序設(shè)計》課程的教學(xué)改革
《C語言程序設(shè)計》課程的教學(xué)改革與實踐
非計算機(jī)專業(yè)VF課程優(yōu)化教學(xué)研究
河南高校非計算機(jī)專業(yè)學(xué)生計算機(jī)能力模型研究