C语言教学中存在问题

2024-12-14

C语言教学中存在问题(共11篇)

C语言教学中存在问题 篇1

摘要:C语言是近年来在国内外得到迅速推广应用的一种计算机语言。C语言不仅为计算机专业工作者所使用,而且为广大计算机应用人员所使用。搞好这门语言课的教学改革,无论对于学生的学习,还是对其他语言课的教学改革都有重要意义。目前C语言的教学中,还存在着一些问题,有待改革与探讨。根据自己的教学实践,提出一些建议及对策。

关键词:C语言教学,问题,对策

C语言是国际上广泛流行的、很有发展前途的计算机高级语言,适合作为系统描述语言,既可用来写系统软件,也可用来写应用软件。它的语法结构灵活,学习过程中所需记忆的规则相对较少,程序结构清晰,既具有高级语言优点,又具有低级语言对硬件控制的特性。因此,C语言是初学者学习计算机语言时的一门重要的程序设计语言。现今很多高校将C语言作为计算机专业及其它专业学习计算机时的一门必修课。但在目前的C语言教学中,还存在着一些问题,有待改革与探讨。

1 目前教学中存在的问题

通过多年的实践教学,发现目前C语言教学中主要存在以下几个方面的问题:

1.1 学生学习目的不明确,没有学习兴趣

很多学生认为这门课就是介绍关于C语言本身的一些语法规则,对以后的学习、就业和发展工作没有什么影响,所以学生不愿学。有的学生不了解C语言是其它面向对象语言的基础,总是想超前学习当前流行的一些开发语言,如C++和C#等。而且很多学生在学习时不能灵活掌握要点,甚至有少数学生有死记硬背的现象,使一部分(甚至是大部分)学生产生枯燥无味的感觉,进而产生厌学情绪,这样的学习结果一定是不理想的。

1.2 实践教学环节薄弱

C语言是一门实践性很强的计算机语言,但目前的实践课教学存在很多弊端。例如:学生不明确上机实验的目的,实验的内容不清楚,想干什么就干什么,没有相应的实验要求。在考核方式上,仍然采用传统的闭卷考试为主,实验课环节只是占很小的比例,不能提高学生的动手能力和创新能力。这样,语言课就成了单一为了考试的一门课,其结果有的学生连最基本的实践操作也不会做。

1.3 缺乏较好的教学方式方法

目前很多学校对C语言的教学仍停留在传统的模式上,仍然避免不了“满堂灌”的被动局面。老师和学生不能很好的互动起来,没有充分发挥学生学习的主动性。教师对该门课程的教学内容和教学重点的理解和把握不够准确,往往把重点放在讲述一些学生不感兴趣的语句、语法规则方面,没有把编程解题思路放在首位,学生很难看到该课程的全貌,只会感到内容枯燥难学。这使学生丧失学习兴趣,使得教学质量不高。

2 课堂教学改进建议及对策

针对以上问题,结合教学实践,提出以下几点建议及对策。

2.1 使学生明确学习C语言的目的

只有学习目的明确,学生才会有学习的动力,才会有学习的自觉性。有些学生认为C语言已经落伍了,想学习一些超前语言。针对这一观点,应明确地告诉学生学习C语言的目的是建立程序设计的思想,学习程序设计的各种基本概念、方法、技巧,培养良好的程序设计风格,为以后的深入学习打下坚实的基础。任何事情都不是一蹴而就的,不把基础打好,一开始就学习VC++,只能是事倍功半。我们还要让学生明白在学校不仅是学习知识,更重要的是学会学习的方法,计算机的发展日新月异,不能指望现在什么最新、什么最时髦就学什么,即使现在最新,但等到学生毕业的时候,它也许也落伍了。所以,学会了学习的方法,有了坚实的基础,就有能力举一反三,很快掌握新的知识。在讲课过程中,要充分调动学生的积极性和主动性,学生有了主动性,才会自觉地学好这门课。

2.2 培养和激发学生学习兴趣

恩格斯说过,“兴趣与爱好是最好的老师”。为了使初学者能尽快地掌握计算机知识,进入计算机的应用领域,在课程讲授过程中,培养学员的学习爱好和兴趣是非常重要的。初接触计算机时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的规则、定义、要求和机械的格式出现,很容易使一部分(甚至是大部分)学生产生枯燥无味的感觉。为了把学生的好奇转化为学习兴趣,授课时我们可以改变过去先给出定义和规则的讲授办法,而是从具体问题入手,让学生带着问题去学习解决问题的方法,并尽量多的引入学生生活中熟悉的有趣的例子,通过这些形象生动的例子讲解使学生对晦涩难懂的概念加深理解,培养和激发学习兴趣。

2.3 灵活采用计算机多媒体教学形式

尽管很多高校已经引入计算机多媒体等现代化教学手段,但多数仍是空架子,运用效果并不是很好。计算机多媒体教学可以理解为传统教学基础上增加了多媒体(包括计算机)这一特殊工具的教学手段。合理使用计算机多媒体,能有效地弥补传统教学的不足,比较容易实现人机交互、实时反馈,化抽象为具体,把难以理解的内容或不容易观察到的事物用媒体充分显示出来,以多样化的信息作用于学生的多种感观,使比较抽象的材料学起来也不感到枯燥。它的生动性、趣味性和鲜明的色彩性有助于吸引学生的注意力,调动学生学习的积极性,提高了学生们的学习兴趣,为突破难点创造出良好的氛围。运用计算机多媒体教学手段事先设计好教学课件,不仅可以节省板书时间、实现资源共享、减少重复劳动和提高效率。同时还可以利用软件工具制作课件,很好地将教学过程中的图、文、声、动画有机地结合成为一体,使课件具有很强的感染力。而且,通过计算机多媒体教学,可以现场演示某个C语言程序的完整的设计过程和实现过程,这些用传统的方式是无法实现的。

2.4 精讲多练,注重实践环节

课堂教学无疑是传授知识的重要途径,然而动手能力的培养更加不可忽视。C语言是一门实践性很强的课程,学生要想很好地掌握这门语言,必须注重学生动手能力的培养,也就是必须经过大量的上机实践。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。因此,我们在教学过程中,一定要做到精讲理论部分,加大上机实践的力度,对所学的每一部分内容都要学生完成一定数量的上机练习。

为了使每个学生能自觉地投入到C语言的学习中来,每部分的上机习题必须精心挑选,既要有基本的、较简单的题目,又要有一些具有挑战性较难的新颖有趣的题目,并且注意知识的系统化。对于一些程度好的学生允许他们结合自己专业自己设计题目,充分调动他们学习的主动性和创造性,施展他们的才华,也使他们逐渐对这门课有了兴趣,感到学有所用。

同时,要求学生做好上机前准备,写好预习报告(程序的算法或编好源程序)。学生上机中碰到问题时,应注意培养学生自己思考,独立分析调试的能力。实验结束后,要求写好实验报告和小结,自我分析上机出现的问题和解决的方法。这样一来既可以锻炼学生表达能力,又可以给学生一个反思的过程,对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。

2.5 改进考核方式

考核在教学过程中起着重要的作用,对教师来说它是了解学生学习状况的依据。对学生来说,它是学生自我评价的依据。目前,C语言程序设计的考试主要以笔试为主,考试的重点是语法和基本的逻辑推导能力,忽略了学生对问题的分析和对所学知识的综合应用能力。这就可能使许多学生理论基础很好,但动手能力不强的现象。甚至部分学生把《C语言程序设计》课程演变成了背诵课,考试前花大量的时间拼命的死记硬背,考完后就忘得一干二净。因此,必须建立以学生的实际问题解决能力为考核基准的考核模式,坚持课堂教学与实践教学并重、学与用相结合的原则,让学生多理解、多动手,而不是让他们在考前去背。考核方式可以转变为以实验考核为主,辅以笔试。这种通过学生的实际动手所产生的记忆可以是长久的,比简单的背诵更有益于学生对本门课程的掌握。

