实验5_循环结构程序设计2题目及解答
循环结构程序设计课后习题及答案
循环结构程序设计习题与答案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>;}。
上机实验五-循环结构程序设计-答案
上机实验五-循环结构程序设计-答案上机实验五循环结构程序设计姓名:学号: 姓名:本次实验一共5个题目,4个必做,一个选做我建的浙师大c程序设计群,群号为:185106065,大家加入下,验证信息请写为班级+姓名。
我打算以后把每次实验的答案(我写的代码)都放到群共享里面,大家可以在群里讨论下不会的地方或者不同的实现方法。
重要提醒:邮件主题和本word文件名统一用班级+学号+姓名+实验几命名(学号和姓名记得不能少),不然我在检查作业提交情况时可能会漏掉一.目的要求1.掌握用for、while、do-while语句实现循环的基本技巧;2.掌握循环次数不确定的解题技巧;3.掌握break语句、continue语句在循环语句中的作用以及不同之处;4.掌握多重循环的编程技巧。
二.实验内容【实验题1】. 程序填空:分别用for、while、do-while语句编程,输出菲波那契数列的前20项,要求每行输出10项。
思考:line 5和line 8行中printf()函数的格式控制符均为”%6d”, 假如均改为”%d”, 输出结果有何不同?源程序2:用while语句实现#includevoid 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 == 0 ) printf("\n"); /*每行输出10项*/x1= x2 ; x2=x ;i++ ;}}【实验题2】(课本p141第10题)有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个分数序列的前20项之和。
源代码粘贴处#includevoid main(){int i;double x1,x2,x,sum = 0;x1=x2=1.0;//直接在上一题的程序上做简单修改for(i=1 ; i<=20; i++){x=x1+x2;sum = sum +x/x2;x1= x2 ; x2= x ;}printf("%f", sum);}【实验题3】(课本p141第11题)一个球从100米高度自由落下,每次落地后反跳回原来高度的一般,再落下,再反弹。
实验5循环结构
实验5循环结构理解课程内容、完成实验任务、写好实验报告实验五循环结构一、实验目的1.理解循环结构的含义和作用。
2.掌握ForNe某t、DoWhile----Loop结构的用法。
3.能够使用循环结构编写程序。
二、实验内容1.实验准备在练习文件夹中建立vb5-1、vb5-2、vb5-3、vb5-4、vb5-5、vb5-6、vb5-7、vb5-8文件夹。
2.DoWhile—Loop选择结构例1:给内部变量赋值(1)创建工程。
(2)建立用户界面,如右图所示。
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:EndSub(4)调试运行程序。
(5)保存结果到练习文件夹中的vb5-1文件夹。
该程序通过在循环结构中添加K=K+1语句,使得K的值分别为2,3,4,,10。
(1)创建工程。
(2)建立用户界面,如上图所示。
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:理解课程内容、完成实验任务、写好实验报告EndSub(4)调试运行程序。
(5)保存结果到练习文件夹中的vb5-2文件夹。
3.For—Ne某t选择结构程序代码如下:EndSub(4)调试运行程序。
(5)保存结果到练习文件夹中的vb5-3文件夹。
三、思考题1.设计一个程序,要求在窗体上显示20个100~200之间的随机整数。
保存结果到练习文件夹中的vb5-4文件夹。
2.设计一个程序,要求用对话框输入n值,在窗体上显示=1某2+2某3+3某4++n某(n+1)的值。
保存结果到练习文件夹中的vb5-5文件夹。
设计提示:(1)使用变量保存和值。
n的计算结果为14。
(2)使用DoWhile----Loop结构判断的大小,当>1000时结束循环。
保存结果到练习文件夹中的vb5-6文件夹。
2理解课程内容、完成实验任务、写好实验报告(3)使用For/Ne某t结构,结合E某itFor语句判断>1000时结束循环。
保存结果到练习文件夹中的vb5-7文件夹。
python程序设计实验报告五:循环结构程序设计(综合性实验)
python程序设计实验报告五:循环结构程序设计(综合性实验)安徽⼯程⼤学Python程序设计实验报告班级物流192 姓名张⽻学号 3190505221 成绩⽇期 2020.4.23 指导⽼师修宇实验五综合运⽤三种基本结构进⾏程序设计(综合性实验)(⼆学时)【实验⽬的】(1)进⼀步掌握选择与循环结构程序设计的⽅法和技巧;(2)综合运⽤三种基本结构进⾏程序设计;【实验条件】PC机或者远程编程环境【实验内容】1、完成三个编程题。
(1)计算并输出指定范围内的素数素数⼜称质数。
指整数在⼀个⼤于1的⾃然数中,除了1和此整数⾃⾝外,没法被其他⾃然数整除的数。
换句话说,只有两个正因数(1和⾃⼰)的⾃然数即为素数。
⽐1⼤但不是素数的数称为合数。
1和0既⾮素数也⾮合数。
素数在数论中有着很重要的作⽤。
2300多年前,古希腊数学家欧⼏⾥得在《⼏何原本》⼀书中证明了素数有⽆穷多个,如2、3、5、7、11等等。
问题描述:编程实现输出指定范围内的素数,输⼊以逗号间隔,输出以空格间隔。
指定范围由⽤户输⼊指定。
(2)九九乘法表问题描述:请按照如下格式设计⼀个“九九乘法⼝诀表”,并打印出来。
编程要点及提⽰:1. 使⽤for循环或者while循环实现以上功能2. 代码量不超过10⾏3. 在⼀⾏中,每个等式之间使⽤制表符"\t"进⾏分隔;对于每⼀⾏等式之间使⽤print()打印空字符实现,即print("")(3)统计不同字符个数问题描述:⽤户从键盘输⼊⼀⾏字符。
请编写⼀个程序,统计并输出其中英⽂字符、数字符号、空格和其他字符的个数。
输⼊格式:输⼊⼀⾏字符输出:按照顺序输出字母,数字,空格,及其他字符的个数,个数以空格分隔如:【实验记录与分析】(请在填写实验记录与分析结果)1.计算并输出指定范围内的素数输⼊代码,输出结果及分析如下:易错点:1.程序⽆法同时处理两个输⼊数据,在输⼊未处理时。
2.本题中的else语句不能和第⼆个的if对齐。
实验报告5 循环结构
实验报告5 循环结构1. 实验目的本次实验主要通过编写程序练习循环结构的使用,包括for循环和while循环,并掌握循环结构在解决问题中的应用。
2. 实验内容2.1 for循环2.1.1 基本语法for循环一般的基本语法如下:pythonfor 变量in 可迭代对象:循环体其中,变量为循环控制变量,可迭代对象为需要遍历的对象,循环体为要执行的操作。
2.1.2 实验步骤本次实验选择使用for循环来实现如下功能:1. 计算1到100之间所有正整数的和。
2. 输出一个400行的矩形,每行有20个星号。
python计算1到100之间所有正整数的和sum = 0for i in range(1, 101):sum += iprint("1到100之间所有正整数的和为:", sum)输出一个400行的矩形,每行有20个星号for i in range(1, 401):print("*", end="")if i % 20 == 0:print()2.2 while循环2.2.1 基本语法while循环的基本语法如下:pythonwhile 循环条件:循环体其中,循环条件为判断条件,当循环条件为True时,执行循环体中的操作。
2.2.2 实验步骤本次实验选择使用while循环来实现如下功能:1. 计算1到100之间所有偶数的和。
2. 输出1到100之间所有的质数。
python计算1到100之间所有偶数的和sum = 0i = 1while i <= 100:if i % 2 == 0:sum += ii += 1print("1到100之间所有偶数的和为:", sum)输出1到100之间所有的质数num = 2while num <= 100:prime = Truefor i in range(2, int(num 0.5) + 1):if num % i == 0:prime = Falsebreakif prime:print(num, end=" ")num += 13. 实验结果运行以上代码,可以得到以下结果:1到100之间所有正整数的和为: 5050...1到100之间所有偶数的和为: 25502 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 4. 实验总结通过本次实验,我学会了使用循环结构来解决问题。
循环程序设计习题及答案
循环程序设计习题及答案循环程序设计习题及答案1-基本循环控制结构1-1 基本循环结构示例<代码示例>1-2 循环条件<代码示例>答案:循环条件是一个布尔表达式,如果条件为true,循环将继续执行。
如果条件为false,循环将终止。
1-3 循环计数器<代码示例>答案:循环计数器是一个变量,用于记录循环执行的次数。
1-4 循环控制语句1-4-1 break语句<代码示例>答案:break语句用于提前终止循环,并跳出循环体。
1-4-2 continue语句<代码示例>答案:continue语句用于跳过当前循环体中剩余的代码,直接进入下一次循环。
2-常见循环题型2-1 计算累加和<代码示例>答案:使用循环结构,每次迭代都将当前值累加到一个变量中。
2-2 计算阶乘<代码示例>答案:使用循环结构,每次迭代都将当前值与累积值相乘,并更新累积值。
2-3 猜数字游戏<代码示例>答案:使用循环结构,与用户交互对比猜测的数字与目标数字,直到猜测正确或达到最大猜测次数。
3-循环的嵌套和嵌套控制结构3-1 嵌套循环结构示例<代码示例>3-2 循环的嵌套控制3-2-1 嵌套循环的break语句<代码示例>答案:break语句可以终止当前循环,并直接跳出嵌套循环的外层循环。
3-2-2 嵌套循环的continue语句<代码示例>答案:continue语句可以跳过当前循环体中的剩余代码,并继续下一次迭代。
4-附件本文档没有涉及附件。
5-法律名词及注释5-1 循环:程序中一种重复执行的结构,可通过循环变量控制执行次数。
5-2 循环条件:循环结构中的判断条件,决定循环是否继续执行。
5-3 循环计数器:循环结构中用于记录循环次数的变量。
5-4 break语句:用于提前终止循环,并跳出循环体的语句。
5-5 continue语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。
第5章 循环结构程序设计习题解答
第5章循环结构程序设计习题解答1.输入n个整数,求这n个数之中的偶数平均值,并输出。
#include<stdio.h>void main(){int n,i,x,k=0,s=0;printf("Input a number(n):");scanf("%d",&n);printf("Input %d numbers:",n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0){s+=x;k++;}}s/=k;printf("average=%d\n",s);}2.输入一串字符,直到输入一个星号*为止,统计(输出)其中字母个数和数字字符个数。
#include<stdio.h>void main(){int n=0,m=0;char c;printf("Input a string character:");do{scanf("%c",&c);if(c>='0'&&c<='9')n++;else if(c>='A'&&c<='Z'||c>='a'&&c<='z')m++;}while(c!='*');printf("number_char=%d\n",n);printf("letter_char=%d\n",m);}3.从键盘输入一正整数n,计算该数各位数字之和并输出。
例如,输入数是5246,则计算5+2+4+6=17并输出。
#include<stdio.h>void main(){int n,r,m=0,s=0;printf("Input a number(int):");scanf("%d",&n);do{r=n%10;s=s+r;n/=10;if(m==0)printf("%d",r);//加式中的第1项不带“+”elseprintf("+%d",r);m++;}while(n>0);printf("=%d\n",s);}4.输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出。
实验5 循环结构 参考答案
1.假定在银行中存款10000元,按11.25的利率,一年后连本带利为11125元,问多长时间会连本带利翻一番?Dim m As DoubleDim y As Integerm = 10000y = 0Do While m <= 2 * 10000m =m+m*0.1125y = y + 1Print y, mLoop2.1-100 所有偶数的和。
Dim s As Longs = 0Print "s=";For i = 0 To 100 Step 2s = s + iPrint i & "+";NextPrint "="; sPrint i3.循环的嵌套,生成如图的九九乘法表For i = 1 To 9For j = 1 To 9a = i & "*" & j & "=" & i * jPicture1.Print ; Tab((j - 1) * 9 + 1); a; '每隔9列输出。
Picture1.PrintNext i作业:1.将上面实例补充完整并且调试后,生成exe文件上传,第五题只做一个,文件命名为实例x。
2.任意输入一个正整数n,求1-n的奇数之和,要求n<500。
(参照上面2题)调试后,生成exe文件上传,文件命名为作业3。
Dim sum As Long, i As Integer, n As Integerre: n = V al(InputBox("请输入n,求1-n的奇数之和,要求n<500"))If n > 500 Or n < =0 ThenMsgBox "请重新输入n,n<500!"GoTo reElsesum = 0For i = 1 To n Step 2sum = sum + iNext iPrint "1-" & n & "的奇数和=" & sumEnd If3.用for循环和do循环分别编程:求1-100之间能被5整除的数的和。
实验五 计数型循环结构
外循环2次,内循环1次;
外循环19次,内循环3次;
外循环20次,内循环2次;
外循环21次,内循环3次。
(2)试修改程序,以便能知道控制表达式
i=1;j<=20;i++和j=1;j<3;j+=1各执行了多少次?
(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观
for(i=1,i<=20,i++)
for(j=1;j<=3;j++)
sum=sum+(i+1)*(i+1)*(j+2)
printf(“sum is :%d\n”,sum);
}
2.实验步骤
(1)将上述程序中的和分别做什么样修改,能使程序按如下要求运行:
不循环;
外循环1次,不进入内循环;
外循环,内循环各1次;
n=I+1;
sum=sum+m*m*k;} Nhomakorabea}
printf(“sum is :%d\n”,sum);
}
观察程序的执行结果有无变化?
(6)在(5)的程序中,若将外循环控制表达式分别做如下修改:
j=1;j<3;j++
j=1;j=3;j++
j=1;j>=3;j++
j=1;j>3;j++
j=1;j<=3;j--
j=1;j>3;j--
j=1;j<3;j++
j=0;j<=3;j+=
j=0;j<3;j++
实验五 循环结构程序设计
//③
}
}
(3)下列程序的功能为:从键盘上输入123,输出结果是54656。请纠正程序中存在错误,使程序实现其功能。
#include<stdio.h>
main()
{intc;//①
while(c=getchar() !='\n')//②
{ switch(c-1)
{ case '0':
“辗转相除法”求两个正整数的最大公约数的算法提示如下:
①将两数中大的那个数放在m中,小的放在n中。
②求出m被n除后的余数。
③若余数为0则执行步骤⑦;否则执行步骤④。
④把除数作为新的被除数;把余数作为新的除数。
⑤求出新的余数。
⑥重复步骤③到⑤。
⑦输出n,n即为最大公约数。
#include <stdio.h>
nY++;
if(nY > 3) break;
}
printf(“x = %d\n”,nX);
if(nY == 4) continue;
nX--;
}while(!nX);
}
运行结果:
(7)三重循环的使用。
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。程序源代码如下:
printf("%d %d %d % d\n",a,b,c,d );
}
题目
⑴输入某课程的成绩(学生人数未知,以负数作为输入结束,大于100视为无效成绩),求课程成绩的平均分。
实验五 循环结构程序设计
实验五循环结构程序设计一、实验目的(1)掌握使用while语句,do-while语句和for语句实现循环的方法。
(2)掌握在循环结构中使用break与continue语句的方法。
(3)掌握多重循环的使用方法。
二、实验步骤、数据记录及处理(1)编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。
程序代码:#include<stdio.h>int main(){int i;float area;for(i=1;i<=15;i++){area=3.14*i*i;if(area<30) continue;else if(area>100) break;printf("半径为%d的圆的面积为%6.2f\n",i,area);}return 0;}运行结果:(2)输入一个正整数x(可以是1-9位的正整数),将其转换为逆序正整数y输出,例如输入x的值为3456,则输出y的值6543。
程序代码:#include<stdio.h>int main(){int num,temp,i=0;printf("请输入一个数字:");scanf("%d",&num);while(num>0){temp=num%10;++i;printf("%d",temp);num=num/10;}printf("\n这个数是%d位数",i);return 0;}运行结果:(3)编写程序,分行输出斐波那契Fibonacci数列的前20项(每行5个数)。
说明:斐波那契序列:1,1,2,3,5,8,13,21,……题目扩展(选做):求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。
例如:输入t=1000时,则输出987。
程序代码:#include <stdio.h>void main(){int i,a[20];a[0]=1;a[1]=1;for(i=2;i<20;i++)a[i]=a[i-1]+a[i-2];i=0;while(i<20){printf("%d\t",a[i++]);if(i%5 == 0)printf("\n");}}运行结果:(4)编写程序,输出“九九乘法口诀表”。
实验05参考答案
实验五循环结构程序设计班级:学号:姓名:评分:一.【实验目的】1、熟练使用for、while和do…while语句实现循环结构程序设计。
2、理解循环条件和循环体,以及for、while和do…while语句的相同及不同之处。
3、熟练掌握break和continue语句的使用。
4、掌握使用“debug”菜单调试程序的方法。
二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。
B.内容:改正程序中的错误,使其实现程序的功能。
(注:程序文件保存在“调试示例”文件夹中,文件名为error04_1.cpp)①调试正确的源程序清单#include <stdio.h>int main(void){int m, n, j, k; /* j表示最小公倍数,k表示最大公约数 */do{printf("Input m: ");scanf("%d", &m);printf("Input n: ");scanf("%d", &n);}while(m<0||n<0);j = m;while(j % n != 0) /* 调试时设置断点 */j = j + m;k = (m * n) / j; /* 调试时设置断点 */printf("最小公倍数是%d \n最大公约数是%d\n ", j, k);return 0;}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
2、完善程序,并调试运行程序1、题目(1)打开程序proj1.cpp,按以下要求完成操作(1)请编写程序满足个位数的平方等于其本身的所有数,程序的运行结果是:1、25、36。
(2)请按注释的要求在程序的“——”处填入适当的内容,并去掉程序中的“——”,使程序能正确运行,并保存文件。
①调试正确的源程序清单#include <stdio.h>int main(void){int i,g;for (i=1;i<100;i++)//#1程序满足个位数的平方等于其本身的所有数{g=i%10;//#2求取每个数的个位数,并放入g中if(g*g==i)//#3 判断个位数的平方是否等于其本身printf("%d ",i);}}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
C语言实验报告5——循环结构程序设计
学生实验报告学号 : 日期 : 2014-06-22系别计算机科学与技术专业计算机科学与技术(师)班级姓名课程名称C语言程序设计课程类型专业课学时数2实验名称循环结构程序设计实验目的掌握C语言三种循环结构语句格式;理解C语言三种循环结构控制语言的执行过程;学习应用C语言三种循环结构控制语句结构构造程序;积累环境下进行程序调试经验;实验要求:实验后写实验报告。
实验内容1、输入n个数,从中找出最大数。
(n值从键盘输入);2、补充教材138页6.2题1_3三个程序,并上机运行,结合程序功能分析运行结果;3、采用C语言的三种循环控制语句设计实现教材6.5题;4、完成教材42页实验题的“国王承诺问题”。
1、设计的源程序:/*计算n个正整数中最大值*/#include "stdio.h"main(){int a,i,n,max;i=2;max=0;printf("Input two numbers:");scanf("%d%d",&n,&a); /*从键盘输入n个正整数*/while(i<=n){scanf("%d",&a);max=a>max? a:max;i++;}printf("max=%d\n",max);}运行结果:当输入五个正整数时,程序最后输出了这五个数中的最大值教材138页6.2题:(1)计算奇数求和,补充后第一个源程序为:#include "stdio.h"main(){int i,sum = 0;for (i = 1;i<=101;i += 2){sum += i;}printf("sum = %d\n",sum);}运行结果:分析:当输入50时,就得到了前50个奇数的和,与理论符合,即为2601。
(2)计算1*2*3+3*4*5+...+99*100*101的值补充后的第二个源程序为:#include "stdio.h"main(){long i;long term,sum = 0;for (i = 1;i <= 99;i = i + 2){term = i * (i + 1) * (i + 2);sum = sum + term;}printf("sum = % ld",sum);}运行结果:(3)计算a+aa+aaa+...+aa...a(n个a)的值,n和a的值由键盘输入。
实验(5)-循环结构-参考答案
C语言程序设计实验教学(5)【实验目的】通过程序设计实现,掌握while结构、do-while结构和for结构各种类型的循环结构,完成各种循环程序的设计和实现。
【实验要求】同一个题目尝试使用多种循环控制结构来实现,并分析其设计和实现的差别和难易程度。
【实验课时】6.0【实验内容】一、以下程序使用while结构实现。
1、完成课堂实例的实现。
(1)计算s=1+2+…+100。
(累加型)main(){int i=1,sum=0;while(i<=100){sum+=i; i++;}printf("1+2+3+...+100=%d\n",sum);}main(){int i,sum=0;for(i=1;i<=100;i++)sum+=i;printf("1+2+3+...+100=%d\n",sum);}(2)请输入数n,计算n!。
(连乘型)main(){int i=1,n; long fac=1;scanf("%d",&n);while(i<=n){fac*=i; i++;}printf("%d!=%ld\n",n,fac);}main(){int i,n; long fac=1;scanf("%d",&n);for(i=1;i<=n;i++)fac*=i;printf("%d!=%ld\n",n,fac);}(3)输出所有的水仙花数。
(范围型)main(){int n=100,a,b,c;while(n<=999){a=n/100;b=n/10%10;c=n%10;if(a*a*a+b*b*b+c*c*c==n)printf("%6d",n);n++;}printf("\n");}main(){int n,a,b,c;for(n=100;n<=999;n++){a=n/100;b=n/10%10;c=n%10;if(a*a*a+b*b*b+c*c*c==n)printf("%6d",n);}printf("\n");}(4)判断n是否为素数。
第五章-循环结构程序设计编程题(参考答案)
第五章循环结构程序设计1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。
#include<stdio.h>void main(){int i;for(i=1;i<=20;i++)printf("%d ",i);printf("\n");}2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。
#include<stdio.h>void main(){int i;for(i=20;i>=1;i--)printf("%d ",i);printf("\n");}3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。
#include<stdio.h>void main(){char c;for(c='A';c<='A'+25;c++){putchar(c);}}4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。
#include<stdio.h>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<stdio.h>void main(){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个偶数的和。
实验5 循环结构程序设计(参考答案)
实验五循环结构程序设计(参考答案)[实验任务一]:程序跟踪调试实例5-1:error5_1.c参考答案程序跟踪调试实例5-2:error5_2.c参考答案程序跟踪调试实例5-3:factor.c参考答案[实验任务二]:程序填空实例5-1:for_c.c参考答案程序填空实例5-1:while_c.c参考答案程序填空实例5-1:do_while.c 参考答案程序填空实例5-2:aliqout1.c 参考答案程序填空实例5-2:aliqout2.c 参考答案程序填空实例5-3:diamond.c 参考答案程序填空实例5-5:aliquot3.c 参考答案[实验任务三]:编程实例5-1:while2.c参考答案编程实例5-1:until.c参考答案编程实例5-2:picture1.c参考答案编程实例5-2:picture2.c参考答案[实验任务四]:设计程序实例5-1:zuhe.c参考答案(第一种方法)设计程序实例5-1:zuhe.c参考答案(第二种方法)设计程序实例5-2:comma.c参考答案设计程序实例5-3:traffic.c参考答案设计程序实例5-4:magic.c参考答案设计程序实例5-5:guess1.c参考答案#include <stdio.h>#include <stdlib.h>#include <time.h> /*将函数time所需要的头文件time.h包含到程序中*/main(){int magic; /*计算机“想”的数*/int guess; /*人猜的数*/srand(time(NULL)); /*用标准库函数srand为函数rand设置随机数种子*/ magic = rand() % 100 + 1;printf(“Please guess a magic number:”);scanf(“%d”, &guess);if (guess > magic){printf(“Wro ng!Too high!\n”);}else if (guess < magic){printf(“Wrong!Too low!\n”);}else{printf(“Right!\n”);printf(“The number is:%d\n”, magic);}}程序运行结果如下:Please guess a magic number:40↙Wrong!Too low!设计程序实例5-5:guess2.c参考答案#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int magic; /*计算机"想"的数*/int guess; /*人猜的数*/int counter; /*记录人猜的次数*/srand(time(NULL));magic = rand() % 100 + 1;counter = 0;do{printf("Please guess a magic number:");scanf("%d", &guess);counter ++;if (guess > magic){printf("Wrong!Too high!\n");}else if (guess < magic){}}while (guess != magic); /*直到人猜对为止*/printf("Right!\n");printf("counter = %d\n", counter);}程序运行结果如下:Please guess a magic number:50↙Wrong!Too low!Please guess a magic number:90↙Wrong!Too high!Please guess a magic number:70↙Wrong!Too high!Please guess a magic number:60↙Wrong!Too high!Please guess a magic number:55↙Wrong!Too high!Please guess a magic number:52↙Right!counter = 6设计程序实例5-5:guess3.c参考答案#include <stdio.h>#include <stdlib.h>#include <time.h>void main(){int magic; /*计算机"想"的数*/int guess; /*人猜的数*/int counter; /*记录人猜的次数*/srand(time(NULL));magic = rand() % 100 + 1;counter = 0;do{printf("Please guess a magic number:");scanf("%d", &guess);counter ++;if (guess > magic){printf("Wrong!Too high!\n");}else if (guess < magic){printf("Wrong!Too low!\n");}else{printf("Right!\n");}}while ((guess!=magic) && (counter<10));/*猜不对且未超过10次时继续猜*/ printf("counter = %d\n", counter);}程序两次测试的运行结果分别如下:①Please guess a magic number:50↙Wrong!Too low!Please guess a magic number:80↙Wrong!Too high!Please guess a magic number:60↙Wrong!Too high!Please guess a magic number:55↙Right!counter = 4②Please guess a magic number:40↙Wrong!Too low!Please guess a magic number:90↙Wrong!Too high!Please guess a magic number:80↙Wrong!Too high!Please guess a magic number:70↙Wrong!Too high!Please guess a magic number:60↙Wrong!Too high!Please guess a magic number:55↙Wrong!Too high!Please guess a magic number:50↙Wrong!Too high!Please guess a magic number:45↙Wrong!Too high!Please guess a magic number:44↙Wrong!Too high!Please guess a magic number:43↙Wrong!Too high!counter = 10设计程序实例5-5:guess4.c参考答案#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int magic; /*计算机"想"的数*/int guess; /*人猜的数*/int counter; /*记录人猜的次数*/char reply; /*用户键入的回答*/srand(time(NULL));do{magic = rand() % 100 + 1;counter = 0;{printf("Please guess a magic number:");scanf("%d", &guess);counter ++;if (guess > magic){printf("Wrong!Too high!\n");}else if (guess < magic){printf("Wrong!Too low!\n");}else{printf("Right!\n");}}while ((guess!=magic) && (counter<10));/*猜不对且未超过10次时继续猜*/ printf("counter = %d\n", counter);printf("Do you want to continue(Y/N or y/n)?");scanf("%1s", &reply);}while ((reply == 'Y') || (reply == 'y'));printf("The game is over!\n");}程序运行结果如下:Please guess a magic number:50↙Wrong!Too low!Please guess a magic number:80↙Wrong!Too low!Please guess a magic number:90↙Wrong!Too high!Please guess a magic number:85↙Wrong!Too high!Please guess a magic number:83↙Right!counter = 5Do you want to continue(Y/N or y/n)?y↙Please guess a magic number:50↙Wrong!Too low!Please guess a magic number:80↙Wrong!Too low!Please guess a magic number:90↙Wrong!Too low!Please guess a magic number:95↙Wrong!Too low!Please guess a magic number:99↙Right!counter = 5Do you want to continue(Y/N or y/n)?n↙The game is over!。
第5章循环结构设计-实验5-参考答案
第5章循环结构设计-实验5-参考答案实验五循环结构程序设计班级:学号:姓名:成绩:一.实验目的1、熟练掌握用while语句、do-while语句和for语句实现循环的方法。
2、掌握在程序设计中用循环的方法实现一些常用的算法。
3、熟练掌握continue语句和break语句二.使用的设备和仪器+计算机+Windows XP +Visual C++6.0三.实验内容及要求1、输入10个整数,并统计出正数、0、负数的个数。
参考答案:方法1:#includevoid main(){int i=1,num,n1,n2,n3;n1=n2=n3=0;while(i<=10){printf("请输入第%d个整数=",i);i++;scanf("%d",&num);if(num>0) n1++;if(num==0) n2++;if(num<0) n3++;}printf("整数有%d个,0为%d个,负数为%d个\n",n1,n2,n3);}方法2:#includevoid main(){int i,num,n1,n2,n3;n1=n2=n3=0;for(i=1;i<=10;i++){printf("请输入第%d个整数=",i);scanf("%d",&num);if(num>0) n1++;if(num==0) n2++;if(num<0) n3++;}printf("整数有%d个,0为%d个,负数为%d个\n",n1,n2,n3); }2、计算下面的公式,并输出结果。
参考答案:#includevoid main(){int i;double jie=-1,f=0;for(i=1;i<=9;i++){jie*=-1*i;f+=1/jie;}printf("f=%.2f\n",f);}3、求100~999之间的水仙花数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 <stdio.h> 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π
else
{
printf("%d is not\n", x);
}
}
4、
#include <stdio.h>
void main( )
{
int x, n=0,s;
printf("请输入一个正整数(1~32767):");
scanf("%d", &x);
s=x;
while ( s !=0 )
{
n++;
s=s/10;
}
printf("%d是%d位数\n",x,n);
}
附加1:
略
附加2:
#include <stdio.h>
void main( )
{
double pi=0.0, t=1.0;
int n;
for ( n=1; t>=1e-6; n++ )
{
pi += t;
t = n*t/(2*n+1);
}
printf("pi=%f\n", 2.0* pi );
}
3、#include <stdio.h>
void main( )
{
int x,y,z; /*x-公鸡数,y-母鸡数,z小鸡数*/ for( x=0; x<=20; x++ )
{
for(y=0; y<=33; y++)
{
z=100-x-y;
if( (z%3==0) && (5*x+3*y+z/3==100 ))
{
printf("x=%-4dy=%-4dz=%-4d\n", x, y,z);
}
}
}
}。