实验五循环结构程序设计
一目的和要求
1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次数。
2熟悉用while语句,do-while语句和for语句实现循环的方法。
3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。 4掌握选择结构与循环结构的嵌套。
二实验内容
1程序分析
下面是一个计算e的近似值(使误差小于给定的δ)的程序。 #include
{doublee=1.0,x=1.0,y,delta;
inti=1;
printf(\请输入给定的误差:\scanf(\y=1/x;
while(y>=delta) {e=e+y;
i++; x=x*i; y=1/x; }
printf(\计算结果是:.10lf\\n\}
⑴阅读上面的程序,写出程序所依据的计算公式。1+1/(1*2)+1/2*3+1/6*4 ⑵当输入的delta是什么值时,能分别使程序按下面的要求运行: ⅰ不进入循环;delta>1 ⅱ只循环一次;delta>1/2 ⅲ只循环两次;1/2>delta>1/6
ⅳ进入死循环(程序将永远循环下去)。Delta=0
ⅴ为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句? printf(\
⑶原程序中while语句中的y>=delta,分别换成
y>delta,y=delta,y ⑷把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。 ⑸将程序改成用for循环结构,计算前50项,并运行程序,写出运行结果。 2有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。 #include floata=2,b=1,s=0; for(n=1;n<=10;n++) {s=s+a/b; t=a; a=a+b; b=t; } printf(\} 要求:跟踪执行,观察s、t、a、b的变化。 方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。 三.案例项目 1.输入3门成绩,用for循环求平均值。 提示:每次循环输入一门成绩,并将其加入总和。 停止调试 运行的程2,用do-while编写一个循环程序,用户不停的进行“学生管理系统”菜单的选择,直到用户输入序 数字0。运行效果图如下: 单步运行监视窗实验六数组 一实验目的 1掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2掌握字符数组和字符串函数的使用; 3掌握与数组有关的算法(特别是排序算法) 二、实验内容 编程序并上机调试运行。 1调试下列错误程序,使之具有如下功能:输入12个整数,按每行3个数输出这些整数,最后输出12个整数的平均值。写出调试过程。 #include {inti,a[N],av;//av=0 for(i=0;i if(i%3==0)printf(\} for(i=0;i!=N;i++)av+=a[i];//av/=N; printf(\} 上面给出的程序有错误和缺陷,请找出程序中的错误并改正。 2.按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。 ⑴定义整型变量i、j,字符串s1、s2 ⑵输入字符串s1、s2 ⑶当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处 ⑷当字符串s2尚未结束,将字符串s2逐个字符连接到字符串s1的后面 ⑸为字符串s1添加结束标志 ⑹输出连接后的字符串 三.案例项目 1. 输入3门成绩,并用数组记录.在输入前显示提示文字“请输入第i门课成绩”。 然后用数组与循环语句求成绩的均值,并输出均值,每门课的成绩 2.用二维数组记录3个同学的所有成绩,并输出所有人的成绩 3.用数组记录学生A姓名的字符串,并输出。再输入一个学生B的姓名字符串,与A的姓名字符串比较,如果一样则输出yes,否则no 4(选做)用数组存放4个学生的学号,用冒泡排序法将学号升序放置在原数组中, 并输出数组数据 实验七简单函数 一.实验目的: 1.理解函数的概念和应用。 2.掌握无参无返回函数的使用。 3.掌握无参有返回函数的使用。 二.案例项目 1. 完成主函数中的下列自定义函数: 1)无参无返回的函数inputInfo():/输入一个学生的信息(name,number,score[3]) 2)无参无返回的函数OutputInfo();//输出一个学生的信息(name,number,score[3]) 3)无参有返回的函数Average():求成绩的均值. 4)无参有返回的函数Max():求成绩的最大值. 5)无参有返回的函数Standar():求成绩的方差. 6)无参无返回的函数Sort():对成绩进行排序 2.用上述自定义函数完成主函数的编写 voidmain() {/输入学生A的信息(name,number,score[3]) //输出学生A的信息(name,number,score[3]) //求成绩的均值,并输出 //求成绩最大值,并输出 //求成绩方差,并输出 //对成绩进行排序,并将排序后的成绩输出 //输入学生B的信息(name,number,score[3]) //输出学生B的信息(name,number,score[3]) //求成绩的均值,并输出 //求成绩最大值,并输出 //求成绩方差,并输出 //对成绩进行排序,并将排序后的成绩输出 } 实验八高级函数 一.实验目的: 1.理解函数形参和实参的概念和应用。 2.掌握有参无返回函数的使用。 3.掌握有参有返回函数的使用。 三.案例项目 1.定义一个带参数并有返回值的函数Average(intscore[3]),计算学生成绩score[3]的均值,并将其返回。然后在主程序中调用Average()求均值,并输出均值。 2.用一个数组Student[1000],记录N个学生的学号。定义一个函数AddStudent(intnumber[]),向Student[]数组中添加一个学生的学号。然后用该函数添加3个学生的学号,并输出所有学号。 3.用一个数组Student[1000],记录N个学生的学号。定义一个函数modify(inti,intnumber),修改Student[i]的学号为参数number,用主程序输入i和number,调用modify()函数,并输出 4.用一个数组Student[1000],记录N个学生的学号。定义一个函数del(inti),删除Student[i]的学号,并把Student[1000]数组中的后续数据前移。用主程序输入i,调用del()函数,并输出删除后的所有学号。