当前位置:文档之家› 实验5-2-循环结构

实验5-2-循环结构

实验5-2-循环结构
实验5-2-循环结构

实验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、最小公倍数和最大公约数

https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1179 题目描述:键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。

输入:输入包括一行。两个以空格分开的正整数。

输出:两个整数的最小公倍数和最大公约数。

样例输入: 6 8

样例输出:24 2

2、数值统计https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1370

题目描述:统计给定的n个数中,负数、零和正数的个数。

输入

输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

输出:对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

样例输入

6 0 1 2 3 -1 0

5 1 2 3 4 0.5

样例输出

1 2 3

0 0 5

3、字符统计https://www.doczj.com/doc/7816400674.html,/JudgeOnline/problem.php?id=1480

题目描述:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入:一行字符

输出:统计值。

样例输入:aklsjflj123 sadf918u324 asdf91u32oasdf/.';123

样例输出:23 16 2 4

提示:

while((c=getchar())!=’\n’)

{

…;

}

判断是否是字母,数字,空格可以用表示范围的逻辑表达式,也可以用C语言的库函数实现。

判断字母:

可以使用if(c>=’A’ && c<=’Z’ || c>=’a’ && c<=’z’),也可以使用isalpha(c)

判断数字:

可以使用if(c>=’0’ && c<=’9’),也可以使用isdigit(c)

判断空格:

可以使用if(c==’ ’),也可以使用isspace(c)

4、求奇数的乘积

https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1088题目描述:给你n个整数,求他们中所有奇数的乘积。

输入:

输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

输出:输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

样例输入:

3 1 2 3

4 2 3 4 5

样例输出:

3

15

5、多项式求和https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1373

题目描述:

多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 现在请你求出该多项式的前n项的和。

输入:

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<=1000),求该多项式的前n项的和。

输出:

对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

样例输入:

2

1 2

样例输出:

1.00

0.50

6、圆周率 https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1476

题目描述:输入n 值,并利用下列格里高里公式计算并输出圆周率:

1

41341...71513114---++-+-=n n π

输入: 输入公式中的n 值。

输出: 输出圆周率,保留5位小数。

样例输入:1

样例输出:2.66667

7、和、平方和倒数和 https://www.doczj.com/doc/7816400674.html,/JudgeOnline/problem.php?id=1483

题目描述:求以下三数的和,保留2位小数 1~a 之和 1~b 的平方和 1~c 的倒数和。 输入: a b c

输出: 1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c

样例输入:100 50 10

样例输出:47977.93

8、数字串求和 https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1455

题目描述:

求s=a+aa+aaa+aaaa+aa...a 的值,其中a 是一个1-9的数字。

例如2+22+222+2222+22222(此时共有5个数相加)。

输入:

输入数据有多组,每组占一行,每行有两个数a和n(其中1<=a,n<=9),分别用空格分隔。输入以EOF结束!

输出:针对每个输入,输出s的值。

样例输入: 2 5

样例输出:24690

提示:

第一类基本输入输出. EOF结束的语句是这样的,今后还后很多这样的题目,千万要记住哦...

while(scanf("%d %d",&a,&b)!=EOF)

{

}

9、阶乘和https://www.doczj.com/doc/7816400674.html,/JudgeOnline/problem.php?id=1482

题目描述:求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。

输入:n

输出:和

样例输入:5

样例输出:153

10、水仙花数https://www.doczj.com/doc/7816400674.html,/acmhome/problemdetail.do?&method=showdetail&id=1372

题目描述:

春天是鲜花的季节,MM们也是花枝招展,水仙花就是其中最迷人的代表,数学上有个

水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。

输入:输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

输出:

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;如果给定的范围内不存在水仙花数,则输出no;每个测试实例的输出占一行。

样例输入:

100 120

300 380

样例输出:

no

370 371

