C语言实验指导书新 下载本文

实验五循环结构程序设计

一目的和要求

1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次数。

2熟悉用while语句,do-while语句和for语句实现循环的方法。

3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。 4掌握选择结构与循环结构的嵌套。

二实验内容

1程序分析

下面是一个计算e的近似值(使误差小于给定的δ)的程序。 #include main()

{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 main() {intn,t;

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 #defineN12 main()

{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()函数,并输出删除后的所有学号。