C语言教学攻略研究与整合

来源 :课程教育研究·学法教法研究 | 被引量 : 0次 | 上传用户:bsqtld0
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】 C语言因其重要的地位,成为目前高校理工类的公共必修课之一。然而,实际的教学效果并不理想,因C语言数据类型丰富,灵活性强,比较抽象且实践性很强,学生普遍认为C语言抽象难以理解,枯燥难以掌握,达不到预期效果。根据C语言的特点及学校教学改革的情况,本人提出一些C语言的学习方法。
  【关键词】 C语言
  【中图分类号】 G64.2 【文献标识码】 A 【文章编号】 2095-3089(2017)13-00-01
  结合C语言的教学实践,总结出在学习这门语言的过程中,高職学生感觉最难的是理解编程思想和形成良好的编程习惯。为帮助高职学生更深刻的学习C语言,整合了许多案例,编撰成教材。先把这些教学构思归纳如下,为学习C语言提供参考,同时也为更好地理解C程序设计的思想、编写出优秀的C程序奠定基础。
  一、设计一个大案例,由浅入深贯穿C语言中主要知识点,让学生对各知识点的运用有比较,有提高,理解透彻。
  比如制作电子辞典。编写一个C程序,实现电子辞典功能:要求用户输入某个缩略词,系统查辞典后能给出该词的完整形式,若辞典查无此词,也给出相应的提示信息。
  电子辞典这个案例首先使用数组、查询两个知识点,随后扩展使用到指针、结构体、预处理、书写规范、函数等知识点。
  1、讲解数组知识,建立一个简易的辞典。存储辞典使用两个二维字符数组:a[5][5]——保存辞典中的全部缩写词(假设5个要查询的缩略词,均以a开头);b[5][50]——保存辞典中的缩写词对应的完整形式(对应保存5个以a开头的单词的完整形式)。
  2、讲解查询方法,实现查询功能。
  数据查找有直接引用和顺序搜索两种方式:通过下标直接定位数据为直接引用;而顺序搜索至少有两个并行数组(如:一个用于存储记录关键字建立一一对应关系的引用;另一个用于存储对应数据,通过诸如项目编号、人员编号等关键字建立一一对应关系的两个数组),顺序搜索将输入的关键字与关键字数组中的各个元素进行比较,直至找到匹配元素或者遇到数组结束标记为止。找到匹配元素时,程序使用关键字数组的下标访问存储于数据数组的对应元素。
  3、讲解预处理知识,提高维护性。
  #define SIZE_DICT 5
  #define MAX_LENGTH_INPUT 256
  SIZE_DICT为5表示缩略词、完整形式的个数,MAX_LENGTH_INPUT为缩略词完整形式的个数。如果有增减会更方便。
  4、引入指针知识,实现查询功能。
  const char * a[SIZE_DICT] = {"AGP","ALU","AM","API","ASF"};
  const char * b[SIZE_DICT] = {"accelerated graphics port",…};
  const char * b[SIZE_DICT]=这是从二维字符数组改成了字符指针的一维数组,通常的实现方法,常数字符串都在数据段,MAX_LENGTH_INPUT从50提高到256,适合用在你不需要修改这些字符串的情况。如果你不用指针,数组的写法。
  const char b[SIZE_DICT][ MAX_LENGTH_INPUT]={"accelerated graphics port",…};
  使用数组的写法,问题在:
  ①不同字符串长度不同,都制定相同的长度,必然设置最大值,浪费存储空间。
  ②如果你要改变解释,如果设置小了,你还需要手动改最大字符串长度。
  5、讲解结构体写法,增强程序安全性。
  更好的写法可能是定义结构体struct
  struct item{
  char [MAX_LENGTH_INPUT] a;
  char [MAX_LENGTH_INPUT] b;
  };
  然后item[size_dict]={ ... },把相关的东西放一起。
  现在的写法有可能造成a和b的个数不一样,手动维护的时候,造成最后程序运行出现奇怪的问题。
  6、加入书写规范要求,养成良好编程习惯。
  使用字符数组常量、加上更多的大括号提高可读性。
  7、拓展函數训练,增加对程序的理解。
  通过函数传值,把a、b数组中的缩略词传入函数,为实现建立生成电子辞典,查询电子辞典,更新电子辞典的功能分别声明三个函数。
  二、针对同一知识点设计多个不同的案例,注重知识点讲授的重复性、增强性、连贯性,让学生对知识点学习更扎实,能解决相似的实际问题同时,又不断学习新的知识点。
  比如讲解排序方法,可以设计多个任务讲解。
  任务1练习一维数组排序。编写一个C程序,随机产生0~100之间的随机数20个,作为学生成绩,将批量数据由大到小排序,输出前10名学生成绩。
  任务2练习字符数组排序,增加字符处理知识。编写两个C程序,对字符串分别实现的不同处理。子任1:任意输入多个国家的名称(比如五个),按字母顺序排列输出——选择排序字符串。子任务3:任意输入多个学生的姓名(比如五个),按字母顺序排列输出——交换排序字符串。
  任务3练习查询方法,要求在排序的基础上,实现查询的功能。比如电子辞典,可以更快的实现查询,技能对比知识点,又能加深对C语言程序结构的理解。
  三、C语言发展相对成熟,注重引入案例的多样性、实用性、趣味性,让学生学习更有兴趣。
  猜数游戏讲循环、抽奖游戏讲随机数、大赛计分过程讲一维数组、电子词典讲查询,加密解密讲函数、截取歌曲名讲字符处理、魔方矩阵讲二维数组,引入这些案例讲解C语言更接近生活,让学生们认可C语言有用,进而产生兴趣深入学习。
  四、给学生C++编写风格的思想,注重书写代码的可读性、可维护性、安全性、规范性,让学生形成良好的编码习惯。
  1、习惯预定义常量,增强程序的可维护性。
  2、习惯用指针定义字符数组,可节省时间,实际工作中应用广泛,代码书写更规范。
  3、习惯使用更安全的函数,增强程序的安全性。如:gets改用fgets函数,能避免找不到‘\0’结束符的问题,更安全。
  4、习惯使用结构体定义相关数据,增强程序的安全性。避免关联数据出现问题。
  5、习惯使用函数接口,方便适应大型软件的合作研发,增强程序的可维护性。
  6、习惯写注释,增强程序的可维护性。
  7、习惯按照C语言格式书写代码,注意增加缩进。这样可以增强程序的可读性。
