实验6 循环结构程序设计(2)
第6章循环结构程序设计习题及答案

第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<stdio.h>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误?当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何?6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include"stdio.h"void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗?6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<stdio.h>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么?没有此语句将会是什么状况?6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
实验6循环结构的程序设计

实验6循环结构的程序设计一、实验目的1.掌握循环结构的基本概念和使用方法;2.掌握循环语句的编写;3.培养解决问题的能力。
二、实验内容编写程序,实现以下几个功能:1.利用循环语句实现计算1到100的整数和;2.利用循环语句实现计算1到100的奇数和;3.利用循环语句实现判断一个数是否为素数;4.利用循环语句实现输出九九乘法表。
三、实验步骤1.编写计算1到100的整数和的程序。
程序代码如下:```pythonsum = 0for i in range(1, 101):sum += iprint("1到100的整数和为:", sum)```2.编写计算1到100的奇数和的程序。
程序代码如下:```pythonsum = 0for i in range(1, 101, 2):sum += iprint("1到100的奇数和为:", sum)```3.编写判断一个数是否为素数的程序。
程序代码如下:```pythonnum = int(input("请输入一个正整数:"))is_prime = Trueif num <= 1:is_prime = Falseelse:for i in range(2, int(num ** 0.5) + 1): if num % i == 0:is_prime = Falsebreakif is_prime:print(num, "是素数")else:print(num, "不是素数")```4.编写输出九九乘法表的程序。
程序代码如下:```pythonfor i in range(1, 10):for j in range(1, i+1):print(j, "*", i, "=", i*j, end="\t")print```四、实验结果1.计算1到100的整数和的结果为:5050;2.计算1到100的奇数和的结果为:2500;3.判断一个数是否为素数的结果见实验数据;4.输出九九乘法表如下:```plaintext1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=427*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=487*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=547*9=63 8*9=72 9*9=81```五、实验总结通过本次实验,我学会了如何使用循环结构进行程序设计。
循环结构程序设计(C语言实验报告)

循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
[工学]第05章 循环结构程序设计 (2)
![[工学]第05章 循环结构程序设计 (2)](https://img.taocdn.com/s3/m/90d7833fff00bed5b9f31d37.png)
22
i=i+c
2019/2/17
例:#include<stdio.h> 例:#include<stdio.h> main( ) main( ) { int i=0; { int i=0; for(;i<10;i++) for(i=0;i<10;i++) putchar(‘a’+i); putchar(‘a’+i); } } 运行结果:abcdefghij
2019/2/17
21
(7)表达式2一般是关系表达式(如 for语句说明4 i<=100)或逻辑 表达式(如a<b&&x<y),但也可以是数值表达式 或字符表达式,只要其值为非零,就执行循环体。分 析下面两个例子: ①for ( i=0;(c=getchar( ))!=‘\n’;i+ =c); i=0 此 for语句的执行过程见图 ,它的作 用是不断输入字符,将它们的ASCII 取一个字 码相加,直到输入一个“换行”符为 符=>c 止。 F ② for( ;(c=getchar( ))!=‘ \ n’;) C≠换行符 printf(“%c”,c);
15
思考:该程序是什么功能?
2019/2/17
5.3 for语句
for循环语句是C语言中功能最强的循环语句,它有
多个变化形式,并且可以很方便的代替其它的循环语
16
句。 for语句的一般形式
for(表达式1;表达式2;表达式3)循环体语句
2019/2/17
17
for执行流程
①先计算初值表达式1,它主要 用于循环开始前设置变量初值; ②接着计算循环控制逻辑表达式 2,它控制循环条件,决定循环 次数; ③如果表达式2为真,则执行循 环体语句,否则结束for循环; ④求解表达式3,它主要是对循 环控制变量进行修改。 ⑤转步骤②执行。
实验结论循环结构程序设计

实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。
本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。
实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。
实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。
2. 循环结构的分类:常见的有while循环、do-while循环和for循环。
3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。
实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。
2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。
3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。
实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。
同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。
结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。
在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。
实验六——循环结构程序练习总结

实验六——循环结构程序练习总结1、本次课学习到的知识点:(1)循环结构程序设计归纳出哪些操作需要反复执⾏——循环体这些操作在什么情况下重复执⾏——循环控制条件⼀旦确定循环体和循环条件,循环结构也就基本确定了。
再选⽤三种循环语句实现循环。
(2)如果实现给定了循环次数:⾸选for语句,因为它看起来最清晰。
如果循环次数不明确,需要通过其他条件控制循环,通常选⽤while语句或do-while语句。
if(循环次数已知)使⽤for语句else /*循环条件未知*/if(循环条件在进⼊循环是明确)使⽤while语句else /*循环条件需要在循环体中明确*/使⽤do-while语句(3)在例4-9中,当x最后变成0时,处理过程结束。
经过归纳得到:重复的步骤:1、x%10,分离⼀位2、x=x/10,为下⼀次分离做准备3、直到x==0,循环结束。
(4)在例4-11中,假定头两项分别⽤x1=1和x2=1表⽰,则新项x=x1+x2,然后更新x1和x2:x1=x2及x2=x,为计算下⼀个新项x做准备。
2. 实验过程中遇到的问题及解决⽅法:(1)在做⼀道实验时,有时候不太会分析题⽬的意思。
(2)复杂的实验,往往不知道从何开始。
(3)询问⽼师和同学,查阅书籍和资料来解决问题。
3. 实验⼼得体会及本章学习总结:这⼀节课主要是循环结构程序设计,熟练运⽤三种循环语句for语句,while语句,do-while语句进⾏程序编译并解决问题。
通过实验练习,已经感觉⾃⼰渐渐会使⽤这三种语句了。
不知不觉,已经过去了六周,上了六次课了,对于c语⾔已经不再陌⽣了,希望接下来的学习会越来越好。
本章学习总结:循环结构:循环语句主要有for语句,while语句,do-while语句。
其中for语句和while语句都是在循环前先判断条件,只有条件满⾜才会进⼊循环。
do-while语句先执⾏循环体,后判断循环条件。
事先给定循环次数⾸选for语句,通过其他条件控制循环,考虑while 语句和do-while语句。
循环结构程序设计实验报告

一、实验目的1. 掌握循环结构程序设计的基本方法和应用;2. 熟悉C语言、Java语言等编程语言中的循环结构;3. 提高编程能力,学会运用循环结构解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言、Java语言3. 编译器:Visual Studio、NetBeans三、实验内容1. C语言循环结构程序设计(1)编写一个C语言程序,实现输出1-100的累加和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}printf("1-100的累加和为:%d\n", sum);return 0;}```(2)编写一个C语言程序,实现输出16行杨辉三角。
```c#include <stdio.h>int main() {int arr[16][16];int i, j;for (i = 0; i < 16; i++) {for (j = 0; j <= i; j++) {if (j == 0 || i == j) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }printf("%d ", arr[i][j]);}printf("\n");}return 0;}```2. Java语言循环结构程序设计(1)编写一个Java程序,实现输出1-100的累加和。
```javapublic class Sum {public static void main(String[] args) {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}System.out.println("1-100的累加和为:" + sum);}}```(2)编写一个Java程序,实现输出16行杨辉三角。
循环结构的程序设计实验

