标题 | C语言趣味课堂练习之七 |
范文 | 摘 要:作者多年从事计算机应用技术研究和教学,在C语言程序设计的教学过程中,作者一直在探索激发学生学习兴趣、降低课程难度、提高学习成绩的有效途径,并提出自己的一些做法供同行们参考。 关键词:C语言;教法;计算机 1 乘法口诀(二) 程序说明: 这个程序使用while语句实现了前面程序的功能,教师可以通过这个程序给学生讲解while语句的使用,其他可以设置特殊形状的窗口并且逐行显示乘法口诀,涉及了多个头文件、休眠,还涉及嵌套循环的使用。 教师讲解这个程序的时候应该多突出它的趣味性,激发学生的学习热情。 #include #include #include int main(void) { system(“color 3f”); system(“title 乘法口诀”); system(“mode con cols=130 lines=20”); int i=1,j=1; while(i<=9) { printf(“\n “); while(j<=i) { printf(“%d*%d=%-6d”,j,i,i*j); j++; } j=1; Sleep(500); i++; } printf(“\n\n “); } 后记: 教师需要一边讲解,一边逐步增加各项功能,以免学生跟不上教师的思路。 教师讲解这个程序的时候应该多突出它的趣味性,激发学生的学习热情。 2 求100以内的所有素数 程序说明: 这个程序使用for语句,找出100以内的所有素数,教师可以通过这个程序给学生讲解for语句和if语句的綜合使用。 教师讲解这个程序的时候应该多讲解它的算法分析,培养学生的算法设计能力。 练习方法: (1).程序原型 #include #include int main(void) { system(“color 3f”); system(“title 100以内的所有素数”); system(“mode con cols=90 lines=30”); int i=2,j=2,k=0; for(i=2;i<=100;i++) { for(j=2;j{ if(i%j==0) break; } if(i==j) { printf(“\t%d\t”,i); k++; if(k%4==0) printf(“\n”); } } printf(“\n\n “); } (2).算法分析 1)开始:i=2,j=2; 2)设置i从2到100的循环 3)设置j从2到i的循环 4)第一次判断:J每一次取值,都验证i%j是否为零,如果为零,则终止j的循环 5)第二次判断:验证i==j是否成立,如果成立,则找到一个素数 后记: 教师在使用这个程序时应该多关注算法设计,多给学生讲解算法设计,培养学生算法设计能力。 3 用1、2、3、4,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序说明: 这个程序使用三层嵌套for语句,找出1、2、3、4组成的所有不同的并且没有重复的三位数,教师可以通过这个程序给学生讲解for语句和if语句的综合使用。 教师讲解这个程序的时候应该多讲解它的算法分析,并且引导学生设计不同的算法,培养学生的算法设计能力。 练习方法: (1).程序原型 #include #include int main(void) { system(“color 3f”); system(“title 用1--4组成的互不相同且无重复数字的三位数”); system(“mode con cols=90 lines=30”); int i,j,k,m=0,n=0; printf(“\n”); for(i=1;i<5;i++) //以下为三重循环 for(j=1;j<5;j++) for(k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) //确保i、j、k三位互不相同 { m++; printf(“\t%d,%d,%d\t”,i,j,k); n++; if(n%4==0) printf(“\n”); } } printf(“\n 以上一共 %d 个。\n “,m); } (2).算法分析 算法一 1)设置i=1,j=1,k=1 2)嵌套设置I,j,k三层循环 3)判断分拣出I,j,k互不相同的组合打印 算法二 1)设置i=1,j=1,k=1 2)设置i循环 3)設置j循环,分拣出与i不同的j 4)设置k循环,分拣出与I,j不同的k 5)打印 (3).参考程序 #include #include int main(void) { system(“color 3f”); system(“title 1--4组成的互不相同且无重复数字的三位数”); system(“mode con cols=90 lines=30”); int i,j,k,m=0,n=0; printf(“\n”); for(i=1;i<5;i++) //以下为三重循环 { for(j=1;j<5;j++) { if(i==j) continue; else { for(k=1;k<5;k++) if((i==k)||(j==k)) //确保i、j、k不相同 continue; else { printf(“\t%d,%d,%d\t”,i,j,k); m++; n++; if(n%4==0) printf(“\n”); } } } } printf(“\n 以上一共 %d 个。\n “,m); } 后记: 教师应该多讲解它的算法分析,并且引导学生设计不同的算法,培养学生的算法设计能力。 作者简介 杨英翔,副教授。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。