C语言程序实验报告--谭浩强(4)

2019-02-16 01:16

实验9

1..实验目的与要求

(1)掌握在设计条件性循环结构时,如何正确的设定循环条件以及如何控制循环次数。 (2)了解条件型循环结构的基本测试方法。 2.实验准备

(1)阅读下面程序,画出流程图或N-S图,分析程序功能 。 #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1;

printf(\ scanf(\ y=1/x;

while(y>=detax) {

x=x*i; y=1/x; e=e+y; ++i; }

printf(\}

流程图:

16

功能:计算出当y>=detax时 e的值!

(2)设计一组detax,使程序能分别按照下面的要求运行。

A、 不进入循环。当时detax>1. 0。 B、 只循环一次。当1>=detax>=0.5时。 C、 只循环两次。当0.5>detax>=1/6时。 D、 进入死循环。当detax<=0时。

(3)为了获取程序循环次数,应该在程序中增加怎样一条语句? 改进后程序: #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1,n=0;

printf(\ scanf(\ y=1/x;

while(y >=detax) {

x=x * i; y=1/x; e=e + y; ++i; n++; }

printf(\}

3. 实验内容与步骤

(2)试将while 的控制表达式y>=detax,分别替换成一下语句。 A,y>detax时程序仍然正确。但是循环区间变为0<=detax<1。 为了不会进入死循环,修改程序如下: #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1,;

printf(\ scanf(\ y=1/x;

if(0<=detax<1) {

while(y >detax) {

x=x * i;

17

y=1/x; e=e + y; ++i; } }

printf(\ }

B,y=detax时程序让然正确。但是程序只有在当detax=1时才会循环,当detax为其他值是将直接跳出循环。

为了不会进入死循环,修改程序如下: #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1,;

printf(\ scanf(\ y=1/x;

if(detax=1.0) {

while(y =detax) {

x=x * i; y=1/x; e=e + y; ++i; } }

printf(\ }

C,y<=detax时程序仍然正确。但是当detax<1时将直接跳出循环,当detax>=1将进入死循环。

为了不会进入死循环,修改程序如下: #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1,;

printf(\ scanf(\ y=1/x;

18

if(detax<1) {

while(y <=detax) {

x=x * i; y=1/x; e=e + y; ++i; } }

printf(\ }

D,y1将进入死循环。

为了不会进入死循环,修改程序如下: #include int main(void) {

double e=1.0 ,x=1.0,y,detax; int i=1,;

printf(\ scanf(\ y=1/x;

if(detax<=1) {

while(y

x=x * i; y=1/x; e=e + y; ++i; } }

printf(\

}

(4)若把原程序whlie语句之前的y=1/x语句去掉,观察程序运行结果将发生怎样的变化。 原语句1/x=1 赋值给y,当y=1/x语句去掉后。在进入循环初期y=0。这样以后detax

的取值区间将会发生变化。

(5)把远从小程序中的while结构改写成do—while结构,在分别按照上述方法进行实验。 答:变为do –while后,程序仍然再去执行。但是每次运行将比以前多循环一次,不会出现不循环直接跳出的情况。这是因为do—while 是先执行后判断。

19

实验10

1.实验目的与要求

(1)掌握如何正确控制计数型循环结构的循环次数。 (2)了解对计数型循环结构进行测试的基本方法。 (3)了解在嵌套循环结构中提高程序效率的方法。 2.实验准备

(1)阅读下面的程序,画出程序流程图或N—S图,指出程序的功能。 #include

main() {

int i,j;

long sum=0; for(i=1;i<=20;i++) for(j=1;j<=3;j++) sum+=(i+1)*(i+1)*(j+2); printf(\ }

(3) 按照下面的要求控制表达式中i和j的值,并估计程序在下列情况下的执行结果。

a. 不循环。 将第一个for循环中的i<=20 改为i<1。

b. 外循环一次,不进入内循环。 将第一个for循环中的i<=20 改为i<=1,将第二

个for循环中的j<=3 改为j<1。

c. 外循环、内循环个循环一次。 将第一个for循环中的i<=20 改为i<=1,将第二

个for循环中的j<=3 改为j<=1。

d. 外循环一次,内循环2次。 将第一个for循环中的i<=20 改为i<=1,将第二

个for循环中的j<=3 改为j<3。s

e. 外循环2次,内循环1次。 将第一个for循环中的i<=20 改为i<=2,将第二

20


C语言程序实验报告--谭浩强(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年上半年小学《教育教学知识与能力》真题及答案 - 图文

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

马上注册会员

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