3.5嵌套循环及转向语句上机操作(教案)-《C语言程序设计》同步教学(电子工业出版社)

2024-07-10
| 4页
| 130人阅读
| 64人下载
普通

内容正文:

教案用纸 第 4 周 总第 11 次 学时:2 教学班级: 课程:C语言程序设计 授课教师: 课题:嵌套循环及转向语句上机操作 教学方法:演示、启发 教具:计算机 教学目标:使同学们熟练掌握循环语句的使用 教学重点:循环语句的上机操作 教学难点:循环语句在实际生活中的应用 主要教学内容: 嵌套循环及转向语句上机操作 【练习3-3】 思考用while和do-while两种循环语句编程实现s=1*2*……*10的积的程序。 【练习3-4】 编程实现从键盘输入任意数给变量j,求1到j的和。 【练习3-5】 写一程序,从键盘上输入一个年份year(4位十进制数),判断其是否为闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。 【练习3-6】 输出100~200之间的全部素数。所谓素数n是指,除1和n之外,不能被2~(n-1)之间的任何整数整除。 【练习3-7】 输出100~200之间不能被3整除的数。 课后回顾: 教案用纸 四个一: 提问:(1)循环语句包括几种(2)每种循环语句的格式 导入:上节课我们学习了循环语句,循环语句主要有while、do-while以及for语句,这节课我们通过上机来巩固循环语句的内容。 正文: 嵌套循环及转向语句上机操作 【练习3-3】 思考用while和do-while两种循环语句编程实现s=1*2*……*10的积的程序。 解:设一个循环体变量i和存放乘积的变量sum,初始设i等于1,sum等于1。使用循环语句,将每次的i值乘到sum上,然后将i值自加1,直到i大于10时循环结束。 (1)使用while循环解题程序如下: main() { int sum=1,i=1; while(i<=10) { sum*=i; i++; } printf("1*2*……*10=%d ",sum); } 程序运行结果如下: (2)使用do-while循环解题程序如下: main() { int sum=1,i=1; do { sum*=i; i++; }while(i<=10); printf("1*2*……*10=%d ",sum); } 程序运行结果同使用while语句的程序运行结果。 【练习3-4】 编程实现从键盘输入任意数给变量j,求1到j的和。 解:设一个用于存放输入值的变量j,再设一个循环体变量i和存放和的变量sum。先从键盘中读入j的值,然后设i初始值等于1,sum等于0。再使用循环语句,将每次的i值加到sum上,然后将i值自加1,直到i大于j时循环结束。 解题程序如下: main() { int i,j,sum=0; printf("input to j:"); scanf("%d",&j); for(i=1;i<=j;i++) sum=sum+i; printf("1+2+...+%d=%d ",j,sum); } 程序运行结果如下: 【练习3-5】 写一程序,从键盘上输入一个年份year(4位十进制数),判断其是否为闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。 解:闰年是年份能被4整除但不能被100整除的数,或是能被400整除的数。我们设年份为year,这样就构成了一个判断闰年的条件表达式: (year%4==0 && year%100!=0)||(year%400==0) 源程序如下: main() { int year; printf("Please input the year:"); scanf("%d",&year); if ((year%4==0 && year%100!=0)||(year%400==0)) /*判断年份是否是闰年*/ printf("%d is a leap year. ",year); else printf("%d is not a leap year. ",year); } 程序运行结果如下: 第一次输入年份“1998”,输出结果“1998 is not a leap year.”,第二次输入年份“2000”,输出结果“2000 is a leap year.” 【练习3-6】 输出100~200之间的全部素数。所谓素数n是指,除1和n之外,不能被2~(n-1)之间的任何整数整除。 解:显然,只要设计出判断某数n是否是素数的算法,外面再套一个for循环即可。判断某数n是否是素数的算法:根据素数的定义,用2~(n-1)之间的每一个数去整除n,如果都不能被整除,则表示该数是一个素数。判断一个数是否能被另一个数整除,可通过判断它们整除的余数是否为0来实现。 解法程序如下: #include <math.h> main() { int m, j, k,n=0; for(m=101;m<200;m+=2) { k=sqrt(m); for( j=2; j<=m; j++) if(m%j==0) break; if(j>=k+1) { printf("%5d",m); n++; if(n%10==0) printf(" "); } } } 程序运行结果如下: 【练习3-7】 输出100~200之间不能被3整除的数。 解:设两个整型变量n和k,n为循环变量,k为格式控制变量。令n的初值为100,n小于等于200的时候,判断n是否能被3整除,能整除,则提前结束本次循环。如果不能整除,则输出该值,并将k自加1。当k整除10时,输出一个换行符。 解法程序如下: main() { int n,k=0; for(n=100;n<=200;n++) { if(n%3==0) continue; printf("%5d",n); k++; if(k%10==0) printf(" "); } } 程序运行结果如下: 小结: 本讲通过上机操作练习了循环语句的各种格式,希望大家能够熟练掌握循环语句的格式,并且能够在实际工作中熟练运用。 备 注 难点:while与do-while语句的区别。 while语句先判断条件后执行语句;do-while语句先执行语句后再判断条件。 思考: 是否能够用while或do-while语句来完成? 重点:解释如何识别闰年,通过举例方式使同学们易懂。 难点:循环语句的嵌套。 学科网(北京)股份有限公司 $$

资源预览图

3.5嵌套循环及转向语句上机操作(教案)-《C语言程序设计》同步教学(电子工业出版社)
1
3.5嵌套循环及转向语句上机操作(教案)-《C语言程序设计》同步教学(电子工业出版社)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。