张浩男2012实验五:循环结构程序设计
- 格式:doc
- 大小:68.50 KB
- 文档页数:6
实验五循环结构的程序设计一、实验目的1.通过实验掌握循环结构的程序设计的基本思想方法,以及C语言的基本循环控制结构和循环控制转移语句。
2.掌握程序的调试方法二、实验要求1.掌握循环控制结构语句的使用方法,熟练运用。
for语句,while语句,do-while循环控制语句;2.掌握限定转向语句:break语句,continue语句,return语句和无条件转向语句:goto语句等控制转移语句的正确使用方法;3.进一步练习程序调试;4.保存实验结果、完成实验。
三、实验内容1. 源程序found后有两处错误,请改正并运行程序,观察结果并解释。
#include "stdio.h"main(){int i, j;for(i=0; i<8; i++){for(j=0; j<8; j++)/************found************/if((i+j)%2=0);printf("%c%c",219);elseprintf(" ");printf("\n");}}2.下面的程序功能是计算1-3+5-7……-101的值,请填空。
#include “stdio.h”main(){int i , t=1, s=0;for (i=1; i<=101; i++,i++){s=s+t*i;;}printf("s=%d",s);}3. 编写程序分别用for、while和do……while实现该计算n!(n=20)。
4.编程打印以下图案。
*************************。
实验五循环结构程序设计实验一、实验目的1.学会单重循环及多重循环程序的基本设计方法;2.学会循环控制指令的使用方法;3.学会数据串操作指令的使用方法;4.学会循环程序的控制方法。
二、实验要求1.仔细阅读教材中循环程序的组成及控制方法部分;2.熟练掌握在DEBUG中调试程序的方法;3.了解DEBUG中T命令与P命令的不同点;4.掌握循环结构程序的调试方法。
三、实验举例【例 3.5】编写程序,计算一组无符号字节数据的平均值,并将大于平均值的数据存入指定的存储单元。
【解题思路】采用循环的方式编写程序,将一组数据循环累加,用累加的和除以数据个数求出平均值,再用循环的方式将已知数据与平均值逐个进行比较,大于平均值的数据保存到指定的存储单元中。
【步骤一】 启动EDIT编辑器,编辑源程序。
程序清单如下:DSEG SEGMENTDATA DB 63H,28H,64H,32H,45HCNT DB 5AVER DB ?VALU DB 5 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXMOV CL,CNTPUSH CXXOR AX,AXLEA SI,DATAAG1: ADD AL, BYTE PTR [SI]ADC AH,0INC SILOOP AG1POP CXDIV CLMOV AVER,ALLEA SI,DATAAG2: CMP AL,BYTE PTR [SI]JA NEXTMOV BL,[SI]MOV VALU[BP],BLINC BPNEXT: INC SILOOP AG2MOV AH,4CHINT 21HCSEG ENDSEND START源程序输入完成后,以EXAM5.ASM为文件名存入磁盘,进行下一步操作。
【步骤二】启动宏汇编程序MASM,对汇编语言源程序EXAM5.ASM进行汇编,生成目标程序EXAM5.OBJ。
实验五循环结构程序设计一、实验目的1. 掌握用while语句、do-while语句和for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。
2. 理解什么是循环程序结构。
二、实验要点1. while语句一般格式:while(表达式) 语句;2. do-while语句一般格式:do 语句;while(表达式);3. for 语句一般格式:for(表达式1;表达式2;表达式3) 语句;三、实验要求1. 上机前先阅读或编写以下要调试的程序。
2. 上机输入和调试程序并存在自己的软盘上。
3. 检查实验结果是否正确。
四、实验内容(以下内容在实验报告中的实验预习报告内容中完成)1.调试程序,分析输出结果(1)输入并运行以下程序,分析运行结果。
去掉程序第3 行最后的分号,结果又如何?(2)下面是一个计算e 的近似值(使误差小于给定值a)的程序main(){double e=1.0,x=1.0,y,a;int i=1;printf(“\n please input error:”);scanf(“%lf”,&a);y=1/x;while(y>=a){++i;x=x*i;y=1/x;e=e+y;}printf(“%.8f”,e);}当输入的a 各是什么值时,能分别使程序按下面的要求运行:(1)不进入循环;(2)只循环一次;(3)进入死循环(程序将永远循环下去);(4)为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?(以下内容在实验报告中的实验操作原始记录中完成)2.完成以下填空,并把程序调通,写出运行结果已知一只公鸡五元,一只母鸡三元,三只小鸡一元。
现有100 元钱欲买100 只鸡,求公鸡、母鸡、小鸡能各买多少?#include "stdio.h"main( ){int x,y, z; /*x,y,z分别代表公鸡、母鸡、小鸡的数量*/for( x=1;x<20; ;x++)for( y=1;x<34 ;y++){z= 100-x-y ;if ( 5*x+y*3+z/3==100 )printf("cock=%d;hen=%d;chicker=%d\n" ,x,y,z);}}(以下内容在实验报告中的实验内容中完成)3.以下程序的功能是:按顺序读入4名学生3门课程的成绩,计算出每位学生的平均分并输出。
实验5-2 循环结构设计(二)1【实验目的】(1)熟悉掌握使用while语句、do-while语句与for语句实现循环的方法(2)掌握循环嵌套和多重循环的使用(3)掌握基本输入和输出多组数据的常用方法【实验要求】(1)熟悉掌握使用while语句、do-while语句与for语句实现循环的方法(2)掌握循环嵌套和多重循环的使用(3)掌握基本输入和输出多组数据的常用方法【实验环境】(1) Microsoft XP操作系统(2) Microsoft VC++ 6.0【实验内容】1、最小公倍数和最大公约数/acmhome/problemdetail.do?&method=showdetail&id=1179 题目描述:键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。
输入:输入包括一行。
两个以空格分开的正整数。
输出:两个整数的最小公倍数和最大公约数。
样例输入: 6 8样例输出:24 22、数值统计/acmhome/problemdetail.do?&method=showdetail&id=1370题目描述:统计给定的n个数中,负数、零和正数的个数。
输入输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
输出:对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
样例输入6 0 1 2 3 -1 05 1 2 3 4 0.5样例输出1 2 30 0 53、字符统计/JudgeOnline/problem.php?id=1480题目描述:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
输入:一行字符输出:统计值。
样例输入:aklsjflj123 sadf918u324 asdf91u32oasdf/.';123样例输出:23 16 2 4提示:while((c=getchar())!=’\n’){…;}判断是否是字母,数字,空格可以用表示范围的逻辑表达式,也可以用C语言的库函数实现。
实验五 循环结构程序设计一、实验目的熟悉使用while 语句,do-while 语句和for 语句实现循环的方法。
掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
二、实验内容1.编写程序利用公式: 求e 的近似值,精确到小数后6位。
程序提示:main 函数算法为:定义int 型变量n,i ,double 型变量e,p,t输入n 的值e=1;t=1;p=1;i=1while(t>=1e-7){e=e+t;i++;p=p*i;t=1.0/p;}输出e 的值2.编程求1到n 中能被3或7整除的数之和。
分别用for 循环语句和while 循环语句完成本题。
程序提示:for 循环语句的主要算法如下:for(i=1;i<=n;i++)if i 能被3或7整除sum=sum+iwhile 循环语句的主要算法如下:while(i<=n)if i 能被3或7整除sum=sum+i++;3.上机完成以下程序:猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少桃子。
在得到正确结果后,修改题目,改为每天早上都吃了前一天剩下的一半加二个,请修改程序,并运行,检查运行结果是否!1!21!111n e ++++=正确。
程序提示:使用以下循环结构x=1for(i=9;i>=1;i--) x=2*x+1。
一、实验目的1. 理解循环结构的概念和作用;2. 掌握for循环、while循环和do-while循环的使用方法;3. 通过实验,加深对循环结构在实际编程中的应用。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 循环结构的概念及作用2. for循环的使用3. while循环的使用4. do-while循环的使用(Python中无do-while循环,此处使用while循环实现)5. 循环结构的嵌套四、实验步骤1. 循环结构的概念及作用(1)循环结构是一种结构化编程方法,用于重复执行一组代码块,直到满足特定条件为止。
(2)循环结构的作用:a. 提高代码的可读性和可维护性;b. 实现重复操作,简化代码;c. 提高程序的执行效率。
2. for循环的使用(1)for循环的基本语法:for 变量 in 序列:循环体(2)for循环的实例:# 打印1到10的数字for i in range(1, 11):print(i)3. while循环的使用(1)while循环的基本语法:while 条件表达式:循环体(2)while循环的实例:# 打印1到10的数字i = 1while i <= 10:print(i)i += 14. do-while循环的使用(Python中无do-while循环,此处使用while循环实现)(1)do-while循环的基本语法:do:循环体while 条件表达式(2)do-while循环的实例:# 打印1到10的数字i = 1while True:print(i)i += 1if i > 10:break5. 循环结构的嵌套(1)循环结构嵌套的基本语法:外层循环:for 变量 in 序列:循环体for 变量 in 序列:循环体内层循环:for 变量 in 序列:循环体(2)循环结构嵌套的实例:# 打印1到10的乘法表for i in range(1, 11):for j in range(1, i + 1): print(j, end=" ")print()五、实验结果与分析1. 循环结构的概念及作用:通过实验,我们了解到循环结构在编程中的重要作用,它能够简化代码,提高程序的可读性和可维护性。
实验5 循环结构程序设计(二)【实验目的】(1) 熟悉break和continue 等辅助控制语句在循环结构中的应用。
(2) 学会多重循环控制结构的程序设计方法。
【实验内容】一、程序设计1. 打印输出以下钻石图案*************************【提示】用多重循环控制结构实现2. 验证哥德巴赫猜想:对150~200之间的各个偶数找出其素数分解,即该偶数是两个素数的和。
【提示】某些偶数的素数分解可能不止一种情况。
比如10=3+7或10=5+5。
这时,程序只需找着一对素数分解就可以停止了。
【要求】按照合理的格式给出程序的输出结果。
3. 猜数游戏:由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示:“Right!”,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则提示:“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),直到人猜对为止,然后结束游戏。
【要求】每次运行程序时机器所“想”的数不能都是一样的。
【提示】让计算机“想”一个1~100之间的数利用库函数srand(seed)和rand()来完成。
这两个库函数在<stdlib.h>中。
相关语句:scanf("%u", &seed);srand(seed);magic = rand() % 100 + 1; /*magic就是计算机“想”出来的数!*/如果想知道你编写的程序运行时间,可以试试以下语句:#include <time.h>x=clock();……/*被计时程序段*/y=(clock()-x)/CLOCK_PER_SEC;。
实验报告课程名称:高级语言程序设计实验五:循环结构程序设计班级:学生姓名:学号:专业:指导教师:学期:2011-2012学年上学期云南大学信息学院一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:① 掌握使用循环输入多个数据的方法② 掌握在多个数据中有选择地输出数据的方法③ 掌握在多个数据中对某种数据进行计数的方法④ 掌握求多个数据中最大值、最小值的方法⑤ 掌握使用break 、continue 语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习 (要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容 (要求提供:① 算法描述或流程图 ② 源程序 )1、编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for 循环)2、编程,从键盘输入若干个整数,当输入0时,输入停止。
统计并输出总共输入了几个数,以及所有输入数的和。
(while 循环)3、输入一行字符,分别统计其中的英文字母、数字、空格和其他字符的个数。
4、使用二重循环编程,绘制如下图形:*****A ****B ***C **D *E5.输入10个整数,输出最大值、最小值和平均分。
(用循环实现)6.编写程序,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
实 验 报 告
学院: 理学院 专业年级: 信息与计算科学 姓名: 张浩男 学号: 201241005
实验五:循环结构程序设计
一、 实验目的
1.学会设计循环结构的程序。
2、通过实验加深对while 语句、do —while 语句、for 语句的理解。
3、学会正确运用break 语句和continue 语句。
4、进一步学习调试程序。
二、 实验内容(包括问题简介、C 语言源程序代码、运行结果) 1.问题简介:
(1)编程输出水仙花数(1个3位数,各位数字立方和等于该数本身是水仙花数)。
(2)编程求解百马百担问题:有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大、中、小马各几匹?
(3)编程求解:!7!6!5!4!3!2!1
++++++ 。
(4)编程求解爱因斯坦阶梯问题(设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。
问满足条件的最少阶梯数是多少 ?)(选做题)
(5)编程输出200以内能被11整除的数。
(6)编程输出200以内的素数。
2.运行结果:
(1)
(2)
(3)(4)
(5)
(6)
3.C语言源程序代码:(1)#include<stdio.h>
void main()
{
int i,j,k,s,t;
for(i=1;i<=9;i++)
{ for(j=0;j<=9;j++)
{ for(k=0;k<=9;k++)
{ s=i*i*i+j*j*j+k*k*k;
t=100*i+10*j+k;
if(s==t)
printf("%4d",t);
}
}
}
}
(2)#include<stdio.h>
void main()
{
int i, j;
for (i=0;i<34;i++)
for (j=0;j<(100-i*3)/2+1;j++)
if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100)
printf("%d\t%d\t%d\n",i,j,100-i-j);
}
(3)#include <stdio.h>
void main()
{
int i=1;
int sum=0;
int s=1;
for(i=1;i<=7;i++)
{
s=s*i;
sum=sum+s;
}
printf("%d\n",sum);
}
(4)
#include <stdio.h>
main()
{
int steps = 29, i = 1;
while ( steps % 7 )
{
steps = (30 * ++i) - 1;
}
printf("Total steps: %d\n", steps);
}
(5)#include<stdio.h>
main()
{
printf("200以内能被11整除的数有:\n");
for(int i=1;i<=200;i++)
{
if((i%11)==0)
{
printf("%d\t",i);
}
}
printf("\t");
}
(6)#include<stdio.h>
main()
{
int i,s;
printf("输出200以内的素数:\n");
for(i=1;i<=200;i++)
{
for(s=2;s<=i;s++)
{
if ((i%s)!=0)
{
printf("%d\n",i);
}
}
}
printf("\n");。