浅谈调试技术在非计算机专业的c语言程序设计教学中的应用

浅谈调试技术在非计算机专业的C语言程序设计教学中的应用摘要:“C语言程序设计”是一门非计算机专业大学生必修的专业基础课,但在实际教学课堂中,对一些概念如变量的补码、指针变量、函数的嵌套调用与递归调用,学生普遍反映概念抽象难以理解。针对这种问题,提出了一种基于VisualStudio2013调试工具的教学方法。通过单步调试的“慢动作回放”,使学生能够直观地看到计算机底层所表示的内容。经过课堂实践证明,这种方法实现起来简单、方便,并且可以达到很好的教学效果。关键词:非计算机专业;c语言程序设计;调试工具;VS2013中图分类号:G642.0文献标志码:A文章编号:1674-9324(2016)42-0177-02一、引言“C语言程序设计”课程对非计算机专业的理工科学生来说,是一门非常重要的基础课程,但相比于其他程序设计语言,c语言初学起来十分困难。其主要原因是:(1)C语言数据类型和运算符多,表达式复杂;(2)初学者在学习过程中暂时不能使用机器思维。为了使学生学习好“C语言程序设计”这门课程,许多教育工作者对教学方法进行了深入的探索,积累了丰富的教学经验[1-3]。尽管如此,如何使学生能更好地掌握C语言程序设计仍然值得教育工作者进一步探索。本文准备从调试的目的和任务入手,给出若干程序设计和调试的技巧,使学生更好地掌握C语言程序设计。学习调试之前需要弄清楚两个问题:为什么要调试?怎样去调试?从英文单词debug上可以看出,调试的本意是“解除程序中的错误(bug”)。为了能对程序进行查错和改错,就有必要对程序的局部进行专门的分析,观察程序的运行过程。这样做的另一个好处是辅助程序员对C语言语法进一步地理解。二、VisualStudio2013的调试工具在C语言程序设计教学中的使用1.使用Memory和Watch探析简单变量。对于C语言中的如下程序段intmain(){inta=-l;floatb=100.625;return0;}通过F10单步跟踪程序,在执行return语句之前,通过在watch窗口输入&a获得了变量a的地址,在本例中为:0x0046f890,得到图1,其内容为十六进制的FFFFFFFF,它对应的十进制数为:-1,这样可以使学生理解负数补码的作用。在watch窗口中输入&b获得了变量b的地址,在本例中为:0x0046f884,得到图2,其内容为十六进制的42C94000,它对应的十进制数为100.625,这样可以使学生对单精度浮点数的编码格式有一个直观的了解。2.使用Memory和Watch理解字符串。字符串在c语言中是以字符数组形式存储的,并以‘\0’作为结束标志。对于如下代码段:charstring[10]=”bbbbb”;通过在Watch窗口获得的string值为0x0031fe90,则得到字符串的首地址,在图中,从0x0031fe90至IJ0x0031fe96处四个字节的内容分别为0x62,0x62,0x62,0x62,0x62,0x62,十六进制的62对应十进制的98,而98为字符b的ASCII码,0为’\0’的ASCII码,通过该图,学生可以直观地看到字符在内存中是如何以ASCII码形式存储的,并且C语言字符串又是如何以‘\0’为结束标志的。3.使用Memory和Watch理解指针。指针和指针变量在C语言程序设计教学中属于重点和难点。在教学中,学生经常容易混淆两者的概念。指针代表变量的地址,指针变量用于存放地址。通过Memory查在Memory中加以查看,结果如图3。看内存情况,可以使学生对地址产生感性的认识,对内存分布情况有直观的印象。对于如下的代码:charch=‘b’,*p=NULL;p=&ch;通过在内存中查看p的内容,可以看到它的值为,正好与ch的地址相同。除上述内容外,还可以使用同样的方法对结构体和结构体成员,共用体和共用体成员之间的关系进行解析,使学生对构造类型在计算机内存中是如何分布的有一定直观的了解。4.使用CallStack查看函数调用堆栈。函数的嵌套调用与递归调用在教学中属于难点,学生对函数的调用顺序经常感到迷惑,通过VS2013的Callstack图形化工具,可以形象直观地展示函数的调用过程。对于如下的代码段:#include<stdio.h>voidfunb(){printf("Thisisfunb!\n");}voidfuna(){funbO;}intmain(){funa();return0;}CallStack工具可以清晰地显示出函数a与函数b的调用顺序,通过逐语句的执行,学生对函数嵌套调用能产生直观的印象。对于函数的递归调用,学生在学习汉诺塔程序时即使清除递...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?