C语言中重点难点突破技巧.doc_第1页
C语言中重点难点突破技巧.doc_第2页
C语言中重点难点突破技巧.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言教学中重点难点突破技巧朱全民(长沙市雅礼中学 长沙市中学信息技术名师工作室首席名师)学好一门计算机语言对理解计算思维,特别是人们在学生与工作中运用计算机语言编写程序指挥计算机解决实际问题具有十分重要的作用,因此学习和掌握一门计算机语言非常必要。C 语言程序设计是一门应用广泛,功能强大的计算机程序设计语言,它不但是高校理工科学生的一门必修语言,也是其他每个学生学习的首选语言。但是,在学习C语言的过程中,很多学生都感觉比较枯燥难学,特别是有些概念很难理解,这样对学习和应用C语言起到了阻碍作用。本人在多年的C语言教学过程中,总结了一些C语言的教学方法,特别是对于C语言教学中某些重点难点概念进行了探索,在实施后效果不错。1、 巧用比喻理解常量、变量概念常量和变量是C语言中的基础概念,是教学中的重点,然而,学生在学习之初,都较难理解变量含义。绝大多数初学者都会有产生下面的迷惑:变量为什么要定义,到底有什么用?变量和常量本质上有什么不同?为了较好解决以上疑惑,可以采用打比方的方法。变量就像一个桶子,常量就是装在桶子里的物品。比如苹果、桔子等都是物品,相当于常量,苹果无论拿到哪里都是苹果,也就是说常量是不会变化的量。而一个桶子既可以装苹果,也可以装桔子,因此变量是可以变化的量。每种物品都需要用桶子存放,即常量需要存储在变量中。不同类型的桶子只能装与之对应类型的物品,装水果的桶子不能用来装油,所以变量使用前需要定义其类型,某种类型的变量只能存储同类型的常量。 2、 用精讲法突破数据类型内涵在讲数据类型时,数据类型的表示范围是难点。很多学生不明白:为什么整型要搞短整形(short)、整形(int)和长整型(long long)?它们表示的范围为什么有那么大差别?实型为什么要搞单精度实型(float),双精度实型(double)和高精度实型(long double)?他们的表示的范围大小和精度差别的原因何在?为了搞清这个问题,必须对数据类型的内涵做深入的讲解。变量相当于一个桶子,然而桶子也有大小之分,一个桶子不可能装无穷多的物品,因此,在定义变量时,除了定义其类型外,还需定义其大小。数据类型的大小与数据的范围怎样对应呢?short占2个字节,也就是16个二进制位,每一位可以放入0或1,也就是相当于16位二进制数。如下图:最小数:0000000000000000最大数:1111111111111111即数据范围为0(1111111111111111)2=065535之间,即无符号短整型(unsigned short)。因为整数有正负,为此将最高位作为符号位(0表示正数,1表示负数),如下图,由于少了一个二进制位存储二进制数,因此short的范围变成-3276832768了。15个二进制位数据位符号位理解了short的表示,其他整数类型也类似。对于实型是采用科学计数法的形式。例如3.14*105,在计算机内部只需要表示尾数和指数两部分即可。也就是说将数据类型的大小分为两部分,一部分表示尾数,一部分表示指数。如下如:若个二进制位若干二进制位尾数部分指数部分因此,尾数部分二进制位数越多,表示的精度越高,指数部分位数越多,表示的范围越大,这样对实数的精度和范围就很容易理解了。3、 从生活实例出发,灵活构造逻辑表达式逻辑表达式既是C语言中的重点知识,也是较难理解的知识。在讲到逻辑运算与、或、非时,学生都能理解,但在实际编程中往往不能灵活构造和运用。为了突破这个瓶颈,可以将逻辑表达式的讲解与生活实例相结合。逻辑与(&),表示并且之意,可以用“和”表示。我放学后要去打球和跑步。只有打球和跑步都做了,则此话为真,否则为假。意为“有假为假”。逻辑或(|),表示或者之意,可以用“或”表示。我放学后要去打球或跑步。那么只要打球和跑步做了一个,则此话为真,全部没做才为假。意为“有真为真”。逻辑非(!),即表示否定之意,可以用“不”表示。我同意他的观点。否定为:我不同意他的观点。意为“取反”。那么,若需要找出年龄在1825岁,且身高在1.8米以上的男性或身高在1.7米以上的女性,如何表示呢?分析:这里有三个属性,年龄、身高和性别,找出某个人,其年龄、身高和性别都是并且的关系,而对于身高,在男性和女性之间是或者的关系。因此,可以写成:(age=18)& (age=1.70 &sex=female | height=1.80 &sex=male)用这样形象生动的实例去讲解逻辑表达式,学生非常理解,应用起来也会很自如。4、 用简单的问题揭示循环执行过程在讲循环语句时,很多老师都按流程图去讲解循环结构的含义。花了很长时间学生还很难理解循环的意义和执行的过程, 倒不如用一个简单实例实用。教师:若在屏幕上显示“我爱编程”,如何办?学生:用输出语句即可。教师:若在屏幕上显示10句“我爱编程”,如何办?学生:用10个输出语句。教师:若在屏幕上显示100句“我爱编程”,呢?学生:?此时运行循环语句,学生一定会感觉到循环语句的神奇和奥妙,激发他们学习热情,通过对这个简单实例进一步分析,也很容易揭示循环语句的变化规律。5、 用类比法加快指针理解指针是一个比较难理解概念。在讲解指针时,可以将用家庭住址与指针进行类比。计算机存储器就像一个很大的城市,里面可以住很多人,每个人都有一个住址。这样只要找到了某人a,就能知道a的住址,反之若知道了a的住址,也就能找到a。例如,a=3,表示3存放在变量a所在的存储单元,而&a就对应了存放3的存储单元地址。6、 用图示教学法解析参数的妙用函数的参数设置有两种,一种是设置定义简单数据类型为参数,一种是定义指针为参数。这两者有什么区别?这是函数知识点中的难点。实际上这两种参数,对应了传数值和传地址的过程,采用图示法可以清晰的揭示其本质。看看左边程序,与右边图示对照,这样就能轻松理解程序的结果了,从而对传值和传地址有了深刻的理解。&a=22ff74&b= 22ff70f()函数的调用过程12main()函数赋值过程22ff742c&dc=&a,*c和a的地址相同,它们在同一位置,*c的操作实际上就是对a操作。#include void f(int *c,int d) int t; t=*c; *c=d;d=t; printf(a=%x,b=%dn,*c,d);main()int a=1,b=2;printf(a=%x,b=%xn,&a,&b);f(&a,b);printf(a=%d,b=%dn,a,b);运行结果:a=22ff74,b=22ff70a=2,b=1a=2,b=27、 用经典故事解释递归概念递归是一个难理解的概念,其实可以用一个经典故事进行类比:从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说,从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说。象这样,一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论