C语言之switch语句教学研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:zhonghuiling2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:探讨了switch分支结构的常见错误,分析了与嵌套、循环结构的综合使用,通过在计算机专业的卓越班和实验班的实践证明,学生的综合编程能力和动手积极性得到进一步提高。
  关键词:switch;嵌套;循环;函数重载;教学实践
  中图分类号:G642 文献标识码:A
  文章编号:1009-3044(2019)35-0157-01
  1 概述
  在卓越班和实验班等基础较好班级的教学过程中经常遇到学生对switch语句执行顺序的种种困惑,在多次的上机考试和期末考试中丢分较多,本文针对与之相关的各种难点分析探讨。
  2 教学实践
  2.1使用背景
  在分支结构中我们常用if…else结构实现,但对表达式相同的进行多次重复计算而毫无意义,switch语句正是恰好的解决方案。通过计算表达式的值,结合case语句实现到分支语句地跳转来高效完成了多分支结构的选择功能。其语法形式如下:
  switch(变量表达式)
  fcase常量1:语句;break;
  …
  case常量n:语句;break;
  default:语句;break;
  }
  2.2常见错误
  1)switch(表达式)中的表达式类型只能为int、char等离散的整型式类型。如:double x=2.36; switch(x){case 2:...}不符合要求。
  2)case表达式具有唯一性。如:case 2:...case 2:...则错。
  3)case分支中要有break否则继续执行该分支后继续执行下句而不跳出。
  4)缺少default,则当找不到匹配的case时程序出错。
  2.3综合举例
  例1 #include
  main()
  { int iVarA=11,iVarB=12,iVarC=16;
  switch(iVarA)
  {case 11: switch(iVarB)
  {case 12:printf("A");break;
  case 13:printf("B");break;
  case 14:pnntf("C");break;)
  case 15: switch(iVarC)
  {case 16;printf("D");
  case 17:printf("E");}
  default: printf("F");}}
  上题的输出结果是"ADEF"。本题出现switch嵌套结构,即在"case"分支中又出现"switch"语句。只要把分支中的复杂语句当作该分支的一句复合语句来处理,则由繁到简、方便求解。具体过程为:"iVarA"=11使得选择"case 11",此分支中的"switch四句作为整体来处理即iVarB的值选择"case 12"输出"A"后遇到"break"跳出执行"case 15"。此时的跳出不是"case11"的跳出,此时的"break"在"1"前,属于"case 14"。故"case 11"不能跳出后执行"case 15",由于"case 16"和"case 17"两个分支都没有;"break"故相继输出"DE",最后无跳转执行缺省语句输出"F"。
  例2 #include main()
  { char cMyVar;
  while((cMyVar=getchar())!=’\n’)
  switch(cMyVar-’1’)
  {case 0:
  case 1:putchar(cMyVar l);
  case 2:putchar(cMyVar 2); break;
  case 3:putchar(cMyVar 3);
  default:putchar(cMyVar 4); break;}
  printf("\n");}
  上題是出错率很高的试题,当输入"2345"时输出"345789"。下面分析解题过程:
  "cMyVar"获取输入变量的第1个字符2,switch表达式计算得1此时分支对应"case 1"输出3,但该分支没跳出语句故继续执行"case 2"输出4遇到break而完成本次循环;"cMyVar"获取输入的第2个字符3,计算后执行"case 2"输出5,遇到"break"而完成本次循环;同理下2次循环依次得解。本题错点:1)没注意case分支中有的无break而提前跳出本次循环;2)switch表达式中"cMyVar"减1但变量本身没变,在处理分支结构时有的把该变量减1后再输出。
  3 结论
  switch分支结构的跳转语句让不少初学者头疼不已、错误不断,究其原因还是对缺省语句、"break"语句以及变量更改等不熟悉引起,本文结合几个具体的综合例子分析了上述易错原因。
  参考文献:
  [1]胡玲洁.《C 程序设计》中职教学中的易错分析[J].电脑知识与技术,2019(02).
  [2]谭浩强.C 面向对象程序设计[M].北京:清华大学出版社,2006.
  [3]吕凤翥.C 语言基础教程[M].北京:清华大学出版社.1999.
  [4]Bjarne Stroustrup.C 程序设计语言:特别版[M].裘宗燕,译.北京:机械工业出版社,2010.
  [5]钱能.C 程序设计教程[M].北京:清华大学出版社,1999.
  [6]Stanley,B.Lippman,Barbara E.Moo.C Primer中文版:第四版[M].李师贤,等译.北京:人民邮电出版社,2006.
  [7]陈维兴,林小茶.C 面向对象程序设计教程[M].北京:清华大学出版社,2000.
  [8]胡金锦.编程:一种观察世界的新视角——以《冒泡排序》一课为例谈计算思维[J].电脑知识与技术,2017(35).
  [9]张敏辉.将案例驱动教学法运用于程序设计类课程的实践与成效[J].高等教育研究,2012,29(2).
  【通联编辑:王力】
  收稿日期:2019-09-10
  作者简介:韩祥波(1975-),男,山东淄博人,讲师,硕士,研究方向为计算机软件与理论。
