1、C 语言实验 6实验 6、循环结构程序设计 (2)一、实验目的1、进一步掌握用 for、while、do while 语句的格式和执行流程;2、掌握循环的嵌套(至少两层)以及用循环的方法实现一些常用算法;3、掌握用 break 和 continue 语句的作用及其区别;4、进一步学习调试程序。二、实验内容1、程序改错(必做题)下面程序的功能是:输入 10 名学生某门课程的成绩,计算平均分,并求出其中的最高分和最低分。程序中存在四处错误,请调试修改,使程序运行能输出正确的结果。 (标明出错的行号及其修改的内容)#includemain() /1 int i; /2float score,max,
2、min,sum,ave; /3printf(“Please enter score of student:n“); /4scanf(“%f“, /5max=min=sum=0; /6 max=min=sum=scorefor(i=1;iscore) /10 if(maxscore)min=score; /13ave=sum/10; /14printf(“Average=%6.2fnMax=%6.2fnMin=%6.2fn“,ave,max,min); /152、编程题请根据自己的实际能力在以下 A、B 两组中任选两题 进行编程。A 组:(难道较高,成绩 A-A+)(1)编写程序,输入多个两位正
3、整数(敲回车键结束输入) ,统计出其中小于等于 40、大于 40 小于等于 70、大于 70 的数据个数。#include main() int a;int i=0,j=0,k=0;printf(“input some integer(press enter to end)n“);doC 语言实验 6scanf(“%d“,if(aint main() char c;while(c=getchar()!=n) if(c=A while(c=getchar()!=n) if(c=A /*n 代表整数 a 的每一位数字,len 代表 a 的位数*/printf(“请输入一个整数 a=“);scanf
4、(“%d“,num=a; while(a0) n=a%10; /*求整数的个位、百位、.位的数字*/sum+=n; a=a/10;len+;printf(“整数%d 共有%d 位,“,num,len);printf(“其各位数字之和为%dnn“,sum);(4)输入 2 个正整数 m 和 n(m1,n1000 时的 n 的最小值及其和值。(2)任意输入一串字符(敲回车键结束输入) 。分别统计出其中英文字母、数字字符、其它字符的个数。提示:先定义 char c;用循环 while(c=getchar()!=n)接收一行字符(敲回车表示字符输入结束,对输入的每一个字符进行判断并累加个数)(3)输出
5、所有的“水仙花数” 。所谓“水仙花数”是指一个 3 位整数,其各位数字的立方和等于该数本身,例如 153=13+53+33(4)编写一个 C 程序,对用户任意输入的整数,判断该数是否为素数。要求:用户每输入一个整数后,就给出该数是否是素数的信息,然后等待用户重新输入一个整数继续判断,直到输入一个-1 时结束。#include #include main() int a,i,flag=1;do printf(“请任意输入一个正整数,输入-1 结束:“);scanf(“%d“,if(a=-1)printf(“结束输入“);break;for(i=2;i=sqrt(a);i+) if(a%i=0)flag=0;break;else flag=1;if(flag) printf(“%d 是一个素数nn“,a);C 语言实验 6else printf(“%d 不是一个素数nn“,a);while(a!=-1);三、实验结果及分析1、将实验内容 1 中的错误行号及其修改的正确内容抄写在实验报告纸上,并记录调试过程中出现的问题及解决办法。2、编程题将选择的两题的代码抄写在实验报告本上,并标明是否调试通过。适当记录编程调试过程中的问题。四、实验小结五、回答问题到目前为止,你对 C 语言编程的三种基本结构掌握的情况如何?学习过程中你感觉有困难吗?主要是什么问题?