文档库 最新最全的文档下载
当前位置:文档库 › 第 5 章 循环控制

第 5 章 循环控制

第 5 章  循环控制
第 5 章  循环控制

1.求1+4+7+……+100之和。

2.使用do-while单循环打印输出10~100之间所有能同时被5和9整除的整数

3.有数列:9,99,999,9999...,编程计算前10项的值。

4.求1到100之间的奇数之和与偶数之和。

5.用循环程序求10的阶乘。

6.使用while单循环求1!+2!+3!+...+6!+7!。

7.求1*3*5*...*19之积。

8.给定一个正整数n,求1+2+3+...+n之和并输出。

9.求1-1/3+1/5-1/7+...-1/99+1/101之和。

10.求得斐波那契数列前20项的值并输出。

11.求出所有的水仙花数(各位数字立方之和等于数本身的三位整数)并输出。

12.使用双重循环打印九九乘法表,输出效果如图所示

13.2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数

将达到20万人?

14.现有一个电视商品竞猜活动

活动规则:

随机出现一个电视的价格(2000-10000之间),用户去竞猜价格,如果在5次内猜对价格,便可获得此商品。(超过5次,显示”很可惜,你没有获得奖品,竞猜结束。”,在5次内猜对的话,显示”恭喜你,获得了此奖品。”)。

提示:

产生2000-10000的随机数:

1)首先在开头导入Math 类

Import java.util.Random;

2)生成随机数

Random random=new Random();

Int price= random.nextInt(8000)+2000;

15.完成购买商品结算功能:

1、循环输入商品编号和购物数量,计算消费金额并累加到总金额

2、输入“n”开始结账(假设享8折)

3、输入实付金额,计算找零

16.使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250

度,每隔20度为一项,对照表中的条目不超过10条。

转换关系:华氏温度= 摄氏温度* 9 / 5.0 + 32

17.1~10之间的整数相加,得到累加值大于20的当前数

18.用户登录验证。验证次数最多3次

19.开发一个标题为”FlipFlop”的游戏应用程序。它从1计数到100,遇到3的倍数就替换为

单词”Flip”,5的倍数就替换为单词”Flop”,既为3的倍数又为5的倍数则替换为单词”FlipFlop”,其余情况下输出当前数字。

20.鸡兔同笼是我国古代著名的趣题之一。大约在1500年前,《孙子算经》中记载了这样

一道题:今有稚兔同笼,上有35个头,下有94足,问鸡兔各几只?试编写程序解决这个问题。

21.在马克思手稿中有一道趣味的数学问题:一共有30个人,可能包括男人,女人和小孩。

他们在一家饭馆吃饭共花了50先令,其中每个男人花3先令,每个女人花2先令,每个小孩花1先令。请问男人、女人和小孩各几人?请编写一个程序来计算。

22.有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服。最后打印总

共买了几件衣服。

23.我国古代数学家张丘建在<<算经>>中出了一道“百钱买百鸡”的问题,题的意思是这样的,

5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡,现在用100文钱买100只鸡,那么各有公鸡、母鸡雏鸡多少只,请编写程序

24.打印如图所示菱形9行9列(提示可以将菱形分成上下两个三角形,分析每行空格数和星

号个数的关系)

25.万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)

大一上期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)计算π值

第五章 循环控制.

第五章循环控制 许多问题的求解归结为重复执行的操作,比如数值计算中的方程迭代求根,非数值计算中的对象遍历。重复执行就是循环。重复工作是计算机特别擅长工作之一。 重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。 重复的动作是受控制的,比如满足一定条件继续做,一直做直到某个条件满足,做多少次结束。也就是说重复工作需要进行控制-循环控制。C语言提供了三种循环控制语句(不考虑goto/if构成的循环),构成了三种基本的循环结构: (1)while语句构成的循环结构(“当型循环”) (2)do-while语句构成的循环结构(“直到型循环”) (3)for语句构成的循环结构(“当型循环”) 5、1 while语句(当型循环) while语句的一般形式是: 其中:表达式称为“循环条件”,语句称为“循环体”。为便于初学者理解,可以读做“当条件(循环条件)成立(为真),循环执行语句(循环体)” 执行过程是: 1)先计算while后面的表达式的值,如果其值为“真”则执行循环体, 2)在执行完循环体后,再次计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。 while循环的执行流程:

