C语言实训四 循环结构程序设计和答案
计算机程序设计基础C实训指导书 实训四 循环结构程序设计
PAGE
PAGE 5
实训四 循环结构程序设计(注:答案在后面)
班级: 学号: 姓名: 实训时间:
实训目标
掌握循环结构程序的设计和调试方法。
掌握while、do whil、for三种C循环语句的执行流程。
掌握一般循环程序设计的步骤(循环体、循环条件、循环初始化)。
学会提前结束程序的方法(break语句)。
学会多循环出口时判断循环出口的方法。
学会循环程序的调试方法。
掌握求极值、分类统计、求素数等常用算法。
学会循环嵌套程序的设计和调试方法。
语法基础
1. 在C语言中,实现循环的语句有: while语句、 do-while语句和 语句
2. break语句不能出现在( )语句中
A. switch B.for C. while D. if…else
3.语句while(!y);中的表达式!y等价于
A)y==0 B)y!=1 C)y=!0 D) y==1
4.若有“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为例,分别写出三种循环结构的核心程序。
NOyesi<=100i=0s=s+is=0
NO
yes
i<=100
i=0
s=s+i
s=0
i++
while下条语句
s=0;
i=1;
while(i<=100){
s=s+i;
i++;}
依据右侧的流程,改写为
for语句:
do while语句程序 do while结构流程图
实训内容和步骤
改错(copy下面源程序到VC编辑界面,调试并改错)。
程序功能为:输入1批学生成绩,以负数结束,求平均分。
有错的源程序
#include
void main()
{ int n=0;
int score, sum=0;
printf("please input the score:");
scanf("%d",&score);
do
{ sum= score +sum;
n++;
} while(score>=0);
if (n>0)
printf("the ave is %f",(float)sum/n);
else
printf("no valid data");
}
测试数据 预期结果 实际结果(连续运行时)
调试过程:(指编译通过,无语法错误,但运行结果不对时)
断点+单步调试,观察并记录各变量的值
2、输入一批字符,遇回车号结束,分别统计英文字符(不分大小写)、数字、空格和其它符号的个数(不含回车符)
流程图
源程序
测试数据 预期结果 实际结果(连续运行时)
语法错误:
调试过程:(指编译通过,无语法错误后,但运行结果不对时)
3、输入1个整数,判断它是否为素数。
流程图
源程序
测试数据 预期结果 实际结果(连续运行时)
语法错误:
调试过程:(指编译通过,无语法错误后,但运行结果不对时)
思考:
当循环程序出口不唯一时,如何判断循环从哪个出口出来的呢?以本题为例,说明常用判断方法。
4 在上题的基础上改写,功能扩展为:输入2个正整数m和n,输出m、n之间所有的素数。
程序改写思路及核心部分
语法错误:
测试数据 预期结果 实际结果(连续运行时)
调试过程:(指编译通过,无语法错误后,但运行结果不对时)
思考:
在嵌套循环中,内层的break语句 跳出它所在的循环, 跳出外层循环。
5、10元钱换成1、2和5元