大一上期C语言实验报告5 循环控制语句

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三 种循环语句实现循环结构; (2)掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧; (3)进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。2.实验内容 (1)输出两个整数m和n,求它们的最大公约数和最小公倍数。 要求: ①画出算法流程图,从键盘输入m和n; ②对负数和零可不做考虑; ③运行程序,对m>n、m

③按照数字、大写字母、小写字母及其他字符数的顺序输出结果 3.流程图 4.源程序

5. 运行结果 (1 ) 求最大公约数和最小公倍数 (2)求1000内最大的10个素数之和(3)计算π值

实验2-循环结构

实验2 循环结构 程序填空 1. 题目描述:马克思曾经出过这样一道趣味数学题:有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。每个男人花了3先今,每个女人花了2先令,每个小孩花了1先令,一共花去50先令。问男人、女人以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。代码: #include using namespace std; int main() { int n; //n记录解的个数 int a,b,c; //分别记录男、女、小孩的人数 n=0; //初始化n的值 for(a=1;a<=30;a++) { for(b=1;b<=30;b++) { c=30-a-b; if(3*a+2*b+c==50) { cout<<"男人有:"< using namespace std; int main() { int n, k=1, s=0, m ; for (n=1 ; n<=100 ; n++) { k=1 ; s=0 ; m=n; while (m>=1&&m<=100 )

实验04 循环结构的实现

实验四循环结构设计实现 一、实验目的 1. 掌握while,do-while循环语句的使用与区别; 2. 掌握循环条件、循环体、循环终止等循环要素, 3. 理解循环的执行过程。 二、实验内容 1、上机验证课堂实例:求1+2+3+…+100的和。要求分别用while和do-while和for语句实现。 2、打印出所有的“水仙花数”。 算法提示: 1)水仙花数是一个3位数,被判断的范围是[100,999]。 2)如何分离出百、十、个位数。可参考教材P115例5.16。 3、验证课堂例题:打印“九九乘法表”。 4、公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 数学模型:设i代表母鸡数,j代表公鸡数,k代表小鸡数。用凑数法解决问题。 i+j+k=100 (1)  5*i+3*j+k\3=100 (2) 算法提示: S1. i从1到20依次一一取值; S2.对每一个固定的i值,j都要从1到33依次一一取一遍值; S3.对每一个固定的i值及每一个固定的j值,按公式k=100-i-j取得k值; S4.做下列验证工作:S3中所取的一组i,j,k是否满足条件(2) 5*i+3*j+1/3*k=100? 若满足,则输出这组解i,j,k,然后转2;否则直接转2。 当i已取到20,j也取到33时整个任务就结束。 三、仪器、设备、材料 微机 四、实验准备 1.理论知识预习及要求 ①表达式的书写规范; ②while语句和do-while语句的格式、功能、执行过程; ③while语句和do-while语句间的区别; ④循环结构程序设计的简单算法。 2.实验指导书预习及要求 对程序执行流程不清楚时,请先画出程序的流程图. 上机前先思考编出程序,并分析结果,上机时调试,并写出实验结果。 3.其他准备

实验4 循环控制 答案

实验4 循环控制 班级:学号: 姓名:日期: 一、实验目的 (1)熟悉掌握用while语句、do—while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验内容 1.while语句 while 语句的一般形式为: while(表达式)语句; while 语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。 编程:求1-100的奇数和。 提示:循环变量的步长值为2。 #include void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i=i+2; } printf("sum=%d\n",sum); } 2.do-while语句 do-while 语句的一般形式为: do { 语句; }while(表达式);

