C程序设计实验指导书2 下载本文

内容发布更新时间 : 2024/6/16 19:13:27星期一 下面是文章的全部内容请认真阅读。

《C语言程序设计》实验指导

第一部分上机实验的指导思想和要求 1.上机实验的目的

学习C语言程序设计课程不能满足于“懂了”,满足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。这是一门实践性很强的课程,必须十分重视实践环节,保证有足够的上机实践时间。 上机实验的目的是:

(1)加深对讲授内容的理解,尤其是一些语法规定。 (2)熟悉C语言程序开发的环境。

(3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误。要学会根据“出错提示”,分析并找出错误。 2.上机实验前的准备工作

(1)了解所用的计算机系统(包括C编译系统)的性能和使用方法。 (2)复习和掌握与本实验有关的教学内容。 (3)准备好上机所需的程序。

(4)对运行中可能出现的问题应事先作出估计;对程序中自己有疑问的地方,应作上记号,以便在上机时给予注意。

(5)准备好调试和运行时所需的数据。 3.上机实验的步骤

(1)调出C编译系统,进人C工作环境。 (2)输人自己编好的程序

(3)检查一遍已输人的程序是否有错(包括输入时打错的和编程中的错误),及对改正。 (4)进行编译。如果在编译和连接过程中发现错误,输出窗口会出现“出错信息”,根据提示找到出错位置和原因,加以改正,再进行编译,如此反复,直到顺利通过编译和连接。 (5)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同数据时所得到的结果是否正确。此时应运行几次,分别检查在不同情况下程序是否正确。 4.写实验报告,实验报告应包括以下内容:

(1)预习报告(实验目的,题目,程序清单(或算法流程),疑难问题等);(2)实验数据;(3)实验过程报告;(4)实验小结。 第二部分关于程序的调试和测试 l.程序错误的类型 主要有以下几种:

(1)语法错误:不符合C语言的语法规定。会在编译时被发现并指出。属于“致命错误”,不改正是不能通过编译的。对一些在语法上有轻微毛病但不影响程序运行的问题(如定义了变量但始终未使用),编译时会发出“警告”。虽然程序能通过编译,但不应当使程序“带病工作”,应尽可能将程序中所有“致命错误(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)运行错误:有时程序既无语法错误,又无逻辑错误,但程序不能正常运行或结果不对。多数情况是数据不对,包括数据本身不合适以及数据类型不匹配。 2.程序的测试

程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。除了可以利用编译时提示的“出错信息”来发现和改正语法错误外,还可以通过程序的测试来发现逻辑错误和运行错误。

测试的目的是检查程序有无“漏洞”。对于一个简单的程序,要找出其运行时全部可能执行到的路径,并正确地准备数据并不困难。但是,如果需要测试一个复杂的大程序,要找到全部可能的路径,并准备出所需的测试数据并非易事。例如,有两个非嵌套的if语句,每个if语句有2个分支,它们所形成的路径数目为2×2=4;如果一个程序包含100个if语句,则可能的路径数目为2100=1.267651×1030。实际上进行测试的只是其中一部分(执行几率最高的部分)。因此,经过测试的程序一般还不能轻易宣布为“没有问题”,而只能说:“经过测试的部分无问题”。

实验一 C语言运行环境 一、目的和要求

1、熟悉使用C语言运行环境。

2、掌握C语言程序的书写格式和C语言程序的结构。 3、掌握C语言上机步骤,了解运行一个C程序的方法。 二、实验内容

调试运行以下程序(调试时找出程序错误并修改,再编译、运行) 1.编写自己的第一个程序

录入如下C源程序,文件名自定(**.c): #include int main( ) {

printf(\。\\n); return 0; }

对源程序进行编译、连接并运行,观察分析运行结果。

2.编写程序,译密码,要求将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母,因此, “China”应译为“Glmre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5这5个变量的值分别为字符C,h,i,n,a,经过运算后,输出译码后的结果。 3下面的C程序,目的是想计算由键盘输入的任意两个整数的积。记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因 #include “stdio.h” int prodct(int a ,int b ) {int c ; c=a*b; return c; }

int main()

{ int x,y,p;

scanf(“%d,%”,&x,&y) ; p=prodct(x,t) ;

printf(“The product is %d”,p); return 0; }

4、求1+2+3+?+100的和,程序如下。记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因 #include “stdio.h” int min()

{ int i , sum=0;

for(i=1;i<=100;i++) sum=sum+i; printf(\return 0; }

三、分析与讨论