使用while语句需要注意以下几点: (1)while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。 (2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。 (3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。 例5-1:利用while语句,编写程序计算1+2+3+ (100) 解: 算法1:直接写出算式 S1: result<=1+2+3+4+5+…+100 很简单。但是写都写得累死了。 算法2: 考虑到1+2+3+…+100可以改写为:(((1+2)+3)+…+100), S1:p1<=1+2 S2: p2<=p1+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; } }

南昌大学第六章循环控制答案

A.20 B.24 C.25 D.30 A.1 B.30 C.1 -2 D. A.15 B.14 C. D.0 A. B. C. D.

A.45 B.55 C.0 D. A.while B. C. D. A. 2 B. 3 C. 4 D. A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1

A. 20 B. 6 C. 20 D. 8 A.!a=b B.a!=b C.a==b D.a=b A. continue B. C. D. A. B. x>=0 C. printf D.

A. B. C. D. A.for B.for C. D.for 括号括起来 A.for( B.for( C)for(D)for( A) B)0 C)1D)2 A)3 B)4

C)5 D) A. B. C. D. A.k-- B.k=k+1 C.k++ D.k+=2 21 #include main() {int day=0,buy=2; float sum=0.0 ,ave; do{ sum+=0.8*buy; day++; buy*=2} while(buy<=100); ave=sum/day; printf(”%f,ave);} 21 #include main() {int i; for(i=1;i<100;i++) if(i*i%10==i || i*i%100==i)

printf("%3d",i); } 22 #include main() { int i , j; float g,sum,ave; for(i=1; i<=6; i++) { sum=0.0; for(j=1; j<=5;j++) { scanf("%f",g); sum=sum+g; } ave=sum/5; printf("No.%d ave=%5.2f\n",i,ave); } } 23 #include void main() { int a , b, p,t ,r printf("input a b :"); scanf("%d,%d", &a,&b); p=a*b; if(b>a) {t=a;a=b;b=t;} while((r=a%b)!=0) { a=b; b=r; } printf("max_gy=%d\n", b); printf("min_gb=%d\n",p/b); } 24 #include void main() { int i,a,n; long s=0 , sum=0; clrscr(); printf("input a , n :\n"); scanf("%d,%d",&a,&n); for(i=1;i<=n;i++) { s=s*10+a; sum=sum+s; } printf("a=%d n=%d sum=%ld",a,n,sum);

实验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个数构成一个三位数有多少种方法

第五章 循环结构程序设计编程题(参考答案)

第五章循环结构程序设计 1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=1;i<=20;i++) printf("%d ",i); printf("\n"); } 2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=20;i>=1;i--) printf("%d ",i); printf("\n"); } 3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。 #include void main() { char c; for(c='A';c<='A'+25;c++) { putchar(c);

printf(" "); } } 4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。#include void main() { int i,j=0; for(i=100;i<=200;i++) { if(i%21==0) { j++; printf("%12d",i); if(j%4==0) printf("\n"); } } } 5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。 #include void main()

int i,j=0; for(i=1;i<=1000;i++) { if((i%3==2)&&(i%5==3)&&(i%7==2)) { j++; printf("%12d",i); if(j%5==0) printf("\n"); } } } 6.先读入一个正整数n,然后计算并显示前n个偶数的和。例如n为5,则求2+4+6+8+10的值,即sum=30。 #include void main() { int i,n,sum=0; printf("Please enter an integer n:"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=(2*i); printf("sum=%d\n",sum);

第五章循环结构