do-while 语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。 编程:求1—100的偶数和。 #include void main() { int i=0,sum=0; do { i=i+2; sum=sum+i; }while(i<100); printf("sum=%d\n",sum); } 3.for语句 其一般形式为: for(表达式1;表达式2;表达3) 语句; for 语句的语义是: ⑴首先计算表达式1 的值。 ⑵再计算表达式2 的值,若值为真(非0)则执行循环体一次,否则结束循环。 ⑶执行循环体后再计算表达式3 的值,转回第2 步重复执行。 下列程序用于输出fibnocci 数列的前20 项,每行输出5 个。请填空。 说明:fibnocci 数列的前两项均为1,以后各项等于其前两项之和。 #include void main( ) { int i,f1,f2,f3,n; f1=1;f2=1; printf("\n%d %d ",f1,f2); n=2; for(i=1; i<=18 ;i++) { if (n % 5==0 ) printf("\n"); f3=f1+f2 ; printf("%d ",f3); n++;` f1=f2;f2=f3; } }

实验07 循环结构程序设计(二)

实验七循环结构序程序设计(二) 循环结构是三种基本程序结构之一,是用于解决复杂问题的一类程序结构。在实验六中已经学习了循环结构的基本概念,以及DO循环语句和DO WHILE循环语句的基本功能和使用规则,但这仅是循环结构的基本内容,还需要学习和掌握循环结构的综合应用,以及更复杂的循环结构,用于解决更复杂的问题。 循环结构允许嵌套,嵌套的循环结构称为多重循环,即一个循环结构的循环体中包含另一个循环结构,根据实际需要可使用多层嵌套。FORTRAN90新增了强制性终止循环语句CYCLE 和EXIT,使用这两条语句可在循环体执行过程中提前终止本次循环或者整个循环。这两条语句的使用虽然不符合结构化程序设计思想,但使用得当,可使用程序简洁、短小、高效。 本次实验是学习和掌握循环结构的综合应用的一次实系统验活动。通过本次实验,能够设计和编写比较复杂的循环结构程序。 一.实验目的 1.进一步掌握三种基本循环结构的使用。 2.掌握强制性终止循环语句EXIT和CYCLE的基本功能和使用规则,以及相互区别。 3.掌握嵌套循环结构概念和应用。 4.掌握顺序结构、选择结构和循环结构相互嵌套和综合应用。 5.掌握设计和编写较复杂程序的基本技能。 二.实验内容1 1.问题描述 公元五世纪末,我国古代数学家张丘建在《算经》中提出了“百钱买百鸡问题”:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问公鸡、母鸡、小鸡各几何?”意思是:公鸡每只5元,母鸡每只3元,小鸡一元三只。100元买100只鸡。公鸡、母鸡、小鸡各买多少只?编写程序实现之。 2.算法设计 求解本题,有两个限定条件:其一是所有的鸡共计100只;其二是所有买鸡的钱共计100元。根据这两个条件可列出下面两个方程式:(设公鸡、母鸡和小鸡数分别为x、y、z) x+y+z=100 5x+3y+z/3=100 这是一个三元一次方程组,但是其限定条件也就是方程式只有两个,这就意味着它是一个多解题。求解该问题,有多种解法,可利用计算机快速计算的特点采用试探法求解该问题。

实验5_循环结构程序设计2题目及解答

4.3 循环结构程序设计2 【注意事项: (1)题中页码均为《C语言程序设计教程》中的页码 (2)题后为原程序文件名 (3)仅提交名为【*.c】的源程序文件,可一起提交,也可逐题提交 调试程序中常见问题及处理方法: (1)出现死循环时:关闭运行窗口即可。 】 1、按照下面的流程图书程序,用for语句实现。 【提示:参见p97—例4.23 ,并按照下面的左流程图书写007张三511.c,右流程图书写007张三512.c 程序运行结果: s=2550 】 2、用for语句编程,求300~500之间的水仙花数(如135:153=13+53+33)。(007张三52.c) 【程序运行结果: 300~500之间的全部水仙花数如下:??370??371??407 】 3、判断输入的数是否为素数。【提示:素数是只能被1和其自身和整除的数,】(007张三53.c) 【提示:参见p114—例4.36 程序运行时:程序运行结果: 请输入一个正整数:25?25不是素数 请输入一个正整数:12?125不是素数 请输入一个正整数:13?13是素数 】 4、判断输入的一个不超过32767的正整数是几位数。(007张三54.c)【提示:按照右侧的N-S图编程 运行时:运行结果: 请输入一个正整数(1~32767): 135?135是3位数请输入一个正整数(1~32767): 1356?1356是4位数请输入一个正整数(1~32767): 28906?28906是5位数】

