C语言中几种嵌套结构的教学分析

来源 :考试周刊 | 被引量 : 0次 | 上传用户:fch_ray
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:C语言中程序常见有三种嵌套结构,即选择结构嵌套、循环结构嵌套、函数调用嵌套,笔者通过对以上结构教学分析,告知读者在使用的过程中三者的需要注意之处,对提高C语言学习效率很有好处。
  关键词:嵌套;循环;函数;递归
  一、 引言
  接触过C语言的人都知道C语言是一种功能强大的计算机编程语言,学好C语言得花很多的功夫才能学好,它功能强大也表现在自由度大、语句灵活、学习过程中容易出错,像嵌套结构就是其中容易出错的部分。比如在学习选择结构嵌套时,学生们最容易出现else与if的配对问题;在循环结构嵌套时,一些初值的设置问题;在函数嵌套调用时,特别是递归调用,正推与反推过程的理解问题无不困扰着初学者。对此,笔者将这三种情况集中进行了教学分析,很大程度避免易混淆、难理解问题。
  二、 选择结构嵌套问题
  C语言中的选择结构语句包含单分支结构、双分支结构以及多分支结构,其中单分支结构采用if语句完成,双分支结构采用if-else语句完成,而多分支结构可采用if语句的嵌套,也可以采用else-if的嵌套,对于整型或字符型数据还可以switch语句以及switch的嵌套结构来完成,由此可以看到选择结构嵌套形式是多样的,下面对分段函数用if的两种嵌套为例来介绍循环结构的嵌套问题,函数如下:
  注意两个程序代码中的嵌套部分的区别,可以看出如果采用if语句的嵌套,它是将复杂的部分放置在前,简单的部分放置在后,即在前面嵌套,程序中往往会连续出现多个if或else的情形,这个时候要注意else与if的配对问题,象程序①中的第一个if是跟第二个else进行配对,而第二个if是跟第一个else进行配对,这是初学者一定要注意的地方,而采用else-if语句嵌套,它是将复杂的部分放置在后面,简单的部分放置在前面,即在后面嵌套,if跟else往往会交替出现,这个时候二者的配对就难以混淆起来,程序②中第一个if是跟第一个else进行配对,而第二个if是跟第一个else进行配对。在if语句嵌套程序中,要改变if跟else的配对问题,也就是说if的嵌套部分就是一个单分支if语句,只有通过对嵌套部分添加{}来完成。
  三、 循环结构的嵌套问题
  循环结构嵌套对于初学者来说是一个麻烦问题,大家知道循环完成的是对有规律的操作进行重复,找规律对初学者特别是文科类学生是头痛的,理工科学生几分钟能够考虑好的算法,文科生要十几分钟甚至更长时间才能想清楚,简单循环稍微好些,例如,设计程序求1 2 3 … 100的和,学生们上手都快,但是把程序改成1 1/2 2/3 3/4 … 99/100,就有相当一部分学生找不到规律,或者找到了规律也不知怎么用C语言表示,这是跟学生的素质有很大关系的,当然跟老师的讲授也有一定的关系。像1-(1 2)-(1 2 3)-…-(1 2 3 … 100)的求值问题,素质高的同学可采用单循环做,素质一般同学的可采用循环的嵌套来做,素质高的同学立马想到了除了第一个数为正以外,其他每一项都是负的,而且每一项都比前一项多一个数,这个数有规律,素质一般的同学想到的是要用循环的嵌套,外循环做减法,内循环做加法,每一趟加法都是没有任何联系的,在循环嵌套设置中,学生们感觉普遍为难的地方就是初值的设置问题,像这个问题,对于内循环的求和问题,表示和的变量应该是每一趟都是从0开始的,所以这个变量应在每一趟内循环开始都要置0,而不能只在程序的开始部分置0。
  程序分析:设置变量s=1-(1 2)-(1 2 3)-…-(1 2 3 … 100),它的初值设为1,外循环用变量i来表示第i项,其初值设为2,表示从第二项开始,变量t用来表示每一项的和,用內循环来完成求t,代码如下:
  同样是对变量赋初值,变量s,i,t,j对于赋初值都有自己的方式及位置,这也是学生们要通过大量的训练才能熟练的。
  四、 函数嵌套调用问题
  C语言中所有的函数都是级别相同的,在C语言中不允许函数嵌套定义,即在一个函数内部再定义其他函数,但允许嵌套调用,在函数嵌套调用中,比如主函数调用函数a,而函数a在执行过程中又调用函数b,函数b在执行过程中又调用函数c,这样函数c执行完后返回b,函数b执行完后返回a,函数a执行完后返回主函数,这样的函数嵌套调用需要注意的是函数的说明、定义通常要在该函数被调用之前进行,除非被调用的函数类型是整型,这种调用通常层次不会很多,只要在函数调用过程中不要出现死锁情况(即如函数a执行时调用函数b,而函数b在执行时又调用函数a,这样就会出现直接死锁,还有一种就是间接死锁,情况如函数a执行时调用函数b,而函数b在执行时又调用函数c,而函数c在执行时又调用函数a),在函数嵌套调用中,递归调用是最有代表性的嵌套调用,所谓递归就是函数在执行过程中,调用自己本身,这种调用不是简单调用自身,而是在调用时要使问题的规模逐渐缩小,最后达到解决问题的目的,也就是说,一定要有结束递归调用的情况出现。例如用递归调用编程求5!。
  通过函数的嵌套调用,我们发现主函数变得简单了,程序的功能都交由被调用的函数来完成。对于递归调用,它的正推与反推是相对应的,一定要有一个结束正推的情况出现,否则就是一个有去无回的调用。
  五、 总结
  通过上述各种嵌套结构的分析,我们了解了选择结构嵌套、循环结构嵌套、函数嵌套调用等多种形式在使用过程中要注意的地方,这对于学好C语言这门课程是有所帮助的。
  作者简介:
  邓波,夏太武,湖南省邵阳市,邵阳学院信息工程学院。