第五章循环结构 一、选择题 1.C语言中while和do_while循环的主要区别是( )。 A.do_while的循环体至少无条件执行一次 B.while的循环控制条件比do_while的循环控制条件严格 C.do_while允许从外部转到循环体内 D.do_while的循环体不能是复合语句 2.以下描述中正确的是( )。 A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,是先执行一次循环,再进行判断 D.do-while循环中,根据情况可以省略while 3.语句while (!E); 括号中的表达式!E等价于( ) 。 A.E==0 B.E!=1 C.E!=0 D.E==1 4.以下程序的功能是计算:s= 1+1/2+1/3+……+1/10 main() { int n; float s s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( )。 A.s=1.0; B.for(n=10;n>1;n--) C.s=s+1/n; D.printf("%6.4f\n",s); 5.下面程序段的运行结果是( )。 a=1;b=2;c=2; while(a

实验报告5答案

实验报告 课程名称:高级语言程序设计 实验五:循环结构程序设计 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 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 *E 5. 输入10个整数,输出最大值、最小值和平均分。 6. 编写程序,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14…。 () 1121231234121233535735793521n n π?????????=++++++?????????+………… 五、实验结果(要求写出运行界面及输出的运行结果)

第六章循环控制概要

第六章循环控制 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范。 2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。 3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 4.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。 本章开始,上机实验项目量加大,希望同学们多多自行上机。本章实验项目有余力都可以做一下并上交。 循环程序设计 计算机解决问题都是按指定的顺序执行一系列的动作。按照特定的顺序执行相应的动作来求解问题的过程称为算法。程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。 计算机程序中指定语句的执行顺序称为“程序控制”。结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。 1. 循环设计 循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。循环控制有两种基本方法:计数法和标志法。 1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。 2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。 循环设计时要注意合理设计循环条件,使得循环不会成为死循环。 2. 算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1)穷举 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例:输入两个正整数x和y,求其最大公约数。 main() {int x,y,i,flag; printf("Please input two numbers:"); scanf("%d%d",&x,&y);

实验五 循环结构程序设计

实验五循环结构程序设计 一.实验目的 1.掌握用while语句、do-while语句和for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。 2.理解什么是循环程序结构。 二.实验要点 1.while语句 一般格式:while(表达式) 语句; 2.do-while语句 一般格式:do 语句;while(表达式); 3.for语句 一般格式:for(表达式1;表达式2;表达式3) 语句; 三. 实验要求 1.上机前先阅读或编写以下要调试的程序。 2.上机输入和调试程序并存在自己的软盘上。 3.检查实验结果是否正确。 四.实验内容 (一)调试程序,分析输出结果 1.输入并运行以下程序,分析运行结果。 main() {int n=0; while (n++<=2); printf(“%d\n”,n); } 去掉程序第3行最后的分号,结果又如何? 2.输入并运行以下程序,分析运行结果。 main() {int i,j,k,sum=0; for(i=1;i<=3;i++) {k=i*i; for(j=1;j<=4;j++) sum=sum+k+j; } printf(“sum is :%d\n”,sum); } 内循环与外循环各进行了多少次?如果将程序的第3行与第5行对调,程序的运行结果有无变化? 3.以下程序中,循环次数是: main() {int i,j,k=19; do {k-=3; if(k%5==0){i++;continue;} else if(k<5) break;

i++; }while(i=k-1); printf(“i=%d,k=%d\n”,i,k); } 说明:continue语句与break语句的区别:continue语句只结束本次循环,而break语句则是结束整个循环过程。 4.下面是一个计算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) {x=x*i; y=1/x; e=e+y; ++i; } printf(“%.8f”,e); } 当输入的a各是什么值时,能分别使程序按下面的要求运行: 1)不进入循环; ? 2)只循环一次; 3)进入死循环(程序将永远循环下去); 4)为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句? (二)完成以下填空,并把程序调通,写出运行结果 已知一只公鸡五元,一只母鸡三元,三只小鸡一元。现有100元钱欲买100只鸡,求公鸡、母鸡、小鸡能各买多少? #include "stdio.h" main( ) {int x,y, z; /*x,y,z分别代表公鸡、母鸡、小鸡的数量*/ for(【】;x++) for(【】;y++) {z=【】; if (【】) printf("cock=%d;hen=%d;chicker=%d\n" ,x,y,z); } } (三)以下程序的功能是:按顺序读入4名学生3门课程的成绩,计算出每位学生的平均分并输出。 main() {int n,k; float score,sum,ave;

实验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

循环控制 实验指导

实验三循环结构程序设计 实验课程名:高级语言程序设计(C) 专业班级:电气工程及其自动化学号:201140220209 姓名:郑朝栋 实验时间:2012.4.19 实验地点:K4—202 指导教师:吴建设 一、实验目的 1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。 2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。 3. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 4. 掌握字符数组和字符串函数的使用。 5. 掌握与数组有关的算法。 二、实验内容和步骤 1.程序求和:1+…+100,填空,实现该功能。 #include void main() { int s,i; s=0; /* 第5行*/ for( ) s=s+i; printf("1+...+100=%d\n",s); } 思考:(1)第5行能不能去掉?其作用是什么? (2)不用for语句,用while语句改写该程序,实现同样的功能。 (1)#include void main() { int s,i; s=0; /* 第5行*/ for(i=1;i<=100;i++ ) s=s+i; printf("1+...+100=%d\n",s); printf("09 郑朝栋实验三第一题\n"); } 第5行不能去掉,其作用是给S赋初值。 运行结果: (2)#include void main()