附加题: 1、求出100~200间的所有素数。(007张三5附加1.c )。 【 运行结果: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 】 2、根据以下公式求π值(直到最后一项小于10 –6 为止)(007张三5附加2.c ) 【 运行结果: pi=3.141590 】 3、百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?(007张三5附加3.c ) 【提示:在编程之前,需先根据题意列出方程, 如: 设鸡翁x 只,鸡母y 只,鸡雏z 只 则有下列方程: x+y+z=100 和 5x+3y+z/3=100 因为2个方程,3个未知数,故为不定方程,需用穷举法解题。 运行结果: x=0??? y=25??z=75?? x=4??? y=18??z=78?? x=8??? y=11??z=81?? x=12?? y=4???z=84?? 】 参考解答: 1、~2、略 3、 #include void main( ) { int x, I, k; printf(“请输入一个正整数:”); scanf("%d", &x); k=x/2; while ( i <=k ) { if( x%i ==0 ) break; } if ( i>k ) { printf(“%d is \n”, x); } ??????+???+??+?++=9 4 73523173523152313112π

实验6 循环结构程序设计

实验6 循环结构程序设计 一.实验目的 1.掌握在设计条件型循环结构时,如何正确地设定循环条件。 2.掌握如何正确地控制计数型循环结构的循环次数。 3.练习并掌握选择结构与循环结构的嵌套、多重循环的应用。 4.掌握在程序设计中用循环的方法实现一些常用算法,加强调试程序的能力。二.实验要求 1.复习while、do-while、for语句和continue、break语句。 2.能够用流程图表示实验题目的算法。 3.能够独立调试运行实验题目。 4.本实验要求4学时完成。 三.实验内容和步骤 题目1:分别用while循环和for循环计算:1+2+3+…+100=? 要求:写出程序并上机查看运行结果。 题目2:输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数。要求:程序填空并写出2组运行结果。 01#include 02#include 03#include 04main( ) 05{ 06char c; 07int letter=0,capital=0,lower=0,space=0,digital=0,other=0; 08printf("\ninput a line character :\n"); 09while((c=getchar())!='\n') 10{ 11if( 【1】) /*统计大小写字母的个数*/ 12{ 13letter++; 14if ( 【2】) 15lower++; /*统计小写字母的个数*/ 16} 17else if( 【3】) 18space++; /*统计空格的个数*/

实验5 循环控制

实验5 循环控制 一、实验目的 熟悉掌握用while语句,do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。进一步学习调试程序。 二、实验内容 编程序并上机调试运行。 1.输入两个正整数m和n,求它们的最大公约数和最小公倍数。 源程序:(以T5_1作为文件名。) 运行程序,分别用8和12、22和10做为测试数据,写出运行结果: 2.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。 源程序:(以T5_2作为文件名。) 运行程序,写出运行结果:

3.编程计算1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+n)的值。 (本题中的n从键盘输入,且假设在20以内) 源程序:(以T5_3作为文件名。) 4.试编程:找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例52=25,5在25的右边,5是同构数;252=625,25在625的右边,25是同构数。 源程序:(以T5_4作为文件名。) 运行程序,写出运行结果: 5.编程求100~300之间的全部素数的和 源程序:(以T5_5作为文件名。)