其他文献
摘要:石油公司每年投入大量资金采购各类专业软件,为掌握软件许可证的真实需求,建立了石油专业软件许可证监测系统,实现在公司范围内软件集中管理和统一监控,节约软件投资成本。该研究提出了软件许可证监测系统的设计思路和整体架构,论述了数据库以及各个子系统的详细设计与实现方法,形成了跨操作系统、跨软件厂商的软件许可证数据采集统一解决方案。目前系统采集的监测数据已成功为软件规划采购提供数据支撑,达到了降本增效
摘要:本文在对标中教专业认证标准(二级)中具体要求的基础上,分析了目前我院师范生培养存在的问题,并根据认证理念和认证标准,针对培养模式提出改革建议。以认证为契机,抓住机会,迎接挑战,探索提高师范生培养质量的有效路径。  关键词:专业认证;新课标;培养模式  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)35-0136-01  1 概述  2016年10月26日,教
摘要:为把“工程图学”学科发展成果引入教材,教材内容大为增加,而課程总学时却大为减少,其教学由原先讲得少、练得多,变成讲得多、练得少了,使得学生识读与绘制工程图的能力难以真正学到手。为此,必须改革教学手段和教学方法,以做到精讲多练。本文仅讨论如何综合运用多媒体教学与传统教学各自不同的教学手段进行工程图学教学,以提高工程图学教学效率和教学效果。  关键词:工程图学;图形思维;计算机绘图;传统教学;多
摘要:通过课堂和网络的信息化教学手段组织并进行教学,在突破时间和空间的局限性下,让学生在完成项目任务的同时加强他们对知识和技术的理解及掌握,从而提高其实践能力和职业素养。该文旨在探索并设计基于网络的影视专业的《影视栏目包装》课程的项目化教学改革的教学模式,并探索与之相适应的课程教学模式,以满足影视多媒体技术专业的发展和学生的技能及综合素质的培养的需求。  关键词:项目化;网络;职业  中图分类号:
摘要:习近平同志在全国高校思想政治工作会议上指出,要把思想政治工作贯穿教育教学全过程。但目前大部分高校,理工科的专业课程和思想政治课程通常并行的、交集甚少,因此高校教师要提高课程思政意识,积极投入课程思政教育教学改革中。本文对在《C语言程序设计》中课程恩政建设进行探索。  关键词:课程思政;高等教育;C语言  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)35-0
摘要:随着IT技术快速发展,其在生活中的应用也越来越广泛,校园的网络化程度也在提升,在推进学校管理质量提升的同时,也为教学活动的顺利开展提供了诸多便利。但是,随之而来的校园网络安全问题也开始受到了人们越来越多的关注,要提升校园网络安全的程度,相关人员就需要加强管理,为学生创建绿色的网络校园环境。本文主要从数字化校园的特点、数字化校园建设过程中网络安全方面存在的问题以及具体的解决策略方面进行了研究,
摘要:在实际针对油田软件项目进行管理的过程中,管理的复杂性比较强,而且具有明显的多向性。该文主要针对油田软件项目在开发前期的准备阶段管理中存在的各种问题进行了探讨,并针对问题解决后的控制和管理有效性进行了分析,在此基础上极大的提升油田软件项目的开发效率以及项目的开发成功率。  关键词:软件开发项目;数字化油田;管理  中图分类号:TP311  文献标识码:A  文章编号:1009-3044(201
摘要:目的:使用Geant4软件对加速器机房进行防护设计。方法:加速器屏蔽墙采用常用的混凝土结构,迷道采用L型结构,以国家标准GBZ/T2012为准则,调试模拟参数,对机房的屏蔽进行模拟计算。结果:模拟计算得到机房屏蔽模型,能够保护放射工作人员安全和满足放疗使用的需要。  关键词:辐射屏蔽;Geant4  中图分类号:R148 文献标识码:A  文章编号:1009-3044(2019)33-001
虚拟现实技术能模拟产生一个三维空间的虚拟世界,给使用者提供视、听、触等感官模拟。基于虚拟现实技术开发的课程资源(Curriculum Wisdom)具备直观、可操控、可进化、易分享
摘要:软件测试是计算机学科的重要课程。传统的授课方法理论教学逻辑清楚,理论突出,但是实践知识教学薄弱。建构主义学习理论强调学生通过实践构建新的知识。案例教学是基于建构主义教学理论的教学方法。基于案例的软件测试教学一共分为情景构建、案例提出、案例分析、案例总结与评价四个部分。该方法让学生通过原有知识和在案例中的积累构建新知识,注重实践知识的教学。  关键词:软件测试;建构主义;案例驱动;实践  中图