C程序设计实验指导new.doc
《C语言程序设计》实验指导
韶关学院计算机科学学院
庄景明
课程类别:专业基础课
学时学分:总学时72、总学分4、实验学时18、实验学分1
适用专业: 计算机科学与技术,信息管理与信息系统
专业层次:本科
第一部分 上机实验的指导思想和要求
1.上机实验的目的
学习C语言程序设计课程不能满足于“懂了”,满足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。程序设计是一门实践性很强的课程,必须十分重视实践环节,必须保证有足够的上机实践时间。学习本课程应该至少有18小时的上机时间,最好能做到上机时间与授课时间之比为1﹕1。除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。
上机实验的目的是:
(1)加深对讲授内容的理解,尤其是一些语法规定。
(2)熟悉C语言程序开发的环境。
(3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误。要学会根据“出错提示”,分析并找出错误。调试程序的能力是每个程序设计人员应当掌握的一项基本功。因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序的一些功能、改变输入数据的方法等),再进行编译、连接和运行;甚至于“自设障碍”,即把正确的程序改为有错的(例如,用scanf函数输入变量时,漏写“&”符号;使数组下标出界;使整数溢出等),以观察和分析所出现的情况。
2.上机实验前的准备工作
(1)了解所用的计算机系统(包括C编译系统)的性能和使用方法。
(2)复习和掌握与本实验有关的教学内容。
(3)准备好上机所需的程序。
(4)对运行中可能出现的问题应事先作出估计;对程序中自己有疑问的地方,应作上记号,以便在上机时给予注意。
(5)准备好调试和运行时所需的数据。
3.上机实验的步骤
(1)调出C编译系统,进人C工作环境(例如Turbo c,VC6.0)。
(2)输人自己编好的程序
(3)检查一遍已输人的程序是否有错(包括输入时打错的和编程中的错误),如发现有错,则及对改正。
(4)进行编译。如果在编译和连接过程中发现错误,输出窗口会出现“出错信息”,根据提示找到出错位置和原因,加以改正,再进行编译……如此反复,直到顺利通过编译和连接为止。
(5)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同数据时所得到的结果是否正确(例如解方程ax2+bx+c=0时,不同的a、b、c组合应得到相应的不同结果)。此时应运行几次,分别检查在不同情况下程序是否正确。
(6)输出程序清单和运行结果。
4.写实验报告,实验报告应包括以下内容:
(1)预习报告(题目,实验目的,实验设备,程序清单,疑难问题等)
(2)实验数据
(3)实验过程报告
(4)实验小结。
5.实验内容的安排
结合所学内容布置上机练习题。应要求学生在实验前将教师指定的题目编好程序,然后上机输人和调试。
第二部分 关于程序的调试和测试
l.程序错误的类型
主要有以下几种:
(1)语法错误:不符合C语言的语法规定。例如将printf错写为pintf,括弧不匹配,语句最后漏了分号等,这些都会在编译时被发现并指出。这些都属于“致命错误”,不改正是不能通过编译的。对一些在语法上有轻微毛病但不影响程序运行的问题(如定义了变量但始终未使用),编译时会发出“警告”。虽然程序能通过编译,但不应当使程序“带病工作”,应该将程序中所有“导致错误(error)”和“警告(warning)”的因素都排除.再使程序投人运行。
(2)逻辑错误:
程序无语法错误,也能正常运行,但是结果不对。例如求s=1+2+3+…+100,有人写出以下语句:
for(s=0,i=1;i<100;i++)
s=s+i;
语法没有错,但求出的结果是1+2+3+…+99之和,而不是1+2+3+……100之和,原
因是少执行了一次循环。这类错误可能是设计算法时的错误,也可能是算法正确而在编
写程序时出现疏忽所致。这种错误计算机是无法检查出来的。如果是算法有错,则应先
修改算法,再改程序。如果是算法正确而程序写得不对,则直接修改程序。
(3)运行错误:有时程序既无语法错误,又无逻辑错误,但程序不能正常运行或结果
不对。多数情况是数据不对,包括数据本身不合适以及数据类型不匹配。如有以下程序:
main()
{int a,b,c;
scanf(“%d,%d”,&a,&b);
c=a/