在今后的教学中,教师应勇于探索、勇于实践、善于总结,真正实现我们提高学生能力、素质的目标。

参考文献

[1]谭浩强.C程序设计[M].北京:清华大学出版社,2005.

[2]张引兵,刘林娜.C语言程序设计教学探讨[J].科技信息2008,(18)

[3]张天宝,王攀峰.讨论新型教与学关系的建构[J].高教研究,2001.

[4]罗克路.培养高素质的师资队伍[M].北京:电子科技大学学报社科版,2001.

C语言教学中存在问题 篇2

语言文字是人类传递信息、交流思想、进行抽象思维的工具,也是社会发展进步必不可少的工具。“说好普通话,掌握规范字”是素质教育的一项重要内容,普通中学是实施规范语言文字的主阵地,但学校语言文字工作不容乐观。本文主要从语文课堂教学方面阐述相关内容及对策。

(一)必须把握好课堂教学的主要环节和基本模式

在教师指导下的读书、思考、交流、练习是课堂教学的基本环节。这里,读书是基础,思考是关键;交流能让学生在童心童语的氛围中互相启发、互相学习,发挥班级授课的优势;练习能使知识得到巩固和积累,并转化为能力,让学生初步运用。明显,这些环节都是以学生为活动主体的。因此,如果教师的指导基本得法,就能使语文课堂教学步入语言文字训练的轨道而不致陷入“发胖式分析”的歧途或重蹈“满堂灌”的覆辙。“教师指导”是至关重要的,否则,训练效果就会不佳。这里,首要解决的是课堂教学的基本模式问题。从我省许多老师加强语言文字训练的课堂教学经验来看,先扫除障碍(生字、难词、有关背景、知识等),重点抓好识字写字;接着初读课文,理解课文大意、结构;继而精读课文(或片断),侧重语言训练;之后勤读背诵,加强语言积累;最后迁移练习,促进语言运用,语言文字训练课的基本教学模式。当然,模式的把握和运用有高下智愚之分,但只要牢牢把握这一模式中的后三个重要程序,做到语言训练(包括分析比较)有重点,勘读背诵(全文或片断)有积累,迁移练习有运用,那么,语言文字训练的目标不难达到。

(二)真正落实语言文字训练

在具体操作上应提出一些根本要求和硬性规定。比如,40分钟的课时目标要明确单一,除了思想感情教育方面的教学目标外,语文知识和能力的目标也要非常具体且数量不能过多,最多不应超过三项。如作文训练课“教会学生按人物动作的先后顺序说、写,语句通顺连贯”的课时目标是具体且切实可行的,而“培养学生的观察能力和表达能力”的课时目标却高而空洞、大而抽象。再如,“以读为本”、多读课文是一节成功的小学语文课不可缺少的。在小语课堂的教学中,如果听不到琅琅的书声,就不可能取得良好的教学效果。因此,每一节课,学生至少应该有10分钟以上的时间用来读书,包括朗读和默读。这样,教完课文时,不仅可以达到“低年级学生对全篇课文,中高年级学生对重点句段能背诵”的要求,而且可以不增加学生的课外负担。又如课堂练习,包括书面练习,每节课应有具体安排。现在有一种把书面练习都放在课外的不良习惯,这实际上增加了学生的课外负担。从语文角度来说,小学课外的语文学习应是阅读课外读物和自由练笔,书面练习包括作文一般都应在课内完成。指导学习方法,既是完成中小学语文教学使学生做到“自能读书”和“自能作文”的目标所必需,又是提高语言文字训练效率不可缺少的。最理想的学法指导应该是全盘考虑、分项设计,做到有序、有机渗透。即使眼下一时达不到,也应该增强学法指导意识,做到对单元、课文有计划有重点地进行学法指导,力求让学生在小学阶段基本掌握一般的学习方法、学习语文的方法,养成良好的读写习惯。在指导学法的随机渗透和专课讲授两种方法中,我们更加提倡前者,它更便于学生从理论与实际的结合上,在参与领悟、体会、总结中,更加深刻、更加具体地掌握知识。

