循环结构程序设计(1)
- 格式:doc
- 大小:94.00 KB
- 文档页数:7
C语⾔程序设计第五次作业——循环结构(1)(⼀)改错题输出华⽒摄⽒温度转换表:输⼊两个整数lower和upper,输出⼀张华⽒摄⽒温度转换表,华⽒温度的取值范围是{lower,upper},每次增加2℉。
计算公式如下:c = 5×(f-32)/9其中,c表⽰摄⽒温度,f表⽰华⽒温度。
输⼊输出样例1: Enter lower:32 Enter upper:35 fahr celsius 32 0.0 34 1.1输⼊输出样例2: Enter lower:40 Enter upper:30 fahr celsius源程序(有错误的程序)#include <stdio.h>int main(void){int fahr , lower, upper; /* fahr表⽰华⽒度 */double celsius; /* celsius表⽰摄⽒度 */printf("Enter lower:");scanf("%d",&lower);printf("Enter upper:");scanf("%d",&upper);printf("fahr celsius\n"); /* 显⽰表头 *//* 温度转换 */for (fahr = lower , fahr <= upper, fahr ++) ;celsius = 5 /9 * (fahr - 32.0);printf("%3.0f %6.1f\n", fahr, celsius);return 0;}对源程序进⾏编译,结果如下:错误信息1:错误原因:for语句后⾯加了分号。
改正⽅法:将分号去掉。
错误信息2:错误原因:for语句下没有加“{}“改正⽅法:在for语句下加上“{}”错误信息3:错误原因:发现for语句内语句⽤逗号隔开了。
循环结构程序设计(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. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
循环结构的程序设计循环结构是程序设计中的一种重要的控制结构,它使得程序能够重复执行一定的代码块,从而实现重复任务或者处理大量数据的需求。
我们将介绍循环结构的基本概念和使用方法。
一、循环结构的基本概念循环结构包括三个基本要素:循环变量、循环终止条件和循环体。
循环变量:用于记录循环的当前状态,控制循环的执行次数。
循环变量通常是一个整数或者一个范围。
循环终止条件:当循环变量满足特定的条件时,循环将停止执行。
循环体:循环体是在每次循环执行时要执行的代码块。
二、循环结构的分类常见的循环结构有三种:for循环、while循环和do-while循环。
1. for循环:for循环适合于已知循环次数的情况,在循环体执行之前,初始化循环变量的初始值,每次循环结束后通过循环迭代语句修改循环变量的值。
for 循环变量 in range(初始值, 终止值, 步长):循环体2. while循环:while循环适合于不知道循环次数的情况,在循环体执行之前,需要先判断循环的终止条件是否满足,满足则继续执行循环体,否则跳出循环。
while 循环终止条件:循环体3. do-while循环:do-while循环先执行一次循环体,然后判断循环的终止条件是否满足,满足则继续执行循环体,否则跳出循环。
while True:循环体if not 循环终止条件:break三、循环结构的应用场景循环结构广泛应用于各种需求中,例如:遍历数组或列表:通过循环遍历每个元素,对每个元素进行特定操作。
数字求和:通过循环累加每个数字,得到总和。
查找特定元素:通过循环查找元素是否存在。
循环输出:通过循环输出一定数量的内容,并按照特定规则进行排列。
四、循环结构的注意事项在使用循环结构时,需要注意以下几点:循环变量的初始值和终止条件需要正确设置,否则可能导致无限循环或者无法执行循环体。
循环体中的代码需要谨慎编写,避免死循环或者循环执行次数过多。
循环体执行时可能会修改循环变量的值,需要确保修改后的值符合循环的终止条件,否则可能导致循环无法终止。
循环结构程序设计1.程序填空下面程序的功能为:计算1~100之间的偶数之和,完成以下的程序并运行出正确的结果。
# include <stdio.h>void main(){int i,s=0;/**************found*************/i=2 ;while(i<=100){s=s+i;/**************found**************/i+=2 ;}printf(“s=%d”,s);}运行结果:S=25502.程序改错(1) 下面程序的功能为:计算10!,修改以下的程序并上机运行通过。
#include <stdio.h>void main(){int n,t;for(n=1,t=1,t<10,t++);n=n*t;printf(“10!=%d\n”,n);}正确的程序:#include <stdio.h>void main(){int n,t;for(n=1,t=1;t<=10;t++) //句尾不能有“;”n=n*t;printf(“10!=%d\n”,n);}运行结果:10!=3628800(2) 下面程序的功能为:计算1~100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。
#include <stdio.h>void main(){int i,s;s=0;while(i<=100);{if(i%3==0||i%7==0)s+=i;i=i+1;}printf(“s=%d”,s);}正确的程序:#include <stdio.h>void main(){int i,s;s=0; i=1;while(i<=100) //句尾不能有“;”{if(i%3==0&&i%7==0)s+=i;i=i+1;}printf(“s=%d”,s);}运行结果:S=2103、有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前30项之和。
上机实验五循环结构程序设计(一)一.目的要求1.掌握while、do-while、for语句的语法规则、执行流程。
2.比较3种循环语句的异同。
3.按题目要求,完成代码。
二.实验内容思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?第1题、分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i(计数器)=14)计算第i项term =a/b5)累加sum=sum+term6)计算c=a+b,更新b= a,更新a=c7)计数器加1,i++8)重复4、5、6、7,直到i>209)输出2位精度的结果编写程序:方法一,用while语句:#include<stdio.h>void main(){float s=0, a=2,b=1,c;int i=1;while(i<=20){s=s+a/b;c=a+b;b=a;a=c;i++;}printf(“s=%.2f”,s);}方法二,用do-while语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i=1;do {s=s+a/b;c=a+b;b=a;a=c;i++;} while(i<=20);printf(“s=%.2f”,s);}方法三,用for语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i;for(i=1;i<=20;i++){s=s+a/b;c=a+b;b=a;a=c;}printf(“s=%.2f”,s);}第2题、计算多项式的值:s=1!+2!+3!+4!+ (20)算法提示:该多项式迭代公式为:term=term*i,sum=sum+term注意:哪些变量需要初始化?变量应采用什么类型?编写程序:#include<stdio.h>void main(){int i;double s=0,fact=1;for(i=1;i<=20;i++){fact*=i;s=s+fact;}printf(“s=%f”,s);}把每一次迭代结果输出,程序应做怎样的修改?第3题、输入x和n,计算并输出下式的值:s=x/1+x/3+……+x/n参考答案:#include <stdio.h>int main(){int n,i;float x,s=0;printf("请输入x,n,以,分隔");scanf("%f,%d",&x,&n);for(i=1;i<=n;i+=2){s+=(x/i);}printf("\ns=%f",s);}第4题、输入一批正整数,求出其中的偶数之和。
第五章循环结构的程序设计补充习题(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) 98765. 有以下程序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)06.若有如下程序段,其中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) 98.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10main(){ int n; float s;s=;for(n=10;n>1;n--) s=s+1/n;printf("%\n",s);}程序运行后输出结果错误,导致错误结果的程序行是A)s=; B)for(n=10;n>1;n--)C)s=s+1/n; D)printf("%\n",s)9.C语言中while和do-while循环的主要区别是______。
实验报告_实验5 循环结构程序设计(1)(学号_姓名)
一、实验目的:
1、熟悉循环结构的循环控制部分和循环体部分;
2、掌握for语句、while语句、do…while语句的使用,并能相互代替;
3、熟悉累加、连乘积、分类统计等算法,能根据实际需要构建循环语句;
4、熟悉随机函数rand()、三角函数sin(x)、cos(x)的使用。
二、实验内容
1、(基础题)用for语句编写程序,计算1-3+5-7+…-99+101的值。
程序代码:
#include<stdio.h>
int main()
{
int sign=-1,sum=0;
int i;
for(i=1;i<=101;i+=2)
{
sign=-sign;
sum=sum+sign*i;
}
printf("1-3+5-7+…--99+101=%d\n\n",sum);
while(1);
return 0;
2、(基础题)用while语句编写程序,如下图所示:输出角度0、10、20、30、……180的正弦、余弦值。
程序代码:
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
int main()
int i=10;
double x;
while(i<=180)
{
x=i/180.0*PI;
printf("角?度¨¨: %4d\t",i);
printf("正y弦¨°: %10.6f\t",sin(x));
printf("余®¨¤弦¨°: %10.6f\n",cos(x));
i+=10;
}
return 0;
}
3、(基础题)参考大课中的例子,用do...while语句编写程序,输出满足n!<=1000000的最大整数n。
程序代码:
#include<stdio.h>
int main()
{
int i=1,p=1;
do
{
p=p*i;
i=i+1;
}while(p<=1000000);
printf("满¨²足Á?n!<=1000000的Ì?最Á?大䨮整?数
ºyn=%d\n\n",i-1);
while(1);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n1,n2,n3,n4,n5,n6;
n1=n2=n3=n4=n5=n6=0;
const int N=1000000;
int a;
int i;
srand(time(0));
for(i=1;i<=N;i++)
{
a=1+rand()%6;
switch(a)
{
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
break;
case 4:
n4++;
break;
case 5:
n5++;
break;
case 6:
n6++;
break;
}
}
printf("出现1点的次数为 %d, 所占比例为 %10.6f%%\n",n1,n1*100.0/N);
printf("出现2点的次数为 %d, 所占比例为 %10.6f%%\n",n2,n2*100.0/N);
printf("出现3点的次数为 %d, 所占比例为 %10.6f%%\n",n3,n3*100.0/N);
printf("出现4点的次数为 %d, 所占比例为 %10.6f%%\n",n4,n4*100.0/N);
printf("出现5点的次数为 %d, 所占比例为 %10.6f%%\n",n5,n5*100.0/N);
printf("出现6点的次数为 %d, 所占比例为 %10.6f%%\n\n",n6,n6*100.0/N);
system("pause");
return 0;
}。