运行程序,写出运行结果: 课后思考题(以前考试题): 1.利用下面公式求s的值(求20项之和) s=1/(1*2*3)-1/(2*3*4)+1/(3*4*5)-1/(4*5*6)+...+1/(19*20*21)-1/(20*21*22) 2.一个素数加上1000以后是43的倍数,求满足这个条件的最小素数。 3.有2个小于40的正整数a和b,a的平方与b的和是1053,b的平方与a的和是873,请编程求满足条件的a和b的值。(提示:满足条件的a,b的值唯一) 4.一个自然数除以2余1,除以3余2,除以4余3,除以5余4,除以7余5,求满足这个条件的最小的自然数? 5.求所有的"水仙花数"之和。所谓"水仙花数"是指一个三位数,其各位数字的立方和等于该数本身。例如153是一个"水仙花数",因为:153=1*1*1+5*5*5+3*3*3。 6.分别计算500到1300之间所有既能被7整除又能被13整除的奇数和偶数之和。 7.统计用0-9之间不同的3个数构成一个三位数有多少种方法

实验2-循环结构程序设计

实验2 循环结构程序设计 一、实验目的 1.学习循环语句for、while和do-while语句的使用方法。 2.学习用循环语句实现各种算法,例如穷举法、迭代法等。 3.进一步熟悉C语言集成环境的使用方法 二、实验内容 1.用while循环实现数据统计问题。:从键盘输入一批任意数量的整数,统 计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问 题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。 4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值。 三、实验指导 1.用while循环实现数据统计问题。 ?编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法: (1).使用一个负数作为数据输入结束标志。 (2).输入一个数据后通过进行询问的方式决定是否继续输入下一个数 据。 ?参考程序 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main()

{ int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0) break; if(m<=100) counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include int main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m); getchar(); if(m>=0&&m<=100) counter++; printf("继续输入下一个数据?(Y/N)"); ask=getchar();

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构 一、实验目的: 1、 掌握建立和执行M 文件的方法。 2、 掌握利用if 语句实现选择结构的方法。 3、 掌握利用switch 语句实现多分支选择结构的方法。 4、 掌握try 语句的使用。 5、 掌握利用for 语句实现循环结构的方法。 6、 掌握利用while 语句实现循环结构的方法。 7、 熟悉利用向量运算来代替循环的操作方法。 二、实验内容: 1、 列分段函数的值。 ?? ???--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y 要求: (1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 提示:x 的值从键盘输入,可以是向量。 %homework_5_1_1.m x=input('请输入x 的值:x='); if (x<0 & x~=-3) y= x.*x + x - 6 elseif (x>=0 & x<10 & x~=2 & x~=3) y=x.*x-5.*x+6 else y=x.*x-x-6 end >> homework_5_1 请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] y = -5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000 (2) 用逻辑表达式实现上述函数。 %homework_5_1_2.m x=input('请输入x 的值:x=') y=(x<0 & x~=-3).*(x.*x+x-6)... +(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)... +(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6) >> homework_5_1_2 请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] x = -0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = -6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.0000

循环结构程序设计实验报告

嘉应学院计算机学院 实验报告 课程名称程序设计基础实验名称实验地点 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错, 及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”, 根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 (1)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 编写程序如下: #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n')

Python实验循环结构

