当前位置:文档之家› 实验三、循环结构程序设计

实验三、循环结构程序设计

实验三循环结构程序设计一、实验目的1.掌握while,do-while,for循环语句的使用与区别;2.掌握循环条件、循环体、循环终止等循环要素;3.理解循环执行过程,掌握循环嵌套的执行过程;4.熟练使用循环语句编写程序;5.掌握break、continue的使用。

二、实验学时数4学时三、实验内容与步骤(一)阅读程序要求:先自行判断程序的执行结果,再输入并运行下列程序,写出各个程序的运行结果,并理解和分析程序代码。

1.#include <stdio.h>int main(){ int a=2,b=8;while(b--<0)b-=a ;a++ ;printf(“a=%d,b=%d\n”,a,b);return 0;}输出结果:_________________________________。

2. # include <stdio.h>int main(){ int x=2 ,y=6 , z=3;doy=y-1;while(z-->0&&++x<5) ;printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);return 0;}输出结果:_________________________________。

3. #include <stdio.h>int main(){ int n=0;while(n<=2){ n++;printf("%d\n",n);}return 0;}输出结果:_________________________________。

4. #include <stdio.h>int main( ){ int a=0,j;for(j=0;j<4;j++){ switch( j ){ case 0:case 3:a+=2;break;case 1:case 2:a+=3;break;;default:a+=5;break;}}printf("%d\n",a);return 0;}输出结果:_________________________________。

5. #include <stdio.h>int main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");return 0;}输出结果:_________________________________。

6. #include <stdio.h>int main(){ int s=0,t,i,j;for(i=1;i<=3;i++){ t=1;for(j=1;j<=2*i-1;j++)t=t*j;s=s+t;}printf("%-5d\n",s);return 0;}输出结果:_________________________________。

7. #include <stdio.h>int main(){ int y,a;y=2;a=1;while(y--!=-1){ do{a*=y;a++;}while(y--);}printf("%d,%d\n",a,y);return 0;}输出结果:_________________________________。

(二)完成程序要求:依据题目要求,分析已给出的语句,填写空白。

不允许增行或删行,改动程序的结构。

1.以下程序的功能是计算正整数2345的各位数字平方和,即sum=22+32+42+52。

#include <stdio.h>int main(){ int n,sum=0;n=2345;do{ sum = sum + _______ _____;_______________ _______;} while(n) ;printf("sum=%d\n",sum);return 0;}2.以下程序的功能是计算S=2+4+8+16+ (128)#include <stdio.h>int main(){ int a, s, n , count ;a=2, s=0, n=1, count=1;while(count<=7){ _____________________;s = s + n ;_____________________;}printf(“s = %d\n”, s );return 0;}3.一个数如果恰好等于它的因子之和,这个数就称为完数。

求100之内的所有完数。

#include <stdio.h>int main(){ int n,s,j;for(n=1;n<=____________;n++){ s=___________;for(j=1;j<n;j++)if(n%j==0)s=s+j;if(______________)printf(" %d\n",s);}return 0;}4.以下程序的功能是打印以下图形。

#include <stdio.h>int main(){ int i,j;for(i=1; i<=4;i++){for(j=1;j<=___________;j++)printf(" ");for(j=1;j<=___________;j++)printf("*");printf("\n");}return 0;}5.以下程序功能是完成用10元人民币换成一角、两角、五角的所有兑换方案。

#include <stdio.h>int main(){ int i,j,k,n=0;for (i=0;i<=20;i++)for (j=0;j<=50;j++){ for( __________________ )if ( ________________ ){ _________________;printf(" 第%d种: %3d %3d %3d",n,i,j,k);if(n%3==0)printf (" \n ");}}return 0;}(三)调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。

1.以下程序输出100(包括100)以内的数,每行输出10个。

行号#include <stdio.h>int main()1 { int k=100;2 while(k=0)3 { printf( "%d,",k);4 k--;5 if (k%10==0)printf("\n");6 }7 return 0;8 }2.下面程序的功能是计算n!。

行号#include <stdio.h>int main()1 { int i,n,s=1;2 printf("Please enter n:");3 scanf("%d",&n);4 for(i=1;i<n;i++)5 s=s*i;6 printf("%d! = %d\n",n,s);7 return 0;8 }3.以下程序输出1---100的数字(包括100)。

行号#include <stdio.h>int main()1 { int i =100;2 while( 1 )3 { i = i%100+1 ;5 printf( “ %4d ,“ ,i ) ;6 if ( i%10==0 ) printf ( “ \n ”) ;7 if ( i>100) break ;8 }9 return 0;10 }(四)编写程序1.小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。

到第10天再想吃时,只剩下一块了。

编程计算小明妈妈总共给小明买了多少块巧克力?2. 一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,…,你每天给我的钱是前一天的两倍,直到满一月(30天),百万富翁很高兴,欣然接受了这个契约。

请编写一个程序计算这一个月中陌生人给了百万富翁多少钱?百万富翁给陌生人多少钱?3.用for语句编程实现打印如下输出形式的九九乘法表。

1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 189 12 15 18 21 24 2716 20 24 28 32 3625 30 35 40 4536 42 48 5449 56 6364 72814. 每个苹果0.8元,第一天买2个,从第二天开始,每天买前一天的2倍,直到当天购买的苹果个数不超过100的最大值为止,编写程序求每天平均花多少钱。

5. 求出所有能被3整除,且至少有一位数字是5的所有三位整数,并统计其个数。

(输出显示时,每行显示10个数字)四、分析整理运行结果,写出实验报告五、思考题1.记下在调试过程中所发现的错误,系统给出的出错信息和对策。

分析讨论对策成功或失败的原因。

2.简述循环语句嵌套时需注意的事项。

3.while循环、do~while循环和for循环各有何特点,三者有何异同?。

相关主题