C语言函数教学方法研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:gaolch003
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对C语言中函数的重要性及我校学生在学习过程中对函数的掌握情况,总结出一套实用的c语言函数教学方法。首先通过生活中常见的例子介绍函数的概念,并以此来阐述函数编程思想,然后重点讲解函数的定义方法——要素提取法、函数的调用方法及虚实结合的过程,并通过实例强化学生函数设计的方法,最后对函数的設计方法进行总结。实践证明,该方法在教学中取得良好的效果,也培养了学生函数设计的编程思想。
  关键词:教学方法;函数;要素提取法;虚实结合
  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2017)08-0161-02
  1序言
  《C程序设计基础》是我校工科非计算机专业的一门必修课程,目的是使学生掌握程序设计的基本方法,并形成正确的程序设计思想,培养学生用计算机解决本专业问题的能力,为后续课程的学习打下良好的基础。
  但在教学过程中发现,学生在学习函数这部分的知识时非常吃力,很多学生对此掌握的并不好,不能灵活的运用函数进行程序设计,主要的原因是所用教学方法效果较差。针对此问题,笔者在深入研究C语言函数教学方法的基础上,通过详细分析教学过程中学生的表现,并积极与学生沟通,总结出适合我校学生的函数教学方法,首先通过生活中常见的例子介绍函数的概念,并精心设计函数的引入问题,以此来阐述函数编程思想,然后重点讲解函数的定义和调用方法,并通过实例强化学生函数设计的方法,最后对函数的设计方法进行总结。
  2函数思想的引入
  数学中的函数与C语言中的函数有什么区别?数学中的函数侧重于自变量和因变量之间的映射关系,而C语言中的函数主要侧重于功能的实现。
  以计算13!为例,通常的计算方法是13×12×……×4×3×2×1=6227020800,但也会发现计算量非常大。熟悉计算器的学生也知道,计算器上有一个“n!”按钮,我们只需按“13”,再按“n!”,就可以得到结果6227020800。两种计算方法中笔者更喜欢后者,因为计算器中“n!”按钮可以协助完成阶乘计算,换言之,“n!”按钮可以完成计算阶乘的功能,与c语言中函数的概念非常接近,因此“n!”按钮就是将求阶乘的函数封装起来了,我们甚至可以说计算器就是将若干个函数封装起来的一个设备。所以通过计算器来理解C语言中函数的概念就比较容易了。有了函数,就可以多次使用它,就如同有了“n!”,不仅可以计算13!,也可以15!,17!等等。C语言中的函数就是功能独立的一段代码,能够避免重复代码,降低出错率,提高程序的可读性。函数机制的出现,也使多人共同开发大规模的程序成为可能。
  进而引导学生回顾教学中以前学过的主函数和C语言中的一些常见的库函数(如sqrt()),总结这些函数的共同点,标识符后面都有一个括号,并以一到两个子函数为例,讲解、编译、运行,帮助学生更好地认识函数。
  在学生对函数有了基本的认识之后,给学生说明并非所有的函数都是现成的,有很多是需要用户自定义编写的——用户自定义函数。在教学中,笔者认为函数的分类最重要的标准就是函数的使用方式,根据函数的使用方式可以将函数分为数值计算函数(有返回值,类型不是void)和任务执行函数(无返回值,类型为void),数值计算函数因为有结果,使用时一般当做表达式的一部分或者函数参数,任务执行函数由于没有结果,使用时一般独立成一条语句。
  3函数的定义和调用
  3.1采用要素提取法完成函数定义
  C语言函数设计主要围绕函数类型,函数名,函数形式参数,函数返回值四个要素展开。
  对于函数要素的教学部分,重点讲解函数的定义与调用。函数定义的一般形式为:
  类型说明符函数名(形式参数表)
  {声明部分;
  语句部分;
  return(返回值);}
  对函数定义部分还需要掌握的是:(1)类型标识符:函数返回值类型,即结果类型。(2)函数名:合法标识符是函数的唯一标识。(3)形式参数表:由类型和变量名组成。(4)return(返回值):返回结果。
  函数定义中的四个要素的提取方法可以参照用计算器求13!来说明,(1)类型说明符。13!的结果是6227020800,类型说明符就是根据结果的类型来确定,为int。(2)函数名。函数名是函数的唯一标识,在用计算器求13!的过程中,函数名就相当于“n!”按钮,这里用factorial来表示。(3)形式参数表。当计算13!时,形式参数表就是用来接收13的,假如求17!,那形式参数表就用来接收17,这里可以得出参数数量为一个,类型为int,因此用int x来定义形式参数。(4)返回值。13!的结果是6227020800,返回值就是6227020800。
  以求阶乘为例,定义函数:
  intfactorial(int x)
  {int s=1,i;
  for(i=1;i<=x;i )
  {s=s*i;}
  return s;}
  3.2函数调用及虚实结合的过程
  由上述函数定义可以看出,函数定义并没有具体的结果,原因在于x的值未定,就如同在计算器上只按下“n!”没有任何意义一样。因此,函数的定义只是实现了函数的功能,而最终的目的在于使用函数,即函数的调用。
  在函数的调用过程中,还需要重点讲解实际参数和形式参数的区别,以及整个虚实结合的过程。在使用函数时后面括号中是具体的值,即实际参数。函数定义中括号中的参数是形式参数,没有具体的值。在发生函数调用的时候,形式参数用来接收实际参数的值。如:
  voidmain()
  {int a=13,c;
  c=factorial(a);
  printf(“%d的阶乘为:%d/n”,a,c);}
  实际参数是a,有确定的值为13,形式参数为x,用来接收a的值。参数传递过程如图2所示:
  在函数定义和调用中需要重点强调的地方:
  1)函数名是函数的唯一标识。2)函数必须先定义后使用。3)如果函数为非void类型,函数中必须有return语句。4)普通变量传递时为单向传递,即由实际参数传向形式参数。
  4总结
  笔者首先以现实生活中的常见实例引出函数的概念,然后给出要素提取法来实现函数的定义,最后重点讲解函数的调用方法和参数传递的过程,并以一个实例贯穿始终,便于学生理解和记忆,强化了学生的函数设计思想。实践证明,该教学方法取得了良好的教学效果,提高了学生编程能力。