实验五 循环结构(续) 【实验目的】 1.掌握range()函数的使用 2. 掌握For 语句的使用。 3.掌握循环嵌套的使用。 4.掌握一些常用的算法(求素数、穷举法、求和与乘积、递推法)。 【实验内容】 000000000 1、 填空 (1) 在命令行中显示1 到10的数字 range(1,11) 。 (2) 在命令行中显示 1到10的所有偶数 range(2,11,2) 。 (3) 显示所有的大写字符。 for i in range(65,91) : print chr(i) (4) 显示1--100能被3整除的数,并且每5个数打印一行。 i=0 ‘记录能被3整除的个数 for j in range(1,101): if j%3==0: print j, i+=1 if i%5==0: print 2、输出斐波那契级数1、1、2、 3、5、8、13……,此级数项的规律是:前两项的值各为1,从第3项起,每一项是前2项的和。(要求一行输出6项)。 (1) 当某项的数值大于或等于30000时结束。 (2) 求前100项之和。 (1)1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 (2 3、编写程序,输入一个数,判断该数是否为完数。例如6是一个完数,因为6=1+2+3。 x=input ("Enter an integer:") i=1 while True : x=x-i i+=1 if x==i: print "A perfect number." break if x==30000: break print c, if i%6==0: print (2) a=1 b=1 sum=2 i=2 #计数 while True: i+=1 #计数:第i 次 c=a+b a=b b=c sum+=c if i==100: #完成第100次求和后退出循环 break print sum

实验四 循环结构

实验报告 班级:电信13-1班学号:130******** 姓名:谢朗星成绩: 实验四循环结构 一、实验目的 1.掌握循环结构C程序的编写和调试方法。 2.掌握循环结构C程序中使用while语句和do while语句。 二、实验内容和步骤 1.调试下面三个程序,分析执行的结果。 1. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); return 0; } 5050 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,然后输出最终结果,结束该程序。 2. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; printf(“%d\n”,sum);} return 0;

} 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,结束该程序。 3.#include int main( ) { int sum=0,i=1; do { sum=sum+i; i++; printf(“%d\n”,sum); }while(i<=100); return 0; } 在该程序中,在循环体中先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,接着再判断i是否<=100,如果是,返回执行循环体,接着再重复上步骤,直到i>100,结束该程序。 2.编写如下2道题目的程序,要求详细写出程序编写、编译、运行的过程,源程序关键执 行语句需要给出注释。 (a)统计全单位人员的平均工资。单位的人数不固定,工资数从键盘先后输入,当输入-1 时表示输入结束(前面输入的是有效数据) 分析:循环执行的条件while(i!=-1) , 循环结束条件是单位的人数n,循环体采用累加的方法。 (b)求∑= 20 1 n !n 分析:循环体采用累加和累乘。(a) #include int main() {

实验五__循环结构程序设计

实验五循环结构程序设计 (4学时) 【实验前做的操作】 在本人所用计算机的逻辑盘(如D:盘或E:盘)上建立一个以本人姓名为名称的文件夹,然后在此父文件夹下建立子文件夹,名称为“实验五”,用来零时存放实验五需要上交的有关文件。 【实验目的】 1、掌握循环结构程序设计的基本思想。 2、理解循环结构程序段中语句的执行过程。 3、了解goto语句和if语句构成循环的设计方法。 4、掌握用for、while、do-while语句实现循环(一重循环和多重(重点是双重)循环)) 程序设计。 5、掌握for、while、do-while三种循环的区别和联系及它们之间的灵活转换。 6、在程序设计过程中实现一些常用算法。 7、进一步练习程序的跟踪调试技术,掌握运行到光标处的调试方法。 8、巩固利用VC++对C程序的查错方法,进一步提高修改程序错误的能力。 【实验内容】 一、程序运行到光标处的跟踪调试和变量值的监视练习(可不上 交、但必须操作、理解,掌握其方法) 1、程序运行到光标处的跟踪调试和变量值的监视示例(请仔细按以下各步骤进行操作): 编程计算表达式“1 + 2 + 3 + ……+ 100”的值。 源程序(有错误的程序) #include void main( ) { int i, sum; for ( i = 1, i <= 100, i++ ) sum = sum + i; printf("sum = %d\n", sum); }

