实验4_循环结构程序设计_参考解答
循环结构程序设计课后习题及答案
循环结构程序设计习题与答案1、循环语句的三要素分别是、、.2、for语句括号内的3个表达式的作用分别是、、.3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环.4、在循环结构中,break语句的作用是;continue语句的作用是.5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次.6、下面程序段的执行次数:int a=0;while<a=0>{ printf<"good\n">;a--;}7、下面程序段的执行次数:int a=0;while<a==0>{ printf<"good\n">;a--;}8、下面程序段的执行次数:int a=1;while<a=1>{ printf<"good\n">;a++;}9、下面程序段的执行次数:int a=1;while<a==1>{ printf<"good\n">;a++;}10、下列程序段的运行结果是.for<i=5;i>=0;i-->printf<"%d ",i>;11、下列程序段的运行结果是.for<n=1;n<20;n=n+3>printf<"%d ",n>;12、下列程序段的运行结果是.for<ch='a' ;ch<='e' ;ch++>printf<"%d",ch-97>;13、下列程序段的运行结果是.for<i=1,j=5 ; i<j ; i++,j-->printf<"i=%d j=%d\n",i,j>;14、下列程序段的运行结果是.for<n=1 ; n*n<20 ; n++>printf<"%d \n",n+n>;二、选择题1、下列程序段中,死循环的是〔〕A、for <i=1; ;>B、i=32767;{ if<++i%2==0> continue; doif<++i%3==0> break; { if<i<0> break;} }while<++i>;C、i=1;D、for<i=1; ; >while<i-->; if<++i<10> break;2、下列程序段中,不是死循环的是〔〕A、inti=10;B、for< ; 1;>while<1>{ i=i%100+1;if<i>100> break;}C、int a=0;D、int x=21;do while<x>{ ++a; --x;}while<a>=0>;三、阅读程序,写出程序运行结果.1、#include"stdio.h"main<>{inti=0,sum=1;do{sum+=i;i++;}while<i<5>;printf<"%d\n",sum>;}程序运行结果:2、#include"stdio.h"main<>{inta,b;b=10;a=1;while<a<=b>a*=2;printf<"%d\n",a>;}程序运行结果:3、#include"stdio.h"main<>{int x=2;while<x-->;printf<"%d\n",x>;}程序运行结果:4、#include"stdio.h"main<>{int x=3;do{printf<"%d\n",x-=2>;}while<!x>;}程序运行结果:5、#include"stdio.h"main<>{inti;for<i=1;i<=5;i++>switch<i%5>{case 0:printf<"*">;break; case 1:printf<"#">;break; case 2:printf<"&">;break; default:printf<"\n">;}}程序运行结果:6、#include"stdio.h"main<>{charch;while<<ch=getchar<>>!='!'>putchar<++ch>;}程序运行结果:7、#include"stdio.h"main<>{inti,j;for<i=0;i<=5;i++>{for<j=1;j<10;j++>if<j==5> break;if<i<2> continue;if<i>2> break;printf<"j=%d\n",j>;}printf<"i=%d\n",i>;}程序运行结果:8、#include"stdio.h"main<>{int x ,y;x=37,y=13;while<x!=y>{if<x>y>x=x-y;if<y>x>y=y-x;}printf<"x=%d\n",x>;}程序运行结果:四、编程题1、输出下列图案12 43 6 94 8 12 165 10 15 20 252、输出下列图案*********3、编程求2-4+6-8+…-100+102的值.4、输出公元1500年至2500年所有的闰年的年号.5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.循环结构程序设计〔参考答案〕一、填空题、1.循环条件循环体循环控制变量2.循环变量赋初值循环测试条件循环变量更新3.执行整个周期外层循环条件为假4.提前结束包含它的循环语句的执行提前结束本次循环周期开始执行下一次循环周期5.0 1 06.07. 18.无数9. 110.5432111.1 4 7 10 13 16 1912.0123413.I=1,j=5I=2,j=414.14916二、选择题1. B2. D三、程序运行结果1.112.163.-14.15.#&*6.bgufsoppo7.i=5J=38.x=1四、编程题1.#include"stdio.h"main<>{inti,j;for<i=1;i<=5;i++>{for<j=1;j<=i;j++>printf<"%d ",i*j>;printf<"\n">;}}2.#include"stdio.h"main<>{inti,j;for<i=5;i>=1;i-=2>{for<j=1;j<=i;j++>printf<"*">;printf<"\n">;}}3.#include"stdio.h"main<>{inti,y=1,s=0;for<i=2;i<=102;i+=2>{ s=s+y*i;y*=-1; 〔y=-y>; } printf<"2-4+6+...-100+102=%d",y>;}4.#include"stdio.h"main<>{inti;for<i=1500;i<=2500;i++>if<i%4==0&&i%100!=0||i%400==0> printf<"%d ",i>;}5.#include"stdio.h"main<>{floatcj,min,max=0;printf<"请输入学生成绩,输入负数时结束:\n">; scanf<"%f",&cj>;min=cj;while<cj>=0>{if<cj>max>max=cj;if<cj<min>min=cj;scanf<"%f",&cj>;}printf<"max=%f\nmin=%f",max,min>;}。
实验结论循环结构程序设计
实验结论循环结构程序设计一、引言本文将详细探讨实验结论循环结构程序设计的相关内容。
通过实验结论循环结构程序设计,可以解决许多实际问题,并提供了高效、准确的解决方案。
本文将从基本概念、常见应用以及案例分析等多个方面进行深入讨论。
二、基本概念2.1 循环结构循环结构是程序设计中的一种重要概念。
通过循环结构,可以重复执行特定的代码块,从而实现对同一段代码的多次执行。
循环结构通常用于解决需要反复处理的问题,可以提高程序的运行效率。
2.2 实验结论实验结论是通过实验、观察和验证所得到的结论。
在循环结构程序设计中,实验结论是指通过对循环执行的代码进行实验和观察所得到的结论。
实验结论可以帮助程序设计者了解循环结构的行为和性能,并作出相应的优化和改进。
三、常见应用3.1 数字求和循环结构在数字求和问题中有着广泛的应用。
通过循环结构,可以方便地实现对一系列数字的求和操作。
例如,可以使用循环结构,从1加到100,并输出求和的结果。
3.2 字符串处理循环结构也可以用于字符串处理。
通过循环结构,可以逐个字符地遍历字符串,并对每个字符进行处理。
例如,可以使用循环结构,将一个字符串中的所有小写字母转换为大写字母。
3.3 数据分析循环结构在数据分析中也有着重要的应用。
通过循环结构,可以对大量的数据进行逐个处理,并得到相应的结果。
例如,在一个数组中查找最大值或最小值,可以使用循环结构逐个比较数组中的元素。
四、案例分析4.1 求解阶乘首先,我们来看一个求解阶乘的案例。
阶乘是指从1乘到一个给定的正整数的连乘积。
我们可以使用循环结构来计算阶乘。
例如,我们要计算5的阶乘,可以使用以下的循环结构:factorial = 1number = 5for i in range(1, number+1):factorial *= iprint(factorial)通过上述的循环结构,我们可以得到5的阶乘的结果为120。
4.2 猜数字游戏另一个案例是猜数字游戏。
实验四 循环结构程序设计
实验四循环结构程序设计一、实验目的1.掌握3种循环结构:while ,do—while ,for 的区别与联系,以及它们之间相互转换的方法,并能正确使用它们。
2.掌握与循环语句相关的break 语句和continue 语句的使用方法二. 实验内容1.输入正整数n,计算n的阶乘。
【分析】由于n!=1*2*3*……*n,因此,要计算n的阶乘可以从1开始,由1的阶乘乘以2得到2的阶乘,再乘以3得到3的阶乘.......以此类推。
【程序】【要求】(1)分别输入数据 -2, 1 ,5, 10, 20 调试运行程序,并记录程序结果。
(2)删除程序中//A 处的赋值语句 return 1; 重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?答:结果正确。
(3) 删除程序中//B处的语句 result=1;重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?答;不正确。
应该为int result 。
(4) 将程序中语句 double result=0; 改为 int result=0; 重新以上述数据调试运行程序,结果如何?为什么?答:结果变为整数,而非科学技术。
因为double是双精度型,而int是整数型。
2.范例:编程计算求π的近似值。
【程序】【要求】(1)输入程序编译后使用Debug跟踪,单步执行程序,记录以下变量值的变化。
回答以下问题:a)从跟踪结果分析,term和sum的值有什么错误?b)循环结束后,i的值是多少?用什么简单的办法可以看到?答:在倒数第二行加上:cout<<"i="<<i<<endl;以后就可以看到,i的值是46341. c)对程序作何修改可以使其得到正确的结果?3.将输入的小写字母转换成大写字母。
【分析】由ASCII码表可以看出,大写英文字母的ASCII码值在65至90之间,小写英文字母的ASCII 码值在97至122 之间,每一个英文字母的大写和小写的ASCII码相差32。
实验四_循环结构程序设计
采用穷举法编程实现判断整数m是否是素数。程序设计的循环语句控制验证范围,1到m-1。选择语句的条件就是判断该数能否被1到m-1的数整除,若验证有一个数能整除该数,就立刻中断循环退出验证过程。
{
scanf("%d",&a);
if (max<a) max=a;
i++; /*i为循环控制变量,统计输入数的个数*/
}
printf("The max value is:%d\n",max);
}
编写源程序三,程序文件名ex4_12.c:
#include<stdio.h>
void main()
{
int a,max,i;
do
循环体语句
while(条件表达式);
do-while循环语句的执行过程:
S1:执行循环体语句;
S2:计算条件表达式的值,并判断其值是真值(非0值),还是假值(0值),若为真值,返回执行步骤S1,否则执行步骤S3;
S3:退出循环,执行do-while语句的后继语句。
循环结构在程序设计时,需清楚四个部分,循环控制变量的初值、循环条件的判断、循环体语句(需要重复操作的语句)和改变循环控制变量的变化值。
printf("%f ",sum);
}
输入测试数据:20
程序运行结果:s=0.583333
小结:
1.求满足能被5或9整除的所有自然数的条件表达式:i%5==0||i%9==0
2.求分数之和时,一定要考虑整型除整型的情况。源程序中变量i为整型,所以倒数1/i,在具体编程时可处理为1.0/i或1/(float)i的形式。
Python程序设计实验报告四循环结构程序设计
Python程序设计实验报告四循环结构程序设计实验报告四:循环结构程序设计实验目的:通过本实验,学生将学会使用Python编程语言中的循环结构来设计和实现程序。
实验内容:1. 了解循环结构的概念和基本语法;2. 熟悉Python中的三种循环结构:for循环、while循环和嵌套循环;3. 设计并实现使用循环结构的程序;4. 调试和运行程序,验证程序的正确性。
实验步骤:1. 确定实验题目和要求;2. 分析问题,确定所需的循环类型和循环变量;3. 根据循环类型和循环变量,编写循环结构的代码;4. 调试代码,确保程序的正确性;5. 运行程序,观察程序输出结果是否符合实验要求;6. 如果结果不正确,根据错误信息进行修改,重新运行程序;7. 记录实验结果和对程序的修改;8. 完成实验报告,并附上程序代码。
实验示例:下面是一个使用循环结构的Python程序设计示例,旨在计算并输出1到100之间所有偶数的和。
```python# 循环结构程序设计示例# 计算1到100之间所有偶数的和sum_even = 0 # 用于存储偶数的和for i in range(1, 101):if i % 2 == 0:sum_even += iprint("1到100之间所有偶数的和为:" + str(sum_even))```在上述示例中,我们使用了for循环结构来遍历1到100之间的所有数字。
通过判断每个数字是否为偶数,我们累加所有偶数的和,并最终输出结果。
结论:通过本次实验,我们学会了使用Python的循环结构来设计和实现程序。
循环结构是程序设计中非常重要的一种结构,可以帮助我们处理大量的重复操作,提高程序的效率。
在实际编程中,我们需要根据问题的需求,选择合适的循环类型和循环变量,并合理地设计和调试程序。
通过不断练习和实践,我们将进一步提升自己的编程能力。
实验报告4
实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的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循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
实验结论循环结构程序设计
实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。
本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。
实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。
实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。
2. 循环结构的分类:常见的有while循环、do-while循环和for循环。
3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。
实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。
2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。
3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。
实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。
同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。
结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。
在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。
matlab实验4_循环结构程序设计_参考解答
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
实验4循环结构——参考答案
实验4循环结构——参考答案实验四循环结构程序设计参考程序⼀、程序调试⽅法实验上机题⽬:编写程序利⽤公式:!!2!112n x x xe n++++= 求xe 的近似值。
找出并改正以下源程序中错误,得出正确的运⾏结果。
#includevoid main(){int i;float a,e,x;printf("请输⼊x 的值:");scanf("%d",&x); //改为 scanf("%f",&x);e=0; //改为 e=1;i=0; //改为 i=1;a=1;while(a>1e-6); //去掉尾部的分号{a=a*x/i;e=e+a;i++;}printf("循环次数为:%d 次,e 的%d 次⽅为:%f\n",i,x,e);//改为printf("循环次数为:%d 次,e 的%.2f 次⽅为:%f\n",i,x,e);}程序正确的运⾏结果为:请输⼊x 的值:1.0循环次数为:11次,e 的1.00次⽅为:2.718282Press any key to continue⼆、编写程序1、分别利⽤三种循环语句编程,求1+2+3+…50之和。
参照例⼦4-12 (1)while 循环 #includevoid main(){int sum=0,i=1;while(i<=50){sum=sum+i;i++;}printf("1+2+3+...50=%d\n",sum);}(2)do~while循环#includevoid main(){int sum=0,i=1;do{sum=sum+i;i++;}while(i<=50);printf("1=2+3+...50=%d\n",sum);}(3)for循环#includevoid main(){int sum=0,i;for(i=1;i<=50;i++)sum=sum+i;printf("1+2+3+...50=%d\n",sum);}2、编程,输⼊10个整数,求其中正数的个数及其平均值(精确到⼩数点后两位)。
实验:基本循环语句程序设计(写实验报告)(提交电子作业)
实验四: 基本循环语句程序设计
一、实验目的和要求
1. 掌握For语句的使用。
2.掌握while循环语句的使用。
3. 掌握Do{While|Until}…Loop与Do…Loop{While|Until}两种形式的使用。
4.掌握如何控制循环条件, 防止死循环或不循环。
5. 熟练掌握循环条件设置及循环的控制方法。
二、实验内容
题目:
(1)求出1~1000之间所有是7的倍数的整数之和(如7, 14…), 并通过单击命令按钮将这些整数, 以及它们之和输出在窗体上。
程序的运行界面如图所示。
(2)实训指导书P41中实训5.5
三、实验步骤
1. 程序的界面设计
备注: 学生将程序界面设计画出来
2. 对象属性设置.
属性设置画出来
3. 程序主要代码。
备注: 学生将程序代码写出来
4. 运行结果。
四、实验总结(可以从以下几个方面来总结: 你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)。
实验四循环结构程序设计(一)
实验四循环结构程序设计(一)实验目的1.熟练使用while、do-while语句实现循环程序设计2.理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处3.掌握嵌套循环程序设计4.熟练掌握下拉菜单Debug的程序调试方法实验内容1.调试示例:输入2个正整数m,n,输出它们的最小公倍数和最大公约数。
源程序(有错误的程序)#include<stdio.h>void main(){ int m,n,j,k;printf(“input m n\n”);while(scanf(“%d%d”,&m,&n),m<0 && n<0);j=m;while(j/n!=0)j=j+m;k=(m*n)/j;printf(“最小公倍数是%d\n最大公约数是%d\n”,j,k);}运行结果(改正后程序的运行结果)Input m n: 3 7最小公倍数是21最大公约数是1“编译”菜单中的调试命令和调试工具栏中按钮的功能是一样的,可以使用“编译”菜单来调试程序。
1)输入并保存上述程序后,再进行编译和连接,没有出现错误信息。
2)调试程序开始,设置3个断点,执行“编译”->“开始调试”->去命令,运行程序,输入“-3 7”3)程序执行到第一个断点,变量窗口显示m=-3,n=7,说明有错。
因为如果输入负数,必须重新输入,直到输入2个正数为止。
注意:此时菜单栏中新出现一个“Debug”菜单,包括了调试工具栏中所有的调试工具,用户可以选择使用“Debug”菜单或调试工具栏来调试程序。
作用相同。
4)单击图标或按组合键Shift+F5停止调试,通过仔细分析,发现循环条件中m<0 && n<0应该是m<0||n<0。
注意:此时,不一定要停止调试,用户可以在Watch窗口输入m=3,再继续调试。
5)把&&改为||,重新编译和连接,然后单击图标或组合键Ctrl+Shift+F5重新开始调试,再单击图标或F5键,输入-3 7后,箭头如果不动,说明需要重新输入数据。
实验循环结构程序设计
实验循环结构程序设计实验循环结构程序设计是计算机编程中一个非常重要的概念,它允许程序员重复执行一段代码直到满足特定条件为止。
循环结构在各种编程语言中都有广泛应用,包括但不限于C、Java、Python等。
下面,我们将通过几个关键点来探讨实验循环结构程序设计。
循环结构的基本概念循环结构允许程序在满足特定条件的情况下重复执行一段代码。
这种结构通常用于处理需要重复执行的任务,例如遍历数组、处理文件中的记录等。
循环的分类1. for循环:这是最常用的循环结构,它允许程序员指定循环开始的条件、循环条件以及循环后执行的操作。
2. while循环:这种循环结构在条件为真时重复执行代码块,直到条件变为假。
3. do-while循环:与while循环类似,但至少执行一次循环体,然后检查条件。
for循环的语法结构for循环的基本语法如下:```cfor (初始化表达式; 条件表达式; 更新表达式) {// 循环体}```- 初始化表达式:循环开始前执行一次。
- 条件表达式:每次循环前检查,如果为真,执行循环体。
- 更新表达式:每次循环结束时执行。
while循环的语法结构while循环的基本语法如下:```cwhile (条件表达式) {// 循环体}```条件表达式为真时,循环体将被执行。
do-while循环的语法结构do-while循环的基本语法如下:```cdo {// 循环体} while (条件表达式);```循环体至少执行一次,然后检查条件表达式,如果为真,继续执行循环。
循环控制语句在循环中,有时需要提前退出循环或跳过当前循环的剩余部分,这可以通过以下控制语句实现:- `break`:立即退出循环。
- `continue`:跳过当前循环的剩余部分,直接进入下一次循环。
实验示例让我们通过一个简单的实验来演示循环结构的应用。
假设我们需要计算1到10的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}printf("1到10的和是: %d\n", sum);return 0;}```循环结构的注意事项1. 避免无限循环:确保循环条件最终会变为假,否则程序将无限循环。
C++实验四 循环结构的程序设计
printf("\n");
}
4.求1!+2!+3!+…+n源自的值,n由键盘输入。解题思路:
首先,认真解读题目,该题首先是要用到两个for循环结构,分别控制n!的输出和n个阶乘相加,输入n,由n控制运算到几的阶乘为止,先用for语句实现循环,控制循环次数,i由1变到n,共循环n次,再在for循环中再嵌套一个for循环,控制第i次循环时输出的数,把第i次循环时输出的数加到sum上,再执行i++,使i的值加1,循环n次,最后输出sum。
关键代码:
for(i=1;i<=n;i++)
{
s=1;
for(j=1;j<=i;j++)
{
s=s*j;
}
sum=sum+s;
}
printf("%d\n",sum);
B.do while,while循环结构
1.输入两个正整数m和n,求其最大公约数和最小公倍数。
解题思路:首先,认真解读题目,该题首先是要用到if语句和while循环结构,输入m和n两个正整数,先用if语句使n<m时,m和n两个正整数所赋的值互换,确保n>m,再p=n*m,再用while循环结构,在m不等于0时,用辗转相除法,算出他们的最大公约数,最后输出最大公约数为n,最小公倍数为p/n。
关键代码:
float a,x0,x1;
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
{
x0=x1;
x1=(x0+a/x0)/2;
实训四 循环结构程序设计和答案
实训四循环结构程序设计(注:答案在后面)班级:学号:姓名:实训时间:一、实训目标掌握循环结构程序的设计和调试方法。
1、掌握while、do whil、for三种C循环语句的执行流程。
2、掌握一般循环程序设计的步骤(循环体、循环条件、循环初始化)。
3、学会提前结束程序的方法(break语句)。
4、学会多循环出口时判断循环出口的方法。
5、学会循环程序的调试方法。
6、掌握求极值、分类统计、求素数等常用算法。
7、学会循环嵌套程序的设计和调试方法。
二、语法基础1. 在C语言中,实现循环的语句有: while语句、 do-while语句和语句2. break语句不能出现在()语句中A. switchB.forC. whileD. if…else3.语句while(!y);中的表达式!y等价于A)y==0 B)y!=1 C)y=!0 D) y==14.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行()A.无限次B.不确定次C.10次D.9次5..以下程序段 ( )x=-1;do { x=x*x; }while(x>0);A. 是死循环B. 循环执行一次C. 循环执行二次D. 有语法错误6. 思考题:在循环中,continue语句与break语句的区别是:continue语句只是,break语句。
break语句只能用于语句和语句中。
7.熟悉三种循环语句的执行流程,以计算 s=1+2+3+…+100为例,分别写出三种循环结构的核心程序。
示例:while 语句:s=0;i=1;while(i<=100){s=s+i;i++;}依据右侧的流程,改写为for 语句:do while 语句程序 do while结构流程图NO yes i<=100 i=0 s=s+i s=0 i++ while 下条语句三、实训内容和步骤1、改错(copy下面源程序到VC编辑界面,调试并改错)。
程序设计基础实验报告4-循环结构
程序设计基础实验报告4-循环结构
实验目的
通过本实验,掌握循环语句的使用方法和注意事项,熟悉常见的循环结构及其特点。
实验内容
例1:输出1-100之间的偶数
算法分析:
设置计数器i,i从1开始递增,每次累加1,判断i是否为偶数,如果是,输出i。
C++代码实现:
void printEvenNumbers()
{
for(int i=1; i<=100; i++)
{
if(i % 2 == 0)
cout << i << " ";
}
}
例3:求n!
使用循环结构,设置初始结果res为1,变量i从1到n递增,每次将res累乘i的值。
实验结果
对上述代码进行编译和运行,可以得到以下结果:
printEvenNumbers()
//输出结果:2 4 6 8 10 ... 98 100
factorial(5)
//输出结果:120
通过本次实验,我们学习了循环结构的使用方法和注意事项,了解了for循环、while 循环和do-while循环的特点和应用场景。
在实际编程中,根据具体需求选择不同的循环结构,可以大大提高程序的效率和可读性。
需要注意的是,在编写循环语句时,一定要注意控制循环变量的范围和循环条件的正确性,避免出现死循环或漏掉部分情况的问题。
实验四 循环结构程序设计(2)
实验四循环结构程序设计(2)一、实验目的1.加深对循环语句的认识。
2.掌握在程序设计中用循环的方法实现各种算法(如枚举法、迭代法、递推法)二、实验内容1.阅读、调试、运行程序,比较阅读的结果和运行的结果。
(1)#include <stdio.h>void main(){ int i=0,a=0;while(i<20){ for(;;){ if((i%10)==0) break;else i--;}i+=11; a+=i;}printf("%d\n",a);}(2)#include <stdio.h>void main(){ int a,y;a=10;y=0;do{ a+=2;y+=a;printf("a=%d y=%d\n",a,y);if (y>20) break;}while (a=14);}(3)输入为“321”时,输出是什么?#include <stdio.h>void main( ){ char c;while ((c=getchar( ))!='\n')switch(c-'1'){ case 0:case 1:putchar(c+2);case 2:putchar(c+3); break;case 3:putchar(c+4);default:putchar(c+1);break;}printf("\n");}(4)#include <stdio.h>void main(){ int i,x,y;i=x=y=0;do{ ++i;if(i%2!=0){x=x+i;i++;}y=y+i++;}while(i<=7);printf("x=%d,y=%d\n",x,y);}2. 完善程序,并调试运行(1)在main函数中输入字符串,计算并输出其长度。
实验4-循环结构
《C语言程序设计》实验报告实验序号:4 实验项目:循环结构1.方法1:用while语句:#include<stdio.h>int main(){int i=1;double sum=0,term,a=2,b=1,c;while(i<=20){term=a/b;sum=sum+term;c=a+b;b=a;a=c;i++;}printf("sum=%.2f\n",sum);return 0;}方法2:用do-while语句:#include<stdio.h>int main(){int i=1;double sum=0,term,a=2,b=1,c; do{term=a/b;sum=sum+term;c=a+b;b=a;a=c;i++;}while(i<=20);printf("sum=%.2f\n",sum); return 0;}方法3:用for语句:#include<stdio.h>int main(){int i;double sum=0,term,a=2,b=1,c; for(i=1;i<=20;i++){term=a/b;sum=sum+term;c=a+b;b=a;a=c;}printf("sum=%.2f\n",sum); return 0;}#include<stdio.h>int main(){int x,y,z,i=0;for(x=1;x<=9;x++)for(y=1;y<=12;y++)for(z=2;z<=36;z=z+2)if( 4*x+3*y+z/2==36&&x+y+z==36){i++;printf("有%d种方法.其中:\nx=%d\ny=%d\nz=%d\n",i,x,y,z);}return 0;}3.#include <stdio.h>int main(){int x=0,i=0;while (i<10){if (x%3==2 && x%5==4 && x%7==3){printf("%d\n",x);i++;}x++;}return 0;}4.#include <stdio.h>#include<math.h>int main(){long x;int i=0;printf("plesae input x (x为长整形正数)\n");scanf("%ld",&x);do{x=x/10;i++;}while(x>0);printf("x为%d位数:\n",i);return 0;}5.#include <stdio.h>int main(){int i, x=3,sum=3;for(i=2;i<=10;i++){x=(x-0.5)*2;sum=x+sum;}printf("第十年的产量是%d\n",x);printf("前十年的总产量是%d\n",sum);return 0;}6.#include <stdio.h>int main(){int i,j;for(i=0;i<=10;i++){for(j=0;j<=5;j++){if(i*1+j*2==10)printf("10元换成: %d张1元%d张2元\n",i,j);}}return 0;}7.#include <stdio.h>int main(){int i,j;for (i=1;i<=7;++i){for(j=1;j<=(i<4?4-i:i-4);++j) printf(" ");for(j=1;j<=(i<4?i*2-1:15-2*i);++j) printf("*");for(j=1;j<=(i<4?4-i:i-4);++j) printf(" ");printf("\n");}return 0;}8./*统计有2个位数相等,但3个数字不全相等的3位自然偶数的个数*/#include <stdio.h>int main(){ int x,a,b,c,i=0;for(x=100;x<1000;x++){if(x%2==0) //判断是否为偶数{a=x%10;//个位b=(x/10)%10;//十位c=x/100;//百位if((a==b && b!=c)||(a==c && b!=c)||(b==c && a!=c)) //判断两个位数相等{i++;//满足提议计数器自增1printf("%d ",x); //输出适合的x}}}printf("\nTotally: %d\n",i); //统计符合题意的x总个数return 0;}。
程序设计基础实验报告4(循环)
计算机工程技术学院(软件学院)
实验报告
专业软件技术班级20软件14班成绩评定______
学号姓名教师签名
实验4题目循环结构第14周星期2第5,6,7节
一、实验目的、内容及要求(此栏由老师填写)(P59:上机练习及综合实战)
实验目的:
理解程序的循环结构;
掌握三种循环结构的用法;
掌握嵌套循环(二重循环)语句的用法;
训练要点:二重循环结构的用法
}students[j+1] = temp;
}
二、写出源代码,并附上运行截图,显示输入输出结果(学生完成)
1、
2、
3、
4、
三、心得体会(老师最喜欢看这一栏)
可以在此写出难点
实验用三种循环语句完成)
训练要点:
(1)while循环结构
(2)do- while循环结构
(3)for循环结构
上机练习2——录入书店会员信息
训练要点:
循环结构
循环结构结合分支结构的用法
上机练习3——验证用户登录信息
训练要点:循环结构的应用
上机练习4——在控制台输出由*号组成在直接三角形和九九乘法表
实验四 循环结构程序设计
实验四循环结构程序设计实验四循环结构程序设计实验四循环结构程序设计(1)一、实验学时2学时二、实验目的(一)掌握用while、do while和for语句实现循环的方法;(二)掌握在设计条件型循环结构的程序时,如何正确地设定循环条件,以及如何控制循环的次数。
(三)掌握与循环相关的算法。
三、预习要求预览教材中while、do-while和for语句的语法格式,并能通过这三条语句编写和调试单层循环结构的程序。
四、实验内容(一)分析并运行以下程序段。
循环体的执行时间为___。
inta=10,b=0;do{b+=2;a-=2+b;}while(a>=0);(二)执行以下程序段时,循环体的执行次数为___。
x=-1;do{x=x*x;}while(!x);(三) 1+2!+3!+??+20! 价值。
注意:根据题目,考虑所定义的各个变量应该为何种类型。
程序结构如下:(四)写一个程序求两个数m和n的最大公约数和最小公倍数。
编程提示:求最大公约数的方法有三种:1.从两个数字中较小的一个向下判断。
如果一个整数可以同时被M和N除,则终止循环。
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。
3.使用滚动除法,即将求M和N的最大公约数问题转化为求除数并将两个数除法所得余数的公约数。
每次循环中,先求两个数的余数,然后以除数作为被除数,以余数作为除数,当余数为0时结束循环,此时除数即为最大公约数。
类似地,找到最小公倍数的方法也可以从M和N中的较大数字开始,或者从M*N开始。
请自己考虑程序设计方法。
另外,两个数的最大公约数和最小公倍数的关系为:最小公倍数=m*n/最大公约数可利用此关系进行程序设计。
(五)编程,从键盘输入一行字符,并计算英文字母、数字、空格和其他字符的数量。
编程提示:先定义一个字符型的变量(如c),再定义4个整型变量作为计数器,作为计数器的变量应首先给定初始值0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3 y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果: y= 2.9944 n= 56 3. 考虑以下迭代公式:
xn +1 =
a b + xn
其中 a 、 b 为正的常数。 (1) 编写程序求迭代的结果,迭代的终止条件为 xn +1 − xn ≤ 10−5 ,迭代初值 x0 = 1.0 ,迭 代次数不超过 500 次。
−b ± b 2 + 4a , 当 (a, b) 的值取 (1,1) 、 (8,3) 、 2 (10, 0.1) 时,分别对迭代结果和准确值进行比较。 答: (1) 程序设计: clear all; close all; clc; a=2; b=3; x0=1.0; x1=0; n=1; y=abs(x1-x0); while n<=500 & y>10^(-5) x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1
n =1 ⎧ f1 = 1, ⎪ f = 0, n=2 ⎪ 4. 已知 ⎨ 2 ,求 f1 ~ f100 中: n=3 ⎪ f3 = 1, ⎪ ⎩ f n = f n −1 − 2 f n − 2 + f n −3 , n > 3 (1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 答:程序设计: clear all; close all; clc; f1=1; f2=0; f3=1; f=[f1,f2,f3]; for n=4:100 f4=f3-2*f2+f1; f=[f f4]; f1=f2; f2=f3; f3=f4; end
MATLAB 语言
4
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》 (第二版)实验参考解答
实验四:循环结构程序设计
maxvalue=max(f); minvalue=min(f); sumvalue=sum(f); disp(['最大值是:', num2str(maxvalue)]) disp(['最小值是:', num2str(minvalue)]) disp(['各数和是:', num2str(sumvalue)]) positivenum=length(find(f>0)); negtivenum=length(find(f<0)); zeronum=length(find(f==0)); disp(['正数的个数:', num2str(positivenum)]) disp(['负数的个数:', num2str(negtivenum)]) disp(['零的个数:', num2str(zeronum)])
(2) 如果迭代过程收敛于 r, 那么 r 的准确值是
运行结果: x1 = 0.5616
MATLAB 语言
2
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》 (第二版)实验参考解答
实验四:循环结构程序设计
(2) 程序设计: (i) 当(a,b)的取值为(1,1)时 clear all; close all; clc; a=1; b=1; x0=1.0; x1=0; n=1; y=abs(x1-x0); while n<=500 & y>10^(-5) x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2 运行结果: x1 = 0.6180 r1 = 0.6180 r2 = -1.6180 (ii) 当(a,b)的取值为(8,3)时 clear all; close all; clc; a=8; b=3; x0=1; x1=0; n=1; y=abs(x1-x0); while n<=500 & y>10^(-5) x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2 运行结果: x1 = 1.7016 r1 = 1.7016
运行结果: 最大值是:4.377633e+011 最小值是:-8.994121e+011 各数和是:-7.427456e+011 正数的个数:49 负数的个数:49 零的个数:2 5. 若两个连续自然数的乘积减 1 是素数,则称这两个连续自然数是亲密数对,该素数 是亲密素数。例如, 2 × 3 − 1 = 5 ,由于 5 是素数,所以 2 和 3 是亲密数对,5 是亲密素 数。求[2,50]区间内: (1) 亲密数对的对数。 (2) 与上述亲密数对对应的所有亲密素数之和。 答:程序设计: clear all; close all; clc; prime=[]; for n=2:49 x=n*(n+1)-1; signx=0; for k=2:sqrt(x) if (mod(x,k)==0) signx=1; end end if signx==0 prime=[prime; n n+1]; end end num=size(prime); psum=sum(prime(:,1).*prime(:,2)-1); disp(['亲密数对的对数:', num2str(num(1))])
1 1 1 ,求: 2. 根据 y = 1 + + + " + 3 5 2n − 1 (1) y < 3 时的最大 n 值。 (2) 与(1)的 n 值对应的 y 值。 答:程序设计:
MATLAB 语言
1
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》 (第二版)实验参考解答
3
MATLAB 语言
WangChengyou © 山东大设计与应用》 (第二版)实验参考解答
实验四:循环结构程序设计
r2 = -4.7016
(iii) 当(a,b)的取值为(10,0.1)时 clear all; close all; clc; a=10; b=0.1; x0=1; x1=0; n=1; y=abs(x1-x0); while n<=500 & y>10^(-5) x1=a/(b+x0); y=abs(x1-x0); x0=x1; n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2 运行结果: x1 = 3.1127 r1 = 3.1127 r2 = -3.2127
高教社刘卫国《MATLAB 程序设计与应用》 (第二版)实验参考解答
实验四:循环结构程序设计
实验四
教材 P364 一、实验目的
循环结构程序设计
1. 掌握利用 for 语句实现循环结构的方法。 2. 掌握利用 while 语句实现循环结构的方法。 3. 熟悉利用向量运算来代替循环操作的方法。 二、实验内容 π2 1 1 1 1 1. 根据 = 2 + 2 + 2 + " + 2 ,求 π 的近似值。当 n 分别取 100、1000、10000 时, 6 1 2 3 n 结果是多少? 要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计: (1) 循环结构 clear all; close all; clc; for n=[100,1000,10000] sum=0; for x=1:n sum=sum+1/(x.^2); end value=sqrt(6*sum) end (2) 向量运算 clear all; close all; clc; for n=[100,1000,10000] x=1:n; value=sqrt(6*sum(1./x./x)) end 运行结果: value = 3.1321 value = 3.1406 value = 3.1415
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》 (第二版)实验参考解答
实验四:循环结构程序设计
disp(['亲密素数之和:', num2str(psum)])
%或者
clear all; close all; clc; psum=0; num=0; for i=2:49 b=i*(i+1)-1; m=fix(sqrt(b)); for j=2:m if rem(b,j)==0 break end end if j==m num=num+1; psum=psum+b; end end disp(['亲密数对的对数:', num2str(num)]) disp(['亲密素数之和:', num2str(psum)])
运行结果: 亲密数对的对数:28 亲密素数之和:21066
MATLAB 语言
6
WangChengyou © 山东大学威海分校