其他文献
课程改革的任务之一在于转变学生的学习方式.当今学生的学习主要存在以下问题:学习形式单一,传统的接受式学习方式已内化为学生的主要学习方式.针对以上问题,应采取对策:帮助
根据河口历年的潮汐观测资料和泥沙的基本特性,对漳卫新河河口段的水文特征进行了分析,并在此基础上对河道泥沙淤积的规律及影响因素进行了分析,为漳卫新河河道治理提供了参
目的:分析探讨中西医结合方案治疗老年单纯收缩期高血压的临床疗效及对患者生存质量的改善情况。方法:将150例老年单纯收缩期高血压患者按照随机数字表法分为试验组和对照组,每
【摘要】STS教育理念其重点是要求教育教学工作主要围绕科学、技术和社会关系为中心的综合性教育的一种理念,通过理论知识与实践活动的相结合,提升课堂教学效率,不断培养学生通过化学学习的综合能力和素质。因此,将STS教育理念贯彻落实到高中化学教学中有着重大意义。基于此,文章就高中化学教学中实施STS教育进行简要的分析,希望可以提供一个有效的借鉴,从而更好的保证STS教育的实施效果。  【关键词】高中化学
农村初中英语落后的现状,使教师探索并追寻“皮格马利翁”,实施“期望效应”教学策略相信每个学生都能成长、进步、成功;必须做到“以人为本”,机会均等;并且激励要及时反馈要恰当
【摘要】在新时期的课程改革下,培养学生自主学习能发挥学生自主体作用,成为现代教学的主题。但我认为,培养学生自主学习首先要培养学生的学习兴趣。学生对学习的直接兴趣是构成学习动机的重要因素。本文从教学实践中出发,谈谈培养小学生学习兴趣的点滴体会。  【关键词】小学语文 单元教学 结题报告  【中图分类号】G623.5 【文献标识码】A 【文章编号】2095-3089(2017)09-0091-01  
目的:观察振动排痰机辅助肺炎患儿排痰的临床效果。方法:本文主要将笔者所在医院2014年1月-2015年10月收治的200例肺炎患儿作为研究对象,将其随机分为观察组与对照组,对照组肺
引用市场机制,激活民间资本,振兴水利建设是当前农村水利改革的有力措施.介绍了遵化市农村水利改革的经验以及产生的经济效益与社会效益.
档案在各行各业的管理工作中都是一种不可或缺的信息资源,更是单位或团体组织日常运行中所看不见的无形财富。档案能够在领导或组织团队需要做出重要决定和决策时予以其相关
不断提高应对复杂局面的能力是我党应对新形势、研究新问题、解决新任务、推进中国特色社会主义事业而提出的,有着鲜明的时代背景,如何不断提高应对复杂局面的能力对于我们全