为了保证达到根本要求和硬性指标以上,我们在教学过程中即必须注意一些问题。第一,应精确讲解。每节课不论是思想内容的理解,还是语文知识和能力的训练,教师的讲解都应当十分精要和恰当。这方面有一个通病,即凡事均搞“联想”、“发散”。“联想”、“广发散”是思维训练的极好形式,但运用必须适度,以教材允许和学生能做到为宜。第二,要精简提问。提问力求具有启发性、导向性和示范性。有的地方为了克服以“提问式”代替“启发式”、以多提问来酿成“课堂活跃”的弊病,硬性规定一节课中教师提出的关于内容理解上的问题一般不超过五个,却鼓励学生质疑问难,是有一定道理的。第三,必须及时反馈教师对学生的朗读、答问、提问、交流,及时进行评价,组织学生讨论,对的`肯定,错的纠正,并简述原因和方法。这是提高训练质量和效率的最好契机,最能给学生留下深刻的印象。高明的教师是从来不放过这一时机的。完成书面作业后,要求学生自我检查或互相检查,然后尽可能地有重点地在课内评价和反馈。第四,有自学时间。这里的自学是指预习,朗读前的准备,回答问题前的思考,查阅资料、草拟提纲、质疑问难等。这种学习是不可缺少的。它是训练过程中知识和能力内化的必经途径,也是课堂教学中“此时无声胜有声”的艺术体现。在学生自学时,教师要巡视指导,矫正反馈。

此外,在训练中值得我们还要注意:一是必须面向全体。这是社会主义教育,也是素质教育的根本特征。在课堂训练中要尽量设计、创造全体学生进行听说读写活动的时机,避免课堂训练是少数几个尖子学生轮流表演。有人提出一名优等生在一节课内的发言不得超过三次是有道理的。在确定教学目标和进行具体训练过程中,我们应对此引起高度注意。二是勿忘辅导后进生。除了在教学全程中必须认真地而不是敷衍地、热情地而不是歧视地对待后进生外,在课堂教学中,教师还应多给予后进生训练机会,并在学生自学或回答问题时,有针对性地对部分后进生进行个别辅导。三是加强课外指导。在严格按照有关规定控制学生的家庭作业量的前提下,要根据学生不同年级的特点,做好课外阅读和自由练笔的指导,这是课内训练十分必要的补充和延伸。实践表明,一些语文成绩好的学生,特别是后来在语文上有所建树的学生,大多得益于这一方面。因此,可以说它是提高训练效率的一种手段。与其让学生用课余时间做一些机械的、枯燥的练习,还不如让他们去丰富多彩的语文园地徜徉(当然也需要引导),后者的效果肯定比前者好。

素数问题在C语言教学中的应用 篇3

摘 要: 作为C语言的典型问题,素数问题可以在整个教学过程中反复出现。素数问题本身有一定的趣味性,同时反复处理同一问题可以在一定程度上降低学习难度。因此,在C语言的各教学环节有意识地使用素数问题举例可望有效增强学习效果。

关键词: C语言 素数 教学应用

素数在很多领域都有应用,例如作为公钥密码国际标准的RSA算法,就是基于两个大素数的乘积实现的。素数问题在C语言中很重要,在算法、循环、数组、函数等章节均可出现,本文对素数问题在各章节的具体应用加以总结分析。

1.素数和算法描述

算法是计算机为求解特定问题而采取的方法和步骤,为加深学生对计算机算法的理解程度,将判断素数的算法作为计算机算法的描述示例。

要判断n是否素数,可以让它除以2、除以3、……一直到除以n-1,只要有任一个能整除它就不是素数,反之如果不能整除就是素数,算法具体如下。

步骤1:从键盘上输入n的值;

步骤2:2→i;

步骤3:n除以i,得到余数r,若r等于0,表示能够整除,打印n“不是素数”,算法结束,否则执行步骤4;

步骤4:i+1→i;

步骤5:如果i小于等于n-1转步骤3,否则打印n“是素数”,算法结束。

2.素数和循环

循环是非常重要的一种基本结构,特点是在给定条件成立时多次重复执行某个程序段,使用循环结构可以大幅度提高编程效率,将素数判断程序作为循环结构的示例程序。

程序中的循环变量终值使用的是sqrt(n),与使用n-1或者n/2作为循环变量终值相比,循环执行次数更少,因而效率更高。

3.素数和数组

数组部分可以使用筛法求某一范围内的素数。筛法是另一种判断素数的简单算法,方法是先在纸上按顺序写下2~100,然后依次挖掉2的倍数、3的倍数、5的倍数……纸上最后剩下的就是100之内所有的素数。

4.素数和函数

函数属于C语言中难度较高的部分,讲授这部分时可以编写一个判断素数的函数,调用此函数验证著名的哥德巴赫猜想。哥德巴赫猜想可以简单描述为任一大于等于6的偶数都可以分解为两个素数之和。以下程序对6~100之间的偶数进行哥德巴赫猜想的验证。

由以上示例可见,素数问题可以在C语言整个教学过程中反复出现。对学生来说,素数问题本身有一定的趣味性,同时反复处理同一问题可以在一定程度上降低学习难度。因此,在C语言的各个教学环节有意识地使用素数问题举例可望有效增强学习效果。

参考文献:

[1]王文东,李竹林.C语言程序设计[M].西北大学出版社,2014.

C语言教学中存在问题 篇4

但是,在多年的教学实践中可以发现,学生们普遍认为这门课难度大、不易学,期末考试不及格率高,学生们学了但不会用的现象也十分严重;与此同时,教师们也认为课堂时间少,学生自学能力差,教学效果不太理想。那么,在C语言程序设计教学过程中存在的主要问题是什么?如何解决上述问题?怎样才能让学生们爱学、学会、学好、会用?这些都是值得探索实践的问题。

1 课程教学存在的主要问题

1.1 学生的计算机基础参差不齐

由于大专院校学生均来自于全国各地,各地教育水平和经济水平的差异较大。通过调查发现,有的学生在高中阶段即已接触过C语言,而有的学生在来校前甚至连计算机都没有用过,这种巨大的差异导致的结果是,有一点基础的学生满足于一知半解,觉得老师讲的内容自己都会,所以课堂听课不够认真,学习得不踏实,真正做作业时仍是错误百出,但这部分学生因为接触过计算机,在上机实践课上,就显得比较得心应手;而基础差的同学则觉得进度太快,难以跟上,上机实践课常有无所适从的感觉,从而对这门课程缺乏信心,失去兴趣。

1.2 教学过程过于拘泥于二级考试

部分院校规定,非计算机专业学生必须通过计算机全国二级考试方可顺利毕业,加之二级证书在毕业学生求职中的作用,导致教学中过分拘泥于二级考试,讲课过程中过分注意语法细节,大量使用二级真题或模拟题作为例题和习题,与程序设计的实用性偏离甚远。受此影响,学生们学到的只是语法,却没有真正学会程序设计的基本思想和方法,更不能真正学会如何解决实际问题。

1.3 上机实践难以达到效果

C语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,因此,C语言的教学特别重视实验环节,强调上机实践。但现在学生上机实践中经常出现问题,主要有:相当一部分同学上机只是想上网、聊天、玩游戏,对老师布置的实验题目只是敷衍了事,有的甚至直接抄袭其他同学的程序;另外,目前上机实验中,大都是由一个教师担任上机辅导,学生写好程序上机来调试,但各个学生编写程序的方法往往不同,出现的错误有共性的也有个性的,而教师不可能及时解答每个学生的问题,就会导致部分学生不能继续往下调试,把宝贵的上机时间白白浪费在等待上。

针对以上问题,我们认为在C语言教学中,应着重注意从教学内容、教学手段、教学方法这几个环节进行改革,从而提高教学质量,培养出高质量的人才。

2 改革探索与实践

2.1 改变传统教学方法,树立正确教学目的

《C语言程序设计》课程是一门实践性和应用性很强的课程,所以在教学方法上必然要不同于其他各种理论性课程。在实际教学中,应通过对大量实例的分析和在实践中的运用达到对基本概念的掌握。因此,为了使初学者能尽快地掌握计算机知识,进入计算机的应用领域,教师要特别注意教学方法。恩格斯曾经说过“兴趣与爱好是最好的老师”,教学过程中,首先要用具有趣味性和实用性的例题吸引学生的兴趣并尽快让他们享受到学会编程后的成就感。例如,刚开始上课时,可以选择一些学生熟知的、简单的数学问题,教他们如何用C语言表示,并在计算机上真正实现这些数学问题的计算,让他们在第一时间体会到这门课程的妙处。随着课程的深入,学生编程能力的增强,可以引入一些趣味性的题目,如“百元百鸡”、“自动洗牌、出牌”、“学习成绩管理系统”等,让大家积极主动、自觉独立地学习程序设计。

在增加课堂讲授的趣味性的同时,还应本着“强化算法,弱化语言”的原则,即把授课重点放在解题思路、方法和步骤(算法)上,旨在让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式;而那些枯燥乏味、不易理解的语法知识则通过例题引出,在讲解语法的时候只讲解最基本的部分,其它用法则尽量在例题中随着难度和实际应用逐步呈现给学生。为了加强学生对算法的理解,要注意引导学生对同一个问题,学会采用不同的算法去实现,比如数学中常出现的求解方程的根,可以用二分法也可以用牛顿迭代法实现,在讲解过程中,可以和学生一起画出算法框图,再对照每种算法框图,写出源程序,让学生自己体会每种算法的优缺点。

在打好基础的前提下,在教材的后半章节,可以提出一些复杂题目,通过系统分析,培养学生在解决大型问题时的系统架构、模块分解等方面的能力,这样有助于培养学生探索精神和创新能力。

教学过程中,教师要随时注意引导,不要刻意提高计算机二级考试和期末考试的重要性,应本着实用的目的,让学生活学活用,为今后的实际工作打下良好基础。至于二级考试,如果学生能够按照老师的要求,认真做好预习、听讲、作业、上机这几个环节,通过也是水到渠成的事情了。

2.2 改进课堂教学手段,保证教学效果

首先,课堂教学注意因材施教,深入浅出,缩小台阶,突出实用。在以往的课堂教学中,都是教师先介绍变量定义,再介绍指令的语法规则,最后是例子讲解。这样讲课的好处是知识灌输量大,但缺点是教师和学生之间缺乏互动,课堂气氛死板、乏味,而学生们在学习C语言时,一开始是怀着神秘兴奋的心情进入课堂,随着几堂关于大量难以理解和记忆的新概念、新名词、新术语、新规则的介绍、枯燥乏味的例题分析后,学生逐渐感到兴趣不大,即使是上机也很无聊,只会照着书本上的例子进行验证;要独立完成程序编写常常感到无从下手,进而产生厌恶和恐惧。因此,在教学中必须本着“深入浅出,突出实用”的指导思想,在一次课堂教学过程中,要对教学内容进行重新归纳,力争将难点再次分散,以缩小台阶,达到循序渐进的效果。例如,C语言数据类型、运算符、表达式种类繁多,放在一起讲授,学生学习起来枯燥乏味,难度较大,我们在实际教学中尝试将算术型的数据类型、运算符以及相关的表达式先介绍,使学生学起来不会感觉太过烦琐,紧接着就教授学生编写简单的、短小的程序设计,完成一些简单的算术运算,如“鸡兔同笼”等,然后再引入基本输入输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就能得到提高。

其次,课堂教学手段上做到传统与现代化多媒体有机结合。从目前的教学手段上看,课堂教学中PPT的大量使用增大了课堂信息量,大大优化了教学过程,但也带来了一些缺点,如影响对主要问题的理解,也不利发挥学生的想象力。因此,结合课程的特点,我们尝试在课堂教学中,将传统教学与多媒体教学进行有机结合。在教学过程中,事先将概念、大信息量的程序代码制作课件,在课堂通过PPT做展示,供学生增加信息量用,也弥补了传统教学无法板书大量源程序的缺点,课堂教学也不再显得枯燥无味。但对于案例分析或程序的编写过程,就强调要发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,这样,充分发挥学生的想象力,使之对问题的理解也变得更容易。同时,也充分利用学院的网络资源,将电子教案、大纲、课件、习题等放在学院的教学网上,供学生自行调用,这样为学生课下复习预习课程提供了良好的条件,从而保证了课堂教学效果。

2.3 加强上机实践,提高学生实践能力

程序设计语言课程的学习,旨在培养学生具有一定的阅读程序、设计程序的能力,因此,C语言的教学特别需要重视上机实验环节。针对学生不同层次的计算机基础,实验教学中应注重循序渐进,题型多样,教师必须重视实验内容的选择,对所学的每一部分内容学生都应循序渐进地完成一定数量的实验内容,这就要求改变过去题型单一,题目单一的现象,每部分的上机习题均应精心挑选,使之既要有基本的、较简单的题目,又要有一些具有挑战性、较难的新颖有趣的题目,并把它们分成必做题和选做题,其中选做题也必须随着后续课程的学习补做出来。例如,在讲授循环结构程序设计时,介绍while、do while和for这三种循环语句后,给学生布置上机作业时,可以简单一点的,有求1到20的累加和、循环输出n个星号,稍难一些的,有输出素数、求1到n的阶乘的累加和,还可以再难一些,如“杨辉三角形”和“水仙花数”等,这样一来,有利于培养学生对知识的应用能力与解决问题的分析能力,基础差的同学不会因为学习负担太重而产生放弃的想法,同时也照顾到一些计算机基础较好的同学,有利于激发学生对计算机编程的兴趣。

针对上机实验课中出现的问题,加强对实验课的考核。每次上机实践课时,均要求在规定时间内独立完成实验习题,并根据完成实验习题的质量记录平时成绩;每次上机均要求上交完整的实验报告,从流程图到程序调试过程,要求写出自己的心得,调试通过或不通过,都要给出分析,找出原因,这样,杜绝部分学生上机课上网、聊天,使之每次上机都能有一定地提高。

如何应对每次上机实验课上,教师少,学生多的情况呢?我们采取的办法是,教师把每次的上机实验分成三个阶段:第一阶段,实验前由老师在机房将本次实验中容易出现的错误通过机房多媒体设备的屏幕广播功能讲解一下,对学生有个初步的提醒,这就要求教师要注意在平时的实验教学中及时总结学生实验课中容易出现的错误;第二阶段,由学生自己上机调试课前已编写好的程序,教师及时解答问题;第三阶段,老师将本次实验课中出现的典型错误集中到一两个程序中,在习题课上通过大屏幕进行集中演示、讲解、调试,这样充分调动学生的学习主动性,使之对课程内容有更深的理解,也逐渐有更大的兴趣。

3 结束语

根据实际教学过程中存在的问题,通过对《C语言程序设计》的教学内容、教学手段与教学方法的改革实践,在实际的教学中取得了良好的教学效果,不仅强烈激发起学生对计算机编程的兴趣,同时二级考试通过率也达到了90%以上,能力培养与应试教育得以兼顾。当然,同样的教学内容面对不同的学生,在使用与设计教学方法时,还要求学生的配合才行,即说教的方法与学的方法要有机统一。在今后的教学中,我们还应进一步研究探索《C语言程序设计》的教学手段与教学方法,调动学生的学习积极性,提高学生分析问题解决问题的能力,使他们在更高的层次上理解计算机、使用计算机,使“C语言”的学习真正成为各专业学生运用计算机工具解决本专业应用问题的铺路石。

参考文献

[1]谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2005.

[2]尹宝林.“C语言程序设计”课程建设的思考和实践[J].计算机教育,2009(23).

[3]陆蓓.建构主义指导下的C语言程序设计教学[J].杭州电子科技大学学报,2006(4).

[4]林小茶.“C语言程序设计”教学方法思考[J].计算机教育,2009(6).

C语言教学中存在问题 篇5

关键词:初中数学;符号语言;教学语言;规范板书;数学符号

中图分类号:G622 文献标识码:B 文章编号:1002-7661(2016)17-086-01

初中学生处于形象思维到逻辑思维的过渡和发展时期,部分学生的数学成绩从初一开始逐年下降,造成其成绩不理想的原因是诸方面的,其中对数学符号语言学习的不重视或适应性差也是一个重要的、不可忽视的因素。

一、学生对初中数学符号语言学习中存在的问题

1、对公式、定理没有达到准确、熟练的记忆许多学生在平时完成作业的过程中,常常是一边翻看教材中的公式一边做题,对数学公式和定理仅停留在机械套用的层次,没有认真钻研符号所代表的真正意义,在遇到一些题干稍有变化的题目时就不知如何去思考和解决。个别学生在考前把课本上的公式抄下来,临时背背,以应付考试。如有的学生对幂的运算法则记忆模糊,甚至连幂的运算是什么都不知道,就更谈不上解决一些有关计算了。有点学生对求方差公式记忆不准确,就连有些简单的直接套用这个公式的题目也做不出来。在学生的试卷中也发现一种现象:有些题目并不是单纯地考查学生对数学公式、定理的识记情况,但在学生在解答过程中由于某些步骤对数学符号的书写出现错误而非常可惜地丢掉了分数,或由于书写不规范而显得解题过程生硬、别扭,思维不流畅。如有的学生在求一元二次方程实数根的时候写成“判别式=(n-3)2-4m(m-5)≥0”,而不用“△”符号来代替“判别式”三个字;有的学生在解题过程中常常出现“三角形ABC”,而很少采用“△ABC”来表达。从这一现象可以感觉学生对基础知识的掌握还有一定的生疏和不扎实。

2、对数学符号语言的理解浮于表面。在具体的情境中,数学符号语言的含义是丰富的、隐含的,需要深刻理解才能准确把握,许多学生在审题过程中不能具体问题具体分析,仅从表面去理解,往往是事倍功半,甚至无法求解。如有这样一道题目:已经函数y=3x-2k的图像与y=图像的交点纵坐标为6,求关于x的不等式:3x-2k<.部分学生仅从形式方面进行分析,看到是关于x的不等式,就开始按照含有参数的不等式的解法去做题,而没有读出数学符号隐含的深层意义:“当x取什么值时一次函数的函数值大于反比例函数的函数值”。

二、加强初中学生数学语言学习的教学策略

1、规范教师教学语言或板书教师在教学中是学生学习的主要引导着,一举一动对学生的思维习惯、学习习惯都有很大的影响作用,教师在教学过程中,对数学语言的规范性应有正确的认识,并给予高度的重视。在教学语言表达中,不可按照方言、俗语等简单地称呼来代替科学、规范的数学语言表达。在板书时同样应书写正确、整齐、规范,不可潦草或随意地省略或用其他符号来代替,给学生传达一种严谨、认真的态度,这样能最大限度地降低学生出错的频率。对于作业中发现学生的错误,要及时地给予指出,并进行示范,及时纠正学生随意的书写态度和习惯。

2、遵循学生的认知规律,引导学生对数学语言符号进行再认识初中数学学困生的一大障碍就是对大量出现的数学符号产生烦躁、排斥、畏惧等心理。教师可以转变学生的从思维方式入手,逐步让学生完全理解数学符号的特定意义。数学符号语言的学习需要形象思维和逻辑思维相结合,两者缺一不可。在教学中,要对学生的思维规律准确把握,合理安排教学程序,将学生的思维逐步引向深入,顺利实现形象思维与逻辑思维的互相转化,让学生明白数学符号发展变化的过程,从中感知所代表的特定数学意义。例如,在学习幂的运算法则(am)n= amn时,教师可以先让学生进行简单数字的乘方运算,通过几个相似例子的数字计算后,让学生感知其中的规律,从而自我归纳总结出一般性规律来,最后再用具体的数字进行对比验证。尽管初中数学教材上也是按照这样的程序来呈现的,但往往被许多教师所忽略,简单给出公式(am)n=amn后就讲解例题,试想许多学生是第一次才听说“幂”这一概念,有些学生甚至还不认识或不会写“幂”这个字,接受起来自然就存在一定的障碍和困惑。

3、关注数学符号语言特点,教学兼顾内容和形式数学符号语言是形式化的数学内容,符号语言的形式与内容是相互依存的。在教学实践中常会发现这种状况,一些数学成绩中等的学生对y=ax2+bx+c(a)表示二次函数的记忆很牢固,但是在遇到相关题目的时候,常常想不到a的这个限制条件,究其原因,这部分学生只注重记忆了二次函数的表示形式,而没有真正理解其中字母a、b、c的含义。在组织教学的过程中,教师也常在不知不觉中把符号语言的形式与其表达内容相脱离。使得符号语言成为了一个由符号累积而形成的空壳,久而久之,学生就会认为数学符号语言是枯燥乏味没有意义的。数学是一门严谨的科学,万丈高楼平地起,在初中数学教学中引导学生对数学语言符号学习给予高度的重视,在此基础上,再逐步将学生带入充满无限魅力的数学王国。

参考文献:

[1]李桂强.对中学生数学符号感的调查与分析[J].数学教学通讯,2014(12):14-16.

[2]赵云峰.浅谈“符号感”的培养策略[J].云南教育一继续教育,2015(1):18-20.

C语言教学中存在问题 篇6

在课程设计过程中, 项目内容的选择、知识点的涉及以及设计过程等诸多方面, 对学生能力的培养都至关重要。本文介绍课程设计项目实例《学生成绩管理系统》在软件设计过程中存在的部分问题, 并提出问题的解决方案, 以此启发学生按合理的思路进行软件设计, 巩固和拓展所学知识, 提高C语言学习热情和积极性。

1《学生成绩管理系统》软件设计简介

本文中所提到的《学生成绩管理系统》主要包括五个功能模块:成绩录入、成绩修改、成绩查询、成绩浏览和成绩删除[1], 整体框架如图1所示。

在《学生成绩管理系统》软件设计过程中, 定义了如下的结构体stuscore, 用于存放学生的成绩信息。

另外, 在《学生成绩管理系统》软件设计过程中, 通过语句“struct stuscore stuscorelib[100];”, 定义了学生成绩数据库数组, 用于存放各学生成绩记录。通过在各函数模块用struct stuscore*p_stuscorelib定义形参p_stuscorelib为上述结构体类型指针, 并在调用各函数模块时, 把存放了学生成绩记录的数组首地址stuscorelib作为实参传递给相应的形参p_stuscorelib, 以此实现各函数模块的功能。具体实例如下面问题2动态表格的程序实现中所示显示学生成绩记录模块:void printrecord (struct stuscore*p_stuscorelib, int count) , 在调用该模块显示所有学生成绩信息时, 如学生成绩记录总数为count, 则可以采用语句“printrecord (p_stuscorelib, count) ;”的形式实现成绩显示。

2《学生成绩管理系统》软件设计中存在的问题与解决方案

(1) 登录模块密码输入过程中字符以*显示, 以实现密码屏蔽[2]

该问题的提出, 是基于软件安全考虑, 实现登陆过程中的密码屏蔽。在设计过程中, 程序设计员要考虑的是实现如图2所示密码输入过程, 密码输入过程中字符以*显示, 以实现密码屏蔽, 保证密码不被轻易泄露。

上述问题实现的难点是:如何在密码字符输入错误时, 按“backspace”键删除前面已输入的字符并重新输入其它正确字符。

解决方案:利用字符数组code[20], 从数组元素code[0]开始依次保存输入的密码字符, 输入过程密码字符不回显, 而是代以显示*字符。在密码字符输入过程中出现输入错误时, 要实现按“backspace”键删除一个前面已输入的字符, 只要每按一次“backspace”键, 就置前面已保存密码字符的倒数第一个数组元素为空字符’�’, 并退格显示空格后再退格以删除屏幕上的一个*。

具体实现该功能的代码如下:

(2) 动态表格的程序实现

这里提到的“动态表格”是指在程序运行过程中, 数据输出表格按照实际表头字段的数量和字段名称等变化而使输出的表格自动适应变化而产生变化。

在《学生成绩管理系统》软件设计过程中, 就涉及到学生成绩信息的动态表格输出。程序设计过程中存在的问题是:在学生课程门数和课程名称未知的情况下, 如何设计学生成绩信息的表格输出模块。动态输出学生成绩表格样式如图3所示。

解决方案:利用整型数组m[10], 从数组元素m[0开始依次保存输出表格中表头课程部分显示的字符数, 以便后面的程序实现表格的动态输出;利用printf (函数返回字符个数这个特点, 用整型变量m1保存某学生某门课成绩显示的字符数, 以此为依据控制表格各成绩单元格宽度, 达到最终表格显示效果。

数组m[10]从数组元素m[0]开始依次保存输出表格中表头课程部分显示的字符数采用的程序代码如下:

for (j=0;j

{m[j]=strlen (p_stuscorelib[0].course[j]) +1;}

整型变量m1保存某学生某门课成绩显示的字符数采用的程序代码如下:

3 结束语

在C语言软件设计过程中, 常常会遇到各种各样的实际问题。遇到问题时, 应以积极的态度去面对, 勤于思考, 不断总结经验, 提高解决问题的能力。

摘要:针对用C语言编写《学生成绩管理系统》软件设计过程中存在的部分问题, 加以分析并提出解决问题的方案。

关键词:C语言,学生成绩管理系统,密码屏蔽,动态表格

参考文献

[1]文东, 孙鹏飞.C语言程序设计基础与项目实训[M].北京:中国人民大学出版社, 2009.

C语言教学中函数调用问题探讨 篇7

本人在教学过程中, 出现了多次这种问题。在讲授函数的概念、函数的定义和函数的调用之后, 给学生出一道题目用函数来实现, 通常情况下, 该问题如果不用函数方法而用其他方法做的话, 学生可能会做得出来, 但让他们必须用自定义函数的方法来实现, 他们就感觉无从下手, 并不是这个问题本身很难, 归根结底, 学生对于怎么自定义函数, 定义多少个参数, 怎么在主调函数中调用自己定义的被调函数不知道如何做。从而导致了用函数解决的问题却用其他方法实现。在这里, 我个人通过自己的反复思量, 为了提高讲授函数调用的教学效果, 自己总结了几条经验。

2 函数调用问题方法讨论

要知道函数怎么调用, 首先得知道用户怎么定义函数。

2.1 函数定义的一般格式:

类型标识符[3]函数名 (形式参数列表) {声明部分语句部分}

这个格式定义的函数为有参函数, “形式参数列表”中的参数被称为形参, 有些函数是无参函数, 则“形式参数列表”可以没有, 但括弧不能省略, 即无参函数。

函数在使用之前要先声明、定义, 然后才能调用[1]。

2.2 函数调用的一般形式为:

函数名 (实参表列)

函数在程序中出现的位置来分, 可以有以下三种函数调用方式[2]:

(1) 函数语句

把函数调用作为一个语句, 这种方式不要求函数带回值, 如打印图形、显示字符串等。只要函数完成一定的操作。

(2) 函数表达式

函数出现在一个表达式中, 这种表达式称为函数表达式。要求函数带回一个确定的值以参加表达式的运算。如:c=10*max (a, b) , 其中, 函数max就是表达式的一部分。

(3) 函数参数

函数调用作为一个函数的实参, 如:printf (“%d”, max (a, b) ) ;是把max (a, b) 作为printf函数的一个参数。

2.3 函数问题案例讲解

(1) 首先从库函数的调用案例着手讲授, 学生自然就很轻松上手。

众所周知, 库函数中的数学函数学生从高中就经常接触到, 在计算机教学的其他课程里面也会经常出现, 如excel里面就有数学函数, 学生们已经很熟悉了, 如下面一道编程题就需要调用库函数解决。

用C语言求14+24+34+……94+104之和。

其中, pow (i, k) 就是系统自带的数学函数, i和k是它自带的两个参数, 其功能是计算i的k次方。通过这个系统数学函数的调用程序的编写及调试, 学生们很轻松就知道库函数怎么调用, 即函数名加上函数括号里面的参数。

另外大家使用库函数的时候, 一定要在本文件开头用#include命令, 将调用有关库函数时所需用到的信息“包含”到本文件中来。该程序开头用语句#include"math.h", 即可将数学库函数“包含”到主函数中来。

(2) 用大家熟悉且简短的函数编程案例入手讲解。

典型小案例教学具有很强的启发性, 既有利于学生学习, 也有利于老师教授。

用C语言函数实现1+2+3+……+20之和。

在这个程序代码中, 程序行long fnsum (int n) 是自定义函数, fnsum是函数名, n是定义的一个形参, 也仅需要一个, 表示1+2+……+20共有多少个数求和。由于fnsum函数代码写在main () 函数之前, 可以不进行声明。反之, 若fnsum函数代码写在main () 函数之后, 必须用代码long fnsum (int n) ;进行声明。fnsum函数功能即是题目要完成的功能实现, 最后通过main () 主函数定义一个实参n并赋值20, 在printf函数中通过代码printf ("%d", fnsum (n) ) , 调用了自定义函数fnsum, 并将实参n=20传递给自定义函数fnsum (int n) 中的形参n, 最终将结果打印输出。

在main () 主函数中, fnsum这个函数调用也可以改成如下:

这个是通过函数表达式的方法进行函数调用, 通过这个自定义函数的简单案例讲解, 学生很轻松能够理解函数怎么自定义并在main () 主函数中调用。

3 结束语

本文分析了C语言函数调用学习过程中存在的问题, 在今后的教学过程中, 本人将进一步努力提升自己, 希望能总结出更多更好的方法来改进函数教学方法, 使学生能够更轻松地上手学习。

参考文献

[1]汪明光.C++语言中函数指针的分析与应用[J].巢湖学院学报, 2006, 8 (3) :30-34.

[2]谭浩强.C语言程序设计 (第三版) [M].北京:清华大学出版社, 2005.143-150.

C语言教学中存在问题 篇8

函数是C语言程序的基本构成模块,通过使用函数,不仅可以省去重复代码的编写,还可以使程序更加模块化,从而有利于程序的阅读、修改和完善。对于C语言的初学者来说,准确理解函数参数的传递方式是难点之一。一些C语言程序设计教材[1,2]中把函数间的参数传递分为“数值传递”和“地址传递”两种方式,这种分类很容易使初学者混淆概念,更不能抓住参数传递的本质。

2 传递方式和数据类型

“值传递”[3]是函数参数的唯一传递方式。函数的参数分为实际参数(简称实参)和形式参数(简称形参),在定义函数时使用的参数叫形参,在调用函数时使用的参数叫实参。实参可以是常量、变量或表达式,但要求它们有确定的值。实参与形参的结合只有一种方式,即“值传递”,把实参的值赋给形参变量。“值传递”具有单向性,只能把实参传给形参,而不能由形参回传给实参。

不同数据类型的函数参数对主调函数中变量的作用有所不同。函数参数可取的数据类型为基本类型、构造类型、指针类型或空类型,如图1[3]所示。空类型表示该函数为无参函数,在此不作介绍。其余数据类型又可分为三类:普通类型,包括基本类型、结构体类型和共用体类型;指针类型;数组类型。函数参数为普通类型时,对函数的调用不用影响到主调函数中变量的值;函数参数为指针类型或数组类型时,对函数的调用可以修改主调函数中有关变量的值。

3 普通类型变量作为函数参数

普通变量作为函数参数时,对形参的修改不会影响到实参。如下例所示,通过“值传递”,形参x保存了实参a的值,形参y保存了实参b的值,因为形参和实参是相互独立的不同变量,所以在swap函数中对形参x和y进行的交换不会反映到实参a和b中。

输入:1 2

输出:1 2

4 指针作为函数参数

变量的指针就是变量的地址,存放变量地址的变量叫指针变量,定义指针变量的一般形式为:

基类型*指针变量名;

通过指针变量访问其所指向的变量的方式称为间接访问方式。如下例所示。

int age;

a=10;//直接访问方式

*p=11;//间接访问方式

指针类型作为函数参数时,参数传递方式仍然是“值传递”,即把实参的值传递给形参。不同的是参数为指针变量,可以通过形参的间接访问方式来读取或修改主调函数中有关变量的值。

如下例所示,通过“值传递”,形参x保存了变量a的地址,形参y保存了变量b的地址,即x指向变量a,y指向变量b,在swap函数中通过间接访问方式交换了变量a和b的值。

输入:1 2

输出:2 1

5 数组名作为函数参数

数组元素和数组名也可以作为函数参数,数组元素作为函数参数与普通变量用法相同,数组名作为函数参数与指针变量相同。

用数组名作函数形参时,指定数组大小是不起任何作用的。因为C语言编译对形参数组大小不做检查,只是将实参数组的首地址传递给形参数组。实参数组名即是实参数组的首地址,相当于指针常量;形参数组名相当于指针变量。实际上,C编译都是将形参数组名作为指针变量来处理的[3]。所以,数组名作为函数参数可以按指针作为函数参数来理解。

如下例所示,数组名array代表数组array的首地址,通过“值传递”,形参数组名a,也可以理解为形参指针变量a,保存了数组array的首地址,因此,在swap函数中对形参数组a的操作即是对实参数组array的操作。

输入:1 2

输出:2 1

6 结论

综上所述,C语言函数参数问题主要涉及两个概念:传递方式和数据类型。实参与形参的传递方式只有一种,即“值传递”。参数的数据类型可以为普通类型、指针类型和数组类型,数组类型实际上是按指针类型来处理的,所以,主要是指针类型与非指针类型的区别。对初学者来说,问题的难点在于数据类型的不同而非传递方式,即指针类型变量与非指针类型变量的区别。

参考文献

[1]田祥宏.C语言程序设计[M].西安:西安电子科技大学出版社,2007.

[2]李明.C语言程序设计教程[M].上海:上海交通大学出版社,2008.

C语言教学中存在问题 篇9

1 指针变量的概念及特点

1.1 指针的概念

在计算机中, 所有的数据和程序都是存放在存储器中。一般把一个字节空间称为一个内存单元, 为了正确访问这些内存单元, 必须为每个内存单元编上号, 根据某个内存单元的编号即可准确的找到该内存单元, 我们把内存单元的编号叫地址。通常是一个字节对应一个地址, 根据内存单元的地址就可以转到所需的内存单元, 我们把这个地址称为指针。在C语言中, 可以用一个变量来存放指针, 这个变量被称作指针变量。因此一个指针变量的值就是某个内存单元的地址, 也称为某内存单元的指针。

1.2 指针的特点

指针具有两大特点, 一是指针变量本身的值。指针变量的值就是某个内存单元的地址, 通过指针变量中存放的地址, 可以访问这些内存单元的内容。指针变量既然是变量, 那肯定有自己存储空间的大小了。那么指针变量的大小是多少呢?指针是用来存放地址的, 那么指针变量的长度当然就是其所在机器地址总线的长度了。比如在32位的x86上, 指针一般来说就是32位的, 也就是4个字节大小。二就是指针变量的类型。我们都知道声明指针变量的时候都需要指名其类型, 比如char*/int*等, 那么这里的char/int之类的又有什么含义呢?可以把这些类型理解成一种”尺度”。如刚才所说, 指针的值指明了可以访问的位置, 那么指针的类型则限制了指针从该位置所能访问的长度。比如, int*p说明了p这个指针变量在使用诸如*p等方式访问p中存放的地址中的数据的时候, 系统会提取sizeof (int) 长度的数据出来, 这个数据当然就是一个int型的值了, 或者在进行诸如p++这样的操作时, 系统会加上sizeof (int) 的长度。总之, 指针其实就是一个地址加一个长度, 地址限定了指针起始的位置, 而长度则规定了系统按多少字节来访问内存的数据。

1.3 指针类型转换

有了以上的说明, 关于指针强制类型转换的概念就好理解了。指针的强制类型转换的就是指针的类型, 也就是系统使用指针的方式。比如从int*转换到char*, 那么指针中的地址并没有变化, 只是类型变了, 比如在执行p++的时候, 原来是增加4个字节 (32位int) , 而转换之后便成了增加1个字节 (char的长度) 。再复杂一点, 常规类型向结构体的强制类型转换也是这样的道理。

1.4 void指针和NULL指针

void数据类型是一种很重要的数据类型。void的意思就是“无值”或“无类型”。void指针一般称为“通用指针”或“泛指针”。之所以有这样的名字是因为使用void指针可以很容易地把void指针转换成其它数据类型的指针。例如在为一个指针分配内存空间时:

int*p;

p= (int*) malloc (…) ;??本来函数malloc的返回值是void类型, 在这里通过在前面加上一个带括号的int*就把void*类型转换成了int*类型。所以不能简单的把void看成“无”的意思。

N U L L指针是不指向任何一个地址的指针。这样的指针一般是允许的, 当一个指针为NULL的时候, 不要对它进行存取。

2 使用指针应注意问题及实例解析:

2.1 禁止使用“野”指针

野指针是不由程序员所能控制的指针。当在一个程序里面定义了一个指针而又没有给这个指针一个具体地址指向时, 这个指针会随意地指向一个地址, 这样的指针就是一个野指针。如果这个地址后面的内存空间没有什么重要的数据则不会造成不好的后果, 但是一旦这里面存放了有用的数据, 那么这些数据随时都有被野指针存取的危险, 如果这样, 数据就会被破坏, 程序也会崩溃, 所以在程序里面是一定要禁止任何野指针的存在。如:

int*p;*p=20;这就属于危险操作。应改为int*p, a;p=&a;*p=20;

2.2 指针跑偏

如下例:

此程序用指针p输入10个元素后, p的指向已经指向了数组的末尾, 此时不能直接输出。须在输出前加上p=a;来纠正指针的位置。printf (“%d”, * (p+i) )

2.3 内存泄漏

当一个指针使用完毕要立即释放掉这个指针所占用的内存空间--这有二方面的意义: (1) 避免了内存空间的泿费; (2) 防止了内存泄漏。产生内存泄漏是由于如果没有及时释放掉指针所占用的内存空间, 而在下次使用这个指针时又给这个指针分配了内存空间, 这样的次数一多, 内存空间就慢慢被消耗掉了, 所以形象地称这种现象为内存泄漏, 如下面这样一个程序:

可以看到, 每一次循环都会“吃掉”20个字节的内存, 无数次之后, 再多的内存也慢慢地“泄漏”, 最后没有内存可用导致死机。因此需要及时释放内存, 用free (p) 释放掉不使用的内存。

2.4 越界问题

在使用指针访问数组时, 要注意不要超出数组的低端和高端边界。由于在C语言中, 数组使用时下超越所定义的上下界是不做检查的, 比如下面的程序:

3 结语

指针是C语言的精华部分, 只有理解并活用指针, 才能理解C语言的精髓, 才能利用它可编写出颇有特色的质量优良的程序, 实现许多用其他高级语言难以实现的功能。同时由于指针使用灵活, 导致容易出错, 因此使用指针时要十分小心, 并且在编程过程中不断总结指针的使用技巧, 通过实践中的不断摸索才能准确无误地驾驭指针。

参考文献

[1]谭浩强.C程序设计[M].北京:清华大学出版社, 2008.

C语言教学中存在问题 篇10

【关键词】C语言 对策 上机实践

【中图分类号】TP312.1-4 【文献标识码】A 【文章编号】2095-3089(2016)11-0035-01

“C 语言”因为工具性与技能性在计算机教育中占据重要的地位而被列为计算机专业的必修课。由于技校学生大部分是由初中毕业升学而来,自身基础薄弱加之 C 语言自身的特点,大部分学生反映在上课像在听“天书”,完全听不懂,作业做不出,更不要谈灵活应用解决相关的实际问题。

一、导致学生在听“天书”的原因

1.学生自身基础差

学习C语言需要学生要一定的计算机基础、数学基础、英语基础和逻辑思维能力。其中受环境和条件的限制导致部分学生计算机基础较差,生源问题导致部分学生数学基础、英语基础较差,而逻辑思维能力大大影响学生分析、设计、调试程序的能力。所以以上四个制约因素是在学习C语言中由于自身基础差而导致听不懂的重要原因之一。

2.C语言自身的特点

C 语言是计算机语言,是人与计算机交流的语言之一。对于从来没有接触机器语言的学生来说,如何实现自然语言到程序自动化语言的转化,如何将自然语言描述的问题用 C 语言描述并让计算机解决是学生在学习中的最大障碍。

另外C 语言的一些特点,比如运算符丰富、语法限制不严格、用户能够自定义数据类型、程序设计自由度大等等既是 C语言的优点,也是初学者学习的难点。例如:算术运算符中除法运算符/和求余运算符(模算符)%,如5/3的值为1,舍去小数部分,但是如果除数或被除数中有一个为负值,则舍入的方向是不固定的,-5/3在有的机器上的结果是-1,有的机器上是-2。而0%5的结果是5,2%5的结果却是0。大部分学生找不到正确的学习方法,先是硬着头皮学,结果越学越乱,越乱越听不懂。

二、针对存在这一问题的对策

要解决C语言的“听天书”问题,必须分别从师生两方面下手。

1.教师改进教学方法,提高教学质量

1.1改变传统的教学方法

C语言的教学内容较多,教师在教学中为了完成教学任务,在有限的课堂时间里讲的知识点太多,学生没有足够的时间去消化,一堂课下来学生“走马观花”,什么都没听懂。那么就要改变传统的教学方法,灵活地安排教学内容和上机时间,在讲授基本结构、变量、运算符与表达式等比较简单的章节时,可以边讲课让学生边操作,而对于比较难的章节,如数组、结构体、指针等内容,教师要以学生学习进度出发安排课程,并要注重学生在学习后的反馈。若只采用一种教学方法从一而终是不可取的,因此,需要教师在教学过程中不断探讨、总结经验,合理运用各种教学方法。如通过案例教学法、问题引入法、任务驱动法等方法来吸引学生学习的兴趣。在案例选择时应该与实际相结合,具有趣味性。

1.2结合实践,培养逻辑及创造性思维能力

语言学习必须理论与实践相结合,这就要求教师要精讲多练。教师要讲到要点上,充分体现典型例题的编程思路、算法,将严谨、富有逻辑性的编程规范思想清晰地展现在学生面前。多练是学习编程的关键,只有在上机实践中学生才能真正学会如何编写和调试程序,才能更好地掌握理论知识及其应用。在C语言实验教学中安排合理实验时间,注重理论联系实际,不仅要注意例题的针对性、典型性和灵活性,还应该提倡一题多解,培养学生从多种角度对问题进行思考的能力,拓宽解题思路,训练学生发散性思维。上机实践中也应该与实际相结合,否则多数学生在上机时只是验证程序,没有思考,感觉上机很无聊。教师可以采用分组参加项目设计来提高学生的兴趣,每一组中必须有动手能力强和动手能力弱的同学同组,通过编写简单一些游戏项目如:扫雷、贪吃蛇、五子棋等让学生体会实际编程中学与用结合的乐趣,从而提高学生实际编程能力。

2.学生树立正确的学习观念,学会学习,自主学习

2.1正确认识 C语言,树立信心

认识C 语言的重要性,树立“既学之,则学好”的信心。C语言是技校计算机专业的学生学习其他计算机课程的先行课,是一门最基础的计算机编程语言,应用广泛,不仅在软件开发上,而且它几乎是一切计算机技术的通用工具。C语言学习的好坏,直接关系到计算机编程思维能力能否建立。不论哪种计算机语言,计算机编程思维是相通的,只要学好 C 语言,就可以很好地学习任何一种编程工具。想要学好语言就得树立信心,克服困难,循序渐进,脚踏实地学习。

2.2夯实基础,多读、多写,“熟读百遍”

古话说“熟读唐诗三百首,不会作诗也会吟”,C 语言虽然是机器语言,但它和自然语言的学习方法是一样的。对C语言的学习也是要求熟读课本,多读、多写,才能打好基础。只有这些基础知识掌握够牢固,才能为自己编程打下良好的基础。

2.3注重实践,多学、多练、“其义自现”

C语言的实践性很强。只有在上机实践中学生才能真正学会如何编写和调试程序,才能更好地掌握理论知识及其应用。在实践学习中,理论联系实际,把编程思路和程序测试放在首位,才能提高分析和解决问题。C 程序设计语言的学习可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。如:C 语言的语法规则,学习起来枯燥无味,死记硬背费精力费时间,还可能不会灵活运用。就可以通过上机实践,在调试程序过程中,加深对它的理解,在理解的基础上自然而然地掌握 C 语言的语法规定。程序最终也是在计算机上实现的,程序正确与否、存在什么问题上机调试并运行正确后就可以知道,编程能力的提高也正是在不断发现错误、改正错误中提高的。

三、总结

教和学是教学过程中的两个重要方面,一门课程大部分学生反映听不懂,那么问题一定出在这两方面。在 C 语言教学中,有教师在教学中的教学方法和教学模式的落后,导致学生学习效果差,也有学生自身的主观和客观方面的原因。针对这些问题,对症下药,教师通过教学手段引导学生学习,给予他们正确的学习方法;学生树立正确的学习观念,自主的用 C 语言来分析问题和解决问题,寓教于学,才能解决问题。

参考文献:

[1]谭浩强.C 程序设计[M].北京:清华大学出版社,2005

[2]王兰.学好《C 程序设计》的几点建议[J].科技信息 ,2007,(9)

C语言教学中存在问题 篇11

关键词:大学英语分级教学,C级班问题解决方案

大学英语分级教学是指打破大学英语原有的自然班教学模式, 根据学生英语水平的高低分成不同等级班次进行教学。我校从2012级新生开始进行大学英语分级教学改革, 把全校非英语专业学生分为A、B、C三个等级, 针对不同的等级制订了相应的人才培养方案、教学大纲和教学质量标准。这种新的教学模式, 有助于教师因材施教, 满足不同层次学生的要求, 从而提高教学质量。

然而, 作为大学英语教学改革的新举措, 分级教学还有待完善, 尤其是C级班作为慢班, 目前的教学状况还没有达到理想的水平。本文对大学英语分级教学中C级班的教学现状进行了分析, 指出了存在的一些问题并提出了相应的解决方案。

一、C级班在实践教学中存在的问题

作者承担了2012级新生C级班大学英语的教学任务, 在实践教学过程中, 发现了分级教学之后C级班学生在英语学习过程中存在的一些问题。

(一) 英语基础薄弱

进行分级编班之后, 中学时英语基础薄弱的学生被集中分配到C级班。他们在英语基本功方面表现出了低于一般高中毕业生的英语水平:国际音标认不全、读不出, 基本的人称代词拼写不正确;在进行句子翻译和写作文的时候由于词汇量不足、语法知识薄弱, 无法组织语法正确的英文句子;英语听说能力非常差, 无法听懂老师的全英授课, 对于一般的听力材料也无法抓住关键信息点进行准确答题。

由于他们语言理解能力差, 因此, 教师的课堂教学活动很难展开, 比如进行分组活动, 学生由于无法自如地用英语表达自己的想法, 因此在小组内很难对老师布置的话题展开讨论, 课堂活动达不到理想的教学效果。

(二) 缺乏对英语学习的兴趣和动力

C级班的很多学生在中学的时候就对学习英语兴趣不足, 进入大学之后, 被编入C班的学生在心理上或多或少会存在一定的自卑感和缺乏自信。同时, 我校C级班的学生与A、B级使用的是相同的教材, 相对来说难度较大, 也造成了他们对英语学习产生了一种自暴自弃的心理。通过观察发现, 每个班几乎有将近一半的学生上课不专心, 没有学习动力, 没有领头羊, 没有竞争意识, 自律性较差, 学习态度不端正, 很少与老师交流, 对教师的讲课基本无反馈.

二、对于存在问题的相应解决方案

针对C级班存在的问题, 作者通过在实践教学中积累的经验, 提出了相应的解决方案。

1.首先, C级班的英语教学应注重重新打好学生的语言基础, 教师在授课过程中要对学生中学时候没有学扎实的英语语法知识进行补充讲解训练, 利用大学英语教材扩大学生的词汇量, 给学生输入新的词汇。把基本语法知识与大学英语教材中新的词汇现象结合起来, 逐渐培养起学生对英语学习的兴趣, 由被动学习转为主动学习。教师应先对所用教材进行仔细分析研究, 挑选出难易程度都比较适合C级班学生学习的内容进行讲授, 然后在教学过程中适当补充课外知识。同时, 教师的教学手段要有所创新和突破, 课堂上多创造与学生互动的机会, 引导学生多听英文歌曲、朗读英文短诗, 培养起学生的语感。另外, 教师还应适当给学生讲解一些答题技巧, 使学生有的放矢地提高考试成绩, 从而树立起学习英语的信心。

教师要格外增加听说方面的训练时间, 要把听说训练贯彻到每次课堂上来, 要选择适合C级班学生水平和能力的听力材料, 适当进行专项训练, 循序渐进地提高学生的听说能力。

2.教师要注重对C级班学生的人文关怀。对于在中学的时候就失去了英语学习兴趣的学生, 教师在教学过程中要努力提高教学内容的趣味性, 并且对学生进行思想指导, 让他们意识到大学英语学习的重要性。另一种情况是英语基础差, 无法掌握正确的学习方法的学生, 但是内心却迫切想要把英语学好, 提高英语成绩的学生, 教师应该重点在英语学习的方式方法方面进行指导, 安抚学生急躁的情绪, 帮助学生找到自己的不足之处和适合自己的学习策略, 从而得到提高和进步。

C级班教师应该和学生之间建立良好的师生关系。大学英语教师在情感方面要与学生多沟通和交流, 使学生感受到教师对他们学习之外的关爱。教师要对C级班的学生进行赏识教育, 多表扬学生在学习过程中取得的点滴成绩和进步, 多鼓励学生参与课堂活动, 并尽可能多提供给学生展示自己的机会。作者在实践中发现, 良好的师生关系对于促进C级班的教学起到了很大的辅助作用。

三、结论

以上提出的只是在C级班的教学实践中发现的部分问题, 只要教师能坦然面对和认真分析出现的实际问题, 并实事求是地寻求解决策略, 从学生的角度出发, 相信在改革过程中C班的教学也会迈向一个新的台阶。在大学英语教学改革已经大面积展开的大环境下, 通过分级教学的改革, 一定会真正地满足注重和强调学生为主体、促进个性化学习和自主学习的基本要求, 也将更好地体现“以人为本, 因材施教”的原则。

参考文献

[1]肖作霖.浅析形成性评估对大学英语分级教学自主性学习的影响[J].考试周刊, 2010 (44) .

[2]牛筱婷.高校英语分层教学中慢班学生心理情况与应对措施——警惕教学中的“马太效应”[J].中国科教创新导刊, 2008 (25) .

上一篇:国家级护理骨干教师下一篇:二自由度