运行结果(改正后程序的运行结果) sum = 5050 (1)输入源程序,并以error5_1.c 文件名保存,编译程序,出现第一个错误信息: missing ';' before ')' 双击该错误信息,箭头指向“for ”这一行,错误信息指出在for 语句的括号里面应使用“;”,对for 语句括号里面进行仔细分析,发现把“;”写成了“,”。把“,”改为“;”后,重新编译,连接,都正确。 (2)开始调试,如果调试工具栏不可见,采用实验四或实验二介绍的方法,调出该工具栏(见实验四图4.2所示)。 (3)鼠标单击第6行,光标就在第六行前面闪烁,这就是当前的光标位置(如图5.1所示)。 图5.1 光标在程序中位置 (4)单击 (Run to Cursor(Ctrl+F10)),程序运行到光标的位置(如图5.3所示)。 此过程中,出现图5.2 “生成可执行文件”的对话框时,选“是(Y)”按钮。 图5.2 生成“error5_1.exe ”文件 在变量窗口中,第一次循环时i 的值为1,正确,而sum 的值是-858993460,不正确。仔细分析程序,发现sum 没有赋初值。在for 语句前面加一条语句sum = 0; ,重新编译、连 光标位置

实验三 循环结构

实验三循环结构 一.实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握循环嵌套的用法。 3.掌握在程序设计中用循环的方法实现各种算法(如迭代,递推,穷举等)。4.掌握break和continue语句的用法。 二.实验要点 在C语言中主要用以下方法实现循环: 1.while语句格式:while (表达式)语句 2.do- while语句格式:do 语句 while (表达式); 3.for语句 for语句的一般格式: for (表达式1;表达式2;表达式3)语句 for (初值表达式;条件表达式;增值表达式) 语句 三.实验要求 1.上机前编写好以下程序。 2.上机输入和调试自己所编的程序并存在自己的U盘上。 3.检查实验结果是否正确。 4.上机结束后,整理实验报告,以“学号—姓名-第3次实验”命名的文件上传到作业服务器。 四.实验内容 上机调试运行以下程序。 1.下面的程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环.请填空. #include”stdio.h” void main(){ int n=0; char c; c=getchar(); while (【】) { if ( 【】) n++; c=getchar(); } printf(“n=%d”,n);}

键盘输入:abcdef12345k(表示回车) 输出结果: 2.当运行下面程序时,从键盘输入1 2 3 4 5 –1(表示回车)时,输出结果: #include void main() { int k=0,n; do {scanf(“%d”,&n); k+=n;} while(n!=-1); printf("k=%d n=%d\n",k,n); } 3.下列程序是求水仙花数的程序,所谓水仙花数是指一个三位数,其各位数字立方和等于该数。例如,153是一个水仙花数。 #include void main() { int i,j,k,n; printf(" The number is: "); for(【】;n++) { i= 【】; j=n/10-i*10; k=【】; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%d\t", 【】); } } } 程序输出结果: 4.下面程序完成把100~120之间的不能被3整除的数输出,并求其和,请填空。 #include void main( ) { int n,sum=0; for (【】) { if (n % 3 == 0) 【】; sum+=n; printf(“%d,”, n);

实验五 循环结构设计

实验五循环结构程序设计 【目的与要求】 熟练掌握while、do—while和for三种循环语句的应用。 【上机内容】 【示例】只要求运行前4个例题,并在/* */中说明该语句的作用或使用的方法等;典型例题仅供参考,不作要求。 【例1】求5! main() { int n,t; n=1; t=1; while(t<=5) { n=n*t; t=t+1;/**/ } printf(“%d”,n); } 【例2】求和s=1!+2!+3! main() { int n,s=0,t=1; for(n=1;n<=3;n++) { t=t*n;/*计算阶乘*/ s=s+t;/* */ } printf(“%d”,s); } 【例3】求和s= 3+33+333 main() { int s=0,t=3,i; for(i=1;i<=3;i++) { s=s+t; t=10*t+3;/*生成3,33,333等数据*/ } printf(“%d”,s); } 【例4】打印500以内的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。main()

