C语言教学探讨--易造成学生困惑的几种运算符

  本文作者: 阳晓霞, 刘清华
  214福建电脑2007年第11期阳晓霞·,(1.河源职业技术学院广东河源517000刘清华z2.河源职业技术学院广东河源517000)【摘要】:C语言提供了非常丰富的运算符,这些看似简单的运算符之间,有著特殊的规划。本文就学习C语言运算时,容易造成学生困惑的几种运算符,采用详尽的C语言实例论证。使学生能够较好地理解C语言运算。
  【关键词l:除法运算求余运算赋值运算自增、白减运算逗号运算逻辑运算C语言的一个主要特征之一就是C语言的运算符非常丰富,包含的范围也非常广泛。这在高级语言中是少见的。一般的运算符只有34种。
  而C语言把括号、赋值、强制类型转换等作为运算符处理.使C语言的运算类型更加丰富、表达式类型也更加多样化,从而使得运算的实现更加灵活。
  同时。C语言的运算符还具有不同的优先级。使得C语言的功能更加完善。正是因为C语言的如上特征。使得我们在运算过程中必须非常小心。严格按照运算符的规则来执行,才不会出错。下面结合教学的经验谈谈我对学生较易出错的C语言中运算符的几点理解。1.除法运算C语言中的除法运算。看似简单。其中暗含玄机。关于其符号的取舍方面。这跟数学中保持一致,关键是小数位数的取舍问题,这也是C语言的独特之处。除法运算的规则是:整数相除。只保留整数部分,结果为整数若在相除的两数中。出现浮点数,则结果也为浮点数。例:①i=5/2结果为i等于2:②i-5/2.o结果为i等于2.5③i=2,5结果为i传奇文章等予O,很多同学无法理解这里④i-2.0/5结果为i等于0.4此类除法运算在程序设计的过程中也经常用到.当我们需要得到的商是一个浮点数,而相除的两个数却为整数时,这时可以修改其中的一个数为浮点数.只要在整数的后面加上”.0”就可以达到目的。
  2.求余运算这类运算的唯一要求是被除数和除数都必须为整数。我这里特别提出来.主要是因为很多同学经常在做求余运算的时候犯一些小学数学上的错误。
  例:i=3%5:结果为i等于3。可有很多同学都会将3%5看成5%3,误以为i等于2。3.赋值运算赋值运算符可以构成一个赋值表达式.将”=”右边的表达式的值赋给”=”左边的变量。
  使用赋值运算符时要特别注意:如果赋值号右边的表达式值的类型与被赋值变量的类型不一致.但都是数值型或字符型时.则系统会自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。例:illti-15:no砒£f-i/2产i,2的商是整型数7,被转换成浮点数7.0赋给f_这网络游戏这一点应该行|倍妇A产此.0的商是浮点型数7.5。被直接赋给f幸,4.自增、自减运算自增与自减运算符是C语言特有的两种非常有用的运算符,只能用于变量。
  而不能用于常量或表达式。其中:自增运算符为”++”,表示操作数加l自减运算符为”一”。表示操作数减1。
  自增、自减运算符都有两种用法:①前置运算一运算符放在变量之前:++变量、一变量。
  先使变量的值增(或减)1,然后再以.变化后的值参与其他运算。
  即:先增减、后运算。②后置运算一运算符放在变量之后:变量++、变量一。变量先参与其他运算,然后再使变量的值增(或减)1。即:先运算。后增减。
  概念容易理解,但在表达式中可能会出现多次(前置,后置)自增、自减的情况,这时,很多同学又开始犯糊涂,找不着北了,下面我就针对这种多次自增、自减的情况。分类进行解释说明一下。(1)表达式中只出现前置自增、自减的情况例:i=3时,执行下列语句:q写水母《++i)(i的值为lo,i的值为5)锄=㈠)《一i)(j的值为2,i的值为1)从上例可以得出:前置自增、自减运算是先增减,后运算的。
  (2)表达式中只出现后置自增、自减的情况例:i=3时。执行下列语句:①j却Hpi++(i的值为6,i的值为5)②j=(i一i一酊的值为6,i的值为1)从上例可以得出:后置自增、自减运算是先运算,后增减的。(3)表达式中既有前置自增、自减。又有后置自增、自减的情况例:i-3时。执行下列语句①j=(i++)KHi)G的值为8,i的值为5)国邓一Hi)O的值为4,i的值为1)国《++)*一i)G的值为4,i的值为3)@j邓H忡G的值为6,i的值为3)囝(抖iH0)O的值为8,i的值为3)国=(¨i)“一i)(i的值为6,i的值为3)渤《“)邯++)*-i)艄++)小+i)娟一)a的值为24,i的值为5)针对这种比较复杂的白增、自减的混合运算。我总结出的规律是:将表达式中各个i的值在求和时看成是相等的,因此,在求j的值时,一定是j卸的当前值P(表达式中i出现的次数)。具体求解的步骤如下:第一步:找出表达式中所有前玩家爽了置的i,碰到前置自增,i的值加I,碰到前置自减,i的值减1,直至表达式结束。求出i的当前值。第二步:求i的值,利用第一步求出的做完前置运算后的i的当前值,乘上表达式中i出现的次数,得出i的值。
  第三步:求i最终的值,利用第一步求出的做完前置运算的i的当前值,找出表达式中所有后量运算的i,碰到后量自增,i的值加I。碰刭后置自减,i的值减1,直至表达式结束,最终得出的为i的最终值。例如上例⑦,第一步找前置运算的i,有两个前置加,一个前置减,故i从3加两次l,减一次l,i的当前值为4第二步。表达式中i出现的次数为6,故i的值为24第三步(下转第212页)212福建电脑2007年第11期但如果精度要求高,就要使用双精度数据等。学生通过反复的思考和理解,才能真正掌握知识,这样的教学反思才能帮助学生真正理解基本数据类型,为学好C语言打好基础。所以,反思可以解决教学中存在的问题.并在解决问题的过程中使教学过程最优化.指导未来的行动。3.2反思性教学实施授课是教师施教的中心环节.它使教师备课的潜在成效变成现实的教学质量.在反思性教学实施阶段。在教学的各个环节应及时反恩并有效调控,因为客观的说教案再完美,也难免有与实际不符的地方。比如在讲解”冒泡排序法”这一课时,不应直接讲授算法实现过程。而是先让学生思考什么是冒泡,并用生活中的实例加以说明,然后让学生思考冒泡的过程。从而得出冒泡排序的算法思路。接下来讲解如何用循环语句实现算法,再讲解为了减少交换次数。对程序代码进行优化可引人8啪p这一判定变量。
  最后让学生独立思考完成整个程序的编写。在教学过程中要不断启发学生思考。
  教会学生学会学习的方法,并根据教学实际情况及时反思。随时调整教学计划。在讲解的过程中,学生难免会有注意力涣散的情况。这时要借助富有吸引力的多媒体手段,使学生的注意力重新集中起来。比如可用¨tIIo刑a陀、nash等多媒体软件制作功能强大、具有交互性和开放性的CAJ课件,实现复杂算法程序的动西化,以形象生动、清晰易懂的动面方式使学生得到更全面渗入的理解.同时还可利用多媒体扩大课堂信息量,在讲解过程中及时演示一些C语言优秀程序,让学生学到好的编程思维和编程习惯。此外上机练习对C语言的学习是至关重要的,教师对每次上机课都要有明确的目的要求。对学生在编程过程中出现的问题,指导学生认真分析系统提示信息,思考出错原因,而不只是简单的纠正。
  另外。对于教案中既定的难点,学生可能不认为难。
  而原认为容易的地方,学生可能会犯难,这就需要教师及时反思。有效调控教学计划、教学方法,使教学实践合理性在课堂中具体化日志。3.3反思性教学评价和操作性教学评价的定量化、客观化标准相鹾:,操作性教学评价坚持科学评价与人文评价的统一.坚持定量评价与定性评价的统一。对C语言课程的评价包括对教学过程、教学质量等作的测量、分析和评定,它是实现教学目的的重要手段,直接影响教师教的积极性和学生学的主动性。考试是检验学习效果的重要手段。C语言的考核分为理论考试和上机考试。理论考试主要考核学生对基本知识的掌握。基本的编程能力,编程应重点考核典型算法的应用。上机考试应重点考察学生调试程序、程序改错、编写程序等的能力。应注重实际应用性强的题型。在考试中经常会出现抄袭的现象。此时不仅要加大惩罚力度,更重要的是对学生进行诚信教育。可以让学生签订诚信协议书。
  加大自我约柬.提高学生的道德体养和价值观。考试后要写试卷分析,对学生普遍存在的问题反恿产生原因。分析是教师教学方法不正确,还是学生的学习方法有误。针对不同的原因,思考解决问题的方法。既帮助学生学会知识,又帮助教师学会教学。另外,对学生成绩的评定。不能只单纯的给出考试成绩,还应根据学生的具体情况。
  如和上次考试相比是否有进步,学生的身体状况、心理状况等。
  在给出学生成绩的同时。用定性化的评语描述对学生进行综合性的评定。
  这样不但能客癯地反映学生的学习情况。同时也能促进学生学习.起到很好的教学效果。4.结语反思性教学特别注重探究教学中的新问题.不但要让学生学会学习。还要让教师学会教学。使教师逐渐成为学者型教师,改变仅凭经验教学或简单重复教学的现象。
  通过授课前的反思。
  课程实施过程中的反思,对教学评价的反恩。最终形成超前反思。于实践前未雨绸缪。更好的指导未来的行动。在C语言课程教学过程中。教师通过不断反思实践,才能更好、更有效率的提高自己的教学水平。才能成为促进提高与丰富发展的反思性决策者。才能获得更好的教学成效。参考文献:1.熊川武.反思性教学咖.上海:华东师范大学出版社。2004.2.TimotllyG.R唧等.成为反悬型教师嗍.北京:中国轻工业出版社,20053。叶澜.袭舜旁色与教势发展斯烬口诅】.北京:教’誊科学出版社,20014.谭浩强.c程序设计(第二蓝)口吲.北京:清华大学出蓝社.1999.5.罗朝盛.c程序设计实用教程M.北京:人民邮电出版社,2005.-■卜-+-■+·+·+-·卜+-一··}■·+·■一·卜卜+斗-卜+H卜·+--卜卜.-卜·-一-卜+-卜-++·卜+-.一-■一·_.一·h+-+斗·卜+■一-一··最新传奇一(上接第214页)找后置运算的i,有两个后置加,一个后置减,故i从当前值4加两次1,再减一次l。
  结果为5。
  5.逗号运算逗号运算符即”。”又称顺序求值运算符。常用于将多个表达式串在一起,构成近号表达式。”,”运算符的左边的表达式总不返回值.而最右边表达式的值才是整个逗号表达式的结果。镶:①a为·5,a鸭8+5此逗号表达式的值为20∞·5,a≈·4,a+5此逗号表达式的值为65很多同学认为例①的逗号表达式的值为65,是因为没有区分开中间的表达式是否赋值.逗号表达式中没有赋值的中间表达式不会影响到逗号表达式的最终值。6.逻辑运算逻辑运算符包括兰种:逻辑与运算、逻辑或运算、逻辑非运算。任何非零的数据参与逻辑运算时用逻辑真表示.零参与逻辑运算时用逻辑假表示逻辑真用l表示,逻辑假用O表示。逻辑运算的规则如下:①&&:当且仅当两个运算量的值都为”真n时,运算结果为”真”否则为”假”。②ll:当且仅当两个运算量的值都为”假*时。运算结果为”假”:否则为”真n。③:当运算量的值为”真”时。运算结果为”假II.当运算量的值为”假”时。运算结果为”真”。逻辑运算的过程中要注意。并不是所有的表达式都被求解。即:对于逻辑”与”运算,如果新开传奇第一个操作数被判定为”假”时。
  系统不再判定或求解第二操作数。对于逻辑”或”运算。如果第一个操作数被判定为”真”时,系统不再判定或求解第二操作数。
  例:a2,b=3时,执行下列语句:锄=(.Ha<=奶&&o)_<=o)G的值为o,a的值为3’b的值为3)。@j《一b>=0)II(a++<=o)a的值为1,a的值为2,b的值为2)例①中,++a<=0表达式被判定为”假”,则函咚=0)表达式不执行,故b的值没有发生改变。同理,倒②中,.b>=o表达式被判定为”真”。则aH<=o表达式不执行,故a的值没有发生改变。以上是我在教学过程中.总结出的学生在学习C语言运算中比较难于理解的几种运算符.把上面的几种运算符都弄明白了。对C语言的运算就游刃有余了。参考文献:1.朱建芳李学军易擘易教C语言一一C语吉程序设计基础华南理工大攀出麓牡2005.2。
  本文《C语言教学探讨易造成学生困惑的几种运算符》 --- 作者: 阳晓霞, 刘清华

上一篇:CDIO模式下的高职艺术设计专业精品课程建设与实践--以《包装设计》精品课程为例
下一篇:Ethnic Conflicts and Identity Construction in

  • C语言教学难点分析
  • 中学教师人格倾向与焦虑的相关调查研究
  • 运用信息技术辅助生物教学的实践与研究
  • AUTOCAD工程设计应用技巧
  • DELPHI控件编程中消息的处理
  • 在物理教学中引入多媒体技术的思考
  • 海外娱乐平台天龙Online正式上线带给玩家高规格享受
  • 《火凤三国Online》全新角色盛大登场
  • 构造初始化对象与虚函数的调用
  • 迎接信息技术革命的挑战建设现代化中小学图书馆