其他文献
期刊
距离高考还有一个月的时间,此时最主要的是心态的调整。不能太过紧张,也不可过度放松,要劳逸结合,质量兼顾。
对于广大PC DIY发烧友而言,追求极致性能是他们不变的初衷,而要实现这一愿望,一款性能出色、功能全面的主板必不可少。为满足PC DIY发烧友需要,华硕就推出了旗舰级主板:ROG(玩
某些时候,我们需要完成一些数学题目,例如"1+2+3+…+100=?""1&#215;2&#215;3&#215;…&#215;100=?",对于数学不是f艮精通的朋友来说,如果手头没有功能比较高级的计算器,恐怕除了请教网络
本文将湍流流场计算的SIMPLE算法与辐射传热的热流法计算结合在一起,联立求解了高温状态下炉内的流动及温度分布情况,得到了气体流动的速度场以及由传导,对流和辐射共同作用的温度分布
开展自主选拔录取改革试点,是深化高等学校招生考试制度改革的重要举措,通过自主选拔录取改革,切实选拔综合素质高、有创新精神和实践能力强的人才,对中学教育发挥积极导向作用,推
摘要:数据引领生活的新变化,我们生活在一个“数据”的时代 。但与此同时,大数据在收集、保存 、利用等环节中仍存在着许多信息安全风险问题。该文就在大数据下个人信息安全问题提出三种有效保护措施,社会网络企业的信息安全管理水平,加强立法安全和行业自律,提高用户信息安全素养。  关键词:大数据;信息安全;保护机制  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)26-00
介绍作者在涡流室式柴油机缸内工作过程多维数值模拟方法面的最新研究成果。所开发的EngineCFD-Ⅱ大型软件包使用C++语言,用于Windows95 ,采用面向对象的编程技术,在网络的自动生成技术和得杂边界的处
望霞危岩历史上多次发生山体崩滑变形破坏,最近两次大的危岩变形破坏都发生在雨季过后的10月份。鉴于此从危岩体区域地质背景、降雨、岩体结构等几个方面分别论述了产生崩塌