其他文献
本文通过对荣华二采区10
期刊
摘要:本文首先厘清家庭环境的概念,以及家庭环境的作用,进而阐述了家庭环境与行为品质之间的关系,并结合自己的工作实践进行案例分析,研究家庭环境的改变对学生良好行为品质形成的影响。  关键词:家庭环境;行为品质;案例分析  一、 对家庭环境概念的认知  (一) 家庭环境之概念  比照国内外研究分析,一般而言,家庭环境分为物质环境、情感信息环境、精神心理环境。物质环境就是家庭的经济层次,具体如家庭收入、
“林某某滥用职权,严重违反党纪法规,严重破坏了党和政府的形象和威信……”近日,在成都市新都区行政审批局会议室内,区纪委监委公开宣布关于林某某的处分决定,100多人的会场座无虚席。  连日来,新都区纪委监委把处分决定宣布暨现场警示教育作为推进以案促改的重要抓手,通过从“一张处分纸”到“一堂警示课”的深化,做深查办案件“后半篇文章”,达到查处一案、警示一片、治理一方的效果。  据了解,被宣布人林某某,
期刊
摘要:特长生课堂容易分散注意力,学习效率低下。因此需要课下因生分类指导,精准复习,才能提高学习成绩,所以微课学习就为这些学生提供了一种行之有效的方法。  关键词:微课;精准;分类指导  深秋的三湘大地,生机盎然。2013年11月3日至5日,习近平总书记到湖南湘西考察时首次作出了“实事求是、因地制宜、分类指导、精准扶贫”的重要指示。精准扶贫是粗放扶贫的对称,是指针对不同贫困区域环境、不同贫困农户状况
摘要:纵观中国的近代教育,始终在畸形发展,不论是那个特殊时期的“重德轻智”——“宁要社会主义的草,不要资本主义的苗”,还是恢复高考后的“重智轻德”——分数决定一切,都没在正确的教育轨道上。这些年我们一直在提倡、实施教育改革,大讲特讲应试教育的弊端和素质教育的优越,也曾有过相应的举措,但一直没有实质进展,中国教育存在的问题依然多多,后果可谓严重。要解决这些问题,必须进行有效而全方位的改革,努力使中国