int i,j,k,n; for(n=100;n<=500;n++) { i=n/100;/* */ j=n/10-i*10; /* */ k=n%10; /* */ if(n= =i*i*i+j*j*j+k*k*k) /* */ printf(“ %d”,n); } } 【典型示例】 【例1】计算两个数的最大公约数;分析:首先,随机输入两个数m,n(默认m>n);其次,算法:使k为m除以n的余数,如果m能被n整除,则k值为0,n为这两个数的最大公约数,否则,使k代替n,n代替m,重复以上过程,直到k值为0。 #include"stdio.h" main() { int m,n,k,result; printf("Enter two numbers:"); scanf("%d,%d",&m,&n); if(m>0&&n>0) /*限定两个正整数*/ { do { k= m % n; if(k= =0) result=n; else { m = n; n=k; } }while(k>0); /*循环取余求出最大公因子*/ printf("The greatest common divistor is:%d\n",result); } else printf("Nonpositive values not allowed\n"); } 【例2】打印下列图案 * *** ***** ******* main()

实验5

实验五 第3章MATLAB程序设计 第二节程序控制结构 程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序. 一、顺序结构 顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容. 1. 数据的输入 通过input命令来接收从终端输入的内容,它也可以显示文本和提示. 命令集14 输入命令 input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行. 2. 数据的输出 可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容. 另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中. 命令集15显示命令 disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本. 二、循环结构 循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句. 1.for —end语句 for-end语句的格式为: for 循环变量=表达式1 : 表达式2 : 表达式3 循环体语句 end

其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略. 循环语句应用时应注意: ● 循环语句可以嵌套使用; ● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8; ● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环. 2. while — end 循环 while-end 语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环. ■例1 使用while-end 结构计算1+2+3+…+100 . 解: ■例2 计算 Matlab 中 eps 值 (exp1.m) 解: s=0; for i=1:100 s=s+i; end s s=0; i=1; while i<=100 s=s+i; i=i+1; end s num=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; end EPS,num

实验(5)-循环结构.

C语言程序设计实验教学(5) 【实验目的】通过程序设计实现,掌握while结构、do-while结构和for结构各种类型的循环结构,完成各种循环程序的设计和实现。 【实验要求】同一个题目尝试使用多种循环控制结构来实现,并分析其设计和实现的差别和难易程度。 【实验课时】6.0 【实验内容】 1、完成课堂实例的实现。 (1)计算s=1+2+…+100。(累加型) (2)请输入数n,计算n!。(连乘型) (3)输出所有的水仙花数。(范围型) (4)判断n是否为素数。(反向思维型) (5)输出100-200之间能同时被3和5整除的数。(用continue语句) (6)输入任意n个数,输出其中最大数和最小数,并输出它们在序列中的位置。 (7)输出以下图形(1): (8)输出以下图形(2): (9)输出以下图形(3): 图形(1)图形(2)图形(3) (10)编写输出如下字母塔的程序: A A B A A B C B A A B C D C B A

……………… …………………… ………………………… A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 2、计算多项式7+72+73+······+7n 的值,n 由键盘输入。 3、求 ∑=201! n n (即求1!+2!+3!+……+20!) 4、输入2个正整数m,n ,求其最大公约数和最小公倍数。 5、请编程序打印出以下数列:1、1、2、3、5、8、13、…的前40项。每行输出4个数。(斐波那契数列) 6、求100~200间的全部素数。每行输出6个数。 7、“鸡兔同笼”是一个中国古算题,最早出现在《孙子算经》中。笼中有若干只鸡和兔子,它们共有88个头,244只脚,问鸡和兔各有多少只? 8、求下列分数序列的前20项之和。 12,23,35,58,813,1321,…… 9、输入x 值,按照公式计算cos(x)的值,直到最后一项小于10-6为止。 ,! 6x !4x 2!x 1)x (cos 6 42 +-+-= 10、找出1000之内的所有完数,一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。输出时按下面的格式输出其因子: 6 its factors are 1,2,3 补充作业:(以下题目任选2题) 1、我国古代有一道有名的数学难题,称为“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买了百鸡,问鸡翁、鸡母、鸡雏各买了多少只? 2、猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,就

相关主题
文本预览
相关文档 最新文档