一、实验目的
通过针对循环问题求解的程序填空,认识循环结构的程序流程框架,理解循环结构流程控制语句的正确应用以及条件的正确表示、循环入口和循环结束的正确控制。
二、实验内容
1、题目:输入某年某月某日,判断这一天是这一年的第几天?
算法分析提示:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。
特殊情况:闰年且输入月份大于3时需考虑多加一天。
请按照表格中“期待的输出”要求,将程序空缺的【1】、【2】、【3】、【4】、【5】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在表中。
【1】month
【2】case 11:sum=303;break;
【3】case 12:sum=334;break;
【4】return 0
【5】sum++
2、题目:将一个正整数分解质因数。
算法分析提示:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2) 如果n不等于最小的质数k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
请按照表格中“期待的输出”要求,将程序空缺的【1】、【2】、【3】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在表中。
【1】i<=n 【2】n==i 【3】break。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6 循环结构程序设计(2)
一、实验目的:
1、继续熟悉循环程序设计,掌握不确定次数循环判定条件的设置;
2、掌握多重循环的使用,能够熟悉应用穷举法、迭代法、判定素数、求最大公约定等典型算法;
3、熟悉break语句和continue语句在循环中的应用,并区分两者的不同。
二、实验内容
1、(基础题)编写程序,输出从公元2000年到3000年所有闰年的年份,每行输出10个年份。
判定闰年的条件是:
(1)年份能被4整除,但不能被100整除,则是闰年;
(2)年份能被400整除也是闰年。
(提示:循环变量从2000变化到3000,然后去判断每一个年份是否为闰年,若是,则输出。
由于每行只能输出10年份,还要定义一个整型变量用于计数)
程序运行效果图如下图所示:
2、在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。
请根据题目要求完善代码。
思路:①循环次数不确定,但最多循环1000次:在循环体中累计捐款总数,用if语句检查是否达到10万元,如果达到就不再继续执行循环,终止累加;②计算人均捐款数。
#include <stdio.h>
______________//定义符号常量SUM,值为100000
int main()
{
float amount,aver,total;
int i;
for (i=1,total=0;i<=1000;i++)
{
printf("please enter amount:");
scanf("%f",_____);//输入用户捐款数额,存入amount变量
___________;//用户捐款数额累加进total变量中
if(total>=SUM) //判断捐款数额是否已够
_______;
}
//计算平均每人捐款的数目
if(i>1000) //循环正常结束
aver=total/(i-1);
else //循环提前结束
________;
printf("num=%d\naver=%10.2f\n",i,aver);
return 0;
}
3、(基础题)已知有式子:xyz+yzz=532, 其中x、y、z为数字,编写程序输出所有满足条件的x、y和z。
(提示:可以利用三重循环去列举出所有可能组合,x、y、z
的值只能在0-9之间)。
程序运行效果图:
4、(提高题)输入两个正整数,输出它们的最大公约数和最小公倍数。
(提示:参考课件例子,先求最大公约数,最小公倍数=这两个数的乘积/最大公约数)
⏹如果一个数既是数A的约数,又是数B的约数,称为A,B的公约数
⏹分析:用辗转相除法(欧几里德算法)
●先比较两个数的大小;
●(i)用较大数去除较小数,得到一个余数;
●(ii)如果余数为0,则除数(较小数)就是最大公约数,结束运算;
●(iii)如果余数不为0,则计算除数(较小数)和余数的最大公约数即可(舍去被除
数)。
转向执行(i)。
以求288和123的最大公约数为例,操作如下:288÷123=2余42
123÷42=2余39
42÷39=1余3
39÷3=13
所以3就是288和123的最大公约数。
编程思路:
(1)输入两个正整数m,n(确保m大于n)
(2)用m除以n得到余数r;
(3)若r=0,则n为最大公约数,程序结束;否则用n取代m,用r取代n,转去执行第(2)
步。
程序运行效果图:。