烟台南山学院 C语言程序设计实验指导书
试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。
(4)用哪四组数据才可以把各种条件的组合都检测一遍? 如果为了测试各种条件的组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。 (5)用哪四组数据才可以把起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。
4
烟台南山学院 C语言程序设计实验指导书
实验四 循环结构(2)
[ 目的和要求]
1、 掌握如何正确地控制计数型循环结构的次数 2、 了解对计数型循环结构进行测试的基本方法 3、 了解在嵌套循环结构中,提高程序效率的方法 4、 本实验应在学习了教材第3.3.4进行 [实验内容与步骤]
实验题目:下面是一个循环结构 的C程序。 main() { int i ,j; long sum=0; for(i=1,i<=20,i++) for(j=1;j<=3;j++)
sum=sum+(i+1)*(i+1)*(j+2) printf(“sum is :%d\\n”,sum); }
[ 分析讨论]
(1) 将上述程序中的和分别做什么样修改,能使程序按如下要求运行:.不循环;
.外循环1次,不进入内循环; .外循环,内循环各1次; .外循环1次,内循环2次; .外循环 2次, 内循环1次; .外循环19次,内循环3次; .外循环20次,内循环2次; .外循环21次,内循环3次。
5
烟台南山学院 C语言程序设计实验指导书
(2) 试修改程序,以便能知道控制表达式 i=1;j<=20;i++ 和
j=1;j<3;j+= 各执行了多少次?
(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观
察对换后的外循环与内循环控制表达式执行的总次数有无变化? (4)将(3)中程序写为 main() {
int i,j,k; long sum=0; for (j=1.j<=3.j++) { k=j+2;
for(i=1;i<=20;i++) sum=sum+(i+1)*(i+1)**k; }
printf(“sum is :%d\\n”,sum); }
观察程序的执行结果有无变化? (5)将(3)中程序改写为 main() {
int I,j,m,n; long sum=0; for(j=1;j<=3;j++) {
6
烟台南山学院 C语言程序设计实验指导书
m=j+2;
for(I=1;j<=20;I++) { n=I+1;
sum=sum+m*m*k; } }
printf(“sum is :%d\\n”,sum); }
观察程序的执行结果有无变化?
7
烟台南山学院 C语言程序设计实验指导书
实验五 函数(1)
[实验目的]
1.理解和掌握多模块的程序设计与调试的方法。 2.掌握函数的定义和调用的方法。 3.学会使用递归方法进行程序设计。 [实验内容和步骤]
1. 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。 实验步骤与要求:
(1) 编写一个函数prime(n),返回给定整数n是否为素数。
(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。
(3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。 2. 用梯形法求函数的定积分。 实验步骤与要求:
(1) 编制一个函数sab(a,b,n),其功能是求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。要求该函数在一个独立的文件中。
(2) 编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。 (3) 编制另一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。 说明:
用梯形法求定积分,梯形公式为
s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n
8