{ int s,i; s=0;i=1; /* 第5行*/ while(i<=100 ) {s=s+i;i++;} printf("1+...+100=%d\n",s); printf("09 郑朝栋实验三第一题\n"); } 运行结果: 2.比较下列两个程序。(验证) /* 第一个程序*/ #include void main() { int i,n,sum=0; scanf("%d",&i); n=i; while(i<=10) { sum+=i; i++; } printf("%d+...+10=%d",n,sum); } /* 第二个程序*/ #include void main() { int i,n,sum=0; scanf("%d",&i); n=i; do { sum+=i; i++; } while(i<=10); printf("%d+...+10=%d",n,sum); } 分别运行这两题,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别? /* 第一个程序*/ #include

第5章循环结构程序设计

第5章循环结构程序设计 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构; 2.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 3.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序5_1.c、5_2.c、5_3.c、5_5.c、5_6.c、5_7.c、5_8.c、5_11.c上传至http://121.251.227.27:8080/c 1.循环设计 循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。 (1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 (2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。 2.基本算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1. 穷举算法 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例1 输入两个正整数x和y,求其最大公约数。 #include void main() { int x,y,i,flag; flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/ printf("Please input two numbers:"); scanf("%d%d",&x,&y); for(i=x

第六章循环控制(6033)

请你负责具体第五章、第六章的题目,主要有以下几个方面: 2、将相应章节的题库内容进行审核,主要包括题目本身及答案是否正确,题目的难易度是否合适(太难或太偏可删除),题目是否有重复,格式是否符合导入数据库规范; 3、审核后的相应章节题目若每章不够60题,请进行补充。 4、第二阶段工作请于3月底完成,如有不清楚,可与我电话联系。 1.阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++〉 n[i]=0; k=2; for (i=0;i〈k;i++〉 for (j=0;j〈k;j++〉 n[j]=n[i]+1; printf("%d\n",n[1]); } 程序运行后输出结果是(D)。 A. 2 B. 1 C.0 D. 3 2.以下正确的描述是(B)。 A.continue语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出时, 只能使用goto语句 3.若int x;且有下面的程序片断,则输出结果是(A)。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A.##3 **4 ##5 B.**3

##4 **5 C.**3 ##4**5 D.##3**4 ##5 4.下列保留字中用于构成循环结构的是( B)。 A.if B.while C.switch D.default 5.以下程序段的输出结果为( B)。 for(i=4;i>1;i--) for(j=1;j

实验4循环控制一

《C语言程序设计》实验报告 ---------------------------------------------------------------------------------------------- 实验4循环控制(一) 一.实验目的 (1)掌握用while语句,do…While语句和for语句实现一重循环的方法。(2)掌握在程序设计中用循环的方法实现一些常用算法(例如求最大/最小值、求和、统计等)。 (3)进一步学习调试程序的技巧。 二.实验内容和步骤 1.填空题 (1)给定程序成c4-1.c功能是计算1到M之间的奇数之和及偶数之和。 #include #define M 100 int main() { int a,b,i; a=0;b=0; for(i=1;i<=99;i+=2) { a=a+i; b=b+i+1; } printf("sum of evens is %d\n",b); printf("sum of odds is %d\n",a); return 0; } (2)以下给定程序c4-2.c的功能是从键盘输入整数,分别计算所输入正整数的和、负整数的和。当输入0时,结束并输出计算结果。 #include int main() { int x,sum1,sum2; sum1=0;sum2=0; scanf("%d",&x); while(x!=0)

{ if(x>0) sum1+=x; else sum2+=x; scanf("%d",&x); } printf("sum of>0 in %d\n",sum1); printf("sum of<0 is %d\n",sum2); return 0; } (3)给定程序c4-3.c功能是计算正整数num的各位上数字之积。 #include int main() { int num,k; k=1; printf("please enter a number:"); scanf("%d",&num); do { k*=num%10; num=num/10; }while(num!=0); printf("\n%d\n",k); return 0; } 反思与总结:1.evens代表偶数,odds表示奇数;2.(3)中取末尾的方法值 得一看!3.通过这三个例子掌握for,while,do while语句的使用。 2.改错题 (1)以下程序c4-4.c的功能是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将程序补充完整。 #include int main() { float x,amax,amin; scanf("%f",&x); amax=0;amin=100; for(;x>=0;) { if(x>amax) amax=x; if(x

