C语言中重点难点突破技巧.doc

上传人:scccc 文档编号:13444355 上传时间:2021-12-26 格式:DOC 页数:3 大小:89.50KB
返回 下载 相关 举报
C语言中重点难点突破技巧.doc_第1页
第1页 / 共3页
C语言中重点难点突破技巧.doc_第2页
第2页 / 共3页
C语言中重点难点突破技巧.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言中重点难点突破技巧.doc》由会员分享,可在线阅读,更多相关《C语言中重点难点突破技巧.doc(3页珍藏版)》请在三一文库上搜索。

1、C语言教学中重点难点突破技巧学好一门计算机语言对理解计算思维,特别是人们在学生与工作中使用计算机语言编写程序指挥计算机解决实际问题具有十分重要的作用,所以学习和掌握一门计算机语言非常必要。C 语言程序设计是一门应用广泛,功能强大的计算机程序设计语言,它不但是高校理工科学生的一门必修语言,也是其他每个学生学习的首选语言。但是,在学习C语言的过程中,许多学生都感觉比较枯燥难学,特别是有些概念很难理解,这样对学习和应用C语言起到了阻碍作用。本人在多年的C语言教学过程中,总结了一些C语言的教学方法,特别是对于C语言教学中某些重点难点概念实行了探索,在实施后效果不错。1、 巧用比喻理解常量、变量概念常量

2、和变量是C语言中的基础概念,是教学中的重点,然而,学生在学习之初,都较难理解变量含义。绝大部分初学者都会有产生下面的迷惑:变量为什么要定义,到底有什么用?变量和常量本质上有什么不同?为了较好解决以上疑惑,能够采用打比方的方法。变量就像一个桶子,常量就是装在桶子里的物品。比如苹果、桔子等都是物品,相当于常量,苹果无论拿到哪里都是苹果,也就是说常量是不会变化的量。而一个桶子既能够装苹果,也能够装桔子,所以变量是能够变化的量。每种物品都需要用桶子存放,即常量需要存储在变量中。不同类型的桶子只能装与之对应类型的物品,装水果的桶子不能用来装油,所以变量使用前需要定义其类型,某种类型的变量只能存储同类型的

3、常量。 2、 用精讲法突破数据类型内涵在讲数据类型时,数据类型的表示范围是难点。许多学生不明白:为什么整型要搞短整形(short)、整形(int)和长整型(long long)?它们表示的范围为什么有那么大差别?实型为什么要搞单精度实型(float),双精度实型(double)和高精度实型(long double)?他们的表示的范围大小和精度差别的原因何在?为了搞清这个问题,必须对数据类型的内涵做深入的讲解。变量相当于一个桶子,然而桶子也有大小之分,一个桶子不可能装无穷多的物品,所以,在定义变量时,除了定义其类型外,还需定义其大小。数据类型的大小与数据的范围怎样对应呢?short占2个字节,也

4、就是16个二进制位,每一位能够放入0或1,也就是相当于16位二进制数。如下图:最小数:0000000000000000最大数:1111111111111111即数据范围为0(1111111111111111)2=065535之间,即无符号短整型(unsigned short)。由于整数有正负,为此将最高位作为符号位(0表示正数,1表示负数),如下图,由于少了一个二进制位存储二进制数,所以short的范围变成-3276832768了。15个二进制位数据位符号位理解了short的表示,其他整数类型也类似。对于实型是采用科学计数法的形式。例如3.14*105,在计算机内部只需要表示尾数和指数两部分即

5、可。也就是说将数据类型的大小分为两部分,一部分表示尾数,一部分表示指数。如下如:若个二进制位若干二进制位尾数部分指数部分所以,尾数部分二进制位数越多,表示的精度越高,指数部分位数越多,表示的范围越大,这样对实数的精度和范围就很容易理解了。3、 从生活实例出发,灵活构造逻辑表达式逻辑表达式既是C语言中的重点知识,也是较难理解的知识。在讲到逻辑运算与、或、非时,学生都能理解,但在实际编程中往往不能灵活构造和使用。为了突破这个瓶颈,能够将逻辑表达式的讲解与生活实例相结合。逻辑与(&&),表示并且之意,能够用“和”表示。我放学后要去打球和跑步。只有打球和跑步都做了,则此话为真,否则为假

6、。意为“有假为假”。逻辑或(|),表示或者之意,能够用“或”表示。我放学后要去打球或跑步。那么只要打球和跑步做了一个,则此话为真,全部没做才为假。意为“有真为真”。逻辑非(!),即表示否定之意,能够用“不”表示。我同意他的观点。否定为:我不同意他的观点。意为“取反”。那么,若需要找出年龄在1825岁,且身高在1.8米以上的男性或身高在1.7米以上的女性,如何表示呢?分析:这里有三个属性,年龄、身高和性别,找出某个人,其年龄、身高和性别都是并且的关系,而对于身高,在男性和女性之间是或者的关系。所以,能够写成:(age>=18)&& (age<=25)&&

7、; (height>=1.70 &&sex=female | height>=1.80 &&sex=male)用这样形象生动的实例去讲解逻辑表达式,学生非常理解,应用起来也会很自如。4、 用简单的问题揭示循环执行过程在讲循环语句时,许多老师都按流程图去讲解循环结构的含义。花了很长时间学生还很难理解循环的意义和执行的过程, 倒不如用一个简单实例实用。教师:若在屏幕上显示“我爱编程”,如何办?学生:用输出语句即可。教师:若在屏幕上显示10句“我爱编程”,如何办?学生:用10个输出语句。教师:若在屏幕上显示100句“我爱编程”,呢?学生:?此时运行循环语句

8、,学生一定会感觉到循环语句的神奇和奥妙,激发他们学习热情,通过对这个简单实例进一步分析,也很容易揭示循环语句的变化规律。5、 用类比法加快指针理解指针是一个比较难理解概念。在讲解指针时,可以将用家庭住址与指针进行类比。计算机存储器就像一个很大的城市,里面可以住很多人,每个人都有一个住址。这样只要找到了某人a,就能知道a的住址,反之若知道了a的住址,也就能找到a。例如,a=3,表示3存放在变量a所在的存储单元,而&a就对应了存放3的存储单元地址。6、 用图示教学法解析参数的妙用函数的参数设置有两种,一种是设置定义简单数据类型为参数,一种是定义指针为参数。这两者有什么区别?这是函数知识点中

9、的难点。实际上这两种参数,对应了传数值和传地址的过程,采用图示法可以清晰的揭示其本质。看看左边程序,与右边图示对照,这样就能轻松理解程序的结果了,从而对传值和传地址有了深刻的理解。&a=22ff74&b= 22ff70f()函数的调用过程12main()函数赋值过程22ff742c&dc=&a,*c和a的地址相同,它们在同一位置,*c的操作实际上就是对a操作。#include <stdio.h>void f(int *c,int d) int t; t=*c; *c=d;d=t; printf("a=%x,b=%dn",*c,d)

10、;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、 用经典故事解释递归概念递归是一个难理解的概念,其实可以用一个经典故事进行类比:从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说,从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说。象这样,一个对象部分地由它自己组成,或者是按它自己定义,我们称之为递归。让学生明白的是,尽管这里故事情节完全相同,但每次故事里的山、庙、小和尚和老和尚都不相同。而且故事最终要有个结局,也就是最后一层的故事。这就是递归的初始条件或递归的出口。通过这个故事,很容易把递归不断调用的过程和参数传递的实质给分析清楚了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1