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,用于累加数字字符的 。