上机实验五循环结构-参考答案

上机实验五循环结构程序设计 学号: 姓名: 一.目的要求 1.掌握用for、while、do-while语句实现循环的基本技巧; 2.掌握循环次数不确定的解题技巧; 3.掌握break语句、continue语句在循环语句中的作用以及不同之处; 4.掌握多重循环的编程技巧。 二.实验内容 【实验题1】. 程序填空:分别用for、while、do-while语句编程,输出菲波那契数列的前20项,要求每行输出10项。 源程序1:用for语句实现 编译、连接并运行该程序,则显示 思考:line 5和line 8行中printf()函数的格式控制符均为”%6d”, 假如均改为”%d”, 输出结果有何不同? 输出的数据无间隔 源程序2:用while语句实现 #include void main() { int i,x1,x2,x; x1=x2=1; printf("%6d%6d",x1,x2); /*输出前2项*/ i= 3 ; while( i<=20 ){ x=x1+x2; printf("%6d",x); if(!(i%10) ) printf("\n"); /*每行输出10项*/

x1= x2 ; x2= x ; i++ ; } } 源程序3: 用do-while 语句实现 【实验题2】程序填充:输入double 型变量x 的值,计算下列算式的值,直到最后一项的绝对值小于10-5。 23456 ...2!3!4!5!6! x x x x x s x =++++++ 源程序如下:

编译、连接并运行程序,输入0.5, 则显示:;输入 1 ,则显示:;输入1.7,则显示:。略 line 21中的表达式“f*=i”,等同于表达式“f=f*i ”;同理,line 11中的表达式“s= s+item”也可替换为“s+=item ”. 【实验题3】程序填空:验证哥德巴赫猜想——任何一个大于6的偶数均可表示为两个素数之和。例如:6=3+3,8=3+5,10=5+5,…,18=7+11。要求将6-100之间的偶数均表示为素数之和,一行输出5组。 【分析】 1. 本程序采用双层循环:外层循环负责对6~100之间的偶数逐个输出加法式子;内层循环负责为一个特定的偶数k, 找出相应的素数a和b. 2. 对于偶数k(k>=6),符合条件的两个素数a和b必然位于区间[3, k-1].(为什么不从2开始?) 3. 由于k=a+b,通过内层循环试探性地找出第一个加数a后,第二个加数b可用推算而得,再调用函数prime()来判断a、b是否是素数,如果两者均为素数,则停止寻找素数,并输出k=a+b. 源程序如下: 【实验题4】程序填空:输入一个整数,从高位开始逐位分割各位数字,如输入7358,则输出7 3 5 8(20XX年春笔试真题) 【分析】 我们已经学习了如何用整除运算和求余运算求出一个整数number的位数、以及从低位到高位的各位数字。本题则是从高位向低位逐步分解各个数位,关键是先求出这个整数是几位数?

第五章循环结构的程序设计补充习题(1)

第五章循环结构的程序设计补充习题(1) 一、单选题 1. 以下叙述正确的是 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。 2. 设有程序段 int k=10; while(k=0) k=k-1; 则下面描述中正确的是。 A)while循环执行10次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次 3. 有如下程序 main() { int x=23; do { printf("%d",x--);} while(!x); } 该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容D) 陷入死循环 4. 有如下程序 main() { int n=9; while(n>6) {n--;p rintf(“%d”,n);} } 该程序段的输出结果是 A) 987 B) 876 C) 8765 D) 9876 5. 有以下程序 main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是 A)-1 B)-3 C)-5 D)0 6.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是 A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; 7. 标有/**/的语句的执行次数是: int y , i ; for(i=0;i<20;i++) { if( i%2==0) continue ; y+=i ; /**/ } A) 20 B)19 C)10 D) 9 8.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10 main()

相关文档
相关文档 最新文档