C语言程序设计基础实验报告4 下载本文

实验4 循环控制(一) 一、实验目的

1、掌握用while语句,do-while语句和for语句实现循环的方法。

2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 3、进一步学习调试程序的技巧。

二、实验内容和步骤

编程序并上机调试运行。

1、以下程序PROG1.C的功能是:求[1,100]之间所有不能被3整除的整数之和。

部分源程序存在文件PROG1.C中,请将运算结果存入变量s中。 请在/*******begin********/ 与 /********end*********/之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。

/* PROG1.C */ #include \ #include \ #include \ #include \ void main() { int i,s;

/***********begin***********/ i=1;s=0; while(i<=100) if(i%3!=0) { } else

i++;

/************end************/ printf(\

s=s+i; i++;

}

2、以下给定程序FILL1.C的功能是:

从键盘输入整数,分别计算所输入的正整数的和、负整数的和。当输入0时,结束输入并输出计算结果。 程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! /* FILL1.C */ #include void main()

{ int x, sum1, sum2;

/**************found************/

sum1=0;sum2=0; scanf(\while ( x != 0 )

{ /**************found************/ }

printf(\printf(\

if (x>0)

sum1 += x; sum2 += x; else

scanf(\

}

3、 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。 #include void main() { }

4、以下给定程序MODI1.C的功能是:

猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃一个;第二天早上将剩下的桃子吃掉一半又多吃一个,到第10天的早上,只剩下一个桃子,求第一天共摘了多少桃子。

程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。

char x; int s1,s2,s3,s4; s1=0;s2=0;s3=0;s4=0; while(1) {

if(x==10) break; scanf(\

if(x>=65&&x<=90||x>=97&&x<=122)

s1++; s2++; s3++; s4++;} else if(x==32)

else if(x>=48&&x<=57) else

printf(\printf(\printf(\printf(\

注意:程序中的其它地方不要随意改动,不得增行或删行,也不得更改程序的结构! void main() { int i,j,x,p; x=1;

/************found************/ j=9; while(j>=1) { p=(x+1)*2; }

printf(\ }

在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序,并运行,检查结果是否正确。

5、将实验四第7题的菜单程序改成可循环选择,直到输入0结束程序。

/************found************/ x=p; j--;

6、以下给定程序MODI1.C的功能, 是打印一个如下的九九乘法表的一部分: 1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。 请改正程序中的错误,使它能得出正确的结果。

注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! /* MODI1.C */ #include void main( ) {

int i, j, k;

for ( i=1; i<=4; i++)

/************found************/ { for ( j=1; j<=4; j++)

printf(\ *= ==\