C语言循环语句学案
- 格式:doc
- 大小:146.50 KB
- 文档页数:20
C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
1
项目三 循环程序设计—打鱼还是晒网
任务一 while语句 学案
学生自评 教师评分
专业 班级 姓名 工位号
【学习要求】
1. 了解循环结构、循环语句
2. 掌握while语句和语法形式、执行顺序及用法
3. 掌握循环结构的嵌套使用方法
【学习重点、难点】
1.while语句
2. 算法描述。
【学时安排】4学时
【学习过程】
中国有句俗话叫“三天打鱼两天晒网”。某人从1990年1月1日开始“三天打鱼两天晒网”,问这个人在1994年3月1日这一天是在“打鱼”,还是“晒网”?
一、 课前预习及课堂学习任务
1、 循环结构?
2、循环语句:实现循环结构的语句称为循环语句。
3、在C中,循环语句有以下三种:
for语句
while语句
do…while语句
1)while循环——当型循环
while语句的一般格式为:
while(表达式)语句 C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
2
while语句的执行过程为:
(1)计算并判断表达式的值。若值为0,则结束循环,退出while语句;若值为非0,则执行循环体。
(2)转步骤(1)。
执行过程流程图:
1. 写出以下程序的运行结果
程序 屏幕显示 注意事项
例3-1 100
例如:求 n
n=1
#include
void main(void)
{ int a = 1, sum = 0;
while(a <= 100){
sum += a;
a++; }
printf("%d", sum);
}
练习 求s=1+2+3+„„+10
练习 用while语句实现阶乘5!。
注意“边界值”的选择!
应有使循环趋于结束的语句
C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
3
程序 屏幕显示 注意事项
例3-2:统计从键盘输入的一行字符的个数。
#include
void main(void)
{ int num=0;
printf("请输入一行字符:");
while( getchar( ) !='\n')
num++;
printf("共输入了%d个字符!",num);
}
例3-3:个位数是6,且能被3整除的5位数共有多少个?
#include
void main(void )
{
long int n=10006;
int count=0;
while(n<=99999)
{ if(n%3==0) count++;
n+=10;
}
printf(“count=%d\n”,count);
}
练习:能被3整除的3位偶数共有多少个?
C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
4
程序 屏幕显示 注意事项
例3-3 利用辗转相除法,求两个正整数的最大公约数
算法:
1)若j=0,则i为最大公约数
2)若j不为0,将i除以j,余数为k, i=j;j=k; 转1)
main()
{
int i,j,temp;
printf(“Enter 2 integers:”);
scanf(“%d%d”,&i,&j);
while(j)
{
temp=i%j;
i=j;
j=temp;
}
printf(“Gcd=%d\n”,i);
}
二、While语句-------使用要点(当型循环)
1.圆括号中的表达式可以是任意表达式,它仅用来测试表达式的结果值是零值还是非零值,用以决定循环进行的条件,称为“判终表达式”,一般是关系表达式或逻辑表达式,与条件语句一样可进行如下简化: C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
5
while(x != 0)
while(x == 0)
2.当判终表达式为 时,这样的while语句为无穷循环语句,如:
while(1) 语句; // 无穷循环语句
3. while语句的循环体通常是一个复合语句,也可以是简单语句,甚至可以是一个 。
4.在循环体中应有使循环趋于 的语句,以避免“死循环”。
任务二 do-while循环——直到型循环学案
学生自评 教师评分
专业 班级 姓名 工位号
【学习要求】
1. 了解循环结构、循环语句
2. 掌握do-while语句和语法形式、执行顺序及用法
3. 掌握循环结构的嵌套使用方法
【学习重点、难点】
1.do-while语句
【学时安排】2学时
【学习过程】
二、 课前预习及课堂学习任务
do-while语句的一般格式为
do 语句 while(表达式);
do-while语句的执行过程为:
(1)执行循环体语句。
(2)计算并判断表达式的值。若值为0,则结束循环,退出while语句;若值为非0,则转步骤 (1)。
执行过程:
C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
6
程序 编程注意事项、流程图绘制
例3-4 100
例如:求 n
n=1
#include
void main(void)
{ int i,sum=0;
i=1;
do
{ sum=sum+i;
i++;
} while(i<=100);
printf(“%d”,sum);
}
练习 求s=2+4+6+„„+20
练习 求s=1+3+5+„„+19
无论表达式的值是多少,循环体至少执行 !
C语言项目实训教程—项目三 循环程序设计—打鱼还是晒网
7
程序 编程提示
例3-5 从键盘输入一行字符,统计其中包含的数字字符个数,并输出。
#include
main()
{
int ch,num=0;
printf(“Enter a line text:”);
do{
ch=getchar();
if( )
num++;
}while(ch!= );
printf(“num=%d\n,num”);
}
练习 个位数是6,且能被3整除的5位数共有多少个?
练习 个位数是奇数,且能被7整除的4位数共有多少个?
1)题目要求从键盘读入一个字符,说明字符的 不确定,需要根据行结束标记
(回车符)判断输入的结束。
2)题目只需要统计数字字符个数,所以不需要保存每个字符。
3)为了统计数字字符的个数,需要定义一个整形变量num,用于累加数字字符的 。