C语言程序设计实验指导书(6)

2018-12-12 22:55

实验六 循环结构程序设计(一)

实验六 循环结构程序设计(一)

【实验目的】

1.熟悉使用while循环语句的结构、执行过程。 2.学会确定循环条件和循环体。 3.理解死循环的概念。

【实验内容】

一、试着编写下列程序

【例6-1】求1+2+3+4+5的和。 源程序: #include \main() { }

运行结果: i=6,sum=15

int i=1,sum=0; /*变量赋初值*/

while(i<=5) /*循环的终止条件,每次进入循环体先判断*/ { }

printf(\

sum+=i;

i++; /*循环变量增量*/

?举一反三

【6-1】求1-2+3-4+5的和。

【例6-2】输入一个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。

s?1?

14?17?110?......(例如程序运行后,eps被输入0.0001)。

24

实验六 循环结构程序设计(一)

源程序: #include \#include \main() { }

运行结果: Enter eps:1e-4 sum=0.835599

double eps,sum=0,f=1,t=1;

int n=1;

printf(\

scanf(\ /*输入一个特别小的数*/ while(fabs(t)>=eps) {

sum=sum+t;

f=-f; /*正负号转变*/ n=n+3; /*控制分母*/ t=f/n;

}

printf(\

?举一反三

【6-2】输入一个正实数eps,计算并输出下式的值,直到最后一项小于eps。

s?11?2?32?3?53?4?......

【例6-3】从键盘输入一批学生的成绩(以负数为结束标志),计算平均分,并统计不及格成绩的个数。 源程序: #include main() {

float grade,ave=0; /*变量ave用来存放总成绩和平均分*/ int n=0,m=0;

25

实验六 循环结构程序设计(一)

}

printf(\

scanf(\ /*输入第一个成绩*/

while(grade>=0) /*输入数据大于等于0时,执行循环*/ { }

ave=ave/n;

printf(\平均分=%f,不及格人数=%d\\n\

ave=ave+grade;

n++; /*统计学生人数*/

if(grade<60)

m++; /*统计不及格人数*/

scanf(\ /*输入一个新数据为下一次循环做准备*/

?举一反三

【6-3】读入一批正整数(以零或负数为结束标志),求其中的奇数和。

二、程序改错

不允许增加行也不允许删除行,也不得更改程序的结构。 1、下述程序按由大到小的顺序输出10以内的正整数。 源程序: main() {

int k=10; while(k>0)

/********found********/ printf(“%d, ”,k);k=k-1; }

2、修改下列程序,使之能够正确输出1~20之间的数的和(输出一次和值)。 源程序: main() {

int i=1,sum=0;

/******found******/ while(i<=20);

{ sum+=i;

26

实验六 循环结构程序设计(一)

i++;

}

printf(“%d\\n, ”,sum);

}

三、程序填空

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

1、从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 源程序: main() {

float x,amax,amin;

scanf(\amax=x; amin=x; while( 【1】 )

{ if(x>amax) amax=x;

if( 【2】 ) amin=x; scanf(\

}

printf(\

}

2、从键盘输入多个字符,直到遇到回车换行符为止,分别统计其中字母、数字字符和其他字符的个数。 源程序:

#include

main( )

{ char ch; int letter=0,digit=0,other=0; while( 【1】 )

if((ch>='a'&&ch<='z')||(ch>=‘A’&&ch<=‘Z’))

letter++; else if(ch>='0'&&ch<='9') digit++; else

other++;

printf(\}

3、输入一个实数x,计算并输出下式的值,直到最后一项的小于10-5(保留两位小数)。

27

实验六 循环结构程序设计(一)

源程序:

#include \main() {

float x,t,s=0; int i=1; scanf(\ t=x;

while(t>=1e-5) { }

s=s+t; i++; t=t*x/i;

printf(\}

【思考题】

1、循环体超过一条语句为什么必须用花括号括起来? 2、while循环的执行过程?

28


C语言程序设计实